ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
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 More...
 
unsigned int em_had (HWIdentifier channelId) const
 return the corresponding sampling of channelId: More...
 
unsigned int pos_neg (HWIdentifier channelId) const
 return 0 for z<0 channels and 1 for z>0 channels More...
 
unsigned int barrel_endcap_fcal (HWIdentifier channelId) const
 To know if a channel belongs to the barrel, end cap or fcal parts. More...
 
unsigned int module_type (HWIdentifier channelId) const
 To get the type of the module connected to the channel: More...
 
CaloTTOnAttrId_PgetP ()
 return the persistified map More...
 
void set (const CaloTTOnAttrId_P &t)
 initialize from POOL More...
 

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 }

◆ 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;
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 }

◆ 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 }

◆ 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 }

◆ 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) {
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 }

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:
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
CaloTTOnAttrId_t
Structure definition of the LArTTOnAttrIdMap.
Definition: CaloTTOnAttrId.h:15
CaloID_Exception
Exception class for Calo Identifiers.
Definition: CaloID_Exception.h:20
AttrStruct::module_type
unsigned int module_type
Definition: CaloTTOnAttrIdMap.h:29
hist_file_dump.d
d
Definition: hist_file_dump.py:137
TTOnlineID
Helper class for Calo TT online identifiers.
Definition: TTOnlineID.h:37
skel.it
it
Definition: skel.GENtoEVGEN.py:396
CaloTTOnAttrId
std::vector< CaloTTOnAttrId_t > CaloTTOnAttrId
Definition: CaloTTOnAttrId.h:27
AttrStruct::pos_neg
unsigned int pos_neg
Definition: CaloTTOnAttrIdMap.h:27
CaloTTOnAttrId_P::CaloTTOnAttrId_P_t
Structure of the map.
Definition: CaloTTOnAttrId_P.h:27
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
HWIdentifier
Definition: HWIdentifier.h:13
CaloTTOnAttrIdMap::convert_to_P
void convert_to_P(const CaloTTOnAttrId &t)
Definition: CaloTTOnAttrIdMap.cxx:146
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AttrStruct
This is a StoreGate object holding the TT online-attribute map.
Definition: CaloTTOnAttrIdMap.h:25
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
CaloTTOnAttrIdMap::convert_to_D
void convert_to_D(const CaloTTOnAttrId_P &t, CaloTTOnAttrId &d)
Definition: CaloTTOnAttrIdMap.cxx:170
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
CaloTTOnAttrIdMap::m_persData
CaloTTOnAttrId_P m_persData
Definition: CaloTTOnAttrIdMap.h:89
REPORT_MESSAGE_WITH_CONTEXT
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:345
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
CaloTTOnAttrIdMap::m_on2attrIdMap
std::map< HWIdentifier, AttrStruct > m_on2attrIdMap
Definition: CaloTTOnAttrIdMap.h:87
CaloTTOnAttrId_P::m_version
int m_version
Definition: CaloTTOnAttrId_P.h:47
ALFA_EventTPCnv_Dict::t2
std::vector< ALFA_RawDataContainer_p1 > t2
Definition: ALFA_EventTPCnvDict.h:44
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TTOnlineID::channelId
HWIdentifier channelId(int crate, int module, int submodule, int channel) const
(1) create towerId from fields
Definition: TTOnlineID.h:398
AttrStruct::barrel_endcap_fcal
unsigned int barrel_endcap_fcal
Definition: CaloTTOnAttrIdMap.h:28
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
CaloTTOnAttrId_P::m_v
std::vector< __t > m_v
Definition: CaloTTOnAttrId_P.h:45
CaloTTOnAttrIdMap::set
void set(const PDATA &t)
initialize from Nova
Definition: CaloTTOnAttrIdMap.cxx:27
AttrStruct::em_had
unsigned int em_had
Definition: CaloTTOnAttrIdMap.h:26