ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
CaloTTOnOffIdMap Class Reference

This is a StoreGate object holding the TT offline-online map. More...

#include <CaloTTOnOffIdMap.h>

Collaboration diagram for CaloTTOnOffIdMap:

Public Types

typedef CaloTTOnOffId PDATA
 

Public Member Functions

 CaloTTOnOffIdMap ()
 
 ~CaloTTOnOffIdMap ()
 
void set (const PDATA &t)
 initialize from Nova More...
 
HWIdentifier createSignalChannelID (const Identifier &id, bool bQuiet=false) const
 return the corresponfing online Id of an offline one More...
 
Identifier cnvToIdentifier (const HWIdentifier &sid, bool bQuiet=false) const
 return the corresponfing offline Id of an online one More...
 
CaloTTOnOffId_PgetP ()
 return the persistified map More...
 
void set (const CaloTTOnOffId_P &t)
 initialize from POOL More...
 

Private Member Functions

void convert_to_P (const CaloTTOnOffId &t)
 
void convert_to_D (const CaloTTOnOffId_P &t, CaloTTOnOffId &d)
 

Private Attributes

std::map< Identifier, HWIdentifierm_off2onIdMap
 
std::map< HWIdentifier, Identifierm_on2offIdMap
 
CaloTTOnOffId_P m_persData
 

Detailed Description

This is a StoreGate object holding the TT offline-online map.

Its persistifiable version is the CaloTTOnOffId_P class

Author
Damien Prieur
maintained by Damien Prieur

Definition at line 25 of file CaloTTOnOffIdMap.h.

Member Typedef Documentation

◆ PDATA

Definition at line 29 of file CaloTTOnOffIdMap.h.

Constructor & Destructor Documentation

◆ CaloTTOnOffIdMap()

CaloTTOnOffIdMap::CaloTTOnOffIdMap ( )

Definition at line 19 of file CaloTTOnOffIdMap.cxx.

19  {
20 }

◆ ~CaloTTOnOffIdMap()

CaloTTOnOffIdMap::~CaloTTOnOffIdMap ( )

Definition at line 23 of file CaloTTOnOffIdMap.cxx.

23  {
24 }

Member Function Documentation

◆ cnvToIdentifier()

Identifier CaloTTOnOffIdMap::cnvToIdentifier ( const HWIdentifier sid,
bool  bQuiet = false 
) const

return the corresponfing offline Id of an online one

Definition at line 126 of file CaloTTOnOffIdMap.cxx.

126  {
127 
128  std::map<HWIdentifier,Identifier>::const_iterator it=m_on2offIdMap.find(sid);
129 
130  if(it!=m_on2offIdMap.end()){
131  return (*it).second;
132  }
133 
134  if(bQuiet) {
135  return Identifier(0);
136 
137  } else {
138 
139  // ERROR, can not find the id.
140  IMessageSvc *msgSvc;
141  StatusCode status =Gaudi::svcLocator()->service("MessageSvc",msgSvc);
142  if(status.isFailure()){
143  std::cout << "Cannot locate MessageSvc" << std::endl;
144  }
145 
146  MsgStream log( msgSvc, "CaloTTOnOffIdMap");
147  log<<MSG::ERROR<<" Online ID not found, id = " <<sid.get_compact()<< endmsg;
148 
149  return Identifier(0) ;
150  }
151 }

◆ convert_to_D()

void CaloTTOnOffIdMap::convert_to_D ( const CaloTTOnOffId_P t,
CaloTTOnOffId d 
)
private

Definition at line 183 of file CaloTTOnOffIdMap.cxx.

183  {
184 
185  std::vector<CaloTTOnOffId_P::__t>::const_iterator it = p.m_v.begin();
186  std::vector<CaloTTOnOffId_P::__t>::const_iterator it_e = p.m_v.end();
187 
188  d.clear();
189  for ( ;it!=it_e;++it){
190  const CaloTTOnOffId_P::__t& t = *it;
192 
193  t2.pn = t.pn;
194  t2.sampling = t.sampling;
195  t2.region = t.region;
196  t2.eta = t.eta;
197  t2.phi = t.phi;
198  t2.layer = t.layer;
199 
200  t2.crate = t.crate ;
201  t2.module = t.module;
202  t2.submodule= t.submodule;
203  t2.channel = t.channel;
204 
205  d.push_back(t2);
206  }
207 }

◆ convert_to_P()

void CaloTTOnOffIdMap::convert_to_P ( const CaloTTOnOffId t)
private

Definition at line 157 of file CaloTTOnOffIdMap.cxx.

