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

#include <LArCond2NtupleBaseEB.h>

Inheritance diagram for LArCond2NtupleBaseEB:

Public Member Functions

 LArCond2NtupleBaseEB (const std::string &name, ISvcLocator *pSvcLocator)
 ~LArCond2NtupleBaseEB ()=default
StatusCode initialize ()
StatusCode execute ()
bool fillFromIdentifier (const HWIdentifier &id, int C)
const SG::ReadCondHandleKey< LArOnOffIdMapping > & cablingKey () const
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 Types

enum  { NOT_VALID = -999 }

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.

Protected Attributes

Gaudi::Property< bool > m_addBC {this, "AddBadChannelInfo", true, "dump BadChan info ?"}
Gaudi::Property< bool > m_addFEBTemp {this, "AddFEBTempInfo", false, "dump FEB temperature info ?"}
Gaudi::Property< bool > m_isSC {this, "isSC", false, "are we working with SC?"}
Gaudi::Property< bool > m_isFlat {this, "isFlat", false, "are we working with Flat conditions ?"}
Gaudi::Property< bool > m_OffId {this, "OffId", false, "dump also offline ID ?"}
Gaudi::Property< bool > m_addHash {this, "AddHash", false, "add also ID hash info ?"}
Gaudi::Property< bool > m_addCalib {this, "AddCalib", false, "add also calib line info info ?"}
Gaudi::Property< bool > m_realgeom {this, "RealGeometry", false, "add real geometry values ?"}
Gaudi::Property< bool > m_expandId {this,"ExpandId", true ,"add online Id decoded fields ?"}
std::string m_ntpath
std::string m_ntTitle
NTuple::Tuple * m_nt
NTuple::Array< double > m_detector
NTuple::Array< double > m_region
NTuple::Array< double > m_layer
NTuple::Array< double > m_eta
NTuple::Array< double > m_phi
NTuple::Array< double > m_onlChanId
NTuple::Array< double > m_oflChanId
NTuple::Array< double > m_pos_neg
NTuple::Array< double > m_barrel_ec
NTuple::Array< double > m_FT
NTuple::Array< double > m_slot
NTuple::Array< double > m_channel
NTuple::Array< double > m_calibLine
NTuple::Array< double > m_badChanWord
NTuple::Array< double > m_isConnected
NTuple::Array< double > m_chanHash
NTuple::Array< double > m_febHash
NTuple::Array< double > m_oflHash
NTuple::Array< float > m_reta
NTuple::Array< float > m_rphi
NTuple::Array< float > m_FEBTemp1
NTuple::Array< float > m_FEBTemp2
const int m_SC = 34048
StoreGateSvcm_detStore
const LArEM_Base_IDm_emId
const LArHEC_Base_IDm_hecId
const LArFCAL_Base_IDm_fcalId
const LArOnlineID_Basem_onlineId
const CaloCell_Base_IDm_caloId
ToolHandle< ILArFEBTempToolm_FEBTempTool
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingSCKey {this,"CablingSCKey","LArOnOffIdMapSC","SG Key of LArOnOffIdMapping object"}
SG::ReadCondHandleKey< LArBadChannelContm_BCKey {this, "BadChanKey", "LArBadChannel", "SG bad channels key"}
SG::ReadCondHandleKey< LArCalibLineMappingm_calibMapKey {this,"CalibMapKey","LArCalibLineMap","SG Key of calib line mapping object"}
SG::ReadCondHandleKey< LArCalibLineMappingm_calibMapSCKey {this,"CalibMapSCKey","LArCalibIdMapSC","SG Key of calib line mapping object"}
SG::ReadCondHandleKey< CaloDetDescrManagerm_caloMgrKey {this, "CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store"}
SG::ReadCondHandleKey< CaloSuperCellDetDescrManagerm_caloSuperCellMgrKey

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

bool m_initialized
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 32 of file LArCond2NtupleBaseEB.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
NOT_VALID 

Definition at line 61 of file LArCond2NtupleBaseEB.h.

Constructor & Destructor Documentation

◆ LArCond2NtupleBaseEB()

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

Definition at line 15 of file LArCond2NtupleBaseEB.cxx.

16 : AthAlgorithm(name, pSvcLocator)
17 , m_initialized(false)
18 , m_nt(nullptr)
19 , m_detStore(nullptr)
20 , m_emId(nullptr)
21 , m_hecId(nullptr)
22 , m_fcalId(nullptr)
23 , m_onlineId(nullptr)
24 , m_caloId(nullptr)
25 , m_FEBTempTool("LArFEBTempTool")
26{
27}
AthAlgorithm()
Default constructor:
const LArOnlineID_Base * m_onlineId
const LArFCAL_Base_ID * m_fcalId
const CaloCell_Base_ID * m_caloId
const LArHEC_Base_ID * m_hecId
ToolHandle< ILArFEBTempTool > m_FEBTempTool
const LArEM_Base_ID * m_emId

