ATLAS Offline Software
LArRawSCDataReadingAlg.h
Go to the documentation of this file.
1 //Dear emacs, this is -*-c++-*-
2 /*
3  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
4 */
5 
6 #ifndef LARBYTESTREAM_LARRAWSCDATAREADINDINGALG_H
7 #define LARBYTESTREAM_LARRAWSCDATAREADINDINGALG_H
8 
10 #include "StoreGate/WriteHandle.h"
13 #include "GaudiKernel/ServiceHandle.h"
14 
16 #include "GaudiKernel/ToolHandle.h"
17 
19 // For LATOME while no Condition alg exists
20 #include "LArLATOMEROBIDs.h"
21 
22 //Event classes
23 class LArDigitContainer;
24 class LArRawSCContainer;
26 class LArOnlineID;
29 
31 
32 public:
33  LArRawSCDataReadingAlg(const std::string& name, ISvcLocator* pSvcLocator);
34 
35  StatusCode initialize() override;
36  StatusCode execute(const EventContext& ctx) const override;
37 
38 private:
39  // Mapping input
40  SG::ReadCondHandleKey<LArLATOMEMapping> m_mapKey {this,"MappingKey","LArLATOMEMap"};
41  //Event output:
43  SG::WriteHandleKey<LArDigitContainer> m_adcBasCollKey{this, "adcBasCollKey", "SC_ADC_BAS"};
44  SG::WriteHandleKey<LArRawSCContainer> m_etCollKey{this, "etCollKey", "SC_ET", "SG key of the LArRawSCContainer"};
45  SG::WriteHandleKey<LArRawSCContainer> m_etIdCollKey{this, "etIdCollKey", "SC_ET_ID", "SG key of the LArRawSCContainer"};
46  SG::WriteHandleKey<LArLATOMEHeaderContainer> m_latomeHeaderCollKey{this, "LArLATOMEHeaderKey", "SC_LATOME_HEADER", "SG key of the LArLATOMEHEaderContainer"};
47 
48  //Service providing the input data
49  ServiceHandle<IROBDataProviderSvc> m_robDataProviderSvc{this, "ROBDataProviderSvc", "ROBDataProviderSvc"};
50  // RoI like behavior of the converter
51  Gaudi::Property<std::vector<uint32_t> > m_robList{this, "ROBList", LArByteStream::s_allROBIDs_LATOME , "ROB List to only unpack selected ROBs"};
52 
53  //Identifier helper
54  const LArOnlineID* m_onlineId = nullptr;
55 
56  // The LATOME Decoder tool
57  ToolHandle<LArLATOMEDecoder> m_latomeDecoder;
58 
59  //Switches set in initialize() based of SG keys of output object
60  bool m_doAdc = true;
61  bool m_doAdcBas = true;
62  bool m_doEt = true;
63  bool m_doEtId = true;
64  bool m_doLATOMEHeader = true;
65 
66 };
67 
68 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
LArRawSCDataReadingAlg::m_adcBasCollKey
SG::WriteHandleKey< LArDigitContainer > m_adcBasCollKey
Definition: LArRawSCDataReadingAlg.h:43
LArRawSCDataReadingAlg::m_robList
Gaudi::Property< std::vector< uint32_t > > m_robList
Definition: LArRawSCDataReadingAlg.h:51
LArRawSCContainer
Container class for LArRawSC.
Definition: LArRawSCContainer.h:17
LArRawSCDataReadingAlg::m_latomeDecoder
ToolHandle< LArLATOMEDecoder > m_latomeDecoder
Definition: LArRawSCDataReadingAlg.h:57
LArRawSCDataReadingAlg::m_doLATOMEHeader
bool m_doLATOMEHeader
Definition: LArRawSCDataReadingAlg.h:64
LArRawSCDataReadingAlg::LArRawSCDataReadingAlg
LArRawSCDataReadingAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: LArRawSCDataReadingAlg.cxx:15
LArLATOMEHeaderContainer
Container class for LArLATOMEHeader.
Definition: LArLATOMEHeaderContainer.h:19
LArRawSCDataReadingAlg::m_onlineId
const LArOnlineID * m_onlineId
Definition: LArRawSCDataReadingAlg.h:54
LArLATOMEROBIDs.h
ReadCondHandle.h
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
WriteHandle.h
Handle class for recording to StoreGate.
IROBDataProviderSvc
Interface class for managing ROB for both online and offline.
Definition: IROBDataProviderSvc.h:23
LArRawSCDataReadingAlg::initialize
StatusCode initialize() override
Definition: LArRawSCDataReadingAlg.cxx:23
SG::WriteHandleKey< LArDigitContainer >
LArRawSCDataReadingAlg::m_adcCollKey
SG::WriteHandleKey< LArDigitContainer > m_adcCollKey
Definition: LArRawSCDataReadingAlg.h:42
LArLATOMEMapping.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArRawSCDataReadingAlg::execute
StatusCode execute(const EventContext &ctx) const override
Definition: LArRawSCDataReadingAlg.cxx:51
LArRawSCDataReadingAlg::m_mapKey
SG::ReadCondHandleKey< LArLATOMEMapping > m_mapKey
Definition: LArRawSCDataReadingAlg.h:40
AthReentrantAlgorithm.h
LArRawSCDataReadingAlg::m_etIdCollKey
SG::WriteHandleKey< LArRawSCContainer > m_etIdCollKey
Definition: LArRawSCDataReadingAlg.h:45
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
LArRawSCDataReadingAlg::m_doAdcBas
bool m_doAdcBas
Definition: LArRawSCDataReadingAlg.h:61
LArOnlineID
Definition: LArOnlineID.h:20
LArOnline_SuperCellID
Definition: LArOnline_SuperCellID.h:20
SG::ReadCondHandleKey< LArLATOMEMapping >
LArRawSCDataReadingAlg::m_doEtId
bool m_doEtId
Definition: LArRawSCDataReadingAlg.h:63
LArRawSCDataReadingAlg::m_doAdc
bool m_doAdc
Definition: LArRawSCDataReadingAlg.h:60
LArRawSCDataReadingAlg::m_doEt
bool m_doEt
Definition: LArRawSCDataReadingAlg.h:62
LArDigitContainer
Container class for LArDigit.
Definition: LArDigitContainer.h:24
LArRawSCDataReadingAlg::m_etCollKey
SG::WriteHandleKey< LArRawSCContainer > m_etCollKey
Definition: LArRawSCDataReadingAlg.h:44
LArRawSCDataReadingAlg
Definition: LArRawSCDataReadingAlg.h:30
LArLATOMEDecoder.h
Byte stream converter of LATOME.
LArRawSCDataReadingAlg::m_robDataProviderSvc
ServiceHandle< IROBDataProviderSvc > m_robDataProviderSvc
Definition: LArRawSCDataReadingAlg.h:49
LArRawSCDataReadingAlg::m_latomeHeaderCollKey
SG::WriteHandleKey< LArLATOMEHeaderContainer > m_latomeHeaderCollKey
Definition: LArRawSCDataReadingAlg.h:46
ServiceHandle< IROBDataProviderSvc >