ATLAS Offline Software
Loading...
Searching...
No Matches
CaloTTOnAttrIdMap Class Reference

#include <CaloTTOnAttrIdMap.h>

Collaboration diagram for CaloTTOnAttrIdMap:

Public Types

typedef CaloTTOnAttrId PDATA

Public Member Functions

 CaloTTOnAttrIdMap ()
 ~CaloTTOnAttrIdMap ()
void set (const PDATA &t)
 initialize from Nova
unsigned int em_had (HWIdentifier channelId) const
 return the corresponding sampling of channelId:
unsigned int pos_neg (HWIdentifier channelId) const
 return 0 for z<0 channels and 1 for z>0 channels
unsigned int barrel_endcap_fcal (HWIdentifier channelId) const
 To know if a channel belongs to the barrel, end cap or fcal parts.
unsigned int module_type (HWIdentifier channelId) const
 To get the type of the module connected to the channel:
CaloTTOnAttrId_PgetP ()
 return the persistified map
void set (const CaloTTOnAttrId_P &t)
 initialize from POOL

Private Member Functions

void convert_to_P (const CaloTTOnAttrId &t)
void convert_to_D (const CaloTTOnAttrId_P &t, CaloTTOnAttrId &d)

Private Attributes

std::map< HWIdentifier, AttrStructm_on2attrIdMap
CaloTTOnAttrId_P m_persData

Detailed Description

Definition at line 32 of file CaloTTOnAttrIdMap.h.

Member Typedef Documentation

◆ PDATA

Definition at line 36 of file CaloTTOnAttrIdMap.h.

Constructor & Destructor Documentation

◆ CaloTTOnAttrIdMap()

CaloTTOnAttrIdMap::CaloTTOnAttrIdMap ( )

Definition at line 19 of file CaloTTOnAttrIdMap.cxx.

19 {
20}

◆ ~CaloTTOnAttrIdMap()

CaloTTOnAttrIdMap::~CaloTTOnAttrIdMap ( )

Definition at line 23 of file CaloTTOnAttrIdMap.cxx.

23 {
24}

Member Function Documentation

◆ barrel_endcap_fcal()

unsigned int CaloTTOnAttrIdMap::barrel_endcap_fcal ( HWIdentifier channelId) const

To know if a channel belongs to the barrel, end cap or fcal parts.

Returns
0: barrel
1: end cap
2: fcal
999: error

Definition at line 116 of file CaloTTOnAttrIdMap.cxx.

116 {
117 std::map<HWIdentifier,AttrStruct>::const_iterator it=m_on2attrIdMap.find(channelId);
118
119 if(it!=m_on2attrIdMap.end()){
120 return ((*it).second).barrel_endcap_fcal;
121 }
122
123 // ERROR, can not find the channelId.
124 REPORT_MESSAGE_WITH_CONTEXT(MSG::ERROR, "CaloTTOnAttrIdMap") <<
125 "Online ID not found, channelId = " << channelId.get_compact() << endmsg;
126 return 0;
127}
#define endmsg
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
std::map< HWIdentifier, AttrStruct > m_on2attrIdMap

◆ convert_to_D()

void CaloTTOnAttrIdMap::convert_to_D ( const CaloTTOnAttrId_P & t,
CaloTTOnAttrId & d )
private

Definition at line 170 of file CaloTTOnAttrIdMap.cxx.

170 {
171
172 std::vector<CaloTTOnAttrId_P::__t>::const_iterator it = p.m_v.begin();
173 std::vector<CaloTTOnAttrId_P::__t>::const_iterator it_e = p.m_v.end();
174
175 d.clear();
176 for ( ;it!=it_e;++it){
177 const CaloTTOnAttrId_P::__t& t = *it;
178 CaloTTOnAttrId_t t2 ;
179
180 t2.crate = t.crate ;
181 t2.module = t.module;
182 t2.submodule= t.submodule;
183 t2.channel = t.channel;
184
185 t2.em_had = t.em_had;
186 t2.pos_neg = t.pos_neg;
187 t2.barrel_endcap_fcal = t.barrel_endcap_fcal;
188 t2.module_type = t.module_type;
189
190 d.push_back(t2);
191 }
192}
CaloTTOnAttrId_P_t __t
std::vector< ALFA_RawDataContainer_p1 > t2