◆ ~LArCond2NtupleBaseEB()

LArCond2NtupleBaseEB::~LArCond2NtupleBaseEB ( )
default

Member Function Documentation

◆ cablingKey()

const SG::ReadCondHandleKey< LArOnOffIdMapping > & LArCond2NtupleBaseEB::cablingKey ( ) const

Definition at line 441 of file LArCond2NtupleBaseEB.cxx.

442{
443 if(m_isSC) return m_cablingSCKey;
444 return m_cablingKey;
445}
Gaudi::Property< bool > m_isSC
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingSCKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey

◆ 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 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ 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 LArCond2NtupleBaseEB::execute ( )
inline

Definition at line 40 of file LArCond2NtupleBaseEB.h.

40{return StatusCode::SUCCESS;}

◆ 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

◆ fillFromIdentifier()

bool LArCond2NtupleBaseEB::fillFromIdentifier ( const HWIdentifier & id,
int C )

Definition at line 280 of file LArCond2NtupleBaseEB.cxx.

280 {
281
282 ATH_MSG_DEBUG("Starting fillFromIdentifier");
283 const LArBadChannelCont *bcCont = nullptr;
284 if ( m_addBC ) {
285 SG::ReadCondHandle<LArBadChannelCont> readHandle{m_BCKey};
286 bcCont =*readHandle;
287 if( !bcCont) {
288 ATH_MSG_WARNING( "Do not have Bad chan container " << m_BCKey.key() );
289 return false;
290 }
291 }
292
293 const LArCalibLineMapping *clCont=nullptr;
294 if(m_addCalib) {
295 if(m_isSC){
296 SG::ReadCondHandle<LArCalibLineMapping> clHdl{m_calibMapSCKey};
297 clCont={*clHdl};
298 }
299 else{
300 SG::ReadCondHandle<LArCalibLineMapping> clHdl{m_calibMapKey};
301 clCont={*clHdl};
302 }
303 if(!clCont) {
304 ATH_MSG_WARNING( "Do not have calib line mapping !!!" );
305 return false;
306 }
307 }
308
309 const LArOnOffIdMapping* cabling=nullptr;
310 if(m_isSC){
311 SG::ReadCondHandle<LArOnOffIdMapping> cablingHdl{m_cablingSCKey};
312 cabling=*cablingHdl;
313 }
314 else{
315 SG::ReadCondHandle<LArOnOffIdMapping> cablingHdl{m_cablingKey};
316 cabling=*cablingHdl;
317 }
318
319 if(!cabling) {
320 ATH_MSG_WARNING( "Do not have cabling !" );
321 return false;
322 }
323
324 m_onlChanId[C] = hwid.get_identifier32().get_compact();
325
326 if(m_expandId) {
327 m_barrel_ec[C] = m_onlineId->barrel_ec(hwid);
328 m_pos_neg[C] = m_onlineId->pos_neg(hwid);
329 m_FT[C] = m_onlineId->feedthrough(hwid);
330 m_slot[C] = m_onlineId->slot(hwid);
331 m_channel[C] = m_onlineId->channel(hwid);
332 }
333
334 if (m_addHash) {
335 m_chanHash[C]=m_onlineId->channel_Hash(hwid);
336 m_febHash[C]=m_onlineId->feb_Hash(m_onlineId->feb_Id(hwid));
337 }
338
339 if(m_addCalib) {
341 const std::vector<HWIdentifier>& calibLineV=clCont->calibSlotLine(hwid);
342 if(!calibLineV.empty()) m_calibLine[C] = m_onlineId->channel(calibLineV[0]);
343 }
344
345
346 if ( m_OffId ) {
351
352 if(m_realgeom){
355 }
359 }
360
361 if (m_addBC) m_badChanWord[C]=0;
362 bool connected=false;
363
364 const CaloDetDescrManager_Base* dd_man = nullptr;
365 if (m_realgeom) {
366 if(m_isSC) {
367 SG::ReadCondHandle<CaloSuperCellDetDescrManager> caloSuperCellMgrHandle{m_caloSuperCellMgrKey};
368 dd_man = *caloSuperCellMgrHandle;
369 }
370 else {
371 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{m_caloMgrKey};
372 dd_man = *caloMgrHandle;
373 }
374 }
375
376 try {
377 if (cabling->isOnlineConnected(hwid)) {
378 Identifier id=cabling->cnvToIdentifier(hwid);
379 if ( m_OffId ) {
380 m_oflChanId[C] = id.get_identifier32().get_compact();
381 if (m_addHash) m_oflHash[C]=m_caloId->calo_cell_hash(id);
382
383 if (dd_man) {
384 const CaloDetDescrElement *elem = dd_man->get_element(id);
385 if(!elem) {
386 ATH_MSG_WARNING("Do not have CDDE for "<<id.getString());
387 } else {
388 m_reta[C] = elem->eta_raw();
389 m_rphi[C] = elem->phi_raw();
390 }
391 }
392
393 if (m_emId->is_lar_em(id)) {
394 m_eta[C] = m_emId->eta(id);
395 m_phi[C] = m_emId->phi(id);
396 m_layer[C] = m_emId->sampling(id);
397 m_region[C] = m_emId->region(id);
398 m_detector[C] = std::abs(m_emId->barrel_ec(id)) - 1; //0-barrel, 1-EMEC-OW, 2-EMEC-IW
399 }
400 else if (m_hecId->is_lar_hec(id)) {
401 m_eta[C] = m_hecId->eta(id);
402 m_phi[C] = m_hecId->phi(id);
403 m_layer[C] = m_hecId->sampling(id);
404 m_region[C] = m_hecId->region(id);
405 m_detector[C] = 3;
406 }
407 else if (m_fcalId->is_lar_fcal(id)) {
408 m_eta[C] = m_fcalId->eta(id);
409 m_phi[C] = m_fcalId->phi(id);
410 m_layer[C] = m_fcalId->module(id);
411 m_region[C] = 0;
412 m_detector[C] = 4;
413 }
414 } // m_OffId
415 connected=true;
416 }//end if is connected
417 }catch (LArID_Exception & except) {}
418
419 //bad-channel word
420 if (m_addBC) m_badChanWord[C]=bcCont->status(hwid).packedData();
421 // FEB temperatures
422 if (m_addFEBTemp) {
423 FEBTemp tv = m_FEBTempTool->getFebTemp(hwid);
424 if( !tv.empty() ) {
425 FEBTemp::const_iterator itb = tv.begin();
426 FEBTemp::const_iterator ite = tv.end();
427 for(;itb!=ite;++itb) {
428 m_FEBTemp1[C] = (*itb).first;
429 m_FEBTemp2[C] = (*itb).second;
430 }
431 }
432 }
433
434 if(m_addCalib) m_isConnected[C] = (long)connected;
435
436 return connected;
437}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
std::vector< std::pair< float, float > > FEBTemp
LArBadXCont< LArBadChannel > LArBadChannelCont
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
BitWord packedData() const
LArBC_t status(const HWIdentifier channel) const
Query the status of a particular channel or FEB This is the main client access method.
const std::vector< HWIdentifier > & calibSlotLine(const HWIdentifier id) const
NTuple::Array< double > m_oflHash
NTuple::Array< double > m_phi
NTuple::Array< double > m_calibLine
NTuple::Array< double > m_chanHash
NTuple::Array< double > m_oflChanId
SG::ReadCondHandleKey< LArCalibLineMapping > m_calibMapSCKey
Gaudi::Property< bool > m_addHash
NTuple::Array< double > m_pos_neg
Gaudi::Property< bool > m_OffId
NTuple::Array< double > m_febHash
NTuple::Array< double > m_eta
NTuple::Array< double > m_layer
Gaudi::Property< bool > m_addBC
Gaudi::Property< bool > m_addCalib
NTuple::Array< float > m_rphi
SG::ReadCondHandleKey< LArBadChannelCont > m_BCKey
NTuple::Array< double > m_barrel_ec
Gaudi::Property< bool > m_expandId
Gaudi::Property< bool > m_addFEBTemp
NTuple::Array< double > m_FT
NTuple::Array< double > m_onlChanId
NTuple::Array< double > m_region
SG::ReadCondHandleKey< CaloSuperCellDetDescrManager > m_caloSuperCellMgrKey
SG::ReadCondHandleKey< LArCalibLineMapping > m_calibMapKey
NTuple::Array< float > m_reta
NTuple::Array< double > m_isConnected
NTuple::Array< double > m_channel
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
NTuple::Array< double > m_slot
NTuple::Array< double > m_badChanWord
NTuple::Array< float > m_FEBTemp2
NTuple::Array< float > m_FEBTemp1
Gaudi::Property< bool > m_realgeom
NTuple::Array< double > m_detector
struct color C

