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

#include <LArPulseShape.h>

Inheritance diagram for LArPulseShape:

Public Member Functions

virtual ~LArPulseShape ()
virtual StatusCode initialize () override
virtual StatusCode execute (const EventContext &ctx) override
 Execute method.
virtual StatusCode stop () override
std::map< std::string, TProfile * >::const_iterator TEffbegin () const
std::map< std::string, TProfile * >::const_iterator TEffend () const
std::map< int, TProfile * >::const_iterator TCellbegin () const
std::map< int, TProfile * >::const_iterator TCellend () const
std::map< std::string, TH1 * >::const_iterator THbegin () const
std::map< std::string, TH1 * >::const_iterator THend () const
 AthAlgorithm (const std::string &name, ISvcLocator *pSvcLocator)
 Constructor.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
 Get filter decision:
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 Set filter decision:
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

virtual bool isReEntrant () const override final
 Legacy algorithms are not thread-safe.
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

bool m_addBC = false
bool m_addFEBTemp = false
std::string m_ntpath = "/NTUPLES/PULSE/"
StringProperty m_ntTitle { this, "NtupleTitle", "Pulse shape" }
NTuple::Tuple * m_nt = nullptr
NTuple::Item< long > m_detector
NTuple::Item< long > m_region
NTuple::Item< long > m_layer
NTuple::Item< long > m_eta
NTuple::Item< long > m_phi
NTuple::Item< long > m_onlChanId
NTuple::Item< long > m_oflChanId
NTuple::Item< long > m_pos_neg
NTuple::Item< long > m_barrel_ec
NTuple::Item< long > m_FT
NTuple::Item< long > m_slot
NTuple::Item< long > m_channel
NTuple::Item< long > m_calibLine
NTuple::Item< long > m_badChanWord
NTuple::Item< long > m_isConnected
NTuple::Item< long > m_chanHash
NTuple::Item< long > m_febHash
NTuple::Item< long > m_oflHash
NTuple::Item< float > m_FEBTemp1
NTuple::Item< float > m_FEBTemp2
const LArEM_Base_IDm_emId = nullptr
const LArHEC_Base_IDm_hecId = nullptr
const LArFCAL_Base_IDm_fcalId = nullptr
const LArOnlineID_Basem_onlineId = nullptr
const CaloCell_IDm_caloId = nullptr
bool m_isSC = false
bool m_isFlat = false
bool m_addHash = false

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

