ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCalib::MdtTubeFitContainer Class Reference

Holds single-tube full calibration information of one chamber. More...

#include <MdtTubeFitContainer.h>

Inheritance diagram for MuonCalib::MdtTubeFitContainer:
Collaboration diagram for MuonCalib::MdtTubeFitContainer:

Classes

struct  SingleTubeFit

Public Types

using SingleTubeCalibPtr = GeoModel::TransientConstSharedPtr<SingleTubeCalib>

Public Member Functions

 MdtTubeFitContainer (const Muon::IMuonIdHelperSvc *idHelperSvc, const Identifier &moduleID)
 nMl = number of multilayres, nLayers = number of layers in multilayer (3 or 4); nTubes = number of tubes in one layer
const SingleTubeFitgetFit (const Identifier &tubeId) const
 return calibration constants of a single tube
SingleTubeFitgetFit (const Identifier &tubeId)
bool setFit (SingleTubeFit &&val, const Identifier &tubeId, MsgStream &log)
 set the calibration constants of a single tube
void setImplementation (const std::string &impl)
 set the name of the implementation used to fill this class
const std::string & name () const
 return the name of this class
const std::string & implementation () const
 return the name of the implementation filling this class
void setGroupBy (const std::string &group_by)
std::string GroupBy () const
const SingleTubeCalibgetCalib (const Identifier &tubeId) const
 return calibration constants of a single tube
bool setCalib (SingleTubeCalib val, const Identifier &tubeId, MsgStream &msg)
 set the calibration constants of a single tube
const Identifieridentify () const
 return container name and dimensions
unsigned int size () const
unsigned int numMultilayers () const
unsigned int numLayers () const
unsigned int numTubes () const
const Muon::IMuonIdHelperSvcidHelperSvc () const

Protected Member Functions

unsigned int vectorIndex (const Identifier &measID) const
 calculate postion of tube in vector

Protected Attributes

const Identifier m_moduleID {}
const Muon::IMuonIdHelperSvcm_idHelperSvc {nullptr}
const MdtIdHelperm_idHelper {m_idHelperSvc->mdtIdHelper()}
uint8_t m_nMl {0}
 number of multilayers in chamber
uint8_t m_nLayers {0}
 number of layer
uint8_t m_nTubes {0}
 number of tubes
std::vector< SingleTubeCalibm_data {}

Private Attributes

std::vector< SingleTubeFitm_info {}
std::string m_name {"MdtTubeFitContainer"}
std::string m_implementation {"implementation"}
std::string m_group_by {"UNKNOWN"}

Detailed Description

Holds single-tube full calibration information of one chamber.

Definition at line 16 of file MdtTubeFitContainer.h.

Member Typedef Documentation

◆ SingleTubeCalibPtr

Constructor & Destructor Documentation

◆ MdtTubeFitContainer()

MuonCalib::MdtTubeFitContainer::MdtTubeFitContainer ( const Muon::IMuonIdHelperSvc * idHelperSvc,
const Identifier & moduleID )

nMl = number of multilayres, nLayers = number of layers in multilayer (3 or 4); nTubes = number of tubes in one layer

Definition at line 8 of file MdtTubeFitContainer.cxx.

9 :
11 m_info.resize(size());
12}
MdtTubeCalibContainer(const Muon::IMuonIdHelperSvc *idHelperSvc, const Identifier &moduleID)
nMl = number of multilayres, nLayers = number of layers in multilayer (3 or 4); nTubes = number of tu...
const Muon::IMuonIdHelperSvc * idHelperSvc() const
std::vector< SingleTubeFit > m_info

Member Function Documentation

◆ getCalib()

const SingleTubeCalib * MuonCalib::MdtTubeCalibContainer::getCalib ( const Identifier & tubeId) const
inlineinherited

return calibration constants of a single tube

Definition at line 35 of file MdtTubeCalibContainer.h.

35 {
36 unsigned int idx = vectorIndex(tubeId);
37 if (idx >= m_data.size()) return nullptr;
38 return &m_data[idx];
39 };
std::vector< SingleTubeCalib > m_data
unsigned int vectorIndex(const Identifier &measID) const
calculate postion of tube in vector

◆ getFit() [1/2]

SingleTubeFit * MuonCalib::MdtTubeFitContainer::getFit ( const Identifier & tubeId)