◆ initialize()

StatusCode LArCond2NtupleBaseEB::initialize ( )

do we need both of them at some point when data has both SC and cells?

Definition at line 29 of file LArCond2NtupleBaseEB.cxx.

29 {
30
31 ATH_MSG_DEBUG("Initializing LArCond2Ntuple base class");
32
33 if (m_ntpath.empty() || m_ntTitle.empty()) {
34 ATH_MSG_ERROR( "Need to set variable 'm_ntpath' and 'm_ntTitle' in constructor of deriving class!" );
35 return StatusCode::FAILURE;
36 }
37
38 size_t i=m_ntpath.rfind('/');
39 if (i==std::string::npos) {
40 ATH_MSG_ERROR( "Expected at least on '/' in path " << m_ntpath );
41 return StatusCode::FAILURE;
42 }
43 std::string basepath(m_ntpath.begin(),m_ntpath.begin()+i);
44
45 NTupleFilePtr file1(ntupleSvc(),basepath);
46 if (!file1){
47 ATH_MSG_ERROR( "Could not get NTupleFilePtr with path " << basepath << " failed" );
48 return StatusCode::FAILURE;
49 }
50 NTuplePtr nt(ntupleSvc(),m_ntpath);
51 if (!nt) {
52 nt=ntupleSvc()->book(m_ntpath,CLID_ColumnWiseTuple,m_ntTitle);
53 }
54 if (!nt){
55 ATH_MSG_ERROR( "Booking of NTuple at "<< m_ntpath << " and name " << m_ntTitle << " failed" );
56 return StatusCode::FAILURE;
57 }
58
59 m_nt=nt;
60
61 m_detStore= &(*detStore()); //for backward compatiblity
62
63 const CaloIdManager* calo_id_manager;
64 ATH_CHECK(detStore()->retrieve(calo_id_manager,"CaloIdManager"));
65
68 ATH_CHECK(m_caloMgrKey.initialize(m_realgeom && !m_isSC));
69 if ( m_isSC ){
70 const LArOnline_SuperCellID* ll;
71 sc = detStore()->retrieve(ll, "LArOnline_SuperCellID");
72 if (sc.isFailure()) {
73 ATH_MSG_ERROR( "Could not get LArOnlineID helper !" );
74 return StatusCode::FAILURE;
75 } else {
76 m_onlineId = ll;
77 ATH_MSG_DEBUG("Found the LArOnlineID helper");
78 }
79 m_caloId = calo_id_manager->getCaloCell_SuperCell_ID();
80 } else { // m_isSC
81 const LArOnlineID* ll;
82 sc = detStore()->retrieve(ll, "LArOnlineID");
83 if (sc.isFailure()) {
84 msg(MSG::ERROR) << "Could not get LArOnlineID helper !" << endmsg;
85 return StatusCode::FAILURE;
86 } else {
87 m_onlineId = ll;
88 ATH_MSG_DEBUG(" Found the LArOnlineID helper. ");
89 }
90 m_caloId = calo_id_manager->getCaloCell_ID();
91 } // end of m_isSC if
92
93 m_emId=m_caloId->em_idHelper();
94 m_fcalId=m_caloId->fcal_idHelper();
95 m_hecId=m_caloId->hec_idHelper();
96
97 if (!m_emId) {
98 ATH_MSG_ERROR( "Could not access lar EM ID helper" );
99 return StatusCode::FAILURE;
100 }
101 if (!m_fcalId) {
102 ATH_MSG_ERROR( "Could not access lar FCAL ID helper" );
103 return StatusCode::FAILURE;
104 }
105 if (!m_hecId) {
106 ATH_MSG_ERROR( "Could not access lar HEC ID helper" );
107 return StatusCode::FAILURE;
108 }
109
110
111 if (m_addFEBTemp) {
112 sc = m_FEBTempTool.retrieve();
113 if (sc!=StatusCode::SUCCESS) {
114 ATH_MSG_ERROR( " Can't get FEBTempTool." );
115 return sc;
116 }
117 }
118
119 ATH_CHECK( m_BCKey.initialize() );
121 ATH_CHECK( m_cablingSCKey.initialize(m_isSC) );
122 ATH_CHECK( m_calibMapSCKey.initialize(m_addCalib && m_isSC) );
123 ATH_CHECK( m_cablingKey.initialize(!m_isSC) );
124 ATH_CHECK( m_calibMapKey.initialize(m_addCalib && !m_isSC) );
125
126 //Online-identifier variables
127 sc=nt->addItem("channelId",m_SC,m_onlChanId,0x38000000,0x3A000000);
128 if (sc!=StatusCode::SUCCESS) {
129 ATH_MSG_ERROR( "addItem 'channelId' failed" );
130 return StatusCode::FAILURE;
131 }
132
133 if(m_expandId) {
134
135 sc=nt->addItem("barrel_ec",m_SC,m_barrel_ec,0,1);
136 if (sc!=StatusCode::SUCCESS) {
137 ATH_MSG_ERROR( "addItem 'barrel_ec' failed" );
138 return StatusCode::FAILURE;
139 }
140
141 sc=nt->addItem("pos_neg",m_SC,m_pos_neg,0,1);
142 if (sc!=StatusCode::SUCCESS) {
143 ATH_MSG_ERROR( "addItem 'pos_neg' failed" );
144 return StatusCode::FAILURE;
145 }
146
147 sc=nt->addItem("FT",m_SC,m_FT,0,32);
148 if (sc!=StatusCode::SUCCESS) {
149 ATH_MSG_ERROR( "addItem 'FT' failed" );
150 return StatusCode::FAILURE;
151 }
152
153 sc=nt->addItem("slot",m_SC,m_slot,1,15);
154 if (sc!=StatusCode::SUCCESS) {
155 ATH_MSG_ERROR( "addItem 'slot' failed" );
156 return StatusCode::FAILURE;
157 }
158
159 sc=nt->addItem("channel",m_SC,m_channel,0,127);
160 if (sc!=StatusCode::SUCCESS){
161 ATH_MSG_ERROR( "addItem 'channel' failed" );
162 return StatusCode::FAILURE;
163 }
164 }//m_expandId
165
166 if(m_addCalib) {
167 sc=nt->addItem("calibLine",m_SC,m_calibLine,0,127);
168 if (sc!=StatusCode::SUCCESS) {
169 ATH_MSG_ERROR( "addItem 'calibLine' failed" );
170 return StatusCode::FAILURE;
171 }
172
173
174 sc=nt->addItem("isConnected",m_SC,m_isConnected,0,1);
175 if (sc!=StatusCode::SUCCESS) {
176 ATH_MSG_ERROR( "addItem 'isConnected' failed" );
177 return StatusCode::FAILURE;
178 }
179 }//m_addCalib
180
181
182 if (m_addHash) {
183 sc=nt->addItem("channelHash",m_SC,m_chanHash,0,200000);
184 if (sc!=StatusCode::SUCCESS) {
185 ATH_MSG_ERROR( "addItem 'channelHash' failed" );
186 return StatusCode::FAILURE;
187 }
188
189 sc=nt->addItem("febHash",m_SC,m_febHash,0,2000);
190 if (sc!=StatusCode::SUCCESS) {
191 ATH_MSG_ERROR( "addItem 'febHash' failed" );
192 return StatusCode::FAILURE;
193 }
194
195 if (m_OffId) {
196 sc=m_nt->addItem("oflHash",m_SC,m_oflHash,0,200000);
197 if (sc!=StatusCode::SUCCESS) {
198 ATH_MSG_ERROR( "addItem 'oflHash' failed" );
199 return StatusCode::FAILURE;
200 }
201 }
202 }//m_addHash
203
204
205 //Offline-identifier variables
206 if ( m_OffId ) {
207 sc=nt->addItem("offlineId",m_SC,m_oflChanId,0x20000000,0x40000000);
208 if (sc!=StatusCode::SUCCESS) {
209 ATH_MSG_ERROR( "addItem 'channelId' failed" );
210 return StatusCode::FAILURE;
211 }
212
213 sc=nt->addItem("layer",m_SC,m_layer,0,4);
214 if (sc!=StatusCode::SUCCESS) {
215 ATH_MSG_ERROR( "addItem 'layer' failed" );
216 return StatusCode::FAILURE;
217 }
218
219 if(m_realgeom) {
220 sc=nt->addItem("eta",m_SC,m_reta);
221 if (sc!=StatusCode::SUCCESS) {
222 ATH_MSG_ERROR( "addItem 'eta' failed" );
223 return StatusCode::FAILURE;
224 }
225 sc=nt->addItem("phi",m_SC,m_rphi);
226 if (sc!=StatusCode::SUCCESS) {
227 ATH_MSG_ERROR( "addItem 'phi' failed" );
228 return StatusCode::FAILURE;
229 }
230 }
231 sc=nt->addItem("ieta",m_SC,m_eta,0,510);
232 if (sc!=StatusCode::SUCCESS) {
233 ATH_MSG_ERROR( "addItem 'ieta' failed" );
234 return StatusCode::FAILURE;
235 }
236 sc=nt->addItem("iphi",m_SC,m_phi,0,1023);
237 if (sc!=StatusCode::SUCCESS) {
238 ATH_MSG_ERROR( "addItem 'iphi' failed" );
239 return StatusCode::FAILURE;
240 }
241
242 sc=nt->addItem("region",m_SC,m_region,0,5);
243 if (sc!=StatusCode::SUCCESS) {
244 ATH_MSG_ERROR( "addItem 'region' failed" );
245 return StatusCode::FAILURE;
246 }
247 sc=nt->addItem("detector",m_SC,m_detector,0,2);
248 if (sc!=StatusCode::SUCCESS) {
249 ATH_MSG_ERROR( "addItem 'detector' failed" );
250 return StatusCode::FAILURE;
251
252 }
253 }// m_OffId
254
255 if (m_addBC) {
256 sc=nt->addItem("badChan",m_SC,m_badChanWord);
257 if (sc!=StatusCode::SUCCESS) {
258 ATH_MSG_ERROR( "addItem 'badChan' failed" );
259 return StatusCode::FAILURE;
260 }
261 }
262
263 if (m_addFEBTemp) {
264 sc=nt->addItem("FEBTemp1",m_SC,m_FEBTemp1);
265 if (sc!=StatusCode::SUCCESS) {
266 ATH_MSG_ERROR( "addItem 'FEBTemp1' failed" );
267 return StatusCode::FAILURE;
268 }
269 sc=nt->addItem("FEBTemp2",m_SC,m_FEBTemp2);
270 if (sc!=StatusCode::SUCCESS) {
271 ATH_MSG_ERROR( "addItem 'FEBTemp2' failed" );
272 return StatusCode::FAILURE;
273 }
274 }
275
276 m_initialized=true;
277 return StatusCode::SUCCESS;
278}
#define endmsg
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
static Double_t sc
INTupleSvc * ntupleSvc()
const ServiceHandle< StoreGateSvc > & detStore() const
MsgStream & msg() const
const CaloCell_SuperCell_ID * getCaloCell_SuperCell_ID(void) const
const CaloCell_ID * getCaloCell_ID(void) const
Access to IdHelper.
::StatusCode StatusCode
StatusCode definition for legacy code.
long long ll
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 }

