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
51 const LArOnOffIdMapping* cabling=*cablingHdl;
52 if(!cabling) {
53 ATH_MSG_WARNING( "Do not have cabling object LArOnOffIdMapping" );
54 return StatusCode::FAILURE;
55 }
56
57 if(!m_isPileup) ATH_CHECK( m_nt->addItem("MinBias",minbias) );
58 ATH_CHECK( m_nt->addItem("MinBiasAv",minbias_av) );
59
60 unsigned cellCounter=0;
61 for (const HWIdentifier hwid: m_onlineId->channel_range()) {
62 if ( cabling->isOnlineConnected(hwid)) {
63 fillFromIdentifier(hwid);
64 if(!m_isPileup) minbias = LArMinBias->minBiasRMS(hwid);
65 minbias_av = LArMinBiasAv->minBiasAverage(hwid);
66 ATH_CHECK( ntupleSvc()->writeRecord(m_nt) );
67 }//end if isConnected
68 cellCounter++;
69 }//end loop over online ID
70
71 ATH_MSG_INFO( "LArMinBias2Ntuple has finished, " << cellCounter << " cells written." );
72 return StatusCode::SUCCESS;
73}// end finalize-method.
74
#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
StoreGateSvc * m_detStore
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