157  {
158 
159  CaloTTOnOffId::const_iterator it = d.begin();
160  CaloTTOnOffId::const_iterator it_e = d.end();
161 
162  for ( ;it!=it_e;++it){
163  const CaloTTOnOffId_t& t = *it;
165 
166  t2.pn = t.pn;
167  t2.sampling = t.sampling;
168  t2.region = t.region;
169  t2.eta = t.eta;
170  t2.phi = t.phi;
171  t2.layer = t.layer;
172 
173  t2.crate = t.crate ;
174  t2.module = t.module;
175  t2.submodule= t.submodule;
176  t2.channel = t.channel;
177 
178  m_persData.m_v.push_back(t2);
179  }
180 }

◆ createSignalChannelID()

HWIdentifier CaloTTOnOffIdMap::createSignalChannelID ( const Identifier id,
bool  bQuiet = false 
) const

return the corresponfing online Id of an offline one

Definition at line 98 of file CaloTTOnOffIdMap.cxx.

98  {
99 
100  std::map<Identifier,HWIdentifier>::const_iterator it =m_off2onIdMap.find(id);
101 
102  if(it!=m_off2onIdMap.end()){
103  return (*it).second;
104  }
105 
106  if(bQuiet) {
107  return HWIdentifier(0);
108 
109  } else {
110 
111  IMessageSvc *msgSvc;
112  StatusCode status = Gaudi::svcLocator()->service("MessageSvc",msgSvc);
113  if(status.isFailure()){
114  std::cout << "Cannot locate MessageSvc" << std::endl;
115  }
116 
117  MsgStream log( msgSvc, "CaloTTOnOffIdMap");
118  log<<MSG::ERROR<<" Offline ID not found "<< id <<endmsg;
119 
120  return HWIdentifier(0);
121  }
122 }

◆ getP()

CaloTTOnOffId_P * CaloTTOnOffIdMap::getP ( )

return the persistified map

Definition at line 153 of file CaloTTOnOffIdMap.cxx.

153  {
154  return &m_persData;
155 }

◆ set() [1/2]

void CaloTTOnOffIdMap::set ( const CaloTTOnOffId_P t)

initialize from POOL

Definition at line 209 of file CaloTTOnOffIdMap.cxx.

209  {
210 
212  convert_to_D(p,d);
213  set(d);
214  m_persData.m_version = p.m_version;
215  return;
216 }

◆ set() [2/2]

void CaloTTOnOffIdMap::set ( const PDATA t)

initialize from Nova

Definition at line 27 of file CaloTTOnOffIdMap.cxx.

27  {
28 
29  convert_to_P(m);
30 
31  IMessageSvc *msgSvc;
32  StatusCode status =Gaudi::svcLocator()->service("MessageSvc",msgSvc);
33  if(status.isFailure()){
34  std::cout << "Cannot locate MessageSvc" << std::endl;
35  }
36  MsgStream log( msgSvc, "CaloTTOnOffIdMap");
37  bool dump=false;
38  if (log.level()<=MSG::VERBOSE) dump=true;
39  bool dump2=false;
40  if (log.level()<=MSG::DEBUG) dump2=true;
41 
42 
43  log<<MSG::DEBUG<<" CaloTTOnOffId size = "<<m.size() <<endmsg;
45  status = Gaudi::svcLocator()->service("DetectorStore",detStore);
46  if(status.isFailure()){
47  log << MSG::ERROR << "Cannot locate DetectorStore" << endmsg;
48  }
49 
50  const TTOnlineID* online_id = nullptr;
51  const CaloLVL1_ID* offline_id = nullptr;
52 
53  status=detStore->retrieve(online_id);
54  if(status.isFailure()){
55  log << MSG::ERROR << "Cannot retrieve online_id" << endmsg;
56  }
57  status=detStore->retrieve(offline_id);
58  if(status.isFailure()){
59  log << MSG::ERROR << "Cannot retrieve offline_id" << endmsg;
60  }
61 
62  CaloTTOnOffId::const_iterator it = m.begin();
63  CaloTTOnOffId::const_iterator it_e = m.end();
64 
65  try {
66  for (; it!=it_e; ++it) {
67  const CaloTTOnOffId_t& t = *it;
68 
69  Identifier id = offline_id->tower_id(t.pn, t.sampling, t.region, t.eta, t.phi);
70  HWIdentifier sid = online_id->channelId(t.crate, t.module, t.submodule, t.channel);
71 
72  if (dump) {
74  << " db struct= "
75  <<" pn="<<t.pn<<" sampling="<<t.sampling
76  <<" region="<<t.region
77  <<" eta="<<t.eta<<" phi="<<t.phi<<" layer="<<t.layer<<" | "
78  <<" crate="<<t.crate<<" module="<<t.module
79  <<" submodule="<<t.submodule
80  <<" channel="<<t.channel
81  << endmsg;
82 
83  log<<MSG::VERBOSE<< " onl id = " << sid<<" offline id ="<<id<<endmsg;
84  }
85 
86  m_off2onIdMap[id] = sid;
87  m_on2offIdMap[sid] = id;
88  }
89  if (dump2) log<<MSG::DEBUG<<" CaloTTOnOffIdMap::set : number of Ids="<<m_on2offIdMap.size()<<std::endl;
90  } catch (CaloID_Exception& except) {
91  log<<MSG::ERROR<<" Failed in CaloTTOnOffIdMap::set " << endmsg;
92  log<<MSG::ERROR<< (std::string) except << endmsg ;
93  }
94  return;
95 }