◆ 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}
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

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

Gaudi::Property< bool > LArCond2NtupleBaseEB::m_addBC {this, "AddBadChannelInfo", true, "dump BadChan info ?"}
protected

Definition at line 51 of file LArCond2NtupleBaseEB.h.

51{this, "AddBadChannelInfo", true, "dump BadChan info ?"};

◆ m_addCalib

Gaudi::Property< bool > LArCond2NtupleBaseEB::m_addCalib {this, "AddCalib", false, "add also calib line info info ?"}
protected

Definition at line 57 of file LArCond2NtupleBaseEB.h.

57{this, "AddCalib", false, "add also calib line info info ?"};

◆ m_addFEBTemp

Gaudi::Property< bool > LArCond2NtupleBaseEB::m_addFEBTemp {this, "AddFEBTempInfo", false, "dump FEB temperature info ?"}
protected

Definition at line 52 of file LArCond2NtupleBaseEB.h.

52{this, "AddFEBTempInfo", false, "dump FEB temperature info ?"};

◆ m_addHash

Gaudi::Property< bool > LArCond2NtupleBaseEB::m_addHash {this, "AddHash", false, "add also ID hash info ?"}
protected

Definition at line 56 of file LArCond2NtupleBaseEB.h.

56{this, "AddHash", false, "add also ID hash info ?"};

