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

#include <LArMinBiasAlg.h>

Inheritance diagram for LArMinBiasAlg:

Classes

struct  CellInfo

Public Member Functions

 LArMinBiasAlg (const std::string &name, ISvcLocator *pSvcLocator)
 Standard Athena-Algorithm Constructor.
 ~LArMinBiasAlg ()
 Default Destructor.
virtual StatusCode initialize () override
virtual StatusCode execute () override
virtual StatusCode finalize () override
virtual StatusCode stop () override
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

void fillNtuple ()
void addCell (int index, double e1, double e2, double wt=1.)
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

int m_datasetID_lowPt
int m_datasetID_highPt
double m_weight_lowPt
double m_weight_highPt
SG::ReadCondHandleKey< LArMCSymm_mcSymKey { this, "MCSymKey", "LArMCSym", "SG Key of LArMCSym object" }
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
SG::ReadCondHandleKey< CaloDetDescrManagerm_caloMgrKey
SG::ReadCondHandleKey< CaloSuperCellDetDescrManagerm_caloSCMgrKey
const CaloCell_Base_IDm_calo_id = nullptr
std::vector< double > m_eCell
ServiceHandle< ITHistSvc > m_thistSvc {this,"THistSvc","THistSvc"}
TTree * m_tree = nullptr
int m_nevt_total = 0
int m_n1 = 0
int m_n2 = 0
int m_nsymcell = 0
double m_nevt [MAX_SYM_CELLS] {}
int m_layer [MAX_SYM_CELLS] {}
int m_region [MAX_SYM_CELLS] {}
int m_identifier [MAX_SYM_CELLS] {}
int m_ieta [MAX_SYM_CELLS] {}
float m_eta [MAX_SYM_CELLS] {}
float m_phi [MAX_SYM_CELLS] {}
double m_average [MAX_SYM_CELLS] {}
double m_rms [MAX_SYM_CELLS] {}
double m_offset [MAX_SYM_CELLS] {}
std::vector< CellInfom_CellList
std::vector< int > m_symCellIndex
float m_first
int m_ncell = 0
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey {this,"EvtInfo", "EventInfo", "EventInfo name"}
StringArrayProperty m_inputKeys
SG::ReadHandleKeyArray< LArHitContainerm_larHitKeys
BooleanProperty m_isSC {this, "SuperCell", false, "Creating for SC ?"}
ToolHandle< ICaloSuperCellIDToolm_scidtool {this, "CaloSuperCellIDTool", "CaloSuperCellIDTool", "Offline / SuperCell ID mapping tool"}
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 38 of file LArMinBiasAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ LArMinBiasAlg()

LArMinBiasAlg::LArMinBiasAlg ( const std::string & name,
ISvcLocator * pSvcLocator )

Standard Athena-Algorithm Constructor.

Definition at line 22 of file LArMinBiasAlg.cxx.

22 :
23 AthAlgorithm(name,pSvcLocator),
24 m_datasetID_lowPt(119995),
25 m_datasetID_highPt(119996),
26 m_weight_lowPt(39.8606),
27 m_weight_highPt(0.138128)
28 {
29 declareProperty("datasetID_lowPt",m_datasetID_lowPt);
30 declareProperty("datasetID_highPt",m_datasetID_highPt);
31 declareProperty("weight_highPt",m_weight_highPt);
32 declareProperty("weight_lowPt",m_weight_lowPt);
33 m_first=true;
34 }
AthAlgorithm()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
double m_weight_highPt
double m_weight_lowPt

◆ ~LArMinBiasAlg()

LArMinBiasAlg::~LArMinBiasAlg ( )
default

Default Destructor.

Member Function Documentation

◆ addCell()

void LArMinBiasAlg::addCell ( int index,
double e1,
double e2,
double wt = 1. )
private

Definition at line 274 of file LArMinBiasAlg.cxx.

