ATLAS Offline Software
CaloClusterContainerCnv_p6.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
8 
15 
16 
17 namespace {
18 
19 inline
20 bool testbit (unsigned int x, unsigned int i)
21 {
22  return (x & (1U << i)) != 0;
23 }
24 
25 } // anonymous namespace
26 
27 
29  CaloClusterContainer* trans,
30  MsgStream &log) const
31 {
32  if (log.level() <= MSG::DEBUG) log<< MSG::DEBUG << "Reading CaloClusterContainerCnv_p6" << endmsg;
33 
34  // reset element link converters, and provide container name lookup table
35  ShowerLinkState showerLinkState (pers->m_linkNames);
36  CellLinkState cellLinkState (pers->m_linkNames);
37 
38  // Use data pool for clusters to avoid calling constructor for each event
40 
41  trans->clear (SG::VIEW_ELEMENTS);
42  trans->reserve(pers->m_vec.size());
43 
46 
47  std::vector<float> temp_Moments;
48  Compressor A;
49  A.expandToFloat( pers->m_momentContainer.m_Mvalue, temp_Moments); // unpacks moments
50 
51  std::vector<float>::const_iterator i_mom = temp_Moments.begin();
52  std::vector<float>::const_iterator i_mom_e = temp_Moments.end();
53 
54  const std::vector<unsigned short>& keys = pers->m_momentContainer.m_Mkey;
55  unsigned int nkeys = keys.size();
56 
57  unsigned int c1=0;
58 
59  std::vector<float> tmp_badChannelEta;
60  std::vector<float> tmp_badChannelPhi;
61  Compressor B;
62  B.expandToFloat(pers->m_badEtaList,tmp_badChannelEta);
63  B.expandToFloat(pers->m_badPhiList,tmp_badChannelPhi);
64 
65 // raw 4-momentum state
66  std::vector<float> tmp_rawE;
67  std::vector<float> tmp_rawEtaPhiM;
68  Compressor C;
69  C.expandToFloat(pers->m_rawE,tmp_rawE);
70  std::vector<float>::const_iterator iraw1 = tmp_rawE.begin();
71  std::vector<float>::const_iterator iraw2 = tmp_rawE.end();
72 
73  Compressor D;
74  D.expandToFloat(pers->m_rawEtaPhiM,tmp_rawEtaPhiM);
75  std::vector<float>::const_iterator iraw3 = tmp_rawEtaPhiM.begin();
76  std::vector<float>::const_iterator iraw4 = tmp_rawEtaPhiM.end();
77 
78 // alternative calibration 4-momentum state
79  std::vector<float> tmp_altE;
80  std::vector<float> tmp_altEtaPhiM;
81  Compressor E;
82  E.expandToFloat(pers->m_altE,tmp_altE);
83  std::vector<float>::const_iterator ialt1 = tmp_altE.begin();
84  std::vector<float>::const_iterator ialt2 = tmp_altE.end();
85  Compressor F;
86  F.expandToFloat(pers->m_altEtaPhiM,tmp_altEtaPhiM);
87  std::vector<float>::const_iterator ialt3 = tmp_altEtaPhiM.begin();
88  std::vector<float>::const_iterator ialt4 = tmp_altEtaPhiM.end();
89 
90 
91  std::vector<short>::const_iterator ibad1 = pers->m_badClusIndexList.begin();
92  std::vector<short>::const_iterator ibad2 = pers->m_badClusIndexList.end();
93  int nbad=0;
94 
95  bool mom_overrun_err = false;
96  bool store_overrun_err = false;
97  bool raw_overrun_err = false;
98  size_t dataStore_size = pers->m_dataStore.size();
99 
100  bool fillBad=true;
101  if (tmp_badChannelEta.size() != pers->m_badClusIndexList.size() ||
102  tmp_badChannelPhi.size() != pers->m_badClusIndexList.size() ||
103  pers->m_badLayerStatusList.size() != pers->m_badClusIndexList.size()) {
104  log << MSG::WARNING << " problem to decode bad channel information, not filled..." << endmsg;
105  fillBad=false;
106  }
107 
108  short index=0;
109  for(;itp!=itp_e;++itp) {
110  index++;
111 
112  CaloCluster* transCluster = clusters.nextElementPtr();// Get next ptr for next cluster
113  persToTrans(&(*itp),transCluster,
114  showerLinkState,
115  cellLinkState,
116  log); //Convert Cluster-quantities
117 
118  CaloSamplingData *trDS =&(transCluster->m_dataStore);
119 
120  trDS->m_varTypePattern = pers->m_varTypePattern;
121  int nVar=trDS->getNumberOfVariableTypes();
122  int nSamplings=trDS->getNumberOfSamplings();
123 
124  typedef CaloSamplingData::variable_key_type vartype;
125  typedef CaloSamplingData::sampling_key_type samptype;
126 
127  for (int i=0;i<nVar;++i) {// here loops to read them in ...
128  if (testbit (trDS->m_varTypePattern, i)) {
129 
130  // can be optimized: no decoding for each variable.
131  for (int j=0;j<nSamplings; ++j){
132 
133  if ( testbit(transCluster->m_samplingPattern, j) ){
134  float val;
135  if (c1 < dataStore_size)
136  val = pers->m_dataStore[c1++];
137  else {
138  val = 0;
139  if (!store_overrun_err) {
140  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
141  "CaloClusterContainerCnv_p6")
142  << "Corrupted data: data store array overrun "
143  << pers->m_vec.size() << " clusters "
144  << nkeys << " moment keys "
145  << temp_Moments.size() << " total moments.";
146  store_overrun_err = true;
147  }
148  }
149  trDS->storeData(static_cast<vartype>(i),
150  static_cast<samptype>(j),
151  val);
152  }
153  else{
154 
155  trDS->removeVariable(static_cast<vartype>(i),
156  static_cast<samptype>(j));
157  //std::cout<<"a:0"<<"\t";
158  }
159  }
160  // std::cout<<std::endl;
161  }
162  else
163  trDS->removeVariable(static_cast<vartype>(i));
164  }
165 
166  transCluster->m_barrel= (bool)(0x001ff00f & transCluster->m_samplingPattern);
167  transCluster->m_endcap= (bool)(0x00e00ff0 & transCluster->m_samplingPattern);
168  // std::cout<<" <<< Read"<<std::endl;
169 
170 
171  //Convert moment store
173  for (unsigned short i=0;i<nkeys;++i) {
174  float val;
175  if (i_mom == i_mom_e) {
176  val = 0;
177  if (!mom_overrun_err) {
178  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
179  "CaloClusterContainerCnv_p6")
180  << "Corrupted data: moment array overrun "
181  << pers->m_vec.size() << " clusters "
182  << nkeys << " moment keys "
183  << temp_Moments.size() << " total moments.";
184  mom_overrun_err = true;
185  }
186  }
187  else {
188  val = *i_mom;
189  ++i_mom;
190  }
191  transStore.insert (transStore.end(), CaloClusterMomentStore::moment_store::value_type( keys[i], val ) );
192  }
193  transCluster->m_momentStore.setMomentStore (std::move (transStore));
194 
195  // fill bad channel information
196  transCluster->resetBadChannel();
197  if (fillBad){
198  while (ibad1 != ibad2 && (*ibad1) ==index) {
199  float eta = tmp_badChannelEta[nbad] + transCluster->eta();
200  float phi = CaloPhiRange::fix(tmp_badChannelPhi[nbad] + transCluster->phi());
201  short status=pers->m_badLayerStatusList[nbad];
203  CaloBadChannel flag = CaloBadChannel( ((status>>8) & 0xff) );
205  // std::cout << " add bad channel data " << transCluster << " " << eta << " " << phi << " " << layer << " " << status << " " << flag.packedData() << std::endl;
206  transCluster->addBadChannel(data);
207  ++ibad1;
208  ++nbad;
209  }
210  }
211 
212 // fill raw E,eta,phi,M
213  if (iraw1 != iraw2) {
214  if (std::fabs(transCluster->e())>0.1) {
215  transCluster->m_rawE = (*iraw1) * transCluster->e();
216  }
217  else
218  transCluster->m_rawE = (*iraw1);
219  ++iraw1;
220  }
221  if (iraw3 != iraw4) {
222  transCluster->m_rawEta = (*iraw3) + transCluster->eta();
223  ++iraw3;
224  }
225  if (iraw3 != iraw4) {
226  transCluster->m_rawPhi = CaloPhiRange::fix((*iraw3)+transCluster->phi());
227  ++iraw3;
228  }
229  if (iraw3 == iraw4 && !raw_overrun_err) {
230  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
231  "CaloClusterContainerCnv_p6")
232  << "Corrupted data: raw array overrun "
233  << pers->m_vec.size() << " clusters "
234  << tmp_rawE.size() << " raw values.";
235  raw_overrun_err = true;
236  }
237  if (iraw3 != iraw4) {
238  transCluster->m_rawM = (*iraw3);
239  ++iraw3;
240  }
241  //std::cout << " perstotrans rawE/eta/phi/M " << transCluster->m_rawE << " " << transCluster->m_rawEta << " " <<
242  // transCluster->m_rawPhi << " " << transCluster->m_rawM << std::endl;
243 
244 // fill alt calibrated E,eta,phi,M
245  if (ialt1 != ialt2) {
246  if (std::fabs(transCluster->e())>0.1) {
247  transCluster->m_altE = (*ialt1) * transCluster->e();
248  }
249  else
250  transCluster->m_altE = (*ialt1);
251  ++ialt1;
252  }
253  if (ialt3 != ialt4) {
254  transCluster->m_altEta = (*ialt3) + transCluster->eta();
255  ++ialt3;
256  }
257  if (ialt3 != ialt4) {
258  transCluster->m_altPhi = CaloPhiRange::fix((*ialt3)+transCluster->phi());
259  ++ialt3;
260  }
261  if (ialt3 == ialt4 && !raw_overrun_err) {
262  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
263  "CaloClusterContainerCnv_p6")
264  << "Corrupted data: raw array overrun "
265  << pers->m_vec.size() << " clusters "
266  << tmp_altE.size() << " alt values.";
267  raw_overrun_err = true;
268  }
269  if (ialt3 != ialt4) {
270  transCluster->m_altM = (*ialt3);
271  ++ialt3;
272  }
273  //std::cout << " perstotrans altE/eta/phi/M " << transCluster->m_altE << " " << transCluster->m_altEta << " " <<
274  // transCluster->m_altPhi << " " << transCluster->m_altM << std::endl;
275 
276 
277  trans->push_back(transCluster);
278  }
279 
280  if (i_mom != i_mom_e && !mom_overrun_err) {
281  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
282  "CaloClusterContainerCnv_p6")
283  << "Corrupted data: not all moments read "
284  << pers->m_vec.size() << " clusters "
285  << nkeys << " moment keys "
286  << temp_Moments.size() << " total moments "
287  << i_mom-temp_Moments.begin() << " read.";
288  }
289 
290  if (c1 != dataStore_size && !store_overrun_err) {
291  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
292  "CaloClusterContainerCnv_p6")
293  << "Corrupted data: not all data store members read "
294  << dataStore_size << " elements "
295  << c1 << " read.";
296  }
297 
298  if (iraw1 != iraw2 && !raw_overrun_err) {
299  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
300  "CaloClusterContainerCnv_p6")
301  << "Corrupted data: not all raw values read "
302  << pers->m_vec.size() << " clusters "
303  << tmp_rawE.size() << " raw values "
304  << iraw1-tmp_rawE.begin() << " read.";
305  }
306 
307  if (iraw3 != iraw4 && !raw_overrun_err) {
308  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
309  "CaloClusterContainerCnv_p6")
310  << "Corrupted data: not all raw values read "
311  << pers->m_vec.size() << " clusters "
312  << tmp_rawEtaPhiM.size() << " raw values "
313  << iraw3-tmp_rawEtaPhiM.begin() << " read.";
314  }
315 
316  if (ialt1 != ialt2 && !raw_overrun_err) {
317  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
318  "CaloClusterContainerCnv_p6")
319  << "Corrupted data: not all alt values read "
320  << pers->m_vec.size() << " clusters "
321  << tmp_altE.size() << " alt values "
322  << ialt1-tmp_altE.begin() << " read.";
323  }
324 
325  if (ialt3 != ialt4 && !raw_overrun_err) {
326  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
327  "CaloClusterContainerCnv_p6")
328  << "Corrupted data: not all alt values read "
329  << pers->m_vec.size() << " clusters "
330  << tmp_altEtaPhiM.size() << " raw values "
331  << ialt3-tmp_altEtaPhiM.begin() << " read.";
332  }
333 
334 
335 
336  if (ibad1 != ibad2) {
337  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
338  "CaloClusterContainerCnv_p6")
339  << "Corrupted data: not all bad data read "
340  << pers->m_badClusIndexList.size() << " bad values "
341  << nbad << " read.";
342  }
343 
344  //Convert TowerSegment
345  CaloTowerSeg seg;
347  trans->setTowerSeg (seg);
348 }
349 
350 
352  CaloClusterContainer_p6* /*pers*/,
353  MsgStream &log) const
354 {
355  log << MSG::ERROR << "Writing of CaloClusterContainer_p6 not implemented any more!" << endmsg;
356 
357 }
358 
359 
361  CaloCluster* trans,
362  ShowerLinkState& showerLinkState,
363  CellLinkState& cellLinkState,
364  MsgStream& log) const
365 {
367  trans->setBasicEnergy (pers->m_basicSignal);
368  trans->setTime (pers->m_time);
369  trans->m_samplingPattern=pers->m_samplingPattern;
370  trans->m_eta0=pers->m_eta0;
371  trans->m_phi0=pers->m_phi0;
372  trans->m_status = CaloRecoStatus(pers->m_caloRecoStatus);
373  trans->setClusterSize (pers->m_clusterSize);
374 
375  //Convert base class and element links
376  m_P4EEtaPhiMCnv.persToTrans(&pers->m_P4EEtaPhiM,static_cast<P4EEtaPhiM*>(trans),log);
377  m_showerElementLinkCnv.persToTrans(showerLinkState, pers->m_dataLink, trans->m_dataLink,log);
378  m_cellElementLinkCnv.persToTrans(cellLinkState, pers->m_cellLink, trans->m_cellLink,log);
380 }
381 
382 
385  ShowerLinkState& showerLinkState,
386  CellLinkState& cellLinkState,
387  MsgStream& log) const
388 {
389  pers->m_basicSignal=trans->getBasicEnergy();
390  pers->m_time=trans->getTime();
391  pers->m_samplingPattern=trans->m_samplingPattern;
392  pers->m_eta0=trans->eta0();
393  pers->m_phi0=trans->phi0();
394  pers->m_caloRecoStatus=trans->m_status.getStatusWord();
395  pers->m_clusterSize=trans->getClusterSize();
396 
397  //Convert base class and element links
398  P4EEtaPhiM tmp = *trans;
400  m_showerElementLinkCnv.transToPers(showerLinkState, trans->m_dataLink, pers->m_dataLink,log);
401  m_cellElementLinkCnv.transToPers(cellLinkState, trans->m_cellLink, pers->m_cellLink,log);
402 }
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
CaloClusterContainer_p6::m_badEtaList
std::vector< unsigned int > m_badEtaList
Definition: CaloClusterContainer_p6.h:61
CaloClusterContainer_p6::CaloCluster_p::m_time
float m_time
Definition: CaloClusterContainer_p6.h:25
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
CaloCluster::phi0
double phi0() const
Returns raw of cluster seed.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:1186
CaloCluster::m_momentStore
CaloClusterMomentStore m_momentStore
cluster moments
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:480
TruthTest.itp
itp
Definition: TruthTest.py:46
CaloVariableType::VariableType
VariableType
Definition: CaloVariableType.h:15
CaloCluster::setTime
void setTime(double theTime)
Set cluster time.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:889
IAthenaBarCode::UNDEFINEDBARCODE
static const AthenaBarCode_t UNDEFINEDBARCODE
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:52
CaloCluster::m_altPhi
double m_altPhi
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:709
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
CaloClusterContainerCnv_p6::transToPers
virtual void transToPers(const CaloClusterContainer *trans, CaloClusterContainer_p6 *pers, MsgStream &log) const override
Definition: CaloClusterContainerCnv_p6.cxx:351
CaloClusterContainer_p6::CaloCluster_p::m_cellLink
ElementLinkInt_p2 m_cellLink
Definition: CaloClusterContainer_p6.h:37
CaloBadChannel.h
ElementLinkCnv_p2::transToPers
void transToPers(State &state, const Link_t &trans, PersLink_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
index
Definition: index.py:1
CaloCluster::m_eta0
double m_eta0
Cluster seed
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:558
AthenaBarCodeBase::setAthenaBarCode
virtual void setAthenaBarCode(AthenaBarCode_t id)
Definition: AthenaBarCodeBase.cxx:28
CaloClusterContainer_p6::CaloCluster_p::m_basicSignal
float m_basicSignal
Definition: CaloClusterContainer_p6.h:24
CaloClusterMomentStore::setMomentStore
virtual void setMomentStore(const moment_store &rMomStore)
Set internal store.
Definition: CaloClusterMomentStore.h:253
CaloClusterContainer
Storable container for CaloCluster.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloClusterContainer.h:37
CaloSamplingData::storeData
bool storeData(variable_key_type theVariable, sampling_key_type theSampling, value_type theData)
}
Definition: CaloSamplingData.cxx:109
extractSporadic.c1
c1
Definition: extractSporadic.py:133
CaloClusterContainer_p6::m_altEtaPhiM
std::vector< unsigned int > m_altEtaPhiM
Definition: CaloClusterContainer_p6.h:70
DMTest::C
C_v1 C
Definition: C.h:26
P4EEtaPhiM
Definition: P4EEtaPhiM.h:25
CaloSamplingData::m_varTypePattern
unsigned int m_varTypePattern
Definition: CaloSamplingData.h:117
CaloClusterContainer_p6::m_rawE
std::vector< unsigned int > m_rawE
Definition: CaloClusterContainer_p6.h:65
CaloCluster::m_altE
double m_altE
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:705
P4EEtaPhiMCnv_p2::transToPers
virtual void transToPers(const P4EEtaPhiM *transObj, P4EEtaPhiMFloat_p2 *persObj, MsgStream &log) const override
Method creating the persistent representation P4EEtaPhiMFloat_p2 from its transient representation P4...
Definition: P4EEtaPhiMCnv_p2.cxx:38
CaloCluster::getBasicEnergy
virtual double getBasicEnergy() const
Access basic energy scale signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:876
CaloCluster::setDefaultSignalState
bool setDefaultSignalState(signalstate_t s)
Sets default signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:865
CaloClusterContainer_p6::CaloCluster_p::m_samplingPattern
unsigned int m_samplingPattern
Definition: CaloClusterContainer_p6.h:29
CaloSamplingData::removeVariable
bool removeVariable(variable_key_type theVariable, sampling_key_type theSampling)
Remove a certain variable.
Definition: CaloSamplingData.h:248
CaloClusterContainerCnv_p6::m_P4EEtaPhiMCnv
P4EEtaPhiMCnv_p2 m_P4EEtaPhiMCnv
Definition: CaloClusterContainerCnv_p6.h:67
x
#define x
CaloClusterContainer_p6::CaloCluster_p::m_dataLink
ElementLinkInt_p2 m_dataLink
Definition: CaloClusterContainer_p6.h:36
CaloClusterContainer_p6::m_dataStore
std::vector< float > m_dataStore
Definition: CaloClusterContainer_p6.h:48
CaloClusterMomentContainer_p2::m_Mvalue
std::vector< unsigned int > m_Mvalue
Definition: CaloClusterMomentContainer_p2.h:19
Compressor
Definition: Compressor.h:26
CaloClusterContainer_p6::m_linkNames
ElementLinkContNames_p2 m_linkNames
Definition: CaloClusterContainer_p6.h:54
CaloClusterContainerCnv_p6::m_cellElementLinkCnv
ElementLinkCnv_p2< ElementLink< CaloCellLinkContainer > > m_cellElementLinkCnv
Definition: CaloClusterContainerCnv_p6.h:69
CaloTowerSegCnv_p1::persToTrans
void persToTrans(const CaloTowerSeg_p1 *, CaloTowerSeg *) const
Definition: CaloTowerSegCnv_p1.cxx:9
dqt_zlumi_alleff_HIST.A
A
Definition: dqt_zlumi_alleff_HIST.py:110
CaloClusterContainer_p6::CaloCluster_p::m_caloRecoStatus
unsigned int m_caloRecoStatus
Definition: CaloClusterContainer_p6.h:30
CaloClusterNavigable::m_cellLink
cell_link_type m_cellLink
Local pointer to cell store.
Definition: CaloClusterNavigable.h:186
CaloCluster::m_dataLink
data_link_type m_dataLink
{
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:488
CaloSamplingData::getNumberOfSamplings
size_t getNumberOfSamplings() const
Set variable type pattern for this store.
Definition: CaloSamplingData.h:186
A
CaloClusterContainer_p6
Definition: CaloClusterContainer_p6.h:19
Compressor.h
CaloCluster::m_phi0
double m_phi0
Cluster seed
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:560
CaloClusterContainerCnv_p6::ShowerLinkState
ElementLinkCnv_p2< ElementLink< CaloShowerContainer > >::State ShowerLinkState
Definition: CaloClusterContainerCnv_p6.h:49
Compressor::expandToFloat
void expandToFloat(const std::vector< unsigned int > &vc, std::vector< float > &vf)
Definition: Compressor.cxx:115
lumiFormat.i
int i
Definition: lumiFormat.py:85
CaloSampling::CaloSample
CaloSample
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
CaloSamplingData::getNumberOfVariableTypes
size_t getNumberOfVariableTypes() const
Return number of variable types.
Definition: CaloSamplingData.h:189
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
CaloCluster::m_endcap
bool m_endcap
Flag is true if at least one cell in EMB.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:551
CaloCluster::m_dataStore
CaloSamplingData m_dataStore
{\ brief Cached Stores
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:479
master.flag
bool flag
Definition: master.py:29
CaloCluster::m_altM
double m_altM
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:711
CaloClusterContainer_p6::m_altE
std::vector< unsigned int > m_altE
Definition: CaloClusterContainer_p6.h:69
CaloClusterContainer_p6::const_iterator
contType::const_iterator const_iterator
Definition: CaloClusterContainer_p6.h:43
CaloCluster
Principal data class for CaloCell clusters.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:79
CaloPhiRange.h
CaloPhiRange class declaration.
CaloCluster::m_rawM
double m_rawM
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:702
CaloCluster::m_samplingPattern
unsigned int m_samplingPattern
Sampling pattern.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:501
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
CaloPhiRange::fix
static double fix(double phi)
Definition: CaloPhiRange.cxx:14
DataVector::clear
void clear()
Erase all the elements in the collection.
ElementLinkCnv_p2::persToTrans
void persToTrans(State &state, const PersLink_t &pers, Link_t &trans, MsgStream &log) const
CaloClusterContainer_p6::m_vec
contType m_vec
Definition: CaloClusterContainer_p6.h:41
CaloClusterContainer_p6::m_towerSeg
CaloTowerSeg_p1 m_towerSeg
Definition: CaloClusterContainer_p6.h:51
DataPool.h
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
CaloCluster::m_rawPhi
double m_rawPhi
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:700
CaloCluster::getTime
double getTime() const
Access cluster time.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:886
CaloClusterContainerCnv_p6.h
CaloClusterContainer_p6::m_momentContainer
CaloClusterMomentContainer_p2 m_momentContainer
Definition: CaloClusterContainer_p6.h:50
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
CaloClusterContainer_p6::m_badClusIndexList
std::vector< short > m_badClusIndexList
Definition: CaloClusterContainer_p6.h:59
errorcheck.h
Helpers for checking error return status codes and reporting errors.
CaloClusterContainer_p6::m_varTypePattern
unsigned int m_varTypePattern
Definition: CaloClusterContainer_p6.h:47
CaloClusterContainerCnv_p6::persToTrans
virtual void persToTrans(const CaloClusterContainer_p6 *pers, CaloClusterContainer *trans, MsgStream &log) const override
Definition: CaloClusterContainerCnv_p6.cxx:28
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
dqt_zlumi_alleff_HIST.B
B
Definition: dqt_zlumi_alleff_HIST.py:110
CaloClusterContainer_p6::m_badPhiList
std::vector< unsigned int > m_badPhiList
Definition: CaloClusterContainer_p6.h:62
CaloClusterContainer_p6::CaloCluster_p::m_eta0
float m_eta0
Definition: CaloClusterContainer_p6.h:26
CaloCompositeKineBase::m_status
CaloRecoStatus m_status
Calorimeter reconstruction status.
Definition: CaloCompositeKineBase.h:58
CaloCluster::m_altEta
double m_altEta
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:707
CaloSamplingData.h
CaloClusterContainer_p6::m_badLayerStatusList
std::vector< short > m_badLayerStatusList
Definition: CaloClusterContainer_p6.h:60
CaloClusterContainerCnv_p6::m_showerElementLinkCnv
ElementLinkCnv_p2< ElementLink< CaloShowerContainer > > m_showerElementLinkCnv
Definition: CaloClusterContainerCnv_p6.h:68
CaloClusterBadChannelData
Definition: Calorimeter/CaloEvent/CaloEvent/CaloClusterBadChannelData.h:12
CaloCluster::getClusterSize
unsigned int getClusterSize() const
Get cluster size.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:895
CaloClusterContainer_p6::m_rawEtaPhiM
std::vector< unsigned int > m_rawEtaPhiM
Definition: CaloClusterContainer_p6.h:66
CaloClusterMomentStore::moment_store
std::map< moment_key, moment_value > moment_store
Internal moment store type.
Definition: CaloClusterMomentStore.h:35
CaloCluster::eta
virtual double eta() const
Retrieve eta independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:755
CaloClusterContainer_p6::CaloCluster_p::m_phi0
float m_phi0
Definition: CaloClusterContainer_p6.h:27
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
CaloClusterMomentContainer_p2::m_Mkey
std::vector< unsigned short > m_Mkey
Definition: CaloClusterMomentContainer_p2.h:20
DEBUG
#define DEBUG
Definition: page_access.h:11
F
#define F(x, y, z)
Definition: MD5.cxx:112
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
CaloClusterContainerCnv_p6::m_caloTowerSegCnv
CaloTowerSegCnv_p1 m_caloTowerSegCnv
Definition: CaloClusterContainerCnv_p6.h:66
CaloCluster::e
virtual double e() const
Retrieve energy independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:753
CaloCluster::setClusterSize
void setClusterSize(unsigned int theClusterSize)
Set cluster size.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:892
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:63
CaloBadChannel
Definition: CaloBadChannel.h:8
P4SignalState::CALIBRATED
@ CALIBRATED
Definition: ISignalState.h:31
CaloRecoStatus::getStatusWord
virtual const store_type & getStatusWord() const
retrieve the entire status word
Definition: CaloRecoStatus.h:112
CaloCluster::m_rawE
double m_rawE
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:696
CaloCluster::eta0
double eta0() const
Returns raw of cluster seed.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:1180
CaloTowerSeg
Data object stores CaloTower segmentation.
Definition: CaloTowerSeg.h:37
CaloClusterContainer_p6::CaloCluster_p
Definition: CaloClusterContainer_p6.h:21
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
merge.status
status
Definition: merge.py:16
CaloClusterContainer::setTowerSeg
virtual void setTowerSeg(const CaloTowerSeg &towerSeg)
Set tower segmentation into CaloClusterContainer.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloClusterContainer.h:101
CaloCluster::setBasicEnergy
virtual void setBasicEnergy(double theEnergy)
Set basic energy scale signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:883
CaloClusterContainer_p6::CaloCluster_p::m_clusterSize
unsigned int m_clusterSize
Definition: CaloClusterContainer_p6.h:31
CaloSamplingData
Simple data object to store all variables in calorimeter samplings.
Definition: CaloSamplingData.h:18
CaloClusterContainer_p6::CaloCluster_p::m_P4EEtaPhiM
P4EEtaPhiMFloat_p2 m_P4EEtaPhiM
Definition: CaloClusterContainer_p6.h:33
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
CaloClusterSignalState.h
CaloCluster::addBadChannel
void addBadChannel(const CaloClusterBadChannelData &badChannel)
Add Bad channel information.
Definition: CaloCluster.cxx:1424
CaloCluster::m_barrel
bool m_barrel
Flag is true if at least one cell in EMB.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:549
CaloRecoStatus
reconstruction status indicator
Definition: CaloRecoStatus.h:12
CaloCluster::resetBadChannel
void resetBadChannel()
Reset Bad channel list.
Definition: CaloCluster.cxx:1429
CaloCluster::m_rawEta
double m_rawEta
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:698
P4EEtaPhiMCnv_p2::persToTrans
virtual void persToTrans(const P4EEtaPhiMFloat_p2 *persObj, P4EEtaPhiM *transObj, MsgStream &log) const override
Method creating the transient representation of P4EEtaPhiM from its persistent representation P4EEtaP...
Definition: P4EEtaPhiMCnv_p2.cxx:26
CaloClusterContainerCnv_p6::CellLinkState
ElementLinkCnv_p2< ElementLink< CaloCellLinkContainer > >::State CellLinkState
Definition: CaloClusterContainerCnv_p6.h:51
CaloCluster::phi
virtual double phi() const
Retrieve phi independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:759