◆ m_badChanWord

NTuple::Array<double> LArCond2NtupleBaseEB::m_badChanWord
protected

Definition at line 71 of file LArCond2NtupleBaseEB.h.

◆ m_barrel_ec

NTuple::Array<double> LArCond2NtupleBaseEB::m_barrel_ec
protected

Definition at line 70 of file LArCond2NtupleBaseEB.h.

◆ m_BCKey

SG::ReadCondHandleKey<LArBadChannelCont> LArCond2NtupleBaseEB::m_BCKey {this, "BadChanKey", "LArBadChannel", "SG bad channels key"}
protected

Definition at line 93 of file LArCond2NtupleBaseEB.h.

93{this, "BadChanKey", "LArBadChannel", "SG bad channels key"};

◆ m_cablingKey

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

Definition at line 90 of file LArCond2NtupleBaseEB.h.

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

◆ m_cablingSCKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LArCond2NtupleBaseEB::m_cablingSCKey {this,"CablingSCKey","LArOnOffIdMapSC","SG Key of LArOnOffIdMapping object"}
protected

Definition at line 91 of file LArCond2NtupleBaseEB.h.

91{this,"CablingSCKey","LArOnOffIdMapSC","SG Key of LArOnOffIdMapping object"};

◆ m_calibLine