void addHistogram (TH1 *h)
void addHistogram (TProfile *h)
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 = false
std::string m_folder
const CaloCell_IDm_calo_id = nullptr
NTuple::Item< short > m_peakSample
NTuple::Item< short > m_useHgIntercept
NTuple::Item< short > m_useMgIntercept
NTuple::Item< short > m_useLgIntercept
PublicToolHandle< Trig::TrigDecisionToolm_trigDec {this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool"}
SG::ReadCondHandleKey< LuminosityCondDatam_lumiDataKey {this,"LumiKey", "LuminosityCondData","SG Key of LuminosityCondData object"}
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
SG::ReadCondHandleKey< LArBadChannelContm_BCKey {this, "BadChanKey", "LArBadChannel", "SG bad channels key"}
std::map< std::string, TProfile * > m_effhistos
std::map< int, TProfile * > m_cellHistos
TProfile * m_TProfpulse_diff = nullptr
std::map< std::string, TH1 * > m_histos
TH1D * m_BCID = nullptr
TH1D * m_diffBCID = nullptr
TH1D * m_actualInt = nullptr
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
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 39 of file LArPulseShape.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::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 92 of file LArPulseShape.h.

92{NOT_VALID = -999};

Constructor & Destructor Documentation

◆ ~LArPulseShape()

LArPulseShape::~LArPulseShape ( )
virtualdefault

Member Function Documentation

◆ addHistogram() [1/2]

void LArPulseShape::addHistogram ( TH1 * h)
inlineprivate

Definition at line 81 of file LArPulseShape.h.

81 {
82 std::string name = h->GetName();
83 m_histos.insert( std::map<std::string, TH1*>::value_type( name, h) );
84 }
std::map< std::string, TH1 * > m_histos

◆ addHistogram() [2/2]

void LArPulseShape::addHistogram ( TProfile * h)
inlineprivate

Definition at line 85 of file LArPulseShape.h.

85 {
86 std::string name = h->GetName();
87 m_effhistos.insert( std::map<std::string, TProfile*>::value_type( name, h) );
88 }
std::map< std::string, TProfile * > m_effhistos

◆ AthAlgorithm()

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

Constructor.

Definition at line 31 of file AthAlgorithm.cxx.

11 :
12 AthCommonAlgorithm<Gaudi::Algorithm>( name, pSvcLocator )
13{
14 // default cardinality for non-reentrant algorithms
15 setProperty( "Cardinality", 1 ).orThrow("Unable to set property 'Cardinality'", name);
16}
void setProperty(columnar::PythonToolHandle &self, const std::string &key, nb::object value)
AthCommonAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::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< Gaudi::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< Gaudi::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< Gaudi::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 LArPulseShape::execute ( const EventContext & ctx)
overridevirtual

Execute method.

Implements AthAlgorithm.

Definition at line 375 of file LArPulseShape.cxx.

375 {
376
377
378 short int bunchStr[8] = {1, 101, 201, 301, 1786, 1886, 1986, 2086}; //move to JO
379
380 std::vector<std::string> chains = m_trigDec->getListOfTriggers();
381 std::vector<std::string> myChains;
382
383 SG::ReadCondHandle<LuminosityCondData> lumi (m_lumiDataKey, ctx);
384
385 if (m_trigDec->isPassed("L1_RD1_BGRP10")) {
386
387 int bunchId = ctx.eventID().bunch_crossing_id();
388
389 int mindist = 3564;
390 int closestBC = 0;
391 for (int i = 0; i < 8; i++) {
392 if ( (fabs(bunchId - bunchStr[i]) < mindist) || (fabs(bunchId - (bunchStr[i]+3564)) < mindist)) {
393 mindist = std::min(fabs(bunchId - bunchStr[i]),(fabs(bunchId - (bunchStr[i]+3564))));
394 closestBC = bunchStr[i];
395 }
396 }
397 if (fabs(bunchId - closestBC) < (fabs(bunchId - (closestBC+3564)))) {
398 mindist = bunchId - closestBC;
399 } else {
400 mindist = bunchId - (closestBC+3564);
401 }
402
403 //std::cout << "bunchID = " << bunchId<< ", mindist = " << mindist << ", closestBC = " << closestBC << std::endl;
404 m_BCID->Fill(bunchId);
405 m_diffBCID->Fill(mindist);
406
407 m_actualInt->Fill(lumi->lbLuminosityPerBCIDVector().at(closestBC));
408
409 const LArDigitContainer* larDigitContainer;
410 ATH_CHECK( evtStore()->retrieve(larDigitContainer, "FREE") );
411 const ILArPedestal* larPedestal = nullptr;
412 ATH_CHECK( detStore()->retrieve(larPedestal) );
413 if (larDigitContainer->empty()) {
414 ATH_MSG_WARNING ( "LArDigitContainer with key= is empty!" );
415
416 return StatusCode::SUCCESS;
417 }
418
419 SG::ReadCondHandle<LArOnOffIdMapping> larCablingHdl(m_cablingKey, ctx);
420 const LArOnOffIdMapping* cabling=*larCablingHdl;
421 if(!cabling) {
422 ATH_MSG_ERROR("Could not get LArOnOffIdMapping !!");
423 return StatusCode::FAILURE;
424 }
425 for (LArDigitContainer::const_iterator digit = larDigitContainer->begin(); digit != larDigitContainer->end(); ++digit) {
426
427 HWIdentifier channelID = (*digit)->hardwareID();
428
429 if (cabling->isOnlineConnected(channelID)) {
430
431 CaloGain::CaloGain gain=(*digit)->gain();
432
433 float pedestal = larPedestal->pedestal(channelID, gain);
434
435 int OffId_conv = (int)(cabling->cnvToIdentifier(channelID).get_identifier32().get_compact());
436
437 const std::vector<short>& samples = (*digit)->samples();
438
439 int isample=0;
440 for (short sample : samples) {
441 isample++;
442 if (lumi->lbLuminosityPerBCIDVector().at(closestBC)!=0){
443 m_TProfpulse_diff->Fill(mindist+isample, (sample-pedestal)/lumi->lbLuminosityPerBCIDVector().at(closestBC));//+0,1,2,3
444 auto h_it = m_cellHistos.find(OffId_conv);
445 if (h_it != m_cellHistos.end()) {
446 h_it->second->Fill(mindist+isample, (sample-pedestal)/lumi->lbLuminosityPerBCIDVector().at(closestBC));
447 }
448 }
449 } //loop over samples
450 }
451 }
452
453 }//trigger
454 return StatusCode::SUCCESS;
455}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
ServiceHandle< StoreGateSvc > & evtStore()
const ServiceHandle< StoreGateSvc > & detStore() const
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
bool empty() const noexcept
Returns true if the collection is empty.
virtual float pedestal(const HWIdentifier &id, int gain) const =0
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
std::map< int, TProfile * > m_cellHistos
SG::ReadCondHandleKey< LuminosityCondData > m_lumiDataKey
TProfile * m_TProfpulse_diff
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::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 & AthCommonAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 89 of file AthCommonAlgorithm.cxx.

54{
55 // If we didn't find any symlinks to add, just return the collection
56 // from the base class. Otherwise, return the extended collection.
57 if (!m_extendedExtraObjects.empty()) {
59 }
61}
Common base class for algorithms.

◆ filterPassed()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Get filter decision:

Definition at line 93 of file AthCommonAlgorithm.h.

93 {
94 return execState( ctx ).filterPassed();
95 }
virtual bool filterPassed(const EventContext &ctx) const
Get filter decision:

◆ initialize()

StatusCode LArPulseShape::initialize ( )
overridevirtual

Definition at line 21 of file LArPulseShape.cxx.

21 {
22 const CaloIdManager* caloIdMgr{nullptr};
23 ATH_CHECK( detStore()->retrieve( caloIdMgr ) );
24 m_calo_id = caloIdMgr->getCaloCell_ID();
25
26 ATH_CHECK( m_lumiDataKey.initialize() );
27
28 ATH_CHECK( m_cablingKey.initialize() );
29
30 ATH_CHECK( m_BCKey.initialize() );
31
32 ATH_CHECK( m_trigDec.retrieve() );
33
34 if (m_ntpath.empty() || m_ntTitle.empty()) {
35 ATH_MSG_ERROR( "Need to set variable 'm_ntpath' and 'm_ntTitle' in constructor of deriving class!" );
36 return StatusCode::FAILURE;
37 }
38
39 size_t i=m_ntpath.rfind('/');
40 if (i==std::string::npos) {
41 ATH_MSG_ERROR( "Expected at least on '/' in path " << m_ntpath );
42 return StatusCode::FAILURE;
43 }
44 std::string basepath(m_ntpath.begin(),m_ntpath.begin()+i);
45
46 NTupleFilePtr PULSE(ntupleSvc(),basepath);
47 if (!PULSE){
48 ATH_MSG_ERROR( "Could not get NTupleFilePtr with path " << basepath << " failed" );
49 return StatusCode::FAILURE;
50 }
51 NTuplePtr nt(ntupleSvc(),m_ntpath);
52 if (!nt) {
53 nt=ntupleSvc()->book(m_ntpath,CLID_ColumnWiseTuple,m_ntTitle);
54 }
55 if (!nt){
56 ATH_MSG_ERROR( "Booking of NTuple at "<< m_ntpath << " and name " << m_ntTitle << " failed" );
57 return StatusCode::FAILURE;
58 }
59
60 m_nt=nt;
61
62 int ncell=m_calo_id->calo_cell_hash_max();
63
64 for (int i=0;i<ncell;i++) { // loop over cells to book profiles
65
66 IdentifierHash idHash=i;
67 Identifier id=m_calo_id->cell_id(idHash);
68
69 const int sampl = m_calo_id->sampling( id );
70 int OffId = (int)(id.get_identifier32().get_compact());
71 std::string idoff_str = std::to_string(OffId);
72 const char* id_char = (idoff_str).c_str();
73
74 if (m_calo_id->is_em(id)) { // EM calo
75 if (m_calo_id->is_em_barrel(id)) { //EMB
76 if (m_calo_id->pos_neg(id) > 0 ) { //A-side
77
78 SmartDataPtr<NTuple::Directory> dir_EMBA(ntupleSvc(),"/NTUPLES/PULSE/EMBA");
79 if ( !dir_EMBA ) dir_EMBA = ntupleSvc()->createDirectory(PULSE,"EMBA");
80 if ( !dir_EMBA ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
81
82 if (sampl==0){ // if it's EMBA Presampler
83 SmartDataPtr<NTuple::Directory> dir_EMBA_0(ntupleSvc(),"/NTUPLES/PULSE/EMBA/Presampler");
84 if ( !dir_EMBA_0 ) dir_EMBA_0 = ntupleSvc()->createDirectory(PULSE,"EMBA/Presampler");
85 if ( !dir_EMBA_0 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
86 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
87 }
88
89 if (sampl==1){ // if it's EMBA Sampling1
90 SmartDataPtr<NTuple::Directory> dir_EMBA_1(ntupleSvc(),"/NTUPLES/PULSE/EMBA/Sampling1");
91 if ( !dir_EMBA_1 ) dir_EMBA_1 = ntupleSvc()->createDirectory(PULSE,"EMBA/Sampling1");
92 if ( !dir_EMBA_1 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
93 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
94 }
95
96 if (sampl==2){ // if it's EMBA Sampling2
97 SmartDataPtr<NTuple::Directory> dir_EMBA_2(ntupleSvc(),"/NTUPLES/PULSE/EMBA/Sampling2");
98 if ( !dir_EMBA_2 ) dir_EMBA_2 = ntupleSvc()->createDirectory(PULSE,"EMBA/Sampling2");
99 if ( !dir_EMBA_2 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
100 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
101 }
102
103 if (sampl==3){ // if it's EMBA Sampling3
104 SmartDataPtr<NTuple::Directory> dir_EMBA_3(ntupleSvc(),"/NTUPLES/PULSE/EMBA/Sampling3");
105 if ( !dir_EMBA_3 ) dir_EMBA_3 = ntupleSvc()->createDirectory(PULSE,"EMBA/Sampling3");
106 if ( !dir_EMBA_3 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
107 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
108 }
109
110 } else { // C-side
111
112 SmartDataPtr<NTuple::Directory> dir_EMBC(ntupleSvc(),"/NTUPLES/PULSE/EMBC");
113 if ( !dir_EMBC ) dir_EMBC = ntupleSvc()->createDirectory(PULSE,"EMBC");
114 if ( !dir_EMBC ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
115 if (sampl==0){ // if it's EMBC Presampler
116 SmartDataPtr<NTuple::Directory> dir_EMBC_0(ntupleSvc(),"/NTUPLES/PULSE/EMBC/Presampler");
117 if ( !dir_EMBC_0 ) dir_EMBC_0 = ntupleSvc()->createDirectory(PULSE,"EMBC/Presampler");
118 if ( !dir_EMBC_0 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
119 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
120 }
121
122 if (sampl==1){ // if it's EMBC Sampling1
123 SmartDataPtr<NTuple::Directory> dir_EMBC_1(ntupleSvc(),"/NTUPLES/PULSE/EMBC/Sampling1");
124 if ( !dir_EMBC_1 ) dir_EMBC_1 = ntupleSvc()->createDirectory(PULSE,"EMBC/Sampling1");
125 if ( !dir_EMBC_1 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
126 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
127 }
128
129 if (sampl==2){ // if it's EMBC Sampling2
130 SmartDataPtr<NTuple::Directory> dir_EMBC_2(ntupleSvc(),"/NTUPLES/PULSE/EMBC/Sampling2");
131 if ( !dir_EMBC_2 ) dir_EMBC_2 = ntupleSvc()->createDirectory(PULSE,"EMBC/Sampling2");
132 if ( !dir_EMBC_2 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
133 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
134 }
135
136 if (sampl==3){ // if it's EMBC Sampling3
137 SmartDataPtr<NTuple::Directory> dir_EMBC_3(ntupleSvc(),"/NTUPLES/PULSE/EMBC/Sampling3");
138 if ( !dir_EMBC_3 ) dir_EMBC_3 = ntupleSvc()->createDirectory(PULSE,"EMBC/Sampling3");
139 if ( !dir_EMBC_3 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
140 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
141 }
142
143 }
144
145 } // end EMB
146
147 if( m_calo_id->is_em_endcap(id) ){ //EMEC
148
149 if (m_calo_id->pos_neg(id) > 0 ) { //A-side
150
151 SmartDataPtr<NTuple::Directory> dir_EMECA(ntupleSvc(),"/NTUPLES/PULSE/EMECA");
152 if ( !dir_EMECA ) dir_EMECA = ntupleSvc()->createDirectory(PULSE,"EMECA");
153 if ( !dir_EMECA ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
154
155 if (sampl==0){ // if it's EMECA Presampler
156 SmartDataPtr<NTuple::Directory> dir_EMECA_0(ntupleSvc(),"/NTUPLES/PULSE/EMECA/Presampler");
157 if ( !dir_EMECA_0 ) dir_EMECA_0 = ntupleSvc()->createDirectory(PULSE,"EMECA/Presampler");
158 if ( !dir_EMECA_0 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
159
160 //stopper++;
161 //if (stopper<=10)
162 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
163 }
164
165 if (sampl==1){ // if it's EMECA Sampling1
166 SmartDataPtr<NTuple::Directory> dir_EMECA_1(ntupleSvc(),"/NTUPLES/PULSE/EMECA/Sampling1");
167 if ( !dir_EMECA_1 ) dir_EMECA_1 = ntupleSvc()->createDirectory(PULSE,"EMECA/Sampling1");
168 if ( !dir_EMECA_1 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
169 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
170 }
171
172 if (sampl==2){ // if it's EMECA Sampling2
173 SmartDataPtr<NTuple::Directory> dir_EMECA_2(ntupleSvc(),"/NTUPLES/PULSE/EMECA/Sampling2");
174 if ( !dir_EMECA_2 ) dir_EMECA_2 = ntupleSvc()->createDirectory(PULSE,"EMECA/Sampling2");
175 if ( !dir_EMECA_2 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
176 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
177 }
178
179 if (sampl==3){ // if it's EMECA Sampling3
180 SmartDataPtr<NTuple::Directory> dir_EMECA_3(ntupleSvc(),"/NTUPLES/PULSE/EMECA/Sampling3");
181 if ( !dir_EMECA_3 ) dir_EMECA_3 = ntupleSvc()->createDirectory(PULSE,"EMECA/Sampling3");
182 if ( !dir_EMECA_3 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
183 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
184 }
185
186 } else { // C-side
187
188 SmartDataPtr<NTuple::Directory> dir_EMECC(ntupleSvc(),"/NTUPLES/PULSE/EMECC");
189 if ( !dir_EMECC ) dir_EMECC = ntupleSvc()->createDirectory(PULSE,"EMECC");
190 if ( !dir_EMECC ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
191 if (sampl==0){ // if it's EMECC Presampler
192 SmartDataPtr<NTuple::Directory> dir_EMECC_0(ntupleSvc(),"/NTUPLES/PULSE/EMECC/Presampler");
193 if ( !dir_EMECC_0 ) dir_EMECC_0 = ntupleSvc()->createDirectory(PULSE,"EMECC/Presampler");
194 if ( !dir_EMECC_0 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
195 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
196 }
197
198 if (sampl==1){ // if it's EMECC Sampling1
199 SmartDataPtr<NTuple::Directory> dir_EMECC_1(ntupleSvc(),"/NTUPLES/PULSE/EMECC/Sampling1");
200 if ( !dir_EMECC_1 ) dir_EMECC_1 = ntupleSvc()->createDirectory(PULSE,"EMECC/Sampling1");
201 if ( !dir_EMECC_1 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
202 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
203 }
204
205 if (sampl==2){ // if it's EMECC Sampling2
206 SmartDataPtr<NTuple::Directory> dir_EMECC_2(ntupleSvc(),"/NTUPLES/PULSE/EMECC/Sampling2");
207 if ( !dir_EMECC_2 ) dir_EMECC_2 = ntupleSvc()->createDirectory(PULSE,"EMECC/Sampling2");
208 if ( !dir_EMECC_2 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
209 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
210 }
211
212 if (sampl==3){ // if it's EMECC Sampling3
213 SmartDataPtr<NTuple::Directory> dir_EMECC_3(ntupleSvc(),"/NTUPLES/PULSE/EMECC/Sampling3");
214 if ( !dir_EMECC_3 ) dir_EMECC_3 = ntupleSvc()->createDirectory(PULSE,"EMECC/Sampling3");
215 if ( !dir_EMECC_3 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
216 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
217 }
218
219 }
220 } // end EMEC
221
222
223
224 } // end EM calo
225
226 if( m_calo_id->is_hec(id) ){ //HEC
227
228 if (m_calo_id->pos_neg(id) > 0 ) { //A-side
229
230 SmartDataPtr<NTuple::Directory> dir_HECA(ntupleSvc(),"/NTUPLES/PULSE/HECA");
231 if ( !dir_HECA ) dir_HECA = ntupleSvc()->createDirectory(PULSE,"HECA");
232 if ( !dir_HECA ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
233
234 if (sampl==0){
235 SmartDataPtr<NTuple::Directory> dir_HECA_0(ntupleSvc(),"/NTUPLES/PULSE/HECA/Layer1");
236 if ( !dir_HECA_0 ) dir_HECA_0 = ntupleSvc()->createDirectory(PULSE,"HECA/Layer1");
237 if ( !dir_HECA_0 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
238 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
239 }
240
241 if (sampl==1){
242 SmartDataPtr<NTuple::Directory> dir_HECA_1(ntupleSvc(),"/NTUPLES/PULSE/HECA/Layer2");
243 if ( !dir_HECA_1 ) dir_HECA_1 = ntupleSvc()->createDirectory(PULSE,"HECA/Layer2");
244 if ( !dir_HECA_1 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
245 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
246 }
247
248 if (sampl==2){
249 SmartDataPtr<NTuple::Directory> dir_HECA_2(ntupleSvc(),"/NTUPLES/PULSE/HECA/Layer3");
250 if ( !dir_HECA_2 ) dir_HECA_2 = ntupleSvc()->createDirectory(PULSE,"HECA/Layer3");
251 if ( !dir_HECA_2 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
252 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
253 }
254
255 if (sampl==3){
256 SmartDataPtr<NTuple::Directory> dir_HECA_3(ntupleSvc(),"/NTUPLES/PULSE/HECA/Layer4");
257 if ( !dir_HECA_3 ) dir_HECA_3 = ntupleSvc()->createDirectory(PULSE,"HECA/Layer4");
258 if ( !dir_HECA_3 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
259 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
260 }
261
262 } else { // C-side
263
264 SmartDataPtr<NTuple::Directory> dir_HECC(ntupleSvc(),"/NTUPLES/PULSE/HECC");
265 if ( !dir_HECC ) dir_HECC = ntupleSvc()->createDirectory(PULSE,"HECC");
266 if ( !dir_HECC ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
267 if (sampl==0){
268 SmartDataPtr<NTuple::Directory> dir_HECC_0(ntupleSvc(),"/NTUPLES/PULSE/HECC/Layer1");
269 if ( !dir_HECC_0 ) dir_HECC_0 = ntupleSvc()->createDirectory(PULSE,"HECC/Layer1");
270 if ( !dir_HECC_0 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
271 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
272 }
273
274 if (sampl==1){
275 SmartDataPtr<NTuple::Directory> dir_HECC_1(ntupleSvc(),"/NTUPLES/PULSE/HECC/Layer2");
276 if ( !dir_HECC_1 ) dir_HECC_1 = ntupleSvc()->createDirectory(PULSE,"HECC/Layer2");
277 if ( !dir_HECC_1 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
278 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
279 }
280
281 if (sampl==2){
282 SmartDataPtr<NTuple::Directory> dir_HECC_2(ntupleSvc(),"/NTUPLES/PULSE/HECC/Layer3");
283 if ( !dir_HECC_2 ) dir_HECC_2 = ntupleSvc()->createDirectory(PULSE,"HECC/Layer3");
284 if ( !dir_HECC_2 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
285 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
286 }
287
288 if (sampl==3){
289 SmartDataPtr<NTuple::Directory> dir_HECC_3(ntupleSvc(),"/NTUPLES/PULSE/HECC/Layer4");
290 if ( !dir_HECC_3 ) dir_HECC_3 = ntupleSvc()->createDirectory(PULSE,"HECC/Layer4");
291 if ( !dir_HECC_3 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
292 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
293 }
294
295 }
296 } // end HEC
297 if( m_calo_id->is_fcal(id) ){ //FCAL
298
299 if (m_calo_id->pos_neg(id) > 0 ) { //A-side
300
301 SmartDataPtr<NTuple::Directory> dir_FCALA(ntupleSvc(),"/NTUPLES/PULSE/FCALA");
302 if ( !dir_FCALA ) dir_FCALA = ntupleSvc()->createDirectory(PULSE,"FCALA");
303 if ( !dir_FCALA ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
304
305 if (sampl==1){ // if it's FCALA Sampling1
306 SmartDataPtr<NTuple::Directory> dir_FCALA_1(ntupleSvc(),"/NTUPLES/PULSE/FCALA/Sampling1");
307 if ( !dir_FCALA_1 ) dir_FCALA_1 = ntupleSvc()->createDirectory(PULSE,"FCALA/Sampling1");
308 if ( !dir_FCALA_1 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
309 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
310 }
311
312 if (sampl==2){ // if it's FCALA Sampling2
313 SmartDataPtr<NTuple::Directory> dir_FCALA_2(ntupleSvc(),"/NTUPLES/PULSE/FCALA/Sampling2");
314 if ( !dir_FCALA_2 ) dir_FCALA_2 = ntupleSvc()->createDirectory(PULSE,"FCALA/Sampling2");
315 if ( !dir_FCALA_2 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
316 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
317 }
318
319 if (sampl==3){ // if it's FCALA Sampling3
320 SmartDataPtr<NTuple::Directory> dir_FCALA_3(ntupleSvc(),"/NTUPLES/PULSE/FCALA/Sampling3");
321 if ( !dir_FCALA_3 ) dir_FCALA_3 = ntupleSvc()->createDirectory(PULSE,"FCALA/Sampling3");
322 if ( !dir_FCALA_3 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
323 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
324 }
325
326 } else { // C-side
327
328 SmartDataPtr<NTuple::Directory> dir_FCALC(ntupleSvc(),"/NTUPLES/PULSE/FCALC");
329 if ( !dir_FCALC ) dir_FCALC = ntupleSvc()->createDirectory(PULSE,"FCALC");
330 if ( !dir_FCALC ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
331
332 if (sampl==1){ // if it's FCALC Sampling1
333 SmartDataPtr<NTuple::Directory> dir_FCALC_1(ntupleSvc(),"/NTUPLES/PULSE/FCALC/Sampling1");
334 if ( !dir_FCALC_1 ) dir_FCALC_1 = ntupleSvc()->createDirectory(PULSE,"FCALC/Sampling1");
335 if ( !dir_FCALC_1 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
336 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
337 }
338
339 if (sampl==2){ // if it's FCALC Sampling2
340 SmartDataPtr<NTuple::Directory> dir_FCALC_2(ntupleSvc(),"/NTUPLES/PULSE/FCALC/Sampling2");
341 if ( !dir_FCALC_2 ) dir_FCALC_2 = ntupleSvc()->createDirectory(PULSE,"FCALC/Sampling2");
342 if ( !dir_FCALC_2 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
343 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
344 }
345
346 if (sampl==3){ // if it's FCALC Sampling3
347 SmartDataPtr<NTuple::Directory> dir_FCALC_3(ntupleSvc(),"/NTUPLES/PULSE/FCALC/Sampling3");
348 if ( !dir_FCALC_3 ) dir_FCALC_3 = ntupleSvc()->createDirectory(PULSE,"FCALC/Sampling3");
349 if ( !dir_FCALC_3 ) ATH_MSG_ERROR ( " failed to get ntuple directory" );
350 m_cellHistos.insert(std::make_pair(OffId, new TProfile(id_char, id_char, 40, -4 , 36, "s" )));
351 }
352 }
353 } // end FCAL
354
355 } // loop over cells
356
357 SmartDataPtr<NTuple::Directory> dir_FCALC_3(ntupleSvc(),"/NTUPLES/PULSE/Check");
358 if ( !dir_FCALC_3 ) dir_FCALC_3 = ntupleSvc()->createDirectory(PULSE,"Check");
359
360 m_TProfpulse_diff = new TProfile("test_diff", "test_diff",500, 0, 500, "s");
361
362 m_BCID = new TH1D("BCID", "BCID",3564, 0, 3564);
363 m_diffBCID = new TH1D("diffBCID", "BCID",3564, 0, 3564);
364 m_actualInt = new TH1D("ActualInt", "ActInt", 60, 0, 20);
365
367
371 m_initialized=true;
372 return StatusCode::SUCCESS;
373}
INTupleSvc * ntupleSvc()
const CaloCell_ID * getCaloCell_ID(void) const
Access to IdHelper.
std::string m_ntpath
void addHistogram(TH1 *h)
StringProperty m_ntTitle
NTuple::Tuple * m_nt
const CaloCell_ID * m_calo_id
SG::ReadCondHandleKey< LArBadChannelCont > m_BCKey

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::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.

◆ isClonable()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::isClonable ( ) const
inlineoverridevirtualinherited

Specify if the algorithm is clonable.

Only relevant for non-reentrant algorithms. Actual number of clones needs to be set via the "Cardinality" property.

Reimplemented in AFP_DigiTop, AlgB, AlgT, BCM_Digitization, CscDigitBuilder, CscDigitToCscRDO, G4AtlasAlg, G4RunAlg, HGTD_Digitization, HiveAlgBase, InDet::GNNSeedingTrackMaker, InDet::SCT_Clusterization, InDet::SiSPGNNTrackMaker, InDet::SiSPSeededTrackFinder, InDet::SiTrackerSpacePointFinder, ISF::SimKernelMT, ITk::StripDigitization, ITkPixelCablingAlg, ITkStripCablingAlg, LArHitEMapMaker, LArTTL1Maker, LUCID_DigiTop, LVL1::L1TopoSimulation, MergeCalibHits, MergeGenericMuonSimHitColl, MergeHijingPars, MergeMcEventCollection, MergeTrackRecordCollection, MergeTruthJets, MergeTruthParticles, MuonDigitizer, PileUpMTAlg, PixelDigitization, RoIBResultToxAOD, SCT_ByteStreamErrorsTestAlg, SCT_CablingCondAlgFromCoraCool, SCT_CablingCondAlgFromText, SCT_ConditionsParameterTestAlg, SCT_ConditionsSummaryTestAlg, SCT_ConfigurationConditionsTestAlg, SCT_Digitization, SCT_FlaggedConditionTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_PrepDataToxAOD, SCT_RawDataToxAOD, SCT_ReadCalibChipDataTestAlg, SCT_ReadCalibDataTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_SiliconConditionsTestAlg, SCT_StripVetoTestAlg, SCT_TdaqEnabledTestAlg, SCT_TestCablingAlg, SCTEventFlagWriter, SCTRawDataProvider, SCTSiLorentzAngleTestAlg, SCTSiPropertiesTestAlg, SGInputLoader, Simulation::BeamEffectsAlg, TileHitVecToCnt, TileMuonFitter, TilePulseForTileMuonReceiver, TileRawChannelMaker, TRTDigitization, and ZDC_DigiTop.

Definition at line 68 of file AthCommonAlgorithm.h.

68 {
69 return true;
70 }

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 47 of file AthAlgorithm.h.

47{ return false; }

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< Gaudi::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< Gaudi::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< Gaudi::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< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setFilterPassed()

virtual void AthCommonAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Set filter decision:

Reimplemented in AthFilterAlgorithm.

Definition at line 99 of file AthCommonAlgorithm.h.

99 {
101 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const
Set filter decision:

◆ stop()

StatusCode LArPulseShape::stop ( )
overridevirtual

Definition at line 458 of file LArPulseShape.cxx.

458 {
459
460 ATH_MSG_INFO( "LArPulseShape has finished." );
461 return StatusCode::SUCCESS;
462
463}// end finalize-method.
#define ATH_MSG_INFO(x)

◆ sysExecute()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Reimplemented in AthAnalysisAlgorithm.

Definition at line 80 of file AthCommonAlgorithm.cxx.

41{
42 return BaseAlg::sysExecute (ctx);
43}

◆ sysInitialize()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::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< Gaudi::Algorithm > >.

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

Definition at line 60 of file AthCommonAlgorithm.cxx.

71 {
73
74 if (sc.isFailure()) {
75 return sc;
76 }
77
78 ServiceHandle<ICondSvc> cs("CondSvc",name());
79 for (auto h : outputHandles()) {
80 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
81 // do this inside the loop so we don't create the CondSvc until needed
82 if ( cs.retrieve().isFailure() ) {
83 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
85 }
86 if (cs->regHandle(this,*h).isFailure()) {
88 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
89 << " with CondSvc");
90 }
91 }
92 }
93 return sc;
94}
virtual StatusCode sysInitialize() override
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::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.

◆ TCellbegin()

std::map< int, TProfile * >::const_iterator LArPulseShape::TCellbegin ( ) const
inline

Definition at line 53 of file LArPulseShape.h.

53{ return m_cellHistos.begin(); }

◆ TCellend()

std::map< int, TProfile * >::const_iterator LArPulseShape::TCellend ( ) const
inline

Definition at line 54 of file LArPulseShape.h.

54{ return m_cellHistos.end(); }

◆ TEffbegin()

std::map< std::string, TProfile * >::const_iterator LArPulseShape::TEffbegin ( ) const
inline

Definition at line 51 of file LArPulseShape.h.

51{ return m_effhistos.begin(); }

◆ TEffend()

std::map< std::string, TProfile * >::const_iterator LArPulseShape::TEffend ( ) const
inline

Definition at line 52 of file LArPulseShape.h.

52{ return m_effhistos.end(); }

◆ THbegin()

std::map< std::string, TH1 * >::const_iterator LArPulseShape::THbegin ( ) const
inline

Definition at line 56 of file LArPulseShape.h.

56{ return m_histos.begin(); }

◆ THend()

std::map< std::string, TH1 * >::const_iterator LArPulseShape::THend ( ) const
inline

Definition at line 57 of file LArPulseShape.h.

57{ return m_histos.end(); }

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::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 }

Member Data Documentation

◆ m_actualInt

TH1D* LArPulseShape::m_actualInt = nullptr
private

Definition at line 80 of file LArPulseShape.h.

◆ m_addBC

bool LArPulseShape::m_addBC = false
protected

Definition at line 91 of file LArPulseShape.h.

◆ m_addFEBTemp

bool LArPulseShape::m_addFEBTemp = false
protected

Definition at line 91 of file LArPulseShape.h.

◆ m_addHash

bool LArPulseShape::m_addHash = false
protected

Definition at line 119 of file LArPulseShape.h.

◆ m_badChanWord

NTuple::Item<long> LArPulseShape::m_badChanWord
protected

Definition at line 103 of file LArPulseShape.h.

◆ m_barrel_ec

NTuple::Item<long> LArPulseShape::m_barrel_ec
protected

Definition at line 102 of file LArPulseShape.h.

◆ m_BCID

TH1D* LArPulseShape::m_BCID = nullptr
private

Definition at line 78 of file LArPulseShape.h.

◆ m_BCKey

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

Definition at line 72 of file LArPulseShape.h.

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

◆ m_cablingKey

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

Definition at line 71 of file LArPulseShape.h.

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

◆ m_calibLine

NTuple::Item<long> LArPulseShape::m_calibLine
protected

Definition at line 103 of file LArPulseShape.h.

◆ m_calo_id

const CaloCell_ID* LArPulseShape::m_calo_id = nullptr
private

Definition at line 62 of file LArPulseShape.h.

◆ m_caloId

const CaloCell_ID* LArPulseShape::m_caloId = nullptr
protected

Definition at line 114 of file LArPulseShape.h.

◆ m_cellHistos

std::map<int, TProfile*> LArPulseShape::m_cellHistos
private

Definition at line 75 of file LArPulseShape.h.

◆ m_chanHash

NTuple::Item<long> LArPulseShape::m_chanHash
protected

Definition at line 105 of file LArPulseShape.h.

◆ m_channel

NTuple::Item<long> LArPulseShape::m_channel
protected

Definition at line 102 of file LArPulseShape.h.

◆ m_detector

NTuple::Item<long> LArPulseShape::m_detector
protected

Definition at line 101 of file LArPulseShape.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_diffBCID

TH1D* LArPulseShape::m_diffBCID = nullptr
private

Definition at line 79 of file LArPulseShape.h.

◆ m_effhistos

std::map<std::string, TProfile*> LArPulseShape::m_effhistos
private

Definition at line 74 of file LArPulseShape.h.

◆ m_emId

const LArEM_Base_ID* LArPulseShape::m_emId = nullptr
protected

Definition at line 110 of file LArPulseShape.h.

◆ m_eta

NTuple::Item<long> LArPulseShape::m_eta
protected

Definition at line 101 of file LArPulseShape.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 108 of file AthCommonAlgorithm.h.

◆ m_fcalId

const LArFCAL_Base_ID* LArPulseShape::m_fcalId = nullptr
protected

Definition at line 112 of file LArPulseShape.h.

◆ m_febHash

NTuple::Item<long> LArPulseShape::m_febHash
protected

Definition at line 105 of file LArPulseShape.h.

◆ m_FEBTemp1

NTuple::Item<float> LArPulseShape::m_FEBTemp1
protected

Definition at line 107 of file LArPulseShape.h.

◆ m_FEBTemp2

NTuple::Item<float> LArPulseShape::m_FEBTemp2
protected

Definition at line 107 of file LArPulseShape.h.

◆ m_folder

std::string LArPulseShape::m_folder
private

Definition at line 61 of file LArPulseShape.h.

◆ m_FT

NTuple::Item<long> LArPulseShape::m_FT
protected

Definition at line 102 of file LArPulseShape.h.

◆ m_hecId

const LArHEC_Base_ID* LArPulseShape::m_hecId = nullptr
protected

Definition at line 111 of file LArPulseShape.h.

◆ m_histos

std::map<std::string, TH1*> LArPulseShape::m_histos
private

Definition at line 77 of file LArPulseShape.h.

◆ m_initialized

bool LArPulseShape::m_initialized = false
private

Definition at line 60 of file LArPulseShape.h.

◆ m_isConnected

NTuple::Item<long> LArPulseShape::m_isConnected
protected

Definition at line 104 of file LArPulseShape.h.

◆ m_isFlat

bool LArPulseShape::m_isFlat = false
protected

Definition at line 117 of file LArPulseShape.h.

◆ m_isSC

bool LArPulseShape::m_isSC = false
protected

Definition at line 116 of file LArPulseShape.h.

◆ m_layer

NTuple::Item<long> LArPulseShape::m_layer
protected

Definition at line 101 of file LArPulseShape.h.

◆ m_lumiDataKey

SG::ReadCondHandleKey<LuminosityCondData> LArPulseShape::m_lumiDataKey {this,"LumiKey", "LuminosityCondData","SG Key of LuminosityCondData object"}
private

Definition at line 70 of file LArPulseShape.h.

70{this,"LumiKey", "LuminosityCondData","SG Key of LuminosityCondData object"};

◆ m_nt

NTuple::Tuple* LArPulseShape::m_nt = nullptr
protected

Definition at line 98 of file LArPulseShape.h.

◆ m_ntpath

std::string LArPulseShape::m_ntpath = "/NTUPLES/PULSE/"
protected

Definition at line 94 of file LArPulseShape.h.

◆ m_ntTitle

StringProperty LArPulseShape::m_ntTitle { this, "NtupleTitle", "Pulse shape" }
protected

Definition at line 95 of file LArPulseShape.h.

95{ this, "NtupleTitle", "Pulse shape" };

◆ m_oflChanId

NTuple::Item<long> LArPulseShape::m_oflChanId
protected

Definition at line 101 of file LArPulseShape.h.

◆ m_oflHash

NTuple::Item<long> LArPulseShape::m_oflHash
protected

Definition at line 105 of file LArPulseShape.h.

◆ m_onlChanId

NTuple::Item<long> LArPulseShape::m_onlChanId
protected

Definition at line 101 of file LArPulseShape.h.

◆ m_onlineId

const LArOnlineID_Base* LArPulseShape::m_onlineId = nullptr
protected

Definition at line 113 of file LArPulseShape.h.

◆ m_peakSample

NTuple::Item<short> LArPulseShape::m_peakSample
private

Definition at line 63 of file LArPulseShape.h.

◆ m_phi

NTuple::Item<long> LArPulseShape::m_phi
protected

Definition at line 101 of file LArPulseShape.h.

◆ m_pos_neg

NTuple::Item<long> LArPulseShape::m_pos_neg
protected

Definition at line 102 of file LArPulseShape.h.

◆ m_region

NTuple::Item<long> LArPulseShape::m_region
protected

Definition at line 101 of file LArPulseShape.h.

◆ m_slot

NTuple::Item<long> LArPulseShape::m_slot
protected

Definition at line 102 of file LArPulseShape.h.

◆ m_TProfpulse_diff

TProfile* LArPulseShape::m_TProfpulse_diff = nullptr
private

Definition at line 76 of file LArPulseShape.h.

◆ m_trigDec

PublicToolHandle<Trig::TrigDecisionTool> LArPulseShape::m_trigDec {this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool"}
private

Definition at line 68 of file LArPulseShape.h.

68{this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool"};

◆ m_useHgIntercept

NTuple::Item<short> LArPulseShape::m_useHgIntercept
private

Definition at line 64 of file LArPulseShape.h.

◆ m_useLgIntercept

NTuple::Item<short> LArPulseShape::m_useLgIntercept
private

Definition at line 66 of file LArPulseShape.h.

◆ m_useMgIntercept

NTuple::Item<short> LArPulseShape::m_useMgIntercept
private

Definition at line 65 of file LArPulseShape.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


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