ATLAS Offline Software
StripSpacePointValidationPlots.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 namespace ActsTrk {
9 
11  const std::string& sDir,
12  const std::string& type)
13  : PlotBase(pParent, sDir),
14  m_type(type)
15  {
16  m_barrelEndcap = Book1D("barrelEndcap", m_type + "SpacePoint_barrelEndcap;Barrel-Endcap;Entries;", 5, -2, 3, false);
17 
18  m_layerDisk_barrel = Book1D("layerDisk_barrel", m_type + "SpacePoint_layerDisk_barrel;Layer Disk;Entries;", 6, 0, 6, false);
19  m_layerDisk_endcap = Book1D("layerDisk_endcap", m_type + "SpacePoint_layerDisk_endcap;Layer Disk;Entries;", 6, 0, 6, false);
20 
21  m_phiModule_barrel = Book1D("phiModule_barrel", m_type + "SpacePoint_phiModule_barrel;Phi Module;Entries", 75, 0, 75, false);
22  m_phiModule_endcap = Book1D("phiModule_endcap", m_type + "SpacePoint_phiModule_endcap;Phi Module;Entries", 75, 0, 75, false);
23 
24  m_etaModule_barrel = Book1D("etaModule_barrel", m_type + "SpacePoint_etaModule_barrel;Eta Module;Entries;", 120, -60, 60, false);
25  m_etaModule_endcap = Book1D("etaModule_endcap", m_type + "SpacePoint_etaModule_endcap;Eta Module;Entries;", 120, -60, 60, false);
26 
27  m_sideModule_barrel = Book1D("sideModule_barrel", m_type + "SpacePoint_sideModule_barrel;Side Module;Entries;", 2, 0, 2, false);
28  m_sideModule_endcap = Book1D("sideModule_endcap", m_type + "SpacePoint_sideModule_endcap;Side Module;Entries;", 2, 0, 2, false);
29 
30  m_eta_barrel = Book1D("eta_barrel", m_type + "SpacePoint_eta_barrel;eta;Entries;", 30, -3, 3, false);
31  m_eta_endcap = Book1D("eta_endcap", m_type + "SpacePoint_eta_endcap;eta;Entries;", 30, -3, 3, false);
32 
33  m_perp_barrel = Book1D("perp_barrel", m_type + "SpacePoint_perp_barrel;r [mm];Entries;", 100, 300, 1100, false);
34  m_perp_endcap = Book1D("perp_endcap", m_type + "SpacePoint_perp_endcap;r [mm];Entries;", 100, 300, 1100, false);
35 
36  m_global_x_barrel = Book1D("global_x_barrel", m_type + "SpacePoint_global_x_barrel;Global x [mm];Entries;", 100, -1100, 1100, false);
37  m_global_x_endcap = Book1D("global_x_endcap", m_type + "SpacePoint_global_x_endcap;Global x [mm];Entries;", 100, -1100, 1100, false);
38 
39  m_global_y_barrel = Book1D("global_y_barrel", m_type + "SpacePoint_global_y_barrel;Global y [mm];Entries;", 100, -1100, 1100, false);
40  m_global_y_endcap = Book1D("global_y_endcap", m_type + "SpacePoint_global_y_endcap;Global y [mm];Entries;", 100, -1100, 1100, false);
41 
42  m_global_z_barrel = Book1D("global_z_barrel", m_type + "SpacePoint_global_z_barrel;Global z [mm];Entries;", 100, -3000, 3000, false);
43  m_global_z_endcap = Book1D("global_z_endcap", m_type + "SpacePoint_global_z_endcap;Global z [mm];Entries;", 100, -3000, 3000, false);
44 
45  m_globalCovR_barrel = Book1D("globalCovR_barrel", m_type + "SpacePoint_globalCovR_barrel; Global Cov R;Entries;", 50, 0, 6, false);
46  m_globalCovR_endcap = Book1D("globalCovR_endcap", m_type + "SpacePoint_globalCovR_endcap; Global Cov R;Entries;", 50, 0, 6, false);
47 
48  m_globalCovZ_barrel = Book1D("globalCovZ_barrel", m_type + "SpacePoint_globalCovZ_barrel; Global Cov Z;Entries;", 50, 0, 6, false);
49  m_globalCovZ_endcap = Book1D("globalCovZ_endcap", m_type + "SpacePoint_globalCovZ_endcap; Global Cov Z;Entries;", 50, 0, 6, false);
50 
51  m_topHalfStripLength_barrel = Book1D("topHalfStripLength_barrel", m_type + "SpacePoint_topHalfStripLength_barrel;lenght;Entries;", 100, 0, 35, false);
52  m_topHalfStripLength_endcap = Book1D("topHalfStripLength_endcap", m_type + "SpacePoint_topHalfStripLength_endcap;lenght;Entries;", 100, 0, 35, false);
53 
54  m_bottomHalfStripLength_barrel = Book1D("bottomHalfStripLength_barrel", m_type + "SpacePoint_bottomHalfStripLength_barrel;length;Entries;", 100, 0, 35, false);
55  m_bottomHalfStripLength_endcap = Book1D("bottomHalfStripLength_endcap", m_type + "SpacePoint_bottomHalfStripLength_endcap;length;Entries;", 100, 0, 35, false);
56 
57  m_topStripDirection_barrel = Book1D("topStripDirection_barrel", m_type + "SpacePoint_topStripDirection_barrel;;Entries;", 100, -1, 1, false);
58  m_topStripDirection_endcap = Book1D("topStripDirection_endcap", m_type + "SpacePoint_topStripDirection_endcap;;Entries;", 100, -1, 1, false);
59 
60  m_bottomStripDirection_barrel = Book1D("bottomStripDirection_barrel", m_type + "SpacePoint_bottomStripDirection_barrel;;Entries;", 100, -1, 1, false);
61  m_bottomStripDirection_endcap = Book1D("bottomStripDirection_endcap", m_type + "SpacePoint_bottomStripDirection_endcap;;Entries;", 100, -1, 1, false);
62 
63  m_stripCenterDistance_barrel = Book1D("stripCenterDistance_barrel", m_type + "SpacePoint_stripCenterDistance_barrel;;Entries;", 100, -60, 60, false);
64  m_stripCenterDistance_endcap = Book1D("stripCenterDistance_endcap", m_type + "SpacePoint_stripCenterDistance_endcap;;Entries;", 100, -60, 60, false);
65 
66  m_topStripCenter_barrel = Book1D("topStripCenter_barrel", m_type + "SpacePoint_topStripCenter_barrel;;Entries;", 400, -3000, 3000, false);
67  m_topStripCenter_endcap = Book1D("topStripCenter_endcap", m_type + "SpacePoint_topStripCenter_endcap;;Entries;", 400, -3000, 3000, false);
68 
69  m_global_xy_barrel = Book2D("global_xy_barrel", m_type + "SpacePoint_global_xy_barrel;x [mm];y [mm];", 100, -1100, 1100, 100, -1100, 1100, false);
70  m_global_xy_endcap = Book2D("global_xy_endcap", m_type + "SpacePoint_global_xy_endcap;x [mm];y [mm];", 100, -1100, 1100, 100, -1100, 1100, false);
71 
72  m_global_zr_barrel = Book2D("global_zr_barrel", m_type + "SpacePoint_global_zr_barrel;z [mm];r [mm];", 100, -3000, 3000, 100, 300, 1100, false);
73  m_global_zr_endcap = Book2D("global_zr_endcap", m_type + "SpacePoint_global_zr_endcap;z [mm];r [mm];", 100, -3000, 3000, 100, 300, 1100, false);
74  }
75 
77  float beamSpotWeight,
78  const SCT_ID* stripID)
79  {
80  const std::vector<Identifier>& ids { stripID->wafer_id(spacePoint->elementIdList()[0]),
81  stripID->wafer_id(spacePoint->elementIdList()[1])};
82 
83  const auto& globalPos = spacePoint->globalPosition();
84  Amg::Vector3D globalPosition(globalPos(0, 0), globalPos(1, 0), globalPos(2, 0));
85 
86  const auto& topStripDirection = spacePoint->topStripDirection();
87  const auto& bottomStripDirection = spacePoint->bottomStripDirection();
88  const auto& stripCenterDistance = spacePoint->stripCenterDistance();
89  const auto& topStripCenter = spacePoint->topStripCenter();
90 
91  for (const Identifier& id : ids) {
92  bool isBarrel = (stripID->barrel_ec(id) == 0);
93 
94  m_barrelEndcap->Fill(stripID->barrel_ec(id), beamSpotWeight);
95 
96  if (isBarrel) {
97  m_layerDisk_barrel->Fill(stripID->layer_disk(id), beamSpotWeight);
98  m_phiModule_barrel->Fill(stripID->phi_module(id), beamSpotWeight);
99  m_etaModule_barrel->Fill(stripID->eta_module(id), beamSpotWeight);
100  m_sideModule_barrel->Fill(stripID->side(id), beamSpotWeight);
101  } else {
102  m_layerDisk_endcap->Fill(stripID->layer_disk(id), beamSpotWeight);
103  m_phiModule_endcap->Fill(stripID->phi_module(id), beamSpotWeight);
104  m_etaModule_endcap->Fill(stripID->eta_module(id), beamSpotWeight);
105  m_sideModule_endcap->Fill(stripID->side(id), beamSpotWeight);
106  }
107  } // loops on ids
108 
109  bool isBarrel = (stripID->barrel_ec(ids[0]) == 0);
110 
111  if (isBarrel) {
112  m_eta_barrel->Fill(globalPosition.eta(), beamSpotWeight);
113  m_perp_barrel->Fill(globalPosition.perp() , beamSpotWeight);
114 
115  m_global_x_barrel->Fill(globalPos(0, 0), beamSpotWeight);
116  m_global_y_barrel->Fill(globalPos(1, 0), beamSpotWeight);
117  m_global_z_barrel->Fill(globalPos(2, 0), beamSpotWeight);
118 
119  m_globalCovR_barrel->Fill(spacePoint->varianceR(), beamSpotWeight);
120  m_globalCovZ_barrel->Fill(spacePoint->varianceZ(), beamSpotWeight);
121 
122  m_global_xy_barrel->Fill(globalPos(0, 0), globalPos(1, 0), beamSpotWeight);
123  m_global_zr_barrel->Fill(globalPos(2, 0), globalPosition.perp(), beamSpotWeight);
124 
125  m_topHalfStripLength_barrel->Fill(spacePoint->topHalfStripLength(), beamSpotWeight);
126  m_bottomHalfStripLength_barrel->Fill(spacePoint->bottomHalfStripLength(), beamSpotWeight);
127 
128  for(int i(0); i<3; ++i) {
129  m_topStripDirection_barrel->Fill(topStripDirection(i,0), beamSpotWeight);
130  m_bottomStripDirection_barrel->Fill(bottomStripDirection(i,0), beamSpotWeight);
131  m_stripCenterDistance_barrel->Fill(stripCenterDistance(i,0), beamSpotWeight);
132  m_topStripCenter_barrel->Fill(topStripCenter(i,0), beamSpotWeight);
133  }
134 
135  } else {
136  m_eta_endcap->Fill(globalPosition.eta(), beamSpotWeight);
137  m_perp_endcap->Fill(globalPosition.perp() , beamSpotWeight);
138 
139  m_global_x_endcap->Fill(globalPos(0, 0), beamSpotWeight);
140  m_global_y_endcap->Fill(globalPos(1, 0), beamSpotWeight);
141  m_global_z_endcap->Fill(globalPos(2, 0), beamSpotWeight);
142 
143  m_globalCovR_endcap->Fill(spacePoint->varianceR(), beamSpotWeight);
144  m_globalCovZ_endcap->Fill(spacePoint->varianceZ(), beamSpotWeight);
145 
146  m_global_xy_endcap->Fill(globalPos(0, 0), globalPos(1, 0), beamSpotWeight);
147  m_global_zr_endcap->Fill(globalPos(2, 0), globalPosition.perp(), beamSpotWeight);
148 
149  m_topHalfStripLength_endcap->Fill(spacePoint->topHalfStripLength(), beamSpotWeight);
150  m_bottomHalfStripLength_endcap->Fill(spacePoint->bottomHalfStripLength(), beamSpotWeight);
151 
152  m_topHalfStripLength_endcap->Fill(spacePoint->topHalfStripLength(), beamSpotWeight);
153  m_bottomHalfStripLength_endcap->Fill(spacePoint->bottomHalfStripLength(), beamSpotWeight);
154 
155  for(int i(0); i<3; ++i) {
156  m_topStripDirection_endcap->Fill(topStripDirection(i,0), beamSpotWeight);
157  m_bottomStripDirection_endcap->Fill(bottomStripDirection(i,0), beamSpotWeight);
158  m_stripCenterDistance_endcap->Fill(stripCenterDistance(i,0), beamSpotWeight);
159  m_topStripCenter_endcap->Fill(topStripCenter(i,0), beamSpotWeight);
160  }
161  } // barrel - endcap
162 
163  }
164 }
ActsTrk::StripSpacePointValidationPlots::m_stripCenterDistance_barrel
TH1 * m_stripCenterDistance_barrel
Definition: StripSpacePointValidationPlots.h:85
TH2::Fill
int Fill(double, double)
Definition: rootspy.cxx:382
ActsTrk::StripSpacePointValidationPlots::m_bottomHalfStripLength_endcap
TH1 * m_bottomHalfStripLength_endcap
Definition: StripSpacePointValidationPlots.h:77
xAOD::SpacePoint_v1::bottomHalfStripLength
float bottomHalfStripLength() const
xAOD::SpacePoint_v1::stripCenterDistance
ConstVectorMap stripCenterDistance() const
Definition: SpacePoint_v1.cxx:73
PlotBase::Book1D
TH1F * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition: PlotBase.cxx:88
ActsTrk::StripSpacePointValidationPlots::m_type
std::string m_type
Definition: StripSpacePointValidationPlots.h:29
PlotBase
Definition: PlotBase.h:33
ActsTrk::StripSpacePointValidationPlots::m_sideModule_endcap
TH1 * m_sideModule_endcap
Definition: StripSpacePointValidationPlots.h:44
xAOD::SpacePoint_v1::topStripDirection
ConstVectorMap topStripDirection() const
Definition: SpacePoint_v1.cxx:63
ActsTrk::StripSpacePointValidationPlots::m_layerDisk_barrel
TH1 * m_layerDisk_barrel
Definition: StripSpacePointValidationPlots.h:34
ActsTrk::StripSpacePointValidationPlots::m_global_y_barrel
TH1 * m_global_y_barrel
Definition: StripSpacePointValidationPlots.h:55
ActsTrk::StripSpacePointValidationPlots::m_topStripDirection_endcap
TH1 * m_topStripDirection_endcap
Definition: StripSpacePointValidationPlots.h:80
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
ActsTrk::StripSpacePointValidationPlots::m_sideModule_barrel
TH1 * m_sideModule_barrel
Definition: StripSpacePointValidationPlots.h:43
xAOD::SpacePoint_v1::topHalfStripLength
float topHalfStripLength() const
Return details.
ActsTrk::StripSpacePointValidationPlots::m_globalCovR_endcap
TH1 * m_globalCovR_endcap
Definition: StripSpacePointValidationPlots.h:62
PlotBase::Book2D
TH2F * Book2D(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2D histogram.
Definition: PlotBase.cxx:117
ActsTrk::StripSpacePointValidationPlots::m_global_y_endcap
TH1 * m_global_y_endcap
Definition: StripSpacePointValidationPlots.h:56
xAOD::SpacePoint_v1
Definition: SpacePoint_v1.h:29
ActsTrk::StripSpacePointValidationPlots::m_global_x_endcap
TH1 * m_global_x_endcap
Definition: StripSpacePointValidationPlots.h:53
SCT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: SCT_ID.h:728
SCT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: SCT_ID.h:740
ActsTrk::StripSpacePointValidationPlots::m_phiModule_barrel
TH1 * m_phiModule_barrel
Definition: StripSpacePointValidationPlots.h:37
xAOD::SpacePoint_v1::globalPosition
ConstVectorMap globalPosition() const
Returns the global position of the pixel cluster.
xAOD::SpacePoint_v1::bottomStripDirection
ConstVectorMap bottomStripDirection() const
Definition: SpacePoint_v1.cxx:68
ActsTrk::StripSpacePointValidationPlots::m_layerDisk_endcap
TH1 * m_layerDisk_endcap
Definition: StripSpacePointValidationPlots.h:35
ActsTrk::StripSpacePointValidationPlots::m_topStripCenter_endcap
TH1 * m_topStripCenter_endcap
Definition: StripSpacePointValidationPlots.h:89
xAOD::SpacePoint_v1::elementIdList
const std::vector< DetectorIDHashType > & elementIdList() const
Returns the IdentifierHash of the spacepoint (corresponds to the detector element IdentifierHash)
m_type
TokenType m_type
the type
Definition: TProperty.cxx:44
GeoPrimitives.h
ActsTrk::StripSpacePointValidationPlots::m_topHalfStripLength_endcap
TH1 * m_topHalfStripLength_endcap
Definition: StripSpacePointValidationPlots.h:74
ActsTrk::StripSpacePointValidationPlots::m_global_zr_endcap
TH2 * m_global_zr_endcap
Definition: StripSpacePointValidationPlots.h:71
ActsTrk::StripSpacePointValidationPlots::m_bottomStripDirection_barrel
TH1 * m_bottomStripDirection_barrel
Definition: StripSpacePointValidationPlots.h:82
ActsTrk::StripSpacePointValidationPlots::m_topStripDirection_barrel
TH1 * m_topStripDirection_barrel
Definition: StripSpacePointValidationPlots.h:79
ActsTrk::StripSpacePointValidationPlots::m_globalCovZ_barrel
TH1 * m_globalCovZ_barrel
Definition: StripSpacePointValidationPlots.h:64
lumiFormat.i
int i
Definition: lumiFormat.py:92
ActsTrk::StripSpacePointValidationPlots::m_globalCovZ_endcap
TH1 * m_globalCovZ_endcap
Definition: StripSpacePointValidationPlots.h:65
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
xAOD::SpacePoint_v1::varianceZ
float varianceZ() const
ActsTrk::StripSpacePointValidationPlots::StripSpacePointValidationPlots
StripSpacePointValidationPlots(PlotBase *pParent, const std::string &sDir, const std::string &type="Strip")
Definition: StripSpacePointValidationPlots.cxx:10
ActsTrk::StripSpacePointValidationPlots::m_eta_endcap
TH1 * m_eta_endcap
Definition: StripSpacePointValidationPlots.h:47
xAOD::SpacePoint_v1::varianceR
float varianceR() const
Returns the variances.
ActsTrk::StripSpacePointValidationPlots::fill
void fill(const xAOD::SpacePoint *spacePoint, float beamSpotWeight, const SCT_ID *)
Definition: StripSpacePointValidationPlots.cxx:76
ActsTrk::StripSpacePointValidationPlots::m_perp_barrel
TH1 * m_perp_barrel
Definition: StripSpacePointValidationPlots.h:49
TH1::Fill
int Fill(double)
Definition: rootspy.cxx:285
StripSpacePointValidationPlots.h
python.subdetectors.mmg.ids
ids
Definition: mmg.py:8
ActsTrk::StripSpacePointValidationPlots::m_eta_barrel
TH1 * m_eta_barrel
Definition: StripSpacePointValidationPlots.h:46
ActsTrk::StripSpacePointValidationPlots::m_bottomHalfStripLength_barrel
TH1 * m_bottomHalfStripLength_barrel
Definition: StripSpacePointValidationPlots.h:76
ActsTrk::StripSpacePointValidationPlots::m_global_zr_barrel
TH2 * m_global_zr_barrel
Definition: StripSpacePointValidationPlots.h:70
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition: SCT_ID.h:734
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
ActsTrk::StripSpacePointValidationPlots::m_etaModule_barrel
TH1 * m_etaModule_barrel
Definition: StripSpacePointValidationPlots.h:40
ActsTrk::StripSpacePointValidationPlots::m_stripCenterDistance_endcap
TH1 * m_stripCenterDistance_endcap
Definition: StripSpacePointValidationPlots.h:86
SCT_ID
Definition: SCT_ID.h:68
ActsTrk::StripSpacePointValidationPlots::m_global_xy_barrel
TH2 * m_global_xy_barrel
Definition: StripSpacePointValidationPlots.h:67
ActsTrk::StripSpacePointValidationPlots::m_global_z_endcap
TH1 * m_global_z_endcap
Definition: StripSpacePointValidationPlots.h:59
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ActsTrk::StripSpacePointValidationPlots::m_perp_endcap
TH1 * m_perp_endcap
Definition: StripSpacePointValidationPlots.h:50
SCT_ID::eta_module
int eta_module(const Identifier &id) const
Definition: SCT_ID.h:746
ActsTrk::StripSpacePointValidationPlots::m_bottomStripDirection_endcap
TH1 * m_bottomStripDirection_endcap
Definition: StripSpacePointValidationPlots.h:83
ActsTrk::StripSpacePointValidationPlots::m_phiModule_endcap
TH1 * m_phiModule_endcap
Definition: StripSpacePointValidationPlots.h:38
ActsTrk::StripSpacePointValidationPlots::m_etaModule_endcap
TH1 * m_etaModule_endcap
Definition: StripSpacePointValidationPlots.h:41
python.LArCondContChannels.isBarrel
isBarrel
Definition: LArCondContChannels.py:659
ActsTrk::StripSpacePointValidationPlots::m_topStripCenter_barrel
TH1 * m_topStripCenter_barrel
Definition: StripSpacePointValidationPlots.h:88
SCT_ID::side
int side(const Identifier &id) const
Definition: SCT_ID.h:752
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:34
ActsTrk::StripSpacePointValidationPlots::m_topHalfStripLength_barrel
TH1 * m_topHalfStripLength_barrel
Definition: StripSpacePointValidationPlots.h:73
SCT_ID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
Definition: SCT_ID.h:464
ActsTrk::StripSpacePointValidationPlots::m_barrelEndcap
TH1 * m_barrelEndcap
Definition: StripSpacePointValidationPlots.h:32
xAOD::SpacePoint_v1::topStripCenter
ConstVectorMap topStripCenter() const
Definition: SpacePoint_v1.cxx:78
ActsTrk::StripSpacePointValidationPlots::m_global_z_barrel
TH1 * m_global_z_barrel
Definition: StripSpacePointValidationPlots.h:58
ActsTrk::StripSpacePointValidationPlots::m_globalCovR_barrel
TH1 * m_globalCovR_barrel
Definition: StripSpacePointValidationPlots.h:61
ActsTrk::StripSpacePointValidationPlots::m_global_xy_endcap
TH2 * m_global_xy_endcap
Definition: StripSpacePointValidationPlots.h:68
ActsTrk::StripSpacePointValidationPlots::m_global_x_barrel
TH1 * m_global_x_barrel
Definition: StripSpacePointValidationPlots.h:52