275 {
276 if (index < m_ncell && index>=0) {
278 if (index2<0) return;
279 if (index2 >= ((int)(m_CellList.size())) ) {
280 ATH_MSG_INFO(" LArMinBiasAlg::addCell: for " << index << ", " << index2 << " is out-of bounds for list of size " << m_CellList.size());
281 return;
282 }
283 double oldN = m_CellList[index2].nevt;
284 double oldAverage = m_CellList[index2].average;
285 double oldRMS = m_CellList[index2].rms;
286 double oldAverage2 = m_CellList[index2].offset;
287
288 double frac = oldN/(weight+oldN);
289 double Anew = weight+oldN;
290 double newAverage = frac*oldAverage + weight*energy/Anew;
291 double deltaE = energy-newAverage;
292 double newRMS = frac*(oldRMS + (newAverage-oldAverage)*(newAverage-oldAverage)) + weight*deltaE*deltaE/Anew;
293
294 double newAverage2 = frac*oldAverage2 + weight*eshift/Anew;
295
296 m_CellList[index2].nevt = Anew;
297 m_CellList[index2].average = newAverage;
298 m_CellList[index2].rms = newRMS;
299 m_CellList[index2].offset = newAverage2;
300
301 }
302 }
#define ATH_MSG_INFO(x)
std::vector< CellInfo > m_CellList
std::vector< int > m_symCellIndex
str index
Definition DeMoScan.py:362

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode LArMinBiasAlg::execute ( )
overridevirtual

Definition at line 116 of file LArMinBiasAlg.cxx.