◆ convert_to_P()

void CaloTTOnAttrIdMap::convert_to_P ( const CaloTTOnAttrId & t)
private

Definition at line 146 of file CaloTTOnAttrIdMap.cxx.

146 {
147
148 CaloTTOnAttrId::const_iterator it = d.begin();
149 CaloTTOnAttrId::const_iterator it_e = d.end();
150
151 for ( ;it!=it_e;++it){
152 const CaloTTOnAttrId_t& t = *it;
154
155 t2.crate = t.crate ;
156 t2.module = t.module;
157 t2.submodule= t.submodule;
158 t2.channel = t.channel;
159
160 t2.em_had = t.em_had;
161 t2.pos_neg = t.pos_neg;
162 t2.barrel_endcap_fcal = t.barrel_endcap_fcal;
163 t2.module_type = t.module_type;
164
165 m_persData.m_v.push_back(t2);
166 }
167}
CaloTTOnAttrId_P m_persData

◆ em_had()

unsigned int CaloTTOnAttrIdMap::em_had ( HWIdentifier channelId) const

return the corresponding sampling of channelId:

Returns
0: for EM calorimeter
1: for HAD calorimeter
999: error

Definition at line 90 of file CaloTTOnAttrIdMap.cxx.

90 {
91 std::map<HWIdentifier,AttrStruct>::const_iterator it=m_on2attrIdMap.find(channelId);
92
93 if(it!=m_on2attrIdMap.end()){
94 return ((*it).second).em_had;
95 }
96
97 // ERROR, can not find the channelId.
98 REPORT_MESSAGE_WITH_CONTEXT(MSG::ERROR, "CaloTTOnAttrIdMap") <<
99 "Online ID not found, channelId = " << channelId.get_compact() << endmsg;
100 return 0;
101}

◆ getP()

CaloTTOnAttrId_P * CaloTTOnAttrIdMap::getP ( )

return the persistified map

Definition at line 142 of file CaloTTOnAttrIdMap.cxx.

142 {
143 return &m_persData;
144}

◆ module_type()

unsigned int CaloTTOnAttrIdMap::module_type ( HWIdentifier channelId) const

To get the type of the module connected to the channel:

Returns
1: PPM
2: CPM
3: JEM
999: error

Definition at line 129 of file CaloTTOnAttrIdMap.cxx.

129 {
130 std::map<HWIdentifier,AttrStruct>::const_iterator it=m_on2attrIdMap.find(channelId);
131
132 if(it!=m_on2attrIdMap.end()){
133 return ((*it).second).module_type;
134 }
135
136 // ERROR, can not find the channelId.
137 REPORT_MESSAGE_WITH_CONTEXT(MSG::ERROR, "CaloTTOnAttrIdMap") <<
138 "Online ID not found, channelId = " << channelId.get_compact() << endmsg;
139 return 0;
140}

◆ pos_neg()

unsigned int CaloTTOnAttrIdMap::pos_neg ( HWIdentifier channelId) const

return 0 for z<0 channels and 1 for z>0 channels

Definition at line 103 of file CaloTTOnAttrIdMap.cxx.

103 {
104 std::map<HWIdentifier,AttrStruct>::const_iterator it=m_on2attrIdMap.find(channelId);
105
106 if(it!=m_on2attrIdMap.end()){
107 return ((*it).second).pos_neg;
108 }
109
110 // ERROR, can not find the channelId.
111 REPORT_MESSAGE_WITH_CONTEXT(MSG::ERROR, "CaloTTOnAttrIdMap") <<
112 "Online ID not found, channelId = " << channelId.get_compact() << endmsg;
113 return 0;
114}

◆ set() [1/2]

void CaloTTOnAttrIdMap::set ( const CaloTTOnAttrId_P & t)

initialize from POOL

Definition at line 194 of file CaloTTOnAttrIdMap.cxx.

