ATLAS Offline Software
Loading...
Searching...
No Matches
LArMinBias2Ntuple.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8
9LArMinBias2Ntuple::LArMinBias2Ntuple(const std::string& name, ISvcLocator* pSvcLocator):
10 LArCond2NtupleBase(name, pSvcLocator),
11 m_isPileup(false) {
12
13 declareProperty("NtupleTitle",m_ntTitle="MinBias");
14 declareProperty("NtupleName",m_ntpath="/NTUPLES/FILE1/MINBIAS");
15
16}
17
19= default;
20
22 m_isPileup = m_contKey.key().empty() && (m_contKeyAv.key().find("Pileup") != std::string::npos);
23 ATH_CHECK(m_contKey.initialize(!m_isPileup));
24 ATH_CHECK(m_contKeyAv.initialize());
26}
27
29
30 const ILArMinBias* LArMinBias = nullptr;
31 const ILArMinBiasAverage* LArMinBiasAv = nullptr;
32
33 if(!m_isPileup) {
34 LArMinBias=m_detStore->tryConstRetrieve<ILArMinBias>(m_contKey.key());
35 if (!LArMinBias) {
37 LArMinBias=*mbHandle;
38 }
39 }
40
41 LArMinBiasAv=m_detStore->tryConstRetrieve<ILArMinBiasAverage>(m_contKeyAv.key());
42 if(!LArMinBiasAv) {
44 LArMinBiasAv=*mbaHandle;
45 }
46
47 NTuple::Item<float> minbias;
48 NTuple::Item<float> minbias_av;
49
50 const LArOnOffIdMapping* cabling=nullptr;
51 if(m_isSC){
53 cabling=*cablingSCHdl;
54 } else {
56 cabling=*cablingHdl;
57 }
58
59 if(!cabling) {
60 ATH_MSG_WARNING( "Do not have cabling object LArOnOffIdMapping" );
61 return StatusCode::FAILURE;
62 }
63
64 if(!m_isPileup) ATH_CHECK( m_nt->addItem("MinBias",minbias) );
65 ATH_CHECK( m_nt->addItem("MinBiasAv",minbias_av) );
66
67 unsigned cellCounter=0;
68 for (const HWIdentifier hwid: m_onlineId->channel_range()) {
69 if ( cabling->isOnlineConnected(hwid)) {
70 fillFromIdentifier(hwid);
71 if(!m_isPileup) minbias = LArMinBias->minBiasRMS(hwid);
72 minbias_av = LArMinBiasAv->minBiasAverage(hwid);
73 ATH_CHECK( ntupleSvc()->writeRecord(m_nt) );
74 }//end if isConnected
75 cellCounter++;
76 }//end loop over online ID
77
78 ATH_MSG_INFO( "LArMinBias2Ntuple has finished, " << cellCounter << " cells written." );
79 return StatusCode::SUCCESS;
80}// end finalize-method.
81
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
#define ATH_MSG_WARNING(x)
INTupleSvc * ntupleSvc()
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
virtual const float & minBiasAverage(const HWIdentifier &id) const =0
access to average of E in minimum bias events index by Identifier
virtual const float & minBiasRMS(const HWIdentifier &id) const =0
access to RMS of E in minimum bias events index by Identifier
Gaudi::Property< bool > m_isSC
StoreGateSvc * m_detStore
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingSCKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
const LArOnlineID_Base * m_onlineId
bool fillFromIdentifier(const HWIdentifier &id)
LArCond2NtupleBase(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode stop()
SG::ReadCondHandleKey< ILArMinBiasAverage > m_contKeyAv
virtual StatusCode initialize()
SG::ReadCondHandleKey< ILArMinBias > m_contKey
LArMinBias2Ntuple(const std::string &name, ISvcLocator *pSvcLocator)
std::string find(const std::string &s)
return a remapped string
Definition hcg.cxx:138