117 {
118 //.............................................
119
120 ATH_MSG_DEBUG(" LArMinBiasAlg execute()");
121
122 const EventContext& ctx = Gaudi::Hive::currentContext();
123
124 if (m_first) {
125
126 const CaloDetDescrManager_Base *cMgr=nullptr;
127 if(m_isSC){
128 SG::ReadCondHandle<CaloSuperCellDetDescrManager> caloMgrHandle{m_caloSCMgrKey};
129 ATH_CHECK(caloMgrHandle.isValid());
130 cMgr=(const CaloDetDescrManager_Base *)(*caloMgrHandle);
131 } else {
132 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{m_caloMgrKey};
133 ATH_CHECK(caloMgrHandle.isValid());
134 cMgr=(const CaloDetDescrManager_Base *)(*caloMgrHandle);
135 }
136
137 SG::ReadCondHandle<LArMCSym> mcsym (m_mcSymKey, ctx);
138 SG::ReadCondHandle<LArOnOffIdMapping> cablingHdl (m_cablingKey, ctx);
139 const LArOnOffIdMapping* cabling{*cablingHdl};
140 if(!cabling) {
141 ATH_MSG_ERROR( "Do not have cabling mapping from key " << m_cablingKey.key() );
142 return StatusCode::FAILURE;
143 }
144
145 m_ncell = m_calo_id->calo_cell_hash_max();
146 ATH_MSG_DEBUG("Hash max: "<<m_ncell);
147
148 ATH_MSG_INFO(" --- first event " << m_ncell);
149 m_symCellIndex.resize(m_ncell,-1);
150 std::vector<int> doneCell;
151 doneCell.resize(m_ncell,-1);
152
153 //m_readCell.resize(m_ncell,0);
154
155 m_eCell.resize(m_ncell,0.);
156
157 m_CellList.reserve(MAX_SYM_CELLS);
158 int nsym=0;
159 // loop over cells
160 // and find symmetry cells
161 for (unsigned int i=0;i<((unsigned int)(m_ncell));i++) {
162 IdentifierHash idHash=i;
163 Identifier id=m_calo_id->cell_id(idHash);
164 if (m_calo_id->is_tile(id)) continue;
165 // convert cell id to symmetric identifier
166 HWIdentifier hwid2 = mcsym->ZPhiSymOfl(id);
167 Identifier id2 = cabling->cnvToIdentifier(hwid2);
168 int i2 = (int) (m_calo_id->calo_cell_hash(id2));
169 if(i2>=m_ncell) {
170 ATH_MSG_WARNING("problem: i2: "<<i2<<" for id: "<<m_calo_id->print_to_string(id)<<" symmetrized: "<<m_calo_id->print_to_string(id2));
171 }
172 // we have already processed this hash => just need to associate cell i to the same symmetric cell
173 if (doneCell[i2]>=0) {
174 m_symCellIndex[i]=doneCell[i2];
175 ATH_MSG_DEBUG("Adding cell "<<id.get_identifier32().get_compact()<<" to a symmetrized cell "<<id2.get_identifier32().get_compact());
176 }
177 // we have not already processed this hash, add an entry for this new symmetric cell
178 else {
179 ATH_MSG_DEBUG("New symmetrized cell "<<id2.get_identifier32().get_compact());
180 doneCell[i2]=nsym;
181 m_symCellIndex[i] = nsym;
183 const CaloDetDescrElement* calodde = cMgr->get_element(id);
184 cell.eta = calodde->eta();
185 cell.phi = calodde->phi();
186 cell.region = m_calo_id->region(id);
187 cell.ieta = m_calo_id->eta(id);
188 cell.layer = m_calo_id->calo_sample(id);
189 cell.region = m_calo_id->region(id);
190 cell.ieta = m_calo_id->eta(id);
191 //cell.identifier = id2.get_identifier32().get_compact();
192 cell.identifier = id2;
193 cell.average=0.;
194 cell.offset=0.;
195 cell.rms=0.;
196 cell.nevt=0.;
197 m_CellList.push_back(cell);
198 nsym++;
199 }
200 }
201 ATH_MSG_INFO(" --- number of symmetric cells found " << nsym << " " << m_CellList.size());
202 if (nsym>=MAX_SYM_CELLS) ATH_MSG_ERROR(" More than "<<MAX_SYM_CELLS<<" number of symmetric cells... Fix array size for ntuple writing !!!! ");
203 m_nsymcell=nsym;
204 m_first=false;
205 }
206
207 SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfoKey);
208 if (!eventInfo.isValid()) {
209 ATH_MSG_ERROR ("Could not retrieve EventInfo");
210 return StatusCode::FAILURE;
211 }
212 int channelNumber = eventInfo->mcChannelNumber();
213
214 m_nevt_total++;
215
216 double weight=1.;
217
218// Dataset ID for lowPt MinBias
219 if (channelNumber==m_datasetID_lowPt) {
221 m_n1+=1;
222 }
223// Dataset ID for highPt MinBias
224 else if (channelNumber==m_datasetID_highPt) {
226 m_n2+=1;
227 }
228 else {
229 ATH_MSG_WARNING(" Neither low nor high Pt MinBias sample " << channelNumber << " set weight to 1.0 ");
230 weight=1.;
231 }
232
233
234 if ((m_nevt_total%100)==1) ATH_MSG_INFO(" ---- process event number " << m_nevt_total << " " << channelNumber << " weight " << weight);
235
236 for (int i=0;i<m_ncell;i++) m_eCell[i]=0.;
237
238 auto hitVectorHandles = m_larHitKeys.makeHandles(ctx);
239 for (auto & inputHits : hitVectorHandles) {
240 if (!inputHits.isValid()) {
241 ATH_MSG_ERROR("BAD HANDLE"); //FIXME improve error here
242 //return StatusCode::FAILURE;
243 continue;
244 }
245
246 for (const LArHit* hit : *inputHits)
247 {
248 Identifier hitCellID=hit->cellID();
249 double energy = hit->energy();
250 double time =hit->time();
251 Identifier cellID;
252 if(m_isSC){
253 cellID=m_scidtool->offlineToSuperCellID(hitCellID);
254 } else {
255 cellID=hitCellID;
256 }
257 int index = (int) (m_calo_id->calo_cell_hash(cellID));
258
259 if (index < m_ncell && index>=0 && std::fabs(time)<25.) {
260 m_eCell[index] += energy;
261 }
262
263 } // loop over hits in container
264 } // loop over containers
265
266 for (int i=0;i<m_ncell;i++) {
267 addCell(i,m_eCell[i],0.,weight);
268 }
269
270
271 return StatusCode::SUCCESS;
272 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
#define MAX_SYM_CELLS
HWIdentifier id2
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
value_type get_compact() const
Get the compact id.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
SG::ReadHandleKeyArray< LArHitContainer > m_larHitKeys
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
ToolHandle< ICaloSuperCellIDTool > m_scidtool
SG::ReadCondHandleKey< LArMCSym > m_mcSymKey
std::vector< double > m_eCell
BooleanProperty m_isSC
const CaloCell_Base_ID * m_calo_id
SG::ReadCondHandleKey< CaloSuperCellDetDescrManager > m_caloSCMgrKey
void addCell(int index, double e1, double e2, double wt=1.)
time(flags, cells_name, *args, **kw)

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ fillNtuple()

void LArMinBiasAlg::fillNtuple ( )
private

Definition at line 304 of file LArMinBiasAlg.cxx.

