ATLAS Offline Software
CaloClusterContainerCnv_p6.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
8 
12 //#include "CaloEvent/CaloSampling.h"
16 
17 
18 namespace {
19 
20 inline
21 bool testbit (unsigned int x, unsigned int i)
22 {
23  return (x & (1U << i)) != 0;
24 }
25 
26 } // anonymous namespace
27 
28 
30  CaloClusterContainer* trans,
31  MsgStream &log) const
32 {
33  if (log.level() <= MSG::DEBUG) log<< MSG::DEBUG << "Reading CaloClusterContainerCnv_p6" << endmsg;
34 
35  // reset element link converters, and provide container name lookup table
36  ShowerLinkState showerLinkState (pers->m_linkNames);
37  CellLinkState cellLinkState (pers->m_linkNames);
38 
39  // Use data pool for clusters to avoid calling constructor for each event
41 
42  trans->clear (SG::VIEW_ELEMENTS);
43  trans->reserve(pers->m_vec.size());
44 
47 
48  std::vector<float> temp_Moments;
49  Compressor A;
50  A.expandToFloat( pers->m_momentContainer.m_Mvalue, temp_Moments); // unpacks moments
51 
52  std::vector<float>::const_iterator i_mom = temp_Moments.begin();
53  std::vector<float>::const_iterator i_mom_e = temp_Moments.end();
54 
55  const std::vector<unsigned short>& keys = pers->m_momentContainer.m_Mkey;
56  unsigned int nkeys = keys.size();
57 
58  unsigned int c1=0;
59 
60  std::vector<float> tmp_badChannelEta;
61  std::vector<float> tmp_badChannelPhi;
62  Compressor B;
63  B.expandToFloat(pers->m_badEtaList,tmp_badChannelEta);
64  B.expandToFloat(pers->m_badPhiList,tmp_badChannelPhi);
65 
66 // raw 4-momentum state
67  std::vector<float> tmp_rawE;
68  std::vector<float> tmp_rawEtaPhiM;
69  Compressor C;
70  C.expandToFloat(pers->m_rawE,tmp_rawE);
71  std::vector<float>::const_iterator iraw1 = tmp_rawE.begin();
72  std::vector<float>::const_iterator iraw2 = tmp_rawE.end();
73 
74  Compressor D;
75  D.expandToFloat(pers->m_rawEtaPhiM,tmp_rawEtaPhiM);
76  std::vector<float>::const_iterator iraw3 = tmp_rawEtaPhiM.begin();
77  std::vector<float>::const_iterator iraw4 = tmp_rawEtaPhiM.end();
78 
79 // alternative calibration 4-momentum state
80  std::vector<float> tmp_altE;
81  std::vector<float> tmp_altEtaPhiM;
82  Compressor E;
83  E.expandToFloat(pers->m_altE,tmp_altE);
84  std::vector<float>::const_iterator ialt1 = tmp_altE.begin();
85  std::vector<float>::const_iterator ialt2 = tmp_altE.end();
86  Compressor F;
87  F.expandToFloat(pers->m_altEtaPhiM,tmp_altEtaPhiM);
88  std::vector<float>::const_iterator ialt3 = tmp_altEtaPhiM.begin();
89  std::vector<float>::const_iterator ialt4 = tmp_altEtaPhiM.end();
90 
91 
92  std::vector<short>::const_iterator ibad1 = pers->m_badClusIndexList.begin();
93  std::vector<short>::const_iterator ibad2 = pers->m_badClusIndexList.end();
94  int nbad=0;
95 
96  bool mom_overrun_err = false;
97  bool store_overrun_err = false;
98  bool raw_overrun_err = false;
99  size_t dataStore_size = pers->m_dataStore.size();
100 
101  bool fillBad=true;
102  if (tmp_badChannelEta.size() != pers->m_badClusIndexList.size() ||
103  tmp_badChannelPhi.size() != pers->m_badClusIndexList.size() ||
104  pers->m_badLayerStatusList.size() != pers->m_badClusIndexList.size()) {
105  log << MSG::WARNING << " problem to decode bad channel information, not filled..." << endmsg;
106  fillBad=false;
107  }
108 
109  short index=0;
110  for(;itp!=itp_e;++itp) {
111  index++;
112 
113  CaloCluster* transCluster = clusters.nextElementPtr();// Get next ptr for next cluster
114  persToTrans(&(*itp),transCluster,
115  showerLinkState,
116  cellLinkState,
117  log); //Convert Cluster-quantities
118 
119  CaloSamplingData *trDS =&(transCluster->m_dataStore);
120 
121  trDS->m_varTypePattern = pers->m_varTypePattern;
122  int nVar=trDS->getNumberOfVariableTypes();
123  int nSamplings=trDS->getNumberOfSamplings();
124 
125  typedef CaloSamplingData::variable_key_type vartype;
126  typedef CaloSamplingData::sampling_key_type samptype;
127 
128  for (int i=0;i<nVar;++i) {// here loops to read them in ...
129  if (testbit (trDS->m_varTypePattern, i)) {
130 
131  // can be optimized: no decoding for each variable.
132  for (int j=0;j<nSamplings; ++j){
133 
134  if ( testbit(transCluster->m_samplingPattern, j) ){
135  float val;
136  if (c1 < dataStore_size)
137  val = pers->m_dataStore[c1++];
138  else {
139  val = 0;
140  if (!store_overrun_err) {
141  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
142  "CaloClusterContainerCnv_p6")
143  << "Corrupted data: data store array overrun "
144  << pers->m_vec.size() << " clusters "
145  << nkeys << " moment keys "
146  << temp_Moments.size() << " total moments.";
147  store_overrun_err = true;
148  }
149  }
150  trDS->storeData(static_cast<vartype>(i),
151  static_cast<samptype>(j),
152  val);
153  }
154  else{
155 
156  trDS->removeVariable(static_cast<vartype>(i),
157  static_cast<samptype>(j));
158  //std::cout<<"a:0"<<"\t";
159  }
160  }
161  // std::cout<<std::endl;
162  }
163  else
164  trDS->removeVariable(static_cast<vartype>(i));
165  }
166 
167  transCluster->m_barrel= (bool)(0x001ff00f & transCluster->m_samplingPattern);
168  transCluster->m_endcap= (bool)(0x00e00ff0 & transCluster->m_samplingPattern);
169  // std::cout<<" <<< Read"<<std::endl;
170 
171 
172  //Convert moment store
174  for (unsigned short i=0;i<nkeys;++i) {
175  float val;
176  if (i_mom == i_mom_e) {
177  val = 0;
178  if (!mom_overrun_err) {
179  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
180  "CaloClusterContainerCnv_p6")
181  << "Corrupted data: moment array overrun "
182  << pers->m_vec.size() << " clusters "
183  << nkeys << " moment keys "
184  << temp_Moments.size() << " total moments.";
185  mom_overrun_err = true;
186  }
187  }
188  else {
189  val = *i_mom;
190  ++i_mom;
191  }
192  transStore.insert (transStore.end(), CaloClusterMomentStore::moment_store::value_type( keys[i], val ) );
193  }
194  transCluster->m_momentStore.setMomentStore (std::move (transStore));
195 
196  // fill bad channel information
197  transCluster->resetBadChannel();
198  if (fillBad){
199  while (ibad1 != ibad2 && (*ibad1) ==index) {
200  float eta = tmp_badChannelEta[nbad] + transCluster->eta();
201  float phi = CaloPhiRange::fix(tmp_badChannelPhi[nbad] + transCluster->phi());
202  short status=pers->m_badLayerStatusList[nbad];
204  CaloBadChannel flag = CaloBadChannel( ((status>>8) & 0xff) );
206  // std::cout << " add bad channel data " << transCluster << " " << eta << " " << phi << " " << layer << " " << status << " " << flag.packedData() << std::endl;
207  transCluster->addBadChannel(data);
208  ++ibad1;
209  ++nbad;
210  }
211  }
212 
213 // fill raw E,eta,phi,M
214  if (iraw1 != iraw2) {
215  if (std::fabs(transCluster->e())>0.1) {
216  transCluster->m_rawE = (*iraw1) * transCluster->e();
217  }
218  else
219  transCluster->m_rawE = (*iraw1);
220  ++iraw1;
221  }
222  if (iraw3 != iraw4) {
223  transCluster->m_rawEta = (*iraw3) + transCluster->eta();
224  ++iraw3;
225  }
226  if (iraw3 != iraw4) {
227  transCluster->m_rawPhi = CaloPhiRange::fix((*iraw3)+transCluster->phi());
228  ++iraw3;
229  }
230  if (iraw3 == iraw4 && !raw_overrun_err) {
231  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
232  "CaloClusterContainerCnv_p6")
233  << "Corrupted data: raw array overrun "
234  << pers->m_vec.size() << " clusters "
235  << tmp_rawE.size() << " raw values.";
236  raw_overrun_err = true;
237  }
238  if (iraw3 != iraw4) {
239  transCluster->m_rawM = (*iraw3);
240  ++iraw3;
241  }
242  //std::cout << " perstotrans rawE/eta/phi/M " << transCluster->m_rawE << " " << transCluster->m_rawEta << " " <<
243  // transCluster->m_rawPhi << " " << transCluster->m_rawM << std::endl;
244 
245 // fill alt calibrated E,eta,phi,M
246  if (ialt1 != ialt2) {
247  if (std::fabs(transCluster->e())>0.1) {
248  transCluster->m_altE = (*ialt1) * transCluster->e();
249  }
250  else
251  transCluster->m_altE = (*ialt1);
252  ++ialt1;
253  }
254  if (ialt3 != ialt4) {
255  transCluster->m_altEta = (*ialt3) + transCluster->eta();
256  ++ialt3;
257  }
258  if (ialt3 != ialt4) {
259  transCluster->m_altPhi = CaloPhiRange::fix((*ialt3)+transCluster->phi());
260  ++ialt3;
261  }
262  if (ialt3 == ialt4 && !raw_overrun_err) {
263  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
264  "CaloClusterContainerCnv_p6")
265  << "Corrupted data: raw array overrun "
266  << pers->m_vec.size() << " clusters "
267  << tmp_altE.size() << " alt values.";
268  raw_overrun_err = true;
269  }
270  if (ialt3 != ialt4) {
271  transCluster->m_altM = (*ialt3);
272  ++ialt3;
273  }
274  //std::cout << " perstotrans altE/eta/phi/M " << transCluster->m_altE << " " << transCluster->m_altEta << " " <<
275  // transCluster->m_altPhi << " " << transCluster->m_altM << std::endl;
276 
277 
278  trans->push_back(transCluster);
279  }
280 
281  if (i_mom != i_mom_e && !mom_overrun_err) {
282  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
283  "CaloClusterContainerCnv_p6")
284  << "Corrupted data: not all moments read "
285  << pers->m_vec.size() << " clusters "
286  << nkeys << " moment keys "
287  << temp_Moments.size() << " total moments "
288  << i_mom-temp_Moments.begin() << " read.";
289  }
290 
291  if (c1 != dataStore_size && !store_overrun_err) {
292  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
293  "CaloClusterContainerCnv_p6")
294  << "Corrupted data: not all data store members read "
295  << dataStore_size << " elements "
296  << c1 << " read.";
297  }
298 
299  if (iraw1 != iraw2 && !raw_overrun_err) {
300  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
301  "CaloClusterContainerCnv_p6")
302  << "Corrupted data: not all raw values read "
303  << pers->m_vec.size() << " clusters "
304  << tmp_rawE.size() << " raw values "
305  << iraw1-tmp_rawE.begin() << " read.";
306  }
307 
308  if (iraw3 != iraw4 && !raw_overrun_err) {
309  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
310  "CaloClusterContainerCnv_p6")
311  << "Corrupted data: not all raw values read "
312  << pers->m_vec.size() << " clusters "
313  << tmp_rawEtaPhiM.size() << " raw values "
314  << iraw3-tmp_rawEtaPhiM.begin() << " read.";
315  }
316 
317  if (ialt1 != ialt2 && !raw_overrun_err) {
318  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
319  "CaloClusterContainerCnv_p6")
320  << "Corrupted data: not all alt values read "
321  << pers->m_vec.size() << " clusters "
322  << tmp_altE.size() << " alt values "
323  << ialt1-tmp_altE.begin() << " read.";
324  }
325 
326  if (ialt3 != ialt4 && !raw_overrun_err) {
327  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
328  "CaloClusterContainerCnv_p6")
329  << "Corrupted data: not all alt values read "
330  << pers->m_vec.size() << " clusters "
331  << tmp_altEtaPhiM.size() << " raw values "
332  << ialt3-tmp_altEtaPhiM.begin() << " read.";
333  }
334 
335 
336 
337  if (ibad1 != ibad2) {
338  REPORT_MESSAGE_WITH_CONTEXT(MSG::WARNING,
339  "CaloClusterContainerCnv_p6")
340  << "Corrupted data: not all bad data read "
341  << pers->m_badClusIndexList.size() << " bad values "
342  << nbad << " read.";
343  }
344 
345  //Convert TowerSegment
346  CaloTowerSeg seg;
348  trans->setTowerSeg (seg);
349 }
350 
351 
353  CaloClusterContainer_p6* /*pers*/,
354  MsgStream &log) const
355 {
356  log << MSG::ERROR << "Writing of CaloClusterContainer_p6 not implemented any more!" << endmsg;
357 
358 }
359 
360 
362  CaloCluster* trans,
363  ShowerLinkState& showerLinkState,
364  CellLinkState& cellLinkState,
365  MsgStream& log) const
366 {
368  trans->setBasicEnergy (pers->m_basicSignal);
369  trans->setTime (pers->m_time);
370  trans->m_samplingPattern=pers->m_samplingPattern;
371  trans->m_eta0=pers->m_eta0;
372  trans->m_phi0=pers->m_phi0;
373  trans->m_status = CaloRecoStatus(pers->m_caloRecoStatus);
374  trans->setClusterSize (pers->m_clusterSize);
375 
376  //Convert base class and element links
378  m_showerElementLinkCnv.persToTrans(showerLinkState, pers->m_dataLink, trans->m_dataLink,log);
379  m_cellElementLinkCnv.persToTrans(cellLinkState, pers->m_cellLink, trans->m_cellLink,log);
380  trans->setAthenaBarCode (IAthenaBarCode::UNDEFINEDBARCODE);
381 }
382 
383 
386  ShowerLinkState& showerLinkState,
387  CellLinkState& cellLinkState,
388  MsgStream& log) const
389 {
390  pers->m_basicSignal=trans->getBasicEnergy();
391  pers->m_time=trans->getTime();
392  pers->m_samplingPattern=trans->m_samplingPattern;
393  pers->m_eta0=trans->eta0();
394  pers->m_phi0=trans->phi0();
395  pers->m_caloRecoStatus=trans->m_status.getStatusWord();
396  pers->m_clusterSize=trans->getClusterSize();
397 
398  //Convert base class and element links
399  P4EEtaPhiM tmp = *trans;
401  m_showerElementLinkCnv.transToPers(showerLinkState, trans->m_dataLink, pers->m_dataLink,log);
402  m_cellElementLinkCnv.transToPers(cellLinkState, trans->m_cellLink, pers->m_cellLink,log);
403 }
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:64
CaloClusterContainerCnv_p6::transToPers
virtual void transToPers(const CaloClusterContainer *trans, CaloClusterContainer_p6 *pers, MsgStream &log) const override
Definition: CaloClusterContainerCnv_p6.cxx:352
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:79
index
Definition: index.py:1
CaloCluster::m_eta0
double m_eta0
Cluster seed
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:558
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:134
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
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:92
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:29
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:47
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:790
merge.status
status
Definition: merge.py:17
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