ATLAS Offline Software
Loading...
Searching...
No Matches
LArOFCBin2Ntuple.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
7
9
10
11LArOFCBin2Ntuple::LArOFCBin2Ntuple(const std::string& name, ISvcLocator* pSvcLocator):
12 LArCond2NtupleBase(name, pSvcLocator) {
13 m_ntTitle="OFCBIN";
14 m_ntpath="/NTUPLES/FILE1/OFCBIN";
15
16}
17
19{
20 ATH_CHECK( m_binKey.initialize() );
21 ATH_CHECK( m_cablingKey.initialize(!m_isSC) );
22 ATH_CHECK( m_cablingSCKey.initialize(m_isSC) );
23
25 return StatusCode::SUCCESS;
26}
27
29
30 const EventContext& ctx = Gaudi::Hive::currentContext();
31
32 NTuple::Item<long> cellIndex;
33 NTuple::Item<int> ofcbin;
34
35 StatusCode sc=m_nt->addItem("icell",cellIndex,0,2000);
36 if (sc!=StatusCode::SUCCESS)
37 {ATH_MSG_ERROR( "addItem 'Cell Index' failed" );
38 return StatusCode::FAILURE;
39 }
40
41
42 sc=m_nt->addItem("OFCBin",ofcbin,0,50);
43 if (sc!=StatusCode::SUCCESS) {
44 ATH_MSG_ERROR( "addItem 'OFCBin' failed" );
45 return StatusCode::FAILURE;
46 }
47
48 const LArOnOffIdMapping *cabling=nullptr;
49 if(m_isSC) {
50 ATH_MSG_DEBUG( "LArOFC2Ntuple: using SC cabling" );
52 cabling=*cablingHdl;
53 }else{
55 cabling=*cablingHdl;
56 }
57
58
59 if(!cabling) {
60 ATH_MSG_WARNING( "Do not have cabling object LArOnOffIdMapping" );
61 return StatusCode::FAILURE;
62 }
63
64 const ILArOFCBin* LArbin = nullptr;
66 LArbin = ofcbinHdl.cptr();
67 if(!LArbin) {
68 ATH_MSG_ERROR( "Unable to retrieve ILArOFCBin with key "
69 << m_binKey << " from ConditionsStore" );
70 return StatusCode::FAILURE;
71 }
72
73 unsigned cellCounter=0;
74 for(HWIdentifier hwid : m_onlineId->channel_range()){
75 if ( cabling->isOnlineConnected(hwid)) {
76 fillFromIdentifier(hwid);
77 cellIndex = cellCounter;
78 ofcbin = LArbin->bin(hwid,0);
79 sc=ntupleSvc()->writeRecord(m_nt);
80 if (sc!=StatusCode::SUCCESS) {
81 ATH_MSG_ERROR( "writeRecord failed" );
82 return StatusCode::FAILURE;
83 }
84 cellCounter++;
85 }//end if isConnected
86 }//end loop over online ID
87 ATH_MSG_INFO("LArOFCBin2Ntuple: filled "<<cellCounter);
88 ATH_MSG_INFO( "LArOFCBin2Ntuple has finished." );
89 return StatusCode::SUCCESS;
90}// end finalize-method.
91
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
static Double_t sc
INTupleSvc * ntupleSvc()
virtual const int & bin(const HWIdentifier &id, const int &gain) const =0
Gaudi::Property< bool > m_isSC
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)
LArOFCBin2Ntuple(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadCondHandleKey< ILArOFCBin > m_binKey
virtual StatusCode stop() override
virtual StatusCode initialize() override
const_pointer_type cptr()