Member Data Documentation

◆ m_off2onIdMap

std::map<Identifier,HWIdentifier> CaloTTOnOffIdMap::m_off2onIdMap
private

Definition at line 60 of file CaloTTOnOffIdMap.h.

◆ m_on2offIdMap

std::map<HWIdentifier,Identifier> CaloTTOnOffIdMap::m_on2offIdMap
private

Definition at line 61 of file CaloTTOnOffIdMap.h.

◆ m_persData

CaloTTOnOffId_P CaloTTOnOffIdMap::m_persData
private

Definition at line 63 of file CaloTTOnOffIdMap.h.


The documentation for this class was generated from the following files:
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
CaloTTOnOffIdMap::m_persData
CaloTTOnOffId_P m_persData
Definition: CaloTTOnOffIdMap.h:63
CaloID_Exception
Exception class for Calo Identifiers.
Definition: CaloID_Exception.h:20
hist_file_dump.d
d
Definition: hist_file_dump.py:137
TTOnlineID
Helper class for Calo TT online identifiers.
Definition: TTOnlineID.h:37
CaloTTOnOffIdMap::convert_to_P
void convert_to_P(const CaloTTOnOffId &t)
Definition: CaloTTOnOffIdMap.cxx:157
skel.it
it
Definition: skel.GENtoEVGEN.py:423
CaloTTOnOffId_P::m_version
int m_version
Definition: CaloTTOnOffId_P.h:50
CaloTTOnOffId_t
Structure definition of the LArTTOnOffIdMap.
Definition: CaloTTOnOffId.h:15
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
HWIdentifier
Definition: HWIdentifier.h:13
CaloTTOnOffId_P::CaloTTOnOffId_P_t
Structure of the map.
Definition: CaloTTOnOffId_P.h:27
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
CaloTTOnOffIdMap::m_off2onIdMap
std::map< Identifier, HWIdentifier > m_off2onIdMap
Definition: CaloTTOnOffIdMap.h:60
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloTTOnOffIdMap::convert_to_D
void convert_to_D(const CaloTTOnOffId_P &t, CaloTTOnOffId &d)
Definition: CaloTTOnOffIdMap.cxx:183
python.ChapPy.dump
def dump(buf, stdout=sys.stdout)
Definition: ChapPy.py:25
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
CaloLVL1_ID
Helper class for offline TT identifiers.
Definition: CaloLVL1_ID.h:66
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
ALFA_EventTPCnv_Dict::t2
std::vector< ALFA_RawDataContainer_p1 > t2
Definition: ALFA_EventTPCnvDict.h:44
CaloTTOnOffIdMap::set
void set(const PDATA &t)
initialize from Nova
Definition: CaloTTOnOffIdMap.cxx:27
Identifier::get_compact
value_type get_compact(void) const
Get the compact id.
CaloTTOnOffIdMap::m_on2offIdMap
std::map< HWIdentifier, Identifier > m_on2offIdMap
Definition: CaloTTOnOffIdMap.h:61
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
merge.status
status
Definition: merge.py:17
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
CaloLVL1_ID::tower_id
Identifier tower_id(int pos_neg_z, int sampling, int region, int eta, int phi) const
build a tower identifier
Definition: CaloLVL1_ID.h:429
CaloTTOnOffId
std::vector< CaloTTOnOffId_t > CaloTTOnOffId
Definition: CaloTTOnOffId.h:30
CaloTTOnOffId_P::m_v
std::vector< __t > m_v
Definition: CaloTTOnOffId_P.h:48