ATLAS Offline Software
HGTD_RDOAnalysis.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef HGTD_RDO_ANALYSIS_H
6 #define HGTD_RDO_ANALYSIS_H
7 
10 
13 
16 
17 class HGTD_ID;
18 
19 namespace InDetDD {
21 }
22 
24 {
25 
26 struct SdoInfo {
27  float time{0.f};
28  int truth = -1; // signal=1, pileup=2, secondary=3
29  bool operator<(const SdoInfo& rhs) const { return time < rhs.time; }
30 };
31 
32 public:
34 
35  virtual StatusCode initialize() override final;
36  virtual StatusCode execute() override final;
37 
38 private:
39 
40  bool isHSGoodParticle(HepMC::ConstGenParticlePtr particlePtr, const HepMC::GenEvent* hardScatterEvent, float min_pt_cut = 1000.);
41 
42  SG::ReadHandleKey<HGTD_RDO_Container> m_inputKey {this, "CollectionName", "HGTD_RDOs", "Input HGTD RDO collection name"};
43  SG::ReadHandleKey<InDetSimDataCollection> m_inputTruthKey {this, "SDOCollectionName", "HGTD_SDO_Map", "Input HGTD SDO collection name"};
44  SG::ReadHandleKey<McEventCollection> m_inputMcEventCollectionKey {this, "McEventCollectionName", "TruthEvent", "Input McEventCollection name"};
45 
47  Gaudi::Property<std::string> m_HGTD_Name {this, "DetectorName", "HGTD", "HGTD detector name"};
48  const HGTD_ID *m_HGTD_ID{};
49  Gaudi::Property<std::string> m_HGTDID_Name {this, "PixelIDName", "HGTD_ID", "HGTD ID name"};
50 
51  Gaudi::Property<std::string> m_histPath {this, "HistPath", "/RDOAnalysis/HGTD/", ""};
52  Gaudi::Property<std::string> m_sharedHistPath {this, "SharedHistPath", "/RDOAnalysis/histos/", ""};
53  Gaudi::Property<std::string> m_ntuplePath {this, "NtuplePath", "/RDOAnalysis/ntuples/", ""};
54  Gaudi::Property<std::string> m_ntupleName {this, "NtupleName", "HGTD", ""};
55  Gaudi::Property<bool> m_doPosition {this, "DoPosition", true, ""};
56 
57 
58  TTree* m_tree{};
59  std::vector<int> m_rdo_module_layer{}; // 0, 1, 2, 3
60  std::vector<float> m_rdo_module_x{}; // global position in mm
61  std::vector<float> m_rdo_module_y{}; // global position in mm
62  std::vector<float> m_rdo_module_z{}; // global position in mm
63  std::vector<unsigned long long> m_rdo_module_ID{}; //module ID (get compact)
64  std::vector<float> m_rdo_hit_x{}; // global position in mm
65  std::vector<float> m_rdo_hit_y{}; // global position in mm
66  std::vector<float> m_rdo_hit_z{}; // global position in mm
67  std::vector<float> m_rdo_hit_toa{}; // in ns
68  std::vector<float> m_rdo_hit_sdo_toa{}; // in ns
69  std::vector<int> m_rdo_hit_sdo_truth_category{}; // signal=1, pileup=2, secondary=3
70 
71 };
72 
73 #endif // HGTD_RDO_ANALYSIS_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
HGTD_RDOAnalysis::SdoInfo::truth
int truth
Definition: HGTD_RDOAnalysis.h:28
HGTD_RDOAnalysis::m_sharedHistPath
Gaudi::Property< std::string > m_sharedHistPath
Definition: HGTD_RDOAnalysis.h:52
AthHistogramAlgorithm::AthHistogramAlgorithm
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Definition: AthHistogramAlgorithm.cxx:31
HGTD_RDOAnalysis::execute
virtual StatusCode execute() override final
Definition: HGTD_RDOAnalysis.cxx:61
HGTD_RDOAnalysis::m_rdo_hit_x
std::vector< float > m_rdo_hit_x
Definition: HGTD_RDOAnalysis.h:64
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
HGTD_RDOAnalysis::m_rdo_hit_y
std::vector< float > m_rdo_hit_y
Definition: HGTD_RDOAnalysis.h:65
HGTD_RDO_Container.h
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration.
HGTD_RDOAnalysis::m_ntuplePath
Gaudi::Property< std::string > m_ntuplePath
Definition: HGTD_RDOAnalysis.h:53
HGTD_RDOAnalysis::m_doPosition
Gaudi::Property< bool > m_doPosition
Definition: HGTD_RDOAnalysis.h:55
HGTD_RDO_Container
Definition: HGTD_RDO_Container.h:18
HGTD_RDOAnalysis::m_inputTruthKey
SG::ReadHandleKey< InDetSimDataCollection > m_inputTruthKey
Definition: HGTD_RDOAnalysis.h:43
HGTD_RDOAnalysis::m_ntupleName
Gaudi::Property< std::string > m_ntupleName
Definition: HGTD_RDOAnalysis.h:54
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
SG::ReadHandleKey< InDetSimDataCollection >
HGTD_DetectorManager.h
AthHistogramAlgorithm.h
HGTD_RDOAnalysis::m_histPath
Gaudi::Property< std::string > m_histPath
Definition: HGTD_RDOAnalysis.h:51
HGTD_RDOAnalysis::m_HGTD_Manager
const HGTD_DetectorManager * m_HGTD_Manager
Definition: HGTD_RDOAnalysis.h:46
HGTD_RDOAnalysis::m_tree
TTree * m_tree
Definition: HGTD_RDOAnalysis.h:58
HGTD_RDOAnalysis::m_rdo_hit_toa
std::vector< float > m_rdo_hit_toa
Definition: HGTD_RDOAnalysis.h:67
HGTD_RDOAnalysis::m_rdo_module_z
std::vector< float > m_rdo_module_z
Definition: HGTD_RDOAnalysis.h:62
HGTD_RDOAnalysis::SdoInfo
Definition: HGTD_RDOAnalysis.h:26
HGTD_RDOAnalysis::m_HGTD_Name
Gaudi::Property< std::string > m_HGTD_Name
Definition: HGTD_RDOAnalysis.h:47
McEventCollection.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
HGTD_RDOAnalysis::m_rdo_hit_sdo_toa
std::vector< float > m_rdo_hit_sdo_toa
Definition: HGTD_RDOAnalysis.h:68
HGTD_RDOAnalysis::SdoInfo::operator<
bool operator<(const SdoInfo &rhs) const
Definition: HGTD_RDOAnalysis.h:29
HGTD_ID
Definition: HGTD_ID.h:47
HGTD_RDOAnalysis::m_rdo_module_x
std::vector< float > m_rdo_module_x
Definition: HGTD_RDOAnalysis.h:60
HGTD_RDOAnalysis::isHSGoodParticle
bool isHSGoodParticle(HepMC::ConstGenParticlePtr particlePtr, const HepMC::GenEvent *hardScatterEvent, float min_pt_cut=1000.)
Definition: HGTD_RDOAnalysis.cxx:180
AthHistogramAlgorithm
Definition: AthHistogramAlgorithm.h:32
HGTD_RDOAnalysis::m_rdo_module_layer
std::vector< int > m_rdo_module_layer
Definition: HGTD_RDOAnalysis.h:59
HGTD_RDOAnalysis::SdoInfo::time
float time
Definition: HGTD_RDOAnalysis.h:27
columnar::final
CM final
Definition: ColumnAccessor.h:106
HGTD_RDOAnalysis::m_inputMcEventCollectionKey
SG::ReadHandleKey< McEventCollection > m_inputMcEventCollectionKey
Definition: HGTD_RDOAnalysis.h:44
HepMC::ConstGenParticlePtr
const GenParticle * ConstGenParticlePtr
Definition: GenParticle.h:38
HGTD_RDOAnalysis::m_rdo_hit_z
std::vector< float > m_rdo_hit_z
Definition: HGTD_RDOAnalysis.h:66
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
HepMC
Definition: Barcode.h:14
HGTD_RDOAnalysis::m_rdo_module_ID
std::vector< unsigned long long > m_rdo_module_ID
Definition: HGTD_RDOAnalysis.h:63
InDetSimDataCollection.h
HGTD_RDOAnalysis::initialize
virtual StatusCode initialize() override final
Definition: HGTD_RDOAnalysis.cxx:23
HGTD_RDOAnalysis::m_HGTDID_Name
Gaudi::Property< std::string > m_HGTDID_Name
Definition: HGTD_RDOAnalysis.h:49
HGTD_DetectorManager
Definition: HGTD_DetectorManager.h:33
HGTD_RDOAnalysis::m_rdo_module_y
std::vector< float > m_rdo_module_y
Definition: HGTD_RDOAnalysis.h:61
private
#define private
Definition: xAODTruthCnvAlg.h:20
HGTD_RDOAnalysis
Definition: HGTD_RDOAnalysis.h:24
HGTD_RDOAnalysis::m_HGTD_ID
const HGTD_ID * m_HGTD_ID
Definition: HGTD_RDOAnalysis.h:48
HGTD_RDOAnalysis::m_inputKey
SG::ReadHandleKey< HGTD_RDO_Container > m_inputKey
Definition: HGTD_RDOAnalysis.h:42
HGTD_RDOAnalysis::m_rdo_hit_sdo_truth_category
std::vector< int > m_rdo_hit_sdo_truth_category
Definition: HGTD_RDOAnalysis.h:69