NTuple::Array<double> LArCond2NtupleBaseEB::m_calibLine
protected

Definition at line 71 of file LArCond2NtupleBaseEB.h.

◆ m_calibMapKey

SG::ReadCondHandleKey<LArCalibLineMapping> LArCond2NtupleBaseEB::m_calibMapKey {this,"CalibMapKey","LArCalibLineMap","SG Key of calib line mapping object"}
protected

Definition at line 94 of file LArCond2NtupleBaseEB.h.

94{this,"CalibMapKey","LArCalibLineMap","SG Key of calib line mapping object"};

◆ m_calibMapSCKey

SG::ReadCondHandleKey<LArCalibLineMapping> LArCond2NtupleBaseEB::m_calibMapSCKey {this,"CalibMapSCKey","LArCalibIdMapSC","SG Key of calib line mapping object"}
protected

Definition at line 95 of file LArCond2NtupleBaseEB.h.

95{this,"CalibMapSCKey","LArCalibIdMapSC","SG Key of calib line mapping object"};

◆ m_caloId

const CaloCell_Base_ID* LArCond2NtupleBaseEB::m_caloId
protected

Definition at line 87 of file LArCond2NtupleBaseEB.h.

◆ m_caloMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> LArCond2NtupleBaseEB::m_caloMgrKey {this, "CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store"}
protected

