ATLAS Offline Software
Loading...
Searching...
No Matches
StripRDOAnalysis.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
6#ifndef STRIP_RDO_ANALYSIS_H
7#define STRIP_RDO_ANALYSIS_H
8
10#include "GaudiKernel/ServiceHandle.h"
11#include "GaudiKernel/ITHistSvc.h"
13
20
21#include <string>
22#include <vector>
23#include "TH1.h"
24#include "TH2.h"
25
26class TTree;
27class SCT_ID;
28class SCT_RDORawData;
29
30namespace InDetDD {
32}
33
34namespace ITk
35{
36
38{
39
40public:
41 StripRDOAnalysis(const std::string& name, ISvcLocator* pSvcLocator);
42
43 virtual StatusCode initialize() override final;
44 virtual StatusCode execute() override final;
45
46private:
47 SG::ReadHandleKey<SCT_RDO_Container> m_inputKey {this, "CollectionName", "ITkStripRDOs", "Input ITk Strip RDO collection name"};
48 SG::ReadHandleKey<InDetSimDataCollection> m_inputTruthKey {this, "SDOCollectionName", "ITkStripSDO_Map", "Input ITk Strip SDO collection name"};
49 SG::ReadHandleKey<McEventCollection> m_inputMcEventCollectionKey {this, "McEventCollectionName", "TruthEvent", "Input McEventCollection name"};
50 const SCT_ID *m_sctID{};
52
53 Gaudi::Property<std::string> m_histPath {this, "HistPath", "/RDOAnalysis/ITkStrip/", ""};
54 Gaudi::Property<std::string> m_sharedHistPath {this, "SharedHistPath", "/RDOAnalysis/histos/", ""};
55 Gaudi::Property<std::string> m_ntuplePath {this, "NtuplePath", "/RDOAnalysis/ntuples/", ""};
56 Gaudi::Property<std::string> m_ntupleName {this, "NtupleName", "ITkStrip", ""};
57 Gaudi::Property<bool> m_doPosition {this, "DoPosition", true, ""};
58
59 ServiceHandle<ITHistSvc> m_thistSvc {this, "HistSvc", "THistSvc", ""};
60
61 // RDO
62 std::vector<unsigned long long>* m_rdoID{};
63 std::vector<unsigned int>* m_rdoWord{};
64 // SCT_ID
65 std::vector<int>* m_barrelEndcap{};
66 std::vector<int>* m_layerDisk{};
67 std::vector<int>* m_phiModule{};
68 std::vector<int>* m_etaModule{};
69 std::vector<int>* m_side{};
70 std::vector<int>* m_strip{};
71 std::vector<int>* m_row{};
72 // SCT_RDORawData
73 std::vector<int>* m_groupSize{};
74 // Global and Local positions
75 std::vector<double>* m_globalX0{};
76 std::vector<double>* m_globalY0{};
77 std::vector<double>* m_globalZ0{};
78 std::vector<double>* m_globalX1{};
79 std::vector<double>* m_globalY1{};
80 std::vector<double>* m_globalZ1{};
81 std::vector<double>* m_localX{};
82 std::vector<double>* m_localY{};
83 std::vector<double>* m_localZ{};
84
85
86 // SDO
87 std::vector<unsigned long long>* m_sdoID{};
88 std::vector<int>* m_sdoWord{};
89 // SCT_ID
90 std::vector<int>* m_barrelEndcap_sdo{};
91 std::vector<int>* m_layerDisk_sdo{};
92 std::vector<int>* m_phiModule_sdo{};
93 std::vector<int>* m_etaModule_sdo{};
94 std::vector<int>* m_side_sdo{};
95 std::vector<int>* m_strip_sdo{};
96 std::vector<int>* m_row_sdo{};
97 // SCT_SimHelper
98 std::vector<bool>* m_noise{};
99 std::vector<bool>* m_belowThresh{};
100 std::vector<bool>* m_disabled{};
101 // Deposit - particle link + energy (charge)
102 std::vector<int>* m_barcode{};
103 std::vector<int>* m_eventIndex{};
104 std::vector<float>* m_charge{};
105 std::vector< std::vector<int> >* m_barcode_vec{};
106 std::vector< std::vector<int> >* m_eventIndex_vec{};
107 std::vector< std::vector<float> >* m_charge_vec{};
108
109 // HISTOGRAMS
110 TH1* m_h_rdoID{};
116 TH1* m_h_side{};
117 TH1* m_h_strip{};
118 TH1* m_h_row{};
121 // barrel SCT
129 // endcap SCT
137
138 TH1* m_h_sdoID{};
151
154
157
158 std::vector<TH1*> m_h_brl_strip_perLayer;
159 std::vector<TH1*> m_h_ec_strip_perLayer;
160
163 LockedHandle<TH2> m_h_globalXY_shared{};
164 LockedHandle<TH2> m_h_globalZR_shared{};
168
170
171 TTree* m_tree{};
172
173};
174
175} // namespace ITk
176
177#endif // STRIP_RDO_ANALYSIS_H
This is an Identifier helper class for the SCT subdetector.
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
std::vector< float > * m_charge
std::vector< int > * m_phiModule_sdo
std::vector< double > * m_globalX1
std::vector< unsigned long long > * m_rdoID
LockedHandle< TH2 > m_h_globalZR_shared
std::vector< int > * m_barrelEndcap
StripRDOAnalysis(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< int > * m_sdoWord
std::vector< std::vector< int > > * m_eventIndex_vec
std::vector< int > * m_barcode
std::vector< TH1 * > m_h_brl_strip_perLayer
SG::ReadHandleKey< InDetSimDataCollection > m_inputTruthKey
std::vector< bool > * m_belowThresh
std::vector< int > * m_phiModule
std::vector< std::vector< float > > * m_charge_vec
std::vector< int > * m_side_sdo
std::vector< int > * m_groupSize
std::vector< int > * m_barrelEndcap_sdo
std::vector< double > * m_localZ
std::vector< int > * m_etaModule
LockedHandle< TH2 > m_h_globalXY_shared
Gaudi::Property< bool > m_doPosition
std::vector< double > * m_localX
std::vector< double > * m_globalZ0
std::vector< unsigned long long > * m_sdoID
std::vector< int > * m_layerDisk
std::vector< int > * m_row
std::vector< int > * m_side
SG::ReadHandleKey< SCT_RDO_Container > m_inputKey
Gaudi::Property< std::string > m_ntuplePath
std::vector< double > * m_globalX0
std::vector< int > * m_row_sdo
std::vector< std::vector< int > > * m_barcode_vec
Gaudi::Property< std::string > m_histPath
Gaudi::Property< std::string > m_ntupleName
std::vector< double > * m_globalY1
SG::ReadHandleKey< McEventCollection > m_inputMcEventCollectionKey
std::vector< int > * m_layerDisk_sdo
std::vector< unsigned int > * m_rdoWord
virtual StatusCode initialize() override final
std::vector< bool > * m_noise
std::vector< double > * m_globalZ1
std::vector< int > * m_strip_sdo
std::vector< double > * m_localY
std::vector< int > * m_strip
Gaudi::Property< std::string > m_sharedHistPath
const InDetDD::SCT_DetectorManager * m_SCT_Manager
std::vector< int > * m_etaModule_sdo
std::vector< bool > * m_disabled
virtual StatusCode execute() override final
std::vector< TH1 * > m_h_ec_strip_perLayer
std::vector< double > * m_globalY0
ServiceHandle< ITHistSvc > m_thistSvc
std::vector< int > * m_eventIndex
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
Property holding a SG store/key/clid from which a ReadHandle is made.
Message Stream Member.