ATLAS Offline Software
HGTD_RDOAnalysis.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef HGTD_RDO_ANALYSIS_H
6 #define HGTD_RDO_ANALYSIS_H
7 
9 #include "GaudiKernel/LockedHandle.h"
10 #include "GaudiKernel/ServiceHandle.h"
11 #include "GaudiKernel/ITHistSvc.h"
13 
16 
19 
20 #include <string>
21 #include <vector>
22 
23 class TTree;
24 class HGTD_ID;
25 
26 namespace InDetDD {
28 }
29 
31 {
32 
33 struct SdoInfo {
34  float time;
35  int truth = -1; // signal=1, pileup=2, secondary=3
36  bool operator<(const SdoInfo& rhs) const { return time < rhs.time; }
37 };
38 
39 public:
40  HGTD_RDOAnalysis(const std::string& name, ISvcLocator* pSvcLocator);
41 
42  virtual StatusCode initialize() override final;
43  virtual StatusCode execute() override final;
44 
45 private:
46 
47  bool isHSGoodParticle(HepMC::ConstGenParticlePtr particlePtr, const HepMC::GenEvent* hardScatterEvent, float min_pt_cut = 1000.);
48 
49  SG::ReadHandleKey<HGTD_RDO_Container> m_inputKey {this, "CollectionName", "HGTD_RDOs", "Input HGTD RDO collection name"};
50  SG::ReadHandleKey<InDetSimDataCollection> m_inputTruthKey {this, "SDOCollectionName", "HGTD_SDO_Map", "Input HGTD SDO collection name"};
51  SG::ReadHandleKey<McEventCollection> m_inputMcEventCollectionKey {this, "McEventCollectionName", "TruthEvent", "Input McEventCollection name"};
52 
54  Gaudi::Property<std::string> m_HGTD_Name {this, "DetectorName", "HGTD", "HGTD detector name"};
55  const HGTD_ID *m_HGTD_ID{};
56  Gaudi::Property<std::string> m_HGTDID_Name {this, "PixelIDName", "HGTD_ID", "HGTD ID name"};
57 
58  Gaudi::Property<std::string> m_histPath {this, "HistPath", "/RDOAnalysis/HGTD/", ""};
59  Gaudi::Property<std::string> m_sharedHistPath {this, "SharedHistPath", "/RDOAnalysis/histos/", ""};
60  Gaudi::Property<std::string> m_ntuplePath {this, "NtuplePath", "/RDOAnalysis/ntuples/", ""};
61  Gaudi::Property<std::string> m_ntupleName {this, "NtupleName", "HGTD", ""};
62  Gaudi::Property<bool> m_doPosition {this, "DoPosition", true, ""};
63 
64  ServiceHandle<ITHistSvc> m_thistSvc {this, "HistSvc", "THistSvc", ""};
65 
66  TTree* m_tree{};
67  std::vector<int> m_rdo_module_layer; // 0, 1, 2, 3
68  std::vector<float> m_rdo_module_x; // global position in mm
69  std::vector<float> m_rdo_module_y; // global position in mm
70  std::vector<float> m_rdo_module_z; // global position in mm
71  std::vector<float> m_rdo_hit_x; // global position in mm
72  std::vector<float> m_rdo_hit_y; // global position in mm
73  std::vector<float> m_rdo_hit_z; // global position in mm
74  std::vector<float> m_rdo_hit_toa; // in ns
75  std::vector<float> m_rdo_hit_sdo_toa; // in ns
76  std::vector<int> m_rdo_hit_sdo_truth_category; // signal=1, pileup=2, secondary=3
77 
78 };
79 
80 #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:35
HGTD_RDOAnalysis::m_sharedHistPath
Gaudi::Property< std::string > m_sharedHistPath
Definition: HGTD_RDOAnalysis.h:59
HGTD_RDOAnalysis::execute
virtual StatusCode execute() override final
Definition: HGTD_RDOAnalysis.cxx:69
HGTD_RDOAnalysis::m_rdo_hit_x
std::vector< float > m_rdo_hit_x
Definition: HGTD_RDOAnalysis.h:71
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:72
HGTD_RDOAnalysis::m_thistSvc
ServiceHandle< ITHistSvc > m_thistSvc
Definition: HGTD_RDOAnalysis.h:64
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:60
HGTD_RDOAnalysis::m_doPosition
Gaudi::Property< bool > m_doPosition
Definition: HGTD_RDOAnalysis.h:62
HGTD_RDO_Container
Definition: HGTD_RDO_Container.h:18
HGTD_RDOAnalysis::m_inputTruthKey
SG::ReadHandleKey< InDetSimDataCollection > m_inputTruthKey
Definition: HGTD_RDOAnalysis.h:50
HGTD_RDOAnalysis::m_ntupleName
Gaudi::Property< std::string > m_ntupleName
Definition: HGTD_RDOAnalysis.h:61
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
SG::ReadHandleKey< InDetSimDataCollection >
HGTD_DetectorManager.h
AthAlgorithm.h
HGTD_RDOAnalysis::m_histPath
Gaudi::Property< std::string > m_histPath
Definition: HGTD_RDOAnalysis.h:58
HGTD_RDOAnalysis::m_HGTD_Manager
const HGTD_DetectorManager * m_HGTD_Manager
Definition: HGTD_RDOAnalysis.h:53
HGTD_RDOAnalysis::m_tree
TTree * m_tree
Definition: HGTD_RDOAnalysis.h:66
HGTD_RDOAnalysis::m_rdo_hit_toa
std::vector< float > m_rdo_hit_toa
Definition: HGTD_RDOAnalysis.h:74
HGTD_RDOAnalysis::m_rdo_module_z
std::vector< float > m_rdo_module_z
Definition: HGTD_RDOAnalysis.h:70
HGTD_RDOAnalysis::SdoInfo
Definition: HGTD_RDOAnalysis.h:33
HGTD_RDOAnalysis::m_HGTD_Name
Gaudi::Property< std::string > m_HGTD_Name
Definition: HGTD_RDOAnalysis.h:54
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:75
HGTD_RDOAnalysis::SdoInfo::operator<
bool operator<(const SdoInfo &rhs) const
Definition: HGTD_RDOAnalysis.h:36
HGTD_ID
Definition: HGTD_ID.h:47
HGTD_RDOAnalysis::m_rdo_module_x
std::vector< float > m_rdo_module_x
Definition: HGTD_RDOAnalysis.h:68
HGTD_RDOAnalysis::isHSGoodParticle
bool isHSGoodParticle(HepMC::ConstGenParticlePtr particlePtr, const HepMC::GenEvent *hardScatterEvent, float min_pt_cut=1000.)
Definition: HGTD_RDOAnalysis.cxx:182
HGTD_RDOAnalysis::m_rdo_module_layer
std::vector< int > m_rdo_module_layer
Definition: HGTD_RDOAnalysis.h:67
HGTD_RDOAnalysis::SdoInfo::time
float time
Definition: HGTD_RDOAnalysis.h:34
AthAlgorithm
Definition: AthAlgorithm.h:47
HGTD_RDOAnalysis::m_inputMcEventCollectionKey
SG::ReadHandleKey< McEventCollection > m_inputMcEventCollectionKey
Definition: HGTD_RDOAnalysis.h:51
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:73
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
HepMC
Definition: Barcode.h:14
InDetSimDataCollection.h
HGTD_RDOAnalysis::initialize
virtual StatusCode initialize() override final
Definition: HGTD_RDOAnalysis.cxx:25
HGTD_RDOAnalysis::m_HGTDID_Name
Gaudi::Property< std::string > m_HGTDID_Name
Definition: HGTD_RDOAnalysis.h:56
HGTD_DetectorManager
Definition: HGTD_DetectorManager.h:33
HGTD_RDOAnalysis::m_rdo_module_y
std::vector< float > m_rdo_module_y
Definition: HGTD_RDOAnalysis.h:69
HGTD_RDOAnalysis::HGTD_RDOAnalysis
HGTD_RDOAnalysis(const std::string &name, ISvcLocator *pSvcLocator)
Definition: HGTD_RDOAnalysis.cxx:22
HGTD_RDOAnalysis
Definition: HGTD_RDOAnalysis.h:31
HGTD_RDOAnalysis::m_HGTD_ID
const HGTD_ID * m_HGTD_ID
Definition: HGTD_RDOAnalysis.h:55
HGTD_RDOAnalysis::m_inputKey
SG::ReadHandleKey< HGTD_RDO_Container > m_inputKey
Definition: HGTD_RDOAnalysis.h:49
HGTD_RDOAnalysis::m_rdo_hit_sdo_truth_category
std::vector< int > m_rdo_hit_sdo_truth_category
Definition: HGTD_RDOAnalysis.h:76
ServiceHandle< ITHistSvc >