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 SingleTubeFit * getFit (const Identifier &tubeId) const
 return calibration constants of a single tube
SingleTubeFit * getFit (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 SingleTubeCalib * getCalib (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 Identifier & identify () const
 return container name and dimensions
unsigned int size () const
unsigned int numMultilayers () const
unsigned int numLayers () const
unsigned int numTubes () const
const Muon::IMuonIdHelperSvc * idHelperSvc () 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::IMuonIdHelperSvc * m_idHelperSvc {nullptr}
const MdtIdHelper & m_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< SingleTubeCalib > m_data {}

Private Attributes

std::vector< SingleTubeFit > m_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 40 of file MdtTubeCalibContainer.h.

40 {
41 unsigned int idx = vectorIndex(tubeId);
42 if (idx >= m_data.size()) return nullptr;
43 return &m_data[idx];
44 };
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 50 of file MdtTubeCalibContainer.h.

50{ return m_moduleID; }

◆ idHelperSvc()

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

Definition at line 45 of file MdtTubeCalibContainer.cxx.

45 {
46 return m_idHelperSvc;
47}
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 53 of file MdtTubeCalibContainer.h.

53{ return m_nLayers; }

◆ numMultilayers()

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

Definition at line 52 of file MdtTubeCalibContainer.h.

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

◆ numTubes()

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

Definition at line 54 of file MdtTubeCalibContainer.h.

54{ 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 25 of file MdtTubeCalibContainer.cxx.

25 {
27 const unsigned int index = vectorIndex(tubeId);
28 if (m_moduleID != m_idHelperSvc->chamberId(tubeId)) {
29 msg << MSG::ERROR<<__FILE__<<":"<<__LINE__<<" The channel "<<m_idHelperSvc->toString(tubeId)
30 <<" does not correspond to chamber "<<m_idHelperSvc->chamberNameString(tubeId) <<endmsg;
31 return false;
32 }
33 if (index >= m_data.size()) {
34 msg << MSG::WARNING<<__FILE__<<":"<<__LINE__<<" The channel "<<m_idHelperSvc->toString(tubeId)
35 <<"does not seem to match the anticipated chamber sizes of "
36 <<m_idHelperSvc->chamberNameString(m_moduleID)<<endmsg;
37 m_data.resize(index +1);
38 }
39 m_data[index] = std::move(val);
40 if (msg.level() <= MSG::VERBOSE) {
41 msg << MSG::VERBOSE<<" Succesfully stored calibration data for channel "<<m_idHelperSvc->toString(tubeId) << endmsg;
42 }
43 return true;
44}
#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 51 of file MdtTubeCalibContainer.h.

51{ return m_data.size(); }

◆ vectorIndex()

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

calculate postion of tube in vector

Definition at line 64 of file MdtTubeCalibContainer.h.

64 {
65 return (m_idHelper.multilayer(measID) - 1) * (m_nLayers * m_nTubes) +
66 (m_idHelper.tubeLayer(measID) - 1) * m_nTubes +
67 (m_idHelper.tube(measID) -1);
68 }

Member Data Documentation

◆ m_data

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

Definition at line 72 of file MdtTubeCalibContainer.h.

72{};

◆ 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 61 of file MdtTubeCalibContainer.h.

61{m_idHelperSvc->mdtIdHelper()};

◆ m_idHelperSvc

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

Definition at line 60 of file MdtTubeCalibContainer.h.

60{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 59 of file MdtTubeCalibContainer.h.

59{};

◆ 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 70 of file MdtTubeCalibContainer.h.

70{0};

◆ m_nMl

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

number of multilayers in chamber

Definition at line 69 of file MdtTubeCalibContainer.h.

69{0};

◆ m_nTubes

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

number of tubes

Definition at line 71 of file MdtTubeCalibContainer.h.

71{0};

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