305 {
306
307 ATH_MSG_INFO(" in fillNtuple " << m_nsymcell);
308 for (int i=0;i<m_nsymcell;i++) {
309 m_identifier[i] = m_CellList[i].identifier.get_identifier32().get_compact();
310 m_layer[i] = m_CellList[i].layer;
311 m_region[i] = m_CellList[i].region;
312 m_ieta[i] = m_CellList[i].ieta;
313 m_eta[i] = m_CellList[i].eta;
314 m_phi[i] = m_CellList[i].phi;
315 m_nevt[i] = m_CellList[i].nevt;
316 m_offset[i] = (float) (m_CellList[i].offset);
317 m_average[i] = (float) (m_CellList[i].average);
318 m_rms[i] = (float) (std::sqrt(m_CellList[i].rms));
319 }
320 m_tree->Fill();
321 ATH_MSG_INFO(" after tree fill ");
322
323 for (int i=0;i<m_nsymcell;i++) {
324 m_CellList[i].nevt=0;
325 m_CellList[i].offset=0.;
326 m_CellList[i].average=0;
327 m_CellList[i].rms=0;
328 }
329 ATH_MSG_INFO(" end of fillNtuple ");
330
331 }
double m_average[MAX_SYM_CELLS]
double m_rms[MAX_SYM_CELLS]
double m_offset[MAX_SYM_CELLS]
int m_region[MAX_SYM_CELLS]
double m_nevt[MAX_SYM_CELLS]
int m_layer[MAX_SYM_CELLS]
float m_eta[MAX_SYM_CELLS]
float m_phi[MAX_SYM_CELLS]
int m_ieta[MAX_SYM_CELLS]
int m_identifier[MAX_SYM_CELLS]

◆ finalize()

StatusCode LArMinBiasAlg::finalize ( )
overridevirtual

Definition at line 109 of file LArMinBiasAlg.cxx.

110 {
111 ATH_MSG_INFO(" finalize()");
112 return StatusCode::SUCCESS;
113 }

◆ initialize()

StatusCode LArMinBiasAlg::initialize ( )
overridevirtual

Definition at line 40 of file LArMinBiasAlg.cxx.

41 {
42
43 ATH_MSG_INFO ( " LArMinBiasAlg initialize() " );
44
45 ATH_CHECK( m_thistSvc.retrieve() );
46
47
48 m_tree = new TTree("m_tree","Offset ntuple");
49 m_tree->Branch("ncell",&m_nsymcell,"ncell/I");
50 m_tree->Branch("nevt_total",&m_nevt_total,"nevt_total/I");
51 m_tree->Branch("identifier",m_identifier,"identifier[ncell]/I");
52 m_tree->Branch("region",m_region,"region[ncell]/I");
53 m_tree->Branch("ieta",m_ieta,"ieta[ncell]/I");
54 m_tree->Branch("layer",m_layer,"layer[ncell]/I");
55 m_tree->Branch("region",m_region,"region[ncell]/I");
56 m_tree->Branch("ieta",m_ieta,"ieta[ncell]/I");
57 m_tree->Branch("eta",m_eta,"eta[ncell]/F");
58 m_tree->Branch("phi",m_phi,"phi[ncell]/F");
59 m_tree->Branch("nevt",m_nevt,"nevt[ncell]/D");
60 m_tree->Branch("average",m_average,"average[ncell]/D");
61 m_tree->Branch("rms",m_rms,"rms[ncell]/D");
62 m_tree->Branch("reference",m_offset,"offset[ncell]/D");
63
64 if( m_thistSvc->regTree("/file1/offset",m_tree).isFailure()) {
65 ATH_MSG_WARNING(" cannot register ntuple " );
66 return StatusCode::SUCCESS;
67 }
68
69 const CaloIdManager* mgr = nullptr;
70 ATH_CHECK( detStore()->retrieve( mgr ) );
71 if(m_isSC) {
72 m_calo_id = (const CaloCell_Base_ID*)mgr->getCaloCell_SuperCell_ID();
73 } else {
74 m_calo_id = (const CaloCell_Base_ID*)mgr->getCaloCell_ID();
75 }
76
77 ATH_CHECK(m_mcSymKey.initialize());
78
79 ATH_CHECK(m_cablingKey.initialize());
80
81 ATH_CHECK(m_caloMgrKey.initialize());
82
83 ATH_CHECK(m_caloSCMgrKey.initialize(m_isSC));
84
85 ATH_CHECK(m_eventInfoKey.initialize());
86
87 ATH_CHECK(m_larHitKeys.assign(m_inputKeys.value()));
88 ATH_CHECK(m_larHitKeys.initialize(!m_inputKeys.empty() ));
89
90 if(m_isSC) ATH_CHECK( m_scidtool.retrieve() );
91
92 m_n1=0;
93 m_n2=0;
94
96
97 return StatusCode::SUCCESS;
98
99 }
const ServiceHandle< StoreGateSvc > & detStore() const
StringArrayProperty m_inputKeys
ServiceHandle< ITHistSvc > m_thistSvc
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ stop()

