ATLAS Offline Software
SCTLorentzMonTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
11 #include "SCTLorentzMonTool.h"
12 
13 #include "SCT_NameFormatter.h"
14 
16 #include "Identifier/Identifier.h"
17 #include "InDetIdentifier/SCT_ID.h"
21 #include "StoreGate/ReadHandle.h"
24 
25 #include "GaudiKernel/StatusCode.h"
26 
27 #include "TProfile.h"
28 
29 #include <cmath>
30 #include <type_traits>
31 
32 using namespace SCT_Monitoring;
33 
34 // ====================================================================================================
40 // ====================================================================================================
41 SCTLorentzMonTool::SCTLorentzMonTool(const std::string& type, const std::string& name, const IInterface* parent):
43 }
44 
45 // ====================================================================================================
46 // ====================================================================================================
48  ATH_CHECK(detStore()->retrieve(m_pSCTHelper, "SCT_ID"));
49 
50  ATH_CHECK(m_tracksName.initialize());
52 
53  if (m_rejectSharedHits) {
54  ATH_CHECK(m_assoTool.retrieve());
55  } else {
56  m_assoTool.disable();
57  }
58 
60 }
61 
62 // ====================================================================================================
63 // SCTLorentzMonTool :: bookHistograms
64 // ====================================================================================================
67  m_gpath = "";
68  ATH_MSG_DEBUG("initialize being called");
69  // Booking Track related Histograms
70  if (bookLorentzHistos().isFailure()) {
71  ATH_MSG_WARNING("Error in bookLorentzHistos()");
72  }
73  return StatusCode::SUCCESS;
74 }
75 
76 // ====================================================================================================
77 // SCTLorentzMonTool :: bookHistograms
78 // ====================================================================================================
81  m_gpath = "";
82  ATH_MSG_DEBUG("initialize being called");
83  // Booking Track related Histograms
84  if (bookLorentzHistos().isFailure()) {
85  ATH_MSG_WARNING("Error in bookLorentzHistos()");
86  }
87  return StatusCode::SUCCESS;
88 }
89 
90 // ====================================================================================================
91 // SCTLorentzMonTool :: fillHistograms
93 // ====================================================================================================
96  // should use database for this!
97  static const int layer100[] = {
98  2, 2, 3, 2, 2, 2, 0, 2, 3, 2, 0, 2, 3, 2, 3, 2, 0, 2, 3, 0, 2, 0, 2, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0, 3, 0, 3, 2, 0, 2,
99  2, 0, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 3, 3, 2, 2, 2, 2, 2, 3, 3, 2, 3, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 3, 3,
100  2, 3, 2, 3, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2
101  };
102  static const int phi100[] = {
103  29, 29, 6, 13, 23, 13, 14, 29, 9, 29, 14, 29, 9, 29, 39, 32, 21, 32, 13, 22, 32, 22, 32, 13, 32, 32, 32, 20, 20, 20,
104  20, 20, 20, 13, 21, 17, 33, 5, 33, 33, 31, 6, 19, 47, 21, 37, 37, 37, 37, 33, 37, 37, 24, 33, 33, 47, 19, 33, 33,
105  37, 37, 37, 55, 9, 38, 24, 37, 38, 8, 9, 9, 26, 38, 38, 38, 38, 39, 39, 38, 11, 45, 54, 54, 24, 31, 14, 47, 45, 47,
106  47, 47, 47
107  };
108  static const int eta100[] = {
109  3, -4, -6, 2, 6, 3, -5, -1, 6, -2, -6, -5, 5, -3, 2, 6, -3, 5, 5, 3, 4, 2, 2, 2, -1, -3, -4, 1, -1, -2, -3, -4, 4,
110  -1, -5, 6, 2, 4, 3, 1, 6, -2, 6, 3, -6, -1, 2, 1, 3, -5, 4, 5, -3, -4, -3, -5, -2, -1, -2, -3, -2, -4, -3, 2, 3, -6,
111  -5, 4, 6, 1, -6, 1, 1, -5, -4, -3, -3, -5, -2, 1, 5, 5, 4, 4, 5, 4, -1, -5, 3, 4, 1, -5
112  };
113  constexpr unsigned int layer100_n{sizeof(layer100) / sizeof(*layer100)};
114  constexpr unsigned int phi100_n{sizeof(phi100) / sizeof(*phi100)};
115  constexpr unsigned int eta100_n{sizeof(eta100) / sizeof(*eta100)};
116  constexpr bool theseArraysAreEqualInLength{(layer100_n == phi100_n) and (phi100_n == eta100_n)};
117 
118  static_assert(theseArraysAreEqualInLength, "Coordinate arrays for <100> wafers are not of equal length");
119 
120  ATH_MSG_DEBUG("enters fillHistograms");
121 
123  const InDetDD::SiDetectorElementCollection* elements{sctDetEle.retrieve()};
124  if (elements==nullptr) {
125  ATH_MSG_WARNING(m_SCTDetEleCollKey.fullKey() << " could not be retrieved");
126  return StatusCode::SUCCESS;
127  }
128 
130  if (not tracks.isValid()) {
131  ATH_MSG_WARNING(" TrackCollection not found: Exit SCTLorentzTool" << m_tracksName.key());
132  return StatusCode::SUCCESS;
133  }
134 
135  // Prepare AssociationTool
137  for (const Trk::Track* track : *tracks) {
138  ATH_CHECK(m_assoTool->addPRDs(maps, *track));
139  }
140 
141  for (const Trk::Track* track: *tracks) {
142  if (track==nullptr) {
143  ATH_MSG_ERROR("no pointer to track!!!");
144  continue;
145  }
146 
147  // Get pointer to track state on surfaces
148  const Trk::TrackStates* trackStates{track->trackStateOnSurfaces()};
149  if (trackStates==nullptr) {
150  ATH_MSG_WARNING("for current track, TrackStateOnSurfaces == Null, no data will be written for this track");
151  continue;
152  }
153 
154  const Trk::TrackSummary* summary{track->trackSummary()};
155  if (summary==nullptr) {
156  ATH_MSG_WARNING(" null trackSummary");
157  continue;
158  }
159 
160  for (const Trk::TrackStateOnSurface* tsos: *trackStates) {
161  if (tsos->type(Trk::TrackStateOnSurface::Measurement)) {
162  const InDet::SiClusterOnTrack* clus{dynamic_cast<const InDet::SiClusterOnTrack*>(tsos->measurementOnTrack())};
163  if (clus) { // Is it a SiCluster? If yes...
164  // Reject shared hits if you want
165  if (m_rejectSharedHits and m_assoTool->isShared(maps, *(clus->prepRawData()))) {
166  continue;
167  }
168 
169  const InDet::SiCluster* RawDataClus{dynamic_cast<const InDet::SiCluster*>(clus->prepRawData())};
170  if (RawDataClus==nullptr) {
171  continue; // Continue if dynamic_cast returns null
172  }
173  if (RawDataClus->detectorElement()->isSCT()) {
174  const Identifier sct_id{clus->identify()};
175  const int bec{m_pSCTHelper->barrel_ec(sct_id)};
176  const int layer{m_pSCTHelper->layer_disk(sct_id)};
177  const int side{m_pSCTHelper->side(sct_id)};
178  const int eta{m_pSCTHelper->eta_module(sct_id)};
179  const int phi{m_pSCTHelper->phi_module(sct_id)};
180 
181  if (bec != 0) {
182  continue; // We only care about the barrel
183  }
184  // Check if the silicon surface is 100.
185  SiliconSurface surface{surface111};
186  for (unsigned int i{0}; i < layer100_n; i++) {
187  if ((layer100[i] == layer) and (eta100[i] == eta) and (phi100[i] == phi)) {
188  surface = surface100;
189  break;
190  }
191  }
192  // find cluster size
193  const std::vector<Identifier>& rdoList{RawDataClus->rdoList()};
194  int nStrip{static_cast<int>(rdoList.size())};
195  const Trk::TrackParameters* trkp{dynamic_cast<const Trk::TrackParameters*>(tsos->trackParameters())};
196  if (trkp==nullptr) {
197  ATH_MSG_WARNING(" Null pointer to MeasuredTrackParameters");
198  continue;
199  }
200 
201  const Trk::Perigee* perigee{track->perigeeParameters()};
202 
203  if (perigee) {
204  // Get angle to wafer surface
205  float phiToWafer{90.f};
206  float thetaToWafer(90.f);
207  float sinAlpha{0.f}; // for barrel, which is the only thing considered here
208  float pTrack[3]; // 3 is for x, y, z.
209  pTrack[0] = trkp->momentum().x();
210  pTrack[1] = trkp->momentum().y();
211  pTrack[2] = trkp->momentum().z();
212  int iflag{findAnglesToWaferSurface(pTrack, sinAlpha, clus->identify(), elements, thetaToWafer, phiToWafer)};
213  if (iflag < 0) {
214  ATH_MSG_WARNING("Error in finding track angles to wafer surface");
215  continue; // Let's think about this (later)... continue, break or return?
216  }
217 
218  bool passesCuts{true};
220  (trkp->momentum().perp() > 500.) and // Pt > 500MeV
221  (summary->get(Trk::numberOfSCTHits) > 6)// and // #SCTHits >6
222  ) {
223  passesCuts = true;
224  } else if ((track->perigeeParameters()->parameters()[Trk::qOverP] < 0.) and // use negative track only
225  (std::abs(perigee->parameters()[Trk::d0]) < 1.) and // d0 < 1mm
226  // (std::abs(perigee->parameters()[Trk::z0] * sin(perigee->parameters()[Trk::theta])) < 1.) and // z0*sin(theta) < 1mm
227  (trkp->momentum().perp() > 500.) and // Pt > 500MeV
228  (summary->get(Trk::numberOfSCTHits) > 6)// and // #SCTHits >6
229  ) {
230  passesCuts = true;
231  } else {
232  passesCuts = false;
233  }
234 
235  if (passesCuts) {
236  // Fill profile
237  m_phiVsNstrips[layer][ side][ surface]->Fill(phiToWafer, nStrip, 1.);
238  }// end if passesCuts
239  }// end if mtrkp
240  } // end if SCT..
241  } // end if (clus)
242  } // if (tsos->type(Trk::TrackStateOnSurface::Measurement)) {
243  }// end of loop on TrackStatesonSurface (they can be SiClusters, TRTHits,..)
244  } // end of loop on tracks
245  return StatusCode::SUCCESS;
246 }
247 
248 // ====================================================================================================
249 // SCTLorentzMonTool :: procHistograms
250 // ====================================================================================================
253  if (endOfRunFlag()) {
254  ATH_MSG_DEBUG("finalHists()");
255  ATH_MSG_DEBUG("Calling checkHists(true); true := end of run");
256  if (checkHists(true).isFailure()) {
257  ATH_MSG_WARNING("Error in checkHists(true)");
258  }
259  }
260  ATH_MSG_DEBUG("Exiting finalHists");
261  return StatusCode::SUCCESS;
262 }
263 
265 SCTLorentzMonTool::checkHists(bool /*fromFinalize*/) {
266  return StatusCode::SUCCESS;
267 }
268 
269 // ====================================================================================================
270 // SCTLorentzMonTool :: bookLorentzHistos
271 // ====================================================================================================
274  const std::string stem{m_gpath + "/SCT/GENERAL/lorentz/"};
275  MonGroup Lorentz{this, m_gpath + "SCT/GENERAL/lorentz", run, ATTRIB_UNMANAGED};
276 
277  static const std::string hNum[N_BARRELS] = {
278  "0", "1", "2", "3"
279  };
280  static const std::string hNumS[N_SIDES] = {
281  "0", "1"
282  };
283  static const int nProfileBins{360};
284 
285  int success{1};
286  static const std::string histNames1[nSurfaces]{"_100", "_111"};
287  static const std::string histNames2[nSurfaces]{"_100_", "_111_"};
288  static const std::string histTitles[nSurfaces]{"100 - ", "111 - "};
289  for (int l{0}; l < N_BARRELS; ++l) {
290  // granularity set to one profile/layer for now
291  for (int side{0}; side < nSides; ++side) {
292  for (unsigned int iSurface{0}; iSurface<nSurfaces; iSurface++) {
293  std::string histName;
294  histName = "h_phiVsNstrips" + histNames2[iSurface] + hNum[l] + "Side" + hNumS[side];
295  std::string histTitle;
296  histTitle = histTitles[iSurface] + "Inc. Angle vs nStrips for Layer Side" + hNum[l] + hNumS[side];
297  int iflag{0};
298  m_phiVsNstrips[l][side][iSurface] = pFactory(histName, histTitle, nProfileBins, -90., 90., Lorentz, iflag);
299  m_phiVsNstrips[l][side][iSurface]->GetXaxis()->SetTitle("#phi to Wafer");
300  m_phiVsNstrips[l][side][iSurface]->GetYaxis()->SetTitle("Num of Strips");
301  success *= iflag;
302  }
303  }
304  }
305  if (success == 0) {
306  return StatusCode::FAILURE;
307  }
308  return StatusCode::SUCCESS;
309 }
310 
311 TProfile*
312 SCTLorentzMonTool::pFactory(const std::string& name, const std::string& title, int nbinsx, float xlow, float xhigh,
313  MonGroup& registry, int& iflag) const {
314  TProfile* tmp{new TProfile{name.c_str(), title.c_str(), nbinsx, xlow, xhigh}};
315  bool success{registry.regHist(tmp).isSuccess()};
316 
317  if (not success) {
318  ATH_MSG_ERROR("Cannot book SCT histogram: " << name);
319  iflag = 0;
320  } else {
321  iflag = 1;
322  }
323 
324  return tmp;
325 }
326 
327 int
328 SCTLorentzMonTool::findAnglesToWaferSurface(const float (&vec)[3], // 3 is for x, y, z.
329  const float& sinAlpha, const Identifier& id,
330  const InDetDD::SiDetectorElementCollection* elements,
331  float& theta, float& phi) const {
332  int iflag{-1};
333 
334  phi = 90.;
335  theta = 90.;
336 
337  const Identifier waferId{m_pSCTHelper->wafer_id(id)};
338  const IdentifierHash waferHash{m_pSCTHelper->wafer_hash(waferId)};
339  const InDetDD::SiDetectorElement* element{elements->getDetectorElement(waferHash)};
340  if (element==nullptr) {
341  ATH_MSG_ERROR("findAnglesToWaferSurface: failed to find detector element for id=" <<
343  return iflag;
344  }
345 
346  float cosAlpha{std::sqrt(1.0f - sinAlpha * sinAlpha)};
347  double phix{ cosAlpha * element->phiAxis().x() + sinAlpha * element->phiAxis().y()};
348  double phiy{-sinAlpha * element->phiAxis().x() + cosAlpha * element->phiAxis().y()};
349 
350  double pNormal{vec[0] * element->normal().x() + vec[1] * element->normal().y() + vec[2] * element->normal().z()};
351  double pEta{ vec[0] * element->etaAxis().x() + vec[1] * element->etaAxis().y() + vec[2] * element->etaAxis().z()};
352  double pPhi{ vec[0] * phix + vec[1] * phiy + vec[2] * element->phiAxis().z()};
353 
354  if (pPhi < 0.) {
355  phi = -90.;
356  }
357  if (pEta < 0.) {
358  theta = -90.;
359  }
360  if (pNormal != 0.) {
361  phi = atan(pPhi / pNormal) / CLHEP::deg;
362  theta = atan(pEta / pNormal) / CLHEP::deg;
363  }
364  iflag = 1;
365  return iflag;
366 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
python.Dso.registry
registry
Definition: Control/AthenaServices/python/Dso.py:159
SCT_NameFormatter.h
SCTLorentzMonTool::m_pSCTHelper
const SCT_ID * m_pSCTHelper
SCT Helper class.
Definition: SCTLorentzMonTool.h:87
SCTLorentzMonTool::bookHistogramsRecurrent
virtual StatusCode bookHistogramsRecurrent() override final
An inheriting class should either override this function, bookHists() or bookHistograms().
Definition: SCTLorentzMonTool.cxx:66
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
SCT_ID.h
This is an Identifier helper class for the SCT subdetector. This class is a factory for creating comp...
TrackParameters.h
AddEmptyComponent.histName
string histName
Definition: AddEmptyComponent.py:64
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
InDetDD::SiDetectorElementCollection
Definition: SiDetectorElementCollection.h:30
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
SCTLorentzMonTool::bookLorentzHistos
StatusCode bookLorentzHistos()
Definition: SCTLorentzMonTool.cxx:273
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
ManagedMonitorToolBase
Provides functionality for users to implement and save histograms, ntuples, and summary data,...
Definition: ManagedMonitorToolBase.h:74
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
SCTLorentzMonTool::checkHists
virtual StatusCode checkHists(bool fromFinalize) override final
helper function used in procHistograms
Definition: SCTLorentzMonTool.cxx:265
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
AthenaMonManager::cosmics
@ cosmics
Definition: AthenaMonManager.h:58
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
SCT::N_SIDES
constexpr unsigned int N_SIDES
Definition: SCT_ChipUtils.h:16
deg
#define deg
Definition: SbPolyhedron.cxx:17
SCTLorentzMonTool::nSurfaces
@ nSurfaces
Definition: SCTLorentzMonTool.h:61
SCTLorentzMonTool::SiliconSurface
SiliconSurface
Definition: SCTLorentzMonTool.h:61
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
SiClusterOnTrack.h
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
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
SCTLorentzMonTool::m_assoTool
ToolHandle< Trk::IPRD_AssociationTool > m_assoTool
Association tool.
Definition: SCTLorentzMonTool.h:81
SCTLorentzMonTool::pFactory
TProfile * pFactory(const std::string &name, const std::string &title, int nbinsx, float xlow, float xhigh, MonGroup &registry, int &iflag) const
Factory + register for the 2D profiles, returns whether successfully registered.
Definition: SCTLorentzMonTool.cxx:312
SCT_Monitoring
Definition: SCT_MonitoringNumbers.h:17
ReadCondHandle.h
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
SCTLorentzMonTool::SCTLorentzMonTool
SCTLorentzMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor, calls base class constructor with parameters.
Definition: SCTLorentzMonTool.cxx:41
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SCTLorentzMonTool::nSides
@ nSides
Definition: SCTLorentzMonTool.h:62
TRT::Hit::side
@ side
Definition: HitInfo.h:83
ManagedMonitorToolBase::MonGroup
A container of information describing a monitoring object.
Definition: ManagedMonitorToolBase.h:138
SCT_Monitoring::N_BARRELS
@ N_BARRELS
Definition: SCT_MonitoringNumbers.h:43
SCTLorentzMonTool.h
AthenaMonManager::dataType
static DataType_t dataType()
Returns the data type that the monitoring application is running over to help ManagedMonitorToolBase ...
Definition: AthenaMonManager.cxx:338
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ManagedMonitorToolBase::initialize
virtual StatusCode initialize()
Definition: ManagedMonitorToolBase.cxx:669
SCTLorentzMonTool::m_SCTDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
Definition: SCTLorentzMonTool.h:76
lumiFormat.i
int i
Definition: lumiFormat.py:92
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
SCTLorentzMonTool::surface100
@ surface100
Definition: SCTLorentzMonTool.h:61
covarianceTool.title
title
Definition: covarianceTool.py:542
SCTLorentzMonTool::findAnglesToWaferSurface
int findAnglesToWaferSurface(const float(&vec)[3], const float &sinAlpha, const Identifier &id, const InDetDD::SiDetectorElementCollection *elements, float &theta, float &phi) const
Definition: SCTLorentzMonTool.cxx:328
ManagedMonitorToolBase::ATTRIB_UNMANAGED
@ ATTRIB_UNMANAGED
Definition: ManagedMonitorToolBase.h:131
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SCT_ID::wafer_hash
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
Definition: SCT_ID.h:492
TrackSummary.h
Trk::ParametersBase
Definition: ParametersBase.h:55
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
DataVector< const Trk::TrackStateOnSurface >
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
Trk::d0
@ d0
Definition: ParamDefs.h:69
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition: SCT_ID.h:734
SiCluster.h
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
xAOD::TauJetParameters::nStrip
@ nStrip
Get number of strips.
Definition: TauDefs.h:204
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
SCTLorentzMonTool::m_rejectSharedHits
BooleanProperty m_rejectSharedHits
Definition: SCTLorentzMonTool.h:93
SCTLorentzMonTool::m_phiVsNstrips
TProfile * m_phiVsNstrips[SCT_Monitoring::N_BARRELS][nSides][nSurfaces]
Vector of pointers to profile histogram of local inc angle (phi) vs nStrips.
Definition: SCTLorentzMonTool.h:71
ManagedMonitorToolBase::run
@ run
Definition: ManagedMonitorToolBase.h:116
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
AtlasDetectorID::show_to_string
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:574
SCTLorentzMonTool::surface111
@ surface111
Definition: SCTLorentzMonTool.h:61
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
SCTLorentzMonTool::m_gpath
std::string m_gpath
Definition: SCTLorentzMonTool.h:65
ManagedMonitorToolBase::endOfRunFlag
bool endOfRunFlag() const
Definition: ManagedMonitorToolBase.h:859
SCTLorentzMonTool::m_tracksName
SG::ReadHandleKey< TrackCollection > m_tracksName
Name of the Track collection to use.
Definition: SCTLorentzMonTool.h:75
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
SCTLorentzMonTool::fillHistograms
virtual StatusCode fillHistograms() override final
Fill histograms in each loop.
Definition: SCTLorentzMonTool.cxx:95
SCT_ID::eta_module
int eta_module(const Identifier &id) const
Definition: SCT_ID.h:746
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:73
SCT_ID::side
int side(const Identifier &id) const
Definition: SCT_ID.h:752
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
ReadHandle.h
Handle class for reading from StoreGate.
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
Trk::IPRD_AssociationTool::Maps
The mutable state of the tool.
Definition: IPRD_AssociationTool.h:56
InDetDD::SiDetectorElementCollection::getDetectorElement
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
Definition: SiDetectorElementCollection.cxx:15
InDet::SiCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:40
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
InDet::SiClusterOnTrack
Definition: SiClusterOnTrack.h:39
SCTLorentzMonTool::bookHistograms
virtual StatusCode bookHistograms() override final
Book histograms in initialization.
Definition: SCTLorentzMonTool.cxx:80
SCTLorentzMonTool::initialize
virtual StatusCode initialize() override final
Definition: SCTLorentzMonTool.cxx:47
SCTLorentzMonTool::procHistograms
virtual StatusCode procHistograms() override final
process histograms at the end (we only use 'isEndOfRun')
Definition: SCTLorentzMonTool.cxx:252
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65