Definition at line 53 of file MdtTubeFitContainer.cxx.

53 {
54 unsigned int idx = vectorIndex(tubeId);
55 if (idx >= m_info.size()) return nullptr;
56 return &m_info[idx];
57}

◆ getFit() [2/2]

const SingleTubeFit * MuonCalib::MdtTubeFitContainer::getFit ( const Identifier & tubeId) const

return calibration constants of a single tube

Definition at line 47 of file MdtTubeFitContainer.cxx.

47 {
48 unsigned int idx = vectorIndex(tubeId);
49 if (idx >= m_info.size()) return nullptr;
50 return &m_info[idx];
51}

◆ GroupBy()

std::string MuonCalib::MdtTubeFitContainer::GroupBy ( ) const

Definition at line 42 of file MdtTubeFitContainer.cxx.

42 {
43 if (!m_info.size()) return m_group_by;
44 return m_info.begin()->group_by;
45}

◆ identify()

const Identifier & MuonCalib::MdtTubeCalibContainer::identify ( ) const
inlineinherited

return container name and dimensions

Definition at line 45 of file MdtTubeCalibContainer.h.

45{ return m_moduleID; }

◆ idHelperSvc()

const Muon::IMuonIdHelperSvc * MuonCalib::MdtTubeCalibContainer::idHelperSvc ( ) const
inherited

Definition at line 39 of file MdtTubeCalibContainer.cxx.

39 {
40 return m_idHelperSvc;
41}
const Muon::IMuonIdHelperSvc * m_idHelperSvc

◆ implementation()

const std::string & MuonCalib::MdtTubeFitContainer::implementation ( ) const

return the name of the implementation filling this class

Definition at line 22 of file MdtTubeFitContainer.cxx.

22 {
23 return m_implementation;
24}

◆ name()

const std::string & MuonCalib::MdtTubeFitContainer::name ( ) const

return the name of this class

Definition at line 18 of file MdtTubeFitContainer.cxx.

18 {
19 return m_name;
20}

◆ numLayers()

unsigned int MuonCalib::MdtTubeCalibContainer::numLayers ( ) const
inlineinherited

Definition at line 48 of file MdtTubeCalibContainer.h.

48{ return m_nLayers; }

◆ numMultilayers()

unsigned int MuonCalib::MdtTubeCalibContainer::numMultilayers ( ) const
inlineinherited

Definition at line 47 of file MdtTubeCalibContainer.h.

47{ return m_nMl; }
uint8_t m_nMl
number of multilayers in chamber

◆ numTubes()

unsigned int MuonCalib::MdtTubeCalibContainer::numTubes ( ) const
inlineinherited

Definition at line 49 of file MdtTubeCalibContainer.h.

49{ return m_nTubes; }

◆ setCalib()

bool MuonCalib::MdtTubeCalibContainer::setCalib ( SingleTubeCalib val,
const Identifier & tubeId,
MsgStream & msg )
inherited

set the calibration constants of a single tube

Make enough space for the calibration constants

Definition at line 19 of file MdtTubeCalibContainer.cxx.

19 {
21 const unsigned int index = vectorIndex(tubeId);
22 if (m_moduleID != m_idHelperSvc->chamberId(tubeId)) {
23 msg << MSG::ERROR<<__FILE__<<":"<<__LINE__<<" The channel "<<m_idHelperSvc->toString(tubeId)
24 <<" does not correspond to chamber "<<m_idHelperSvc->chamberNameString(tubeId) <<endmsg;
25 return false;
26 }
27 if (index >= m_data.size()) {
28 msg << MSG::WARNING<<__FILE__<<":"<<__LINE__<<" The channel "<<m_idHelperSvc->toString(tubeId)
29 <<"does not seem to match the anticipated chamber sizes of "
30 <<m_idHelperSvc->chamberNameString(m_moduleID)<<endmsg;
31 m_data.resize(index +1);
32 }
33 m_data[index] = std::move(val);
34 if (msg.level() <= MSG::VERBOSE) {
35 msg << MSG::VERBOSE<<" Succesfully stored calibration data for channel "<<m_idHelperSvc->toString(tubeId) << endmsg;
36 }
37 return true;
38}
#define endmsg
str index
Definition DeMoScan.py:362
MsgStream & msg
Definition testRead.cxx:32

◆ setFit()