StatusCode LArMinBiasAlg::stop ( )
overridevirtual

Definition at line 101 of file LArMinBiasAlg.cxx.

102 {
103 ATH_MSG_INFO("number of events in the two samples " << m_n1 << " " << m_n2);
104 this->fillNtuple();
105 ATH_MSG_INFO(" stop after fill ntuple");
106 return StatusCode::SUCCESS;
107 }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
static Double_t sc
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_average

double LArMinBiasAlg::m_average[MAX_SYM_CELLS] {}
private

Definition at line 98 of file LArMinBiasAlg.h.

98{};

◆ m_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LArMinBiasAlg::m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
private

Definition at line 66 of file LArMinBiasAlg.h.

66{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};

◆ m_calo_id

const CaloCell_Base_ID* LArMinBiasAlg::m_calo_id = nullptr
private

Definition at line 78 of file LArMinBiasAlg.h.

◆ m_caloMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> LArMinBiasAlg::m_caloMgrKey
private
Initial value:
{ this
, "CaloDetDescrManager"
, "CaloDetDescrManager"
, "SG Key for CaloDetDescrManager in the Condition Store" }

Definition at line 68 of file LArMinBiasAlg.h.

68 { this
69 , "CaloDetDescrManager"
70 , "CaloDetDescrManager"
71 , "SG Key for CaloDetDescrManager in the Condition Store" };

◆ m_caloSCMgrKey

SG::ReadCondHandleKey<CaloSuperCellDetDescrManager> LArMinBiasAlg::m_caloSCMgrKey
private
Initial value:
{ this
, "CaloSuperCellDetDescrManager"
, "CaloSuperCellDetDescrManager"
, "SG Key for CaloSuperCellDetDescrManager in the Condition Store" }

Definition at line 73 of file LArMinBiasAlg.h.

73 { this
74 , "CaloSuperCellDetDescrManager"
75 , "CaloSuperCellDetDescrManager"
76 , "SG Key for CaloSuperCellDetDescrManager in the Condition Store" };

◆ m_CellList

std::vector<CellInfo> LArMinBiasAlg::m_CellList
private

Definition at line 115 of file LArMinBiasAlg.h.

◆ m_datasetID_highPt

int LArMinBiasAlg::m_datasetID_highPt
private

Definition at line 61 of file LArMinBiasAlg.h.

◆ m_datasetID_lowPt

int LArMinBiasAlg::m_datasetID_lowPt
private

Definition at line 60 of file LArMinBiasAlg.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_eCell

std::vector<double> LArMinBiasAlg::m_eCell
private

Definition at line 80 of file LArMinBiasAlg.h.

◆ m_eta

float LArMinBiasAlg::m_eta[MAX_SYM_CELLS] {}
private

Definition at line 96 of file LArMinBiasAlg.h.

96{};

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> LArMinBiasAlg::m_eventInfoKey {this,"EvtInfo", "EventInfo", "EventInfo name"}
private

Definition at line 119 of file LArMinBiasAlg.h.

119{this,"EvtInfo", "EventInfo", "EventInfo name"};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_first

float LArMinBiasAlg::m_first
private

Definition at line 117 of file LArMinBiasAlg.h.

◆ m_identifier

int LArMinBiasAlg::m_identifier[MAX_SYM_CELLS] {}
private

Definition at line 94 of file LArMinBiasAlg.h.

94{};

◆ m_ieta

int LArMinBiasAlg::m_ieta[MAX_SYM_CELLS] {}
private

Definition at line 95 of file LArMinBiasAlg.h.

95{};

◆ m_inputKeys

StringArrayProperty LArMinBiasAlg::m_inputKeys
private
Initial value:
{this, "InputHitContainers", {"LArHitEMB", "LArHitEMEC", "LArHitHEC", "LArHitFCAL"},
"Name of input hit vectors (default=[LArHitEMB, LArHitEMEC, LArHitHEC, LArHitFCAL])" }