Definition at line 97 of file LArCond2NtupleBaseEB.h.

97{this, "CaloDetDescrManager", "CaloDetDescrManager", "SG Key for CaloDetDescrManager in the Condition Store"};

◆ m_caloSuperCellMgrKey

SG::ReadCondHandleKey<CaloSuperCellDetDescrManager> LArCond2NtupleBaseEB::m_caloSuperCellMgrKey
protected
Initial value:
{this
, "CaloSuperCellDetDescrManager"
, "CaloSuperCellDetDescrManager"
, "SG key of the resulting CaloSuperCellDetDescrManager" }

Definition at line 98 of file LArCond2NtupleBaseEB.h.

98 {this
99 , "CaloSuperCellDetDescrManager"
100 , "CaloSuperCellDetDescrManager"
101 , "SG key of the resulting CaloSuperCellDetDescrManager" };

◆ m_chanHash

NTuple::Array<double> LArCond2NtupleBaseEB::m_chanHash
protected

Definition at line 73 of file LArCond2NtupleBaseEB.h.

◆ m_channel

NTuple::Array<double> LArCond2NtupleBaseEB::m_channel
protected

Definition at line 70 of file LArCond2NtupleBaseEB.h.

◆ m_detector

NTuple::Array<double> LArCond2NtupleBaseEB::m_detector
protected

Definition at line 69 of file LArCond2NtupleBaseEB.h.

◆ m_detStore

StoreGateSvc* LArCond2NtupleBaseEB::m_detStore
protected

Definition at line 82 of file LArCond2NtupleBaseEB.h.

◆ m_emId

const LArEM_Base_ID* LArCond2NtupleBaseEB::m_emId
protected

Definition at line 83 of file LArCond2NtupleBaseEB.h.

◆ m_eta

NTuple::Array<double> LArCond2NtupleBaseEB::m_eta
protected

Definition at line 69 of file LArCond2NtupleBaseEB.h.

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

Gaudi::Property< bool > LArCond2NtupleBaseEB::m_expandId {this,"ExpandId", true ,"add online Id decoded fields ?"}
protected

Definition at line 59 of file LArCond2NtupleBaseEB.h.

59{this,"ExpandId", true ,"add online Id decoded fields ?"};

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_fcalId

const LArFCAL_Base_ID* LArCond2NtupleBaseEB::m_fcalId
protected

Definition at line 85 of file LArCond2NtupleBaseEB.h.

◆ m_febHash

NTuple::Array<double> LArCond2NtupleBaseEB::m_febHash
protected

Definition at line 73 of file LArCond2NtupleBaseEB.h.

◆ m_FEBTemp1

NTuple::Array<float> LArCond2NtupleBaseEB::m_FEBTemp1
protected

Definition at line 76 of file LArCond2NtupleBaseEB.h.

◆ m_FEBTemp2

NTuple::Array<float> LArCond2NtupleBaseEB::m_FEBTemp2
protected

Definition at line 76 of file LArCond2NtupleBaseEB.h.

◆ m_FEBTempTool

ToolHandle<ILArFEBTempTool> LArCond2NtupleBaseEB::m_FEBTempTool
protected