bool MuonCalib::MdtTubeFitContainer::setFit ( SingleTubeFit && val,
const Identifier & tubeId,
MsgStream & log )

set the calibration constants of a single tube

Definition at line 26 of file MdtTubeFitContainer.cxx.

26 {
27 unsigned int idx = vectorIndex(tubeId);
28 if (idx >= m_info.size()) {
29 log<<MSG::WARNING<<__FILE__<<":"<<__LINE__<<" Index "<<idx
30 <<" exceeds range "<<m_info.size()<<endmsg;
31 return false;
32 }
33 m_info[idx] = std::move(val);
34 return true;
35}

◆ setGroupBy()

void MuonCalib::MdtTubeFitContainer::setGroupBy ( const std::string & group_by)

◆ setImplementation()

void MuonCalib::MdtTubeFitContainer::setImplementation ( const std::string & impl)

set the name of the implementation used to fill this class

Definition at line 14 of file MdtTubeFitContainer.cxx.

14 {
15 m_implementation = impl;
16}

◆ size()

unsigned int MuonCalib::MdtTubeCalibContainer::size ( ) const
inlineinherited

Definition at line 46 of file MdtTubeCalibContainer.h.

46{ return m_data.size(); }

◆ vectorIndex()

unsigned int MuonCalib::MdtTubeCalibContainer::vectorIndex ( const Identifier & measID) const
inlineprotectedinherited

calculate postion of tube in vector

Definition at line 59 of file MdtTubeCalibContainer.h.

59 {
60 return (m_idHelper.multilayer(measID) - 1) * (m_nLayers * m_nTubes) +
61 (m_idHelper.tubeLayer(measID) - 1) * m_nTubes +
62 (m_idHelper.tube(measID) -1);
63 }

Member Data Documentation

◆ m_data

std::vector<SingleTubeCalib> MuonCalib::MdtTubeCalibContainer::m_data {}
protectedinherited

Definition at line 67 of file MdtTubeCalibContainer.h.

67{};

◆ m_group_by

std::string MuonCalib::MdtTubeFitContainer::m_group_by {"UNKNOWN"}
private

Definition at line 63 of file MdtTubeFitContainer.h.

63{"UNKNOWN"};

◆ m_idHelper

const MdtIdHelper& MuonCalib::MdtTubeCalibContainer::m_idHelper {m_idHelperSvc->mdtIdHelper()}
protectedinherited

Definition at line 56 of file MdtTubeCalibContainer.h.

56{m_idHelperSvc->mdtIdHelper()};

◆ m_idHelperSvc

const Muon::IMuonIdHelperSvc* MuonCalib::MdtTubeCalibContainer::m_idHelperSvc {nullptr}
protectedinherited

Definition at line 55 of file MdtTubeCalibContainer.h.

55{nullptr};

◆ m_implementation

std::string MuonCalib::MdtTubeFitContainer::m_implementation {"implementation"}
private

Definition at line 62 of file MdtTubeFitContainer.h.

62{"implementation"};

◆ m_info

std::vector<SingleTubeFit> MuonCalib::MdtTubeFitContainer::m_info {}
private

Definition at line 60 of file MdtTubeFitContainer.h.

60{};

◆ m_moduleID

const Identifier MuonCalib::MdtTubeCalibContainer::m_moduleID {}
protectedinherited

Definition at line 54 of file MdtTubeCalibContainer.h.

54{};

◆ m_name

std::string MuonCalib::MdtTubeFitContainer::m_name {"MdtTubeFitContainer"}
private

Definition at line 61 of file MdtTubeFitContainer.h.

61{"MdtTubeFitContainer"};

◆ m_nLayers

uint8_t MuonCalib::MdtTubeCalibContainer::m_nLayers {0}
protectedinherited

number of layer

Definition at line 65 of file MdtTubeCalibContainer.h.

65{0};

◆ m_nMl

uint8_t MuonCalib::MdtTubeCalibContainer::m_nMl {0}
protectedinherited

number of multilayers in chamber

Definition at line 64 of file MdtTubeCalibContainer.h.

64{0};

◆ m_nTubes

uint8_t MuonCalib::MdtTubeCalibContainer::m_nTubes {0}
protectedinherited

number of tubes

Definition at line 66 of file MdtTubeCalibContainer.h.

66{0};

The documentation for this class was generated from the following files: