ATLAS Offline Software
InDetTrackSelectionToolTester.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // a testing utility for the track selection tool mostly copied from CPToolTests.cxx
6 
7 // System include(s):
8 #include <memory>
9 #include <cstdlib>
10 
11 // ROOT include(s):
12 #include <TFile.h>
13 #include <TError.h>
14 #include <TH2F.h>
15 
16 // Infrastructure include(s):
17 #ifdef ROOTCORE
18 # include "xAODRootAccess/Init.h"
19 # include "xAODRootAccess/TEvent.h"
20 #endif // ROOTCORE
21 
22 // Local include(s):
24 
25 using std::vector;
26 using std::string;
27 using std::unique_ptr;
29 
30 struct HistFamily
31 {
32 public:
33  HistFamily(const string&);
34  void fill(const xAOD::TrackParticle&, const xAOD::Vertex*);
35  HistFamily(const HistFamily &) = delete;
36  HistFamily & operator =(const HistFamily &) = delete;
37 private:
38  TH2* h_pt = nullptr; // these show eta dependence
39  TH2* h_si_hits_phys = nullptr;
40  TH2* h_si_hits = nullptr;
41  TH2* h_si_holes = nullptr;
42  TH2* h_si_shared = nullptr;
43  TH2* h_ibl_hits = nullptr;
44  TH2* h_bl_hits = nullptr;
45  TH2* h_ibl_expected = nullptr;
46  TH2* h_bl_expected = nullptr;
47  TH2* h_pix_hits_phys = nullptr;
48  TH2* h_pix_hits = nullptr;
49  TH2* h_pix_holes = nullptr;
50  TH2* h_pix_shared = nullptr;
51  TH2* h_sct_hits_phys = nullptr;
52  TH2* h_sct_hits = nullptr;
53  TH2* h_sct_holes = nullptr;
54  TH2* h_sct_shared = nullptr;
55  TH2* h_trt_hits = nullptr;
56  TH2* h_trt_outlier_fraction = nullptr;
57 
58  TH2* h_d0 = nullptr; // these show IP vs. uncertainty in IP
59  TH2* h_z0sintheta = nullptr;
60 
61  // a helper function to return the summary
63 };
64 
65 
66 int main( int argc, char* argv[] ) {
67 
68  // The application's name:
69  const char* APP_NAME = argv[ 0 ];
70 #define CHECK( ARG ) do {ASG_CHECK_SA( APP_NAME, ARG );} while (false)
71 
72  string fileName;
73  // Check if we received a file name:
74  if( argc < 2 ) {
75  fileName = getenv("ROOTCORE_TEST_FILE");
76  if (fileName.empty()) {
77  Error( APP_NAME, "No file name received!" );
78  Error( APP_NAME, " Usage: %s [xAOD file name]", APP_NAME );
79  return 1;
80  }
81  } else {
82  fileName = argv[ 1 ];
83  }
84 
85  // fail on an unchecked StatusCode
86  StatusCode::enableFailure();
87 
88  // Initialise the application:
89  CHECK( static_cast<StatusCode>(xAOD::Init( APP_NAME )) );
90 
91  // Open the input file:
92  Info( APP_NAME, "Opening file: %s", fileName.data() );
93  unique_ptr< TFile > ifile( TFile::Open( fileName.data(), "READ" ) );
94  StatusCode gotFile = ifile.get()!=nullptr ? StatusCode::SUCCESS : StatusCode::FAILURE;
95  CHECK( gotFile );
96 
97  // Create a TEvent object:
98  xAOD::TEvent event( static_cast<TFile*>(nullptr), xAOD::TEvent::kClassAccess );
99  CHECK( static_cast<StatusCode>(event.readFrom( ifile.get() )) );
100  Info( APP_NAME, "Number of events in the file: %llu", event.getEntries() );
101 
102  // Decide how many events to run over:
103  Long64_t entries = event.getEntries();
104  if( argc > 2 ) {
105  const Long64_t e = atoll( argv[ 2 ] );
106  if( e < entries ) {
107  entries = e;
108  }
109  }
110 
111  unique_ptr< TFile > outFile(new TFile("IDTrackSelectionToolTestOut.root", "RECREATE"));
112  Info( APP_NAME, "Creating output file %s", outFile->GetName() );
113 
114  const vector<string> cutNames = {"NoCut", "Loose", "LoosePrimary", "TightPrimary", "LooseMuon", "LooseElectron", "MinBias", "HILoose", "HITight", "HILooseOptimized", "HITightOptimized"}; // these are names of pre-defined selections
115  const vector<string> otherCutNames = {"IP", "IPSigma", "IPSignificance"}; // other configurations we will define manually
116  std::map<string, unique_ptr<TrkSelTool> > selToolMap;
117  std::map<string, unique_ptr<HistFamily> > histFamilyMap;
118  for (const auto& cut : cutNames) {
119  selToolMap[cut] = unique_ptr<TrkSelTool>(new TrkSelTool( (cut+"TrackSelection") ));
120  CHECK( selToolMap[cut]->setProperty( "CutLevel", cut) );
121  CHECK( selToolMap[cut]->initialize() );
122  histFamilyMap[cut] = unique_ptr<HistFamily>(new HistFamily(cut));
123  }
124  selToolMap["IP"] = unique_ptr<TrkSelTool>(new TrkSelTool("IPTrackSelection"));
125  CHECK( selToolMap["IP"]->setProperty( "maxD0", 1.5 ) );
126  CHECK( selToolMap["IP"]->setProperty( "maxZ0SinTheta", 1.5 ) );
127  CHECK( selToolMap["IP"]->initialize() );
128  histFamilyMap["IP"] = unique_ptr<HistFamily>(new HistFamily("IP"));
129  selToolMap["IPSigma"] = unique_ptr<TrkSelTool>(new TrkSelTool("IPSigmaTrackSelection"));
130  CHECK( selToolMap["IPSigma"]->setProperty( "maxSigmaD0", 1.5 ) );
131  CHECK( selToolMap["IPSigma"]->setProperty( "maxSigmaZ0SinTheta", 1.5 ) );
132  CHECK( selToolMap["IPSigma"]->initialize() );
133  histFamilyMap["IPSigma"] = unique_ptr<HistFamily>(new HistFamily("IPSigma"));
134  selToolMap["IPSignificance"] = unique_ptr<TrkSelTool>(new TrkSelTool("IPSignificanceTrackSelection"));
135  CHECK( selToolMap["IPSignificance"]->setProperty( "maxD0overSigmaD0", 3.0 ) );
136  CHECK( selToolMap["IPSignificance"]->setProperty( "maxZ0SinThetaoverSigmaZ0SinTheta", 3.0 ) );
137  CHECK( selToolMap["IPSignificance"]->initialize() );
138  histFamilyMap["IPSignificance"] = unique_ptr<HistFamily>(new HistFamily("IPSignificance"));
139 
140  // Loop over the events:
141  for( Long64_t entry = 0; entry < entries; ++entry ) {
142 
143  // Tell the object which entry to look at:
144  CHECK( !event.getEntry( entry ) );
145 
146  // Get the InDetTrackParticles from the event:
147  const xAOD::TrackParticleContainer* tracks = nullptr;
148  CHECK( static_cast<StatusCode>(event.retrieve( tracks, "InDetTrackParticles" )) );
149 
150  const xAOD::VertexContainer* vertices = nullptr;
151  CHECK( static_cast<StatusCode>(event.retrieve( vertices, "PrimaryVertices" )) );
152  const auto it_pv = std::find_if(vertices->cbegin(), vertices->cend(),
153  [](const xAOD::Vertex* vtx)
154  {return vtx->vertexType() == xAOD::VxType::PriVtx;});
155  const xAOD::Vertex* primaryVertex = (it_pv == vertices->cend()) ? nullptr : *it_pv;
156  if (primaryVertex == nullptr) Warning( APP_NAME, "No primary vertex found." );
157 
158  for( const xAOD::TrackParticle* track : *tracks ) {
159  if (track == nullptr) {
160  Error( APP_NAME, "Null pointer to track!" );
161  continue;
162  }
163  for (const auto& cut : cutNames) {
164  if (selToolMap[cut]->accept(*track, primaryVertex)) histFamilyMap[cut]->fill(*track, primaryVertex);
165  }
166  for (const auto& cut : otherCutNames) {
167  if (selToolMap[cut]->accept(*track, primaryVertex)) histFamilyMap[cut]->fill(*track, primaryVertex);
168  }
169 
170  } // end loop over tracks
171 
172  } // end loop over events
173 
174  for (const auto& selTool : selToolMap) CHECK( selTool.second->finalize() );
175 
176  // draw histogram
177  outFile->Write();
178 
179  // Return gracefully:
180  return 0;
181 }
182 
183 
185 {
186  auto* currentFile = TFile::CurrentFile();
187  currentFile->mkdir(cut_name.data())->cd(); // create a directory for this cut type and cd into it
188 #define HIST_INIT( NAME, AXIS_LABEL, AXIS_N, AXIS_XL, AXIS_XH ) \
189  do{ \
190  h_##NAME = new TH2F(#NAME, #NAME ";#eta;" AXIS_LABEL, 50,-2.5,2.5, \
191  AXIS_N, AXIS_XL, AXIS_XH); \
192  } while (false)
193 
194  HIST_INIT( pt, "p_{T} [GeV]", 100, 0, 20 );
195  HIST_INIT( si_hits_phys, "Si physical hits", 24, 0, 24 );
196  HIST_INIT( si_hits, "Si hits", 24, 0, 24 );
197  HIST_INIT( si_holes, "Si holes", 6, 0, 6 );
198  HIST_INIT( si_shared, "Si shared hits", 6, 0, 6 );
199  HIST_INIT( pix_hits_phys, "Pixel physical hits", 10, 0, 10 );
200  HIST_INIT( pix_hits, "Pixel hits", 10, 0, 10 );
201  HIST_INIT( pix_holes, "Pixel holes", 4, 0, 4 );
202  HIST_INIT( pix_shared, "Pixel shared hits", 4, 0, 4 );
203  HIST_INIT( sct_hits_phys, "SCT physical hits", 16, 0, 16 );
204  HIST_INIT( sct_hits, "SCT hits", 16, 0, 16 );
205  HIST_INIT( sct_holes, "SCT holes", 4, 0, 4 );
206  HIST_INIT( sct_shared, "SCT shared hits", 4, 0, 4 );
207  HIST_INIT( ibl_hits, "IBL hits", 4, 0, 4 );
208  HIST_INIT( ibl_expected, "expect IBL hit", 2, 0, 2 );
209  HIST_INIT( bl_hits, "BLayer hits", 4, 0, 4 );
210  HIST_INIT( bl_expected, "expect BLayer hit", 2, 0, 2 );
211  HIST_INIT( trt_hits, "TRT hits + outliers", 60, 0, 60 );
212  HIST_INIT( trt_outlier_fraction, "TRT outlier fraction", 25, 0., 1. );
213 
214  h_d0 = new TH2F( "d0", "d_{0}^{BL};d_{0}^{BL} [mm];#sigma_{d_{0}} [mm]", 60, -3., 3., 60, 0., 3. );
215  h_z0sintheta = new TH2F( "z0sintheta", "z_{0}^{PV} sin #theta;z_{0}^{PV} sin #theta [mm];#sigma_{z_{0} sin #theta} [mm]", 100, -5., 5., 50, 0., 5. );
216 
217 #undef HIST_INIT
218 
219  currentFile->cd(); // move back to the parent directory
220 }
221 
223 {
224  uint8_t nPixHits = getSum(trk, xAOD::numberOfPixelHits);
226  uint8_t nPixShared = getSum(trk, xAOD::numberOfPixelSharedHits);
227  uint8_t nPixHoles = getSum(trk, xAOD::numberOfPixelHoles);
228  uint8_t nSctHits = getSum(trk, xAOD::numberOfSCTHits);
230  uint8_t nSctShared = getSum(trk, xAOD::numberOfSCTSharedHits);
231  uint8_t nSctHoles = getSum(trk, xAOD::numberOfSCTHoles);
236  uint8_t nTrtHits = getSum(trk, xAOD::numberOfTRTHits);
237  uint8_t nTrtOutliers = getSum(trk, xAOD::numberOfTRTOutliers);
238 
239  double eta = trk.eta();
240  h_pt->Fill(eta, trk.pt()*1e-3);
241  h_ibl_hits->Fill(eta, nIblHits);
242  h_ibl_expected->Fill(eta, expectIbl);
243  h_bl_hits->Fill(eta, nBlHits);
244  h_bl_expected->Fill(eta, expectBl);
245  h_pix_hits_phys->Fill(eta, nPixHits);
246  h_pix_hits->Fill(eta, nPixHits + nPixDead);
247  h_pix_holes->Fill(eta, nPixHoles);
248  h_pix_shared->Fill(eta, nPixShared);
249  h_sct_hits_phys->Fill(eta, nSctHits);
250  h_sct_hits->Fill(eta, nSctHits + nSctDead);
251  h_sct_holes->Fill(eta, nSctHoles);
252  h_sct_shared->Fill(eta, nSctShared);
253  h_si_hits_phys->Fill(eta, nPixHits + nSctHits);
254  h_si_hits->Fill(eta, nPixHits + nPixDead + nSctHits + nSctDead);
255  h_si_holes->Fill(eta, nPixHoles + nSctHoles);
256  h_si_shared->Fill(eta, nPixShared + nSctShared);
257  h_trt_hits->Fill(eta, nTrtHits + nTrtOutliers);
258  h_trt_outlier_fraction->Fill(eta, nTrtOutliers / static_cast<double>(nTrtHits + nTrtOutliers));
259 
260  const auto& covMatrix = trk.definingParametersCovMatrix();
261  h_d0->Fill(trk.d0(), std::sqrt(covMatrix(0,0)) );
262  double z0 = trk.z0();
263  if (vtx != nullptr) {
264  z0 += trk.vz() - vtx->z();
265  }
266  double sinTheta = std::sin(trk.theta());
267  double cosTheta = std::cos(trk.theta());
268  double varZ0SinTheta = 0.;
269  varZ0SinTheta += covMatrix(1,1)*sinTheta*sinTheta;
270  varZ0SinTheta += 2*covMatrix(1,3)*z0*sinTheta*cosTheta;
271  varZ0SinTheta += covMatrix(3,3)*z0*z0*cosTheta*cosTheta;
272  h_z0sintheta->Fill(z0*sinTheta, std::sqrt(varZ0SinTheta));
273 
274  return;
275 }
276 
278 {
279  uint8_t sum_val = 0;
280  if (!trk.summaryValue(sum_val, sum_type)) {
281  Error( "HistFamily::getSum()", "Could not get summary type %i", sum_type );
282  }
283  return sum_val;
284 }
xAOD::TrackParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TrackParticle_v1.cxx:73
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:261
HistFamily::h_pix_hits
TH2 * h_pix_hits
Definition: InDetTrackSelectionToolTester.cxx:48
HistFamily::h_si_shared
TH2 * h_si_shared
Definition: InDetTrackSelectionToolTester.cxx:42
xAOD::numberOfSCTSharedHits
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:272
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
HistFamily::h_bl_hits
TH2 * h_bl_hits
Definition: InDetTrackSelectionToolTester.cxx:44
xAOD::TrackParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TrackParticle_v1.cxx:77
HistFamily::h_sct_hits
TH2 * h_sct_hits
Definition: InDetTrackSelectionToolTester.cxx:52
initialize
void initialize()
Definition: run_EoverP.cxx:894
CutsMETMaker::accept
StatusCode accept(const xAOD::Muon *mu)
Definition: CutsMETMaker.cxx:18
xAOD::TrackParticle_v1::summaryValue
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
Definition: TrackParticle_v1.cxx:736
xAOD::TrackParticle_v1::vz
float vz() const
The z origin for the parameters.
test_pyathena.pt
pt
Definition: test_pyathena.py:11
HistFamily::h_ibl_hits
TH2 * h_ibl_hits
Definition: InDetTrackSelectionToolTester.cxx:43
xAOD::TrackParticle_v1::z0
float z0() const
Returns the parameter.
TrkSelTool
InDet::InDetTrackSelectionTool TrkSelTool
Definition: InDetTrackSelectionToolTester.cxx:28
DataVector::cend
const_iterator cend() const noexcept
Return a const_iterator pointing past the end of the collection.
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
xAOD::expectInnermostPixelLayerHit
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Definition: TrackingPrimitives.h:236
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
HIST_INIT
#define HIST_INIT(NAME, AXIS_LABEL, AXIS_N, AXIS_XL, AXIS_XH)
xAOD::TEvent::kClassAccess
@ kClassAccess
Access auxiliary data using the aux containers.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:100
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
xAOD::TrackParticle_v1::d0
float d0() const
Returns the parameter.
HistFamily::h_ibl_expected
TH2 * h_ibl_expected
Definition: InDetTrackSelectionToolTester.cxx:45
HistFamily::h_trt_hits
TH2 * h_trt_hits
Definition: InDetTrackSelectionToolTester.cxx:55
HistFamily::h_si_hits_phys
TH2 * h_si_hits_phys
Definition: InDetTrackSelectionToolTester.cxx:39
xAOD::numberOfPixelSharedHits
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:262
HistFamily::h_pt
TH2 * h_pt
Definition: InDetTrackSelectionToolTester.cxx:38
xAOD::SummaryType
SummaryType
Enumerates the different types of information stored in Summary.
Definition: TrackingPrimitives.h:228
POOL::TEvent::readFrom
StatusCode readFrom(TFile *file)
Definition: PhysicsAnalysis/POOLRootAccess/src/TEvent.cxx:133
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
xAOD::expectNextToInnermostPixelLayerHit
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
Definition: TrackingPrimitives.h:247
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
POOL::TEvent::getEntry
int getEntry(long entry)
Definition: PhysicsAnalysis/POOLRootAccess/src/TEvent.cxx:185
POOL::TEvent::getEntries
long getEntries()
Definition: PhysicsAnalysis/POOLRootAccess/src/TEvent.cxx:124
HistFamily::h_sct_hits_phys
TH2 * h_sct_hits_phys
Definition: InDetTrackSelectionToolTester.cxx:51
LArCellNtuple.argv
argv
Definition: LArCellNtuple.py:152
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector< string >
HistFamily::h_si_holes
TH2 * h_si_holes
Definition: InDetTrackSelectionToolTester.cxx:41
xAOD::covMatrix
covMatrix
Definition: TrackMeasurement_v1.cxx:19
HistFamily::h_pix_shared
TH2 * h_pix_shared
Definition: InDetTrackSelectionToolTester.cxx:50
CHECK
#define CHECK(ARG)
HistFamily::h_d0
TH2 * h_d0
Definition: InDetTrackSelectionToolTester.cxx:58
HistFamily::h_z0sintheta
TH2 * h_z0sintheta
Definition: InDetTrackSelectionToolTester.cxx:59
APP_NAME
#define APP_NAME
Definition: BoostedXbbTag.cxx:23
TEvent.h
BindingsTest.cut
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.
Definition: BindingsTest.py:13
InDetTrackSelectionTool.h
HistFamily::h_trt_outlier_fraction
TH2 * h_trt_outlier_fraction
Definition: InDetTrackSelectionToolTester.cxx:56
Init.h
xAOD::Vertex_v1::z
float z() const
Returns the z position.
DQHistogramMergeRegExp.argc
argc
Definition: DQHistogramMergeRegExp.py:20
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
xAOD::numberOfSCTHoles
@ numberOfSCTHoles
number of SCT holes [unit8_t].
Definition: TrackingPrimitives.h:270
cut_name
const char * cut_name[]
Definition: SUSYToolsTester.cxx:83
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
DQPostProcessTest.outFile
outFile
Comment Out Those You do not wish to run.
Definition: DQPostProcessTest.py:37
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
xAOD::numberOfNextToInnermostPixelLayerHits
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
Definition: TrackingPrimitives.h:248
HistFamily::h_si_hits
TH2 * h_si_hits
Definition: InDetTrackSelectionToolTester.cxx:40
HistFamily::fill
void fill(const xAOD::TrackParticle &, const xAOD::Vertex *)
Definition: InDetTrackSelectionToolTester.cxx:222
xAOD::TrackParticle_v1::definingParametersCovMatrix
const ParametersCovMatrix_t definingParametersCovMatrix() const
Returns the 5x5 symmetric matrix containing the defining parameters covariance matrix.
Definition: TrackParticle_v1.cxx:246
HistFamily::operator=
HistFamily & operator=(const HistFamily &)=delete
HistFamily::h_pix_holes
TH2 * h_pix_holes
Definition: InDetTrackSelectionToolTester.cxx:49
main
int main(int argc, char *argv[])
Definition: InDetTrackSelectionToolTester.cxx:66
xAOD::numberOfTRTOutliers
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
Definition: TrackingPrimitives.h:276
SCT_ConditionsAlgorithms::CoveritySafe::getenv
std::string getenv(const std::string &variableName)
get an environment variable
Definition: SCT_ConditionsUtilities.cxx:17
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
HistFamily::HistFamily
HistFamily(const string &)
Definition: InDetTrackSelectionToolTester.cxx:184
xAOD::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:273
POOL::TEvent::retrieve
StatusCode retrieve(const T *&obj)
Definition: PhysicsAnalysis/POOLRootAccess/POOLRootAccess/TEvent.h:74
HistFamily::h_pix_hits_phys
TH2 * h_pix_hits_phys
Definition: InDetTrackSelectionToolTester.cxx:47
InDet::InDetTrackSelectionTool
Implementation of the track selector tool.
Definition: InDetTrackSelectionTool.h:52
HistFamily::getSum
uint8_t getSum(const xAOD::TrackParticle &, xAOD::SummaryType) const
Definition: InDetTrackSelectionToolTester.cxx:277
entries
double entries
Definition: listroot.cxx:49
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
DataVector::cbegin
const_iterator cbegin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
L1Topo::Error
Error
The different types of error that can be flagged in the L1TopoRDO.
Definition: Error.h:16
xAOD::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
Definition: TrackingPrimitives.h:266
LArCellNtuple.ifile
string ifile
Definition: LArCellNtuple.py:133
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
HistFamily::h_sct_shared
TH2 * h_sct_shared
Definition: InDetTrackSelectionToolTester.cxx:54
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
HistFamily::h_sct_holes
TH2 * h_sct_holes
Definition: InDetTrackSelectionToolTester.cxx:53
xAOD::TrackParticle_v1::theta
float theta() const
Returns the parameter, which has range 0 to .
HistFamily
Definition: InDetTrackSelectionToolTester.cxx:31
xAOD::TEvent
Tool for accessing xAOD files outside of Athena.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:84
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:237
xAOD::Init
StatusCode Init(const char *appname)
Function initialising ROOT/PyROOT for using the ATLAS EDM.
Definition: Init.cxx:31
HistFamily::h_bl_expected
TH2 * h_bl_expected
Definition: InDetTrackSelectionToolTester.cxx:46
HistFamily::HistFamily
HistFamily(const HistFamily &)=delete