Definition at line 88 of file LArCond2NtupleBaseEB.h.

◆ m_FT

NTuple::Array<double> LArCond2NtupleBaseEB::m_FT
protected

Definition at line 70 of file LArCond2NtupleBaseEB.h.

◆ m_hecId

const LArHEC_Base_ID* LArCond2NtupleBaseEB::m_hecId
protected

Definition at line 84 of file LArCond2NtupleBaseEB.h.

◆ m_initialized

bool LArCond2NtupleBaseEB::m_initialized
private

Definition at line 47 of file LArCond2NtupleBaseEB.h.

◆ m_isConnected

NTuple::Array<double> LArCond2NtupleBaseEB::m_isConnected
protected

Definition at line 72 of file LArCond2NtupleBaseEB.h.

◆ m_isFlat

Gaudi::Property< bool > LArCond2NtupleBaseEB::m_isFlat {this, "isFlat", false, "are we working with Flat conditions ?"}
protected

Definition at line 54 of file LArCond2NtupleBaseEB.h.

54{this, "isFlat", false, "are we working with Flat conditions ?"};

◆ m_isSC

Gaudi::Property< bool > LArCond2NtupleBaseEB::m_isSC {this, "isSC", false, "are we working with SC?"}
protected

Definition at line 53 of file LArCond2NtupleBaseEB.h.

53{this, "isSC", false, "are we working with SC?"};

◆ m_layer

NTuple::Array<double> LArCond2NtupleBaseEB::m_layer
protected

Definition at line 69 of file LArCond2NtupleBaseEB.h.

◆ m_nt

NTuple::Tuple* LArCond2NtupleBaseEB::m_nt
protected

Definition at line 66 of file LArCond2NtupleBaseEB.h.

◆ m_ntpath

std::string LArCond2NtupleBaseEB::m_ntpath
protected

Definition at line 63 of file LArCond2NtupleBaseEB.h.

◆ m_ntTitle

std::string LArCond2NtupleBaseEB::m_ntTitle
protected

Definition at line 63 of file LArCond2NtupleBaseEB.h.

◆ m_OffId

Gaudi::Property< bool > LArCond2NtupleBaseEB::m_OffId {this, "OffId", false, "dump also offline ID ?"}
protected

Definition at line 55 of file LArCond2NtupleBaseEB.h.

55{this, "OffId", false, "dump also offline ID ?"};

◆ m_oflChanId

NTuple::Array<double> LArCond2NtupleBaseEB::m_oflChanId
protected

Definition at line 69 of file LArCond2NtupleBaseEB.h.

◆ m_oflHash

NTuple::Array<double> LArCond2NtupleBaseEB::m_oflHash
protected

Definition at line 73 of file LArCond2NtupleBaseEB.h.

◆ m_onlChanId

NTuple::Array<double> LArCond2NtupleBaseEB::m_onlChanId
protected

Definition at line 69 of file LArCond2NtupleBaseEB.h.

◆ m_onlineId

const LArOnlineID_Base* LArCond2NtupleBaseEB::m_onlineId
protected

Definition at line 86 of file LArCond2NtupleBaseEB.h.

◆ m_phi

NTuple::Array<double> LArCond2NtupleBaseEB::m_phi
protected

Definition at line 69 of file LArCond2NtupleBaseEB.h.

◆ m_pos_neg

NTuple::Array<double> LArCond2NtupleBaseEB::m_pos_neg
protected

Definition at line 70 of file LArCond2NtupleBaseEB.h.

◆ m_realgeom

Gaudi::Property< bool > LArCond2NtupleBaseEB::m_realgeom {this, "RealGeometry", false, "add real geometry values ?"}
protected

Definition at line 58 of file LArCond2NtupleBaseEB.h.

58{this, "RealGeometry", false, "add real geometry values ?"};

◆ m_region

NTuple::Array<double> LArCond2NtupleBaseEB::m_region
protected

Definition at line 69 of file LArCond2NtupleBaseEB.h.

◆ m_reta

NTuple::Array<float> LArCond2NtupleBaseEB::m_reta
protected

Definition at line 75 of file LArCond2NtupleBaseEB.h.

◆ m_rphi

NTuple::Array<float> LArCond2NtupleBaseEB::m_rphi
protected

Definition at line 75 of file LArCond2NtupleBaseEB.h.

◆ m_SC

const int LArCond2NtupleBaseEB::m_SC = 34048
protected

Definition at line 80 of file LArCond2NtupleBaseEB.h.

◆ m_slot

NTuple::Array<double> LArCond2NtupleBaseEB::m_slot
protected

Definition at line 70 of file LArCond2NtupleBaseEB.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.


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