194 {
195
197 convert_to_D(p,d);
198 set(d);
199 m_persData.m_version = p.m_version;
200 return;
201}
std::vector< CaloTTOnAttrId_t > CaloTTOnAttrId
void set(const PDATA &t)
initialize from Nova
void convert_to_D(const CaloTTOnAttrId_P &t, CaloTTOnAttrId &d)

◆ set() [2/2]

void CaloTTOnAttrIdMap::set ( const PDATA & t)

initialize from Nova

Definition at line 27 of file CaloTTOnAttrIdMap.cxx.

27 {
28
29 convert_to_P(m);
30
31 SmartIF<IMessageSvc> msgSvc{Gaudi::svcLocator()->service("MessageSvc")};
32 if(!msgSvc){
33 throw std::runtime_error("Cannot locate MessageSvc");
34 }
35 MsgStream log( msgSvc, "CaloTTOnAttrIdMap");
36
37 log<<MSG::DEBUG<<" CaloTTOnAttrId size = "<<m.size() <<endmsg;
38
39 SmartIF<StoreGateSvc> detStore{Gaudi::svcLocator()->service("DetectorStore")};
40 if(!detStore){
41 log << MSG::ERROR << "Cannot locate DetectorStore" << endmsg;
42 }
43
44 const TTOnlineID* online_id = nullptr;
45 if(detStore->retrieve(online_id).isFailure()){
46 log << MSG::ERROR << "Cannot retrieve online_id" << endmsg;
47 }
48
49 CaloTTOnAttrId::const_iterator it = m.begin();
50 CaloTTOnAttrId::const_iterator it_e = m.end();
51
52 try {
53 for (; it!=it_e; ++it) {
54 const CaloTTOnAttrId_t& t = *it;
55
56 HWIdentifier sid = online_id->channelId(t.crate, t.module, t.submodule, t.channel);
57
58 if (log.level()<=MSG::VERBOSE) {
59 log<<MSG::VERBOSE
60 << " db struct= "
61 <<" crate="<<t.crate<<" module="<<t.module
62 <<" submodule="<<t.submodule
63 <<" channel="<<t.channel
64 <<" em_had="<<t.em_had
65 <<" pos_neg="<<t.pos_neg
66 <<" barrel_endcap_fcal"<<t.barrel_endcap_fcal
67 << endmsg;
68
69 log<<MSG::VERBOSE<< " onl id = " << sid <<endmsg;
70 }
71
72 AttrStruct attrStruct;
73 attrStruct.em_had = t.em_had;
74 attrStruct.pos_neg = t.pos_neg;
75 attrStruct.barrel_endcap_fcal = t.barrel_endcap_fcal;
76 attrStruct.module_type = t.module_type;
77
78 m_on2attrIdMap[sid] = attrStruct;
79 }
80 if (log.level()<=MSG::DEBUG) {
81 log<<MSG::DEBUG<<" CaloTTOnAttrIdMap::set : number of Ids="<<m_on2attrIdMap.size()<<std::endl;
82 }
83 } catch (CaloID_Exception& except) {
84 log<<MSG::ERROR<<" Failed in CaloTTOnAttrIdMap::set " << endmsg;
85 log<<MSG::ERROR<< (std::string) except << endmsg ;
86 }
87 return;
88}
void convert_to_P(const CaloTTOnAttrId &t)
HWIdentifier channelId(int crate, int module, int submodule, int channel) const
(1) create towerId from fields
Definition TTOnlineID.h:390
msgSvc
Provide convenience handles for various services.
Definition StdJOSetup.py:36
unsigned int pos_neg
unsigned int barrel_endcap_fcal
unsigned int module_type
unsigned int em_had

Member Data Documentation

◆ m_on2attrIdMap

std::map<HWIdentifier,AttrStruct> CaloTTOnAttrIdMap::m_on2attrIdMap
private

Definition at line 87 of file CaloTTOnAttrIdMap.h.

◆ m_persData

CaloTTOnAttrId_P CaloTTOnAttrIdMap::m_persData
private

Definition at line 89 of file CaloTTOnAttrIdMap.h.


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