Definition at line 120 of file LArMinBiasAlg.h.

120 {this, "InputHitContainers", {"LArHitEMB", "LArHitEMEC", "LArHitHEC", "LArHitFCAL"},
121 "Name of input hit vectors (default=[LArHitEMB, LArHitEMEC, LArHitHEC, LArHitFCAL])" };

◆ m_isSC

BooleanProperty LArMinBiasAlg::m_isSC {this, "SuperCell", false, "Creating for SC ?"}
private

Definition at line 123 of file LArMinBiasAlg.h.

123{this, "SuperCell", false, "Creating for SC ?"};

◆ m_larHitKeys

SG::ReadHandleKeyArray<LArHitContainer> LArMinBiasAlg::m_larHitKeys
private

Definition at line 122 of file LArMinBiasAlg.h.

◆ m_layer

int LArMinBiasAlg::m_layer[MAX_SYM_CELLS] {}
private

Definition at line 92 of file LArMinBiasAlg.h.

92{};

◆ m_mcSymKey

SG::ReadCondHandleKey<LArMCSym> LArMinBiasAlg::m_mcSymKey { this, "MCSymKey", "LArMCSym", "SG Key of LArMCSym object" }
private

Definition at line 64 of file LArMinBiasAlg.h.

65{ this, "MCSymKey", "LArMCSym", "SG Key of LArMCSym object" };

◆ m_n1

int LArMinBiasAlg::m_n1 = 0
private

Definition at line 86 of file LArMinBiasAlg.h.

◆ m_n2

int LArMinBiasAlg::m_n2 = 0
private

Definition at line 87 of file LArMinBiasAlg.h.

◆ m_ncell

int LArMinBiasAlg::m_ncell = 0
private

Definition at line 118 of file LArMinBiasAlg.h.

◆ m_nevt

double LArMinBiasAlg::m_nevt[MAX_SYM_CELLS] {}
private

Definition at line 91 of file LArMinBiasAlg.h.

91{};

◆ m_nevt_total

int LArMinBiasAlg::m_nevt_total = 0
private

Definition at line 85 of file LArMinBiasAlg.h.

◆ m_nsymcell

int LArMinBiasAlg::m_nsymcell = 0
private

Definition at line 90 of file LArMinBiasAlg.h.

◆ m_offset

double LArMinBiasAlg::m_offset[MAX_SYM_CELLS] {}
private

Definition at line 100 of file LArMinBiasAlg.h.

100{};

◆ m_phi

float LArMinBiasAlg::m_phi[MAX_SYM_CELLS] {}
private

Definition at line 97 of file LArMinBiasAlg.h.

97{};

◆ m_region

int LArMinBiasAlg::m_region[MAX_SYM_CELLS] {}
private

Definition at line 93 of file LArMinBiasAlg.h.

93{};

◆ m_rms

double LArMinBiasAlg::m_rms[MAX_SYM_CELLS] {}
private

Definition at line 99 of file LArMinBiasAlg.h.

99{};

◆ m_scidtool

ToolHandle<ICaloSuperCellIDTool> LArMinBiasAlg::m_scidtool {this, "CaloSuperCellIDTool", "CaloSuperCellIDTool", "Offline / SuperCell ID mapping tool"}
private

Definition at line 124 of file LArMinBiasAlg.h.

124{this, "CaloSuperCellIDTool", "CaloSuperCellIDTool", "Offline / SuperCell ID mapping tool"};

◆ m_symCellIndex

std::vector<int> LArMinBiasAlg::m_symCellIndex
private

Definition at line 116 of file LArMinBiasAlg.h.

◆ m_thistSvc

ServiceHandle<ITHistSvc> LArMinBiasAlg::m_thistSvc {this,"THistSvc","THistSvc"}
private

Definition at line 83 of file LArMinBiasAlg.h.

83{this,"THistSvc","THistSvc"};

◆ m_tree

TTree* LArMinBiasAlg::m_tree = nullptr
private

Definition at line 84 of file LArMinBiasAlg.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_weight_highPt

double LArMinBiasAlg::m_weight_highPt
private

Definition at line 63 of file LArMinBiasAlg.h.

◆ m_weight_lowPt

double LArMinBiasAlg::m_weight_lowPt
private

Definition at line 62 of file LArMinBiasAlg.h.


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