ATLAS Offline Software
BasicValTrkParticleNtupleTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // BasicValidationNtupleTool.cxx
7 // Source file for class BasicValidationNtupleTool
9 // (c) ATLAS Detector software
11 // Sebastian.Fleischmann@cern.ch
13 
14 
15 #include "TTree.h"
16 #include "GaudiKernel/ITHistSvc.h"
17 
22 #include <bitset>
23 
25 
26 // constructor
28  const std::string& t,
29  const std::string& n,
30  const IInterface* p )
31  :
32  AthAlgTool(t,n,p), // retrieve as private tools
33  m_bookNewNtuple{},
34  m_nt(nullptr),
35  m_TrackIDcounter{},
36  m_lastEventNumber(0),
37  m_runNumber{},
38  m_eventNumber{},
39  m_TrackID{},
40  m_Rec_d0{},
41  m_Rec_z0{},
42  m_Rec_phi0{},
43  m_Rec_eta{},
44  m_Rec_qOverP{},
45 
46  m_errord0{},
47  m_errorz0{},
48  m_errorphi0{},
49  m_errortheta0{},
50  m_errorqoverp{},
51  m_chi2{},
52  m_numberOfPixelHits{},
53  m_numberOfContribPixelLayers{},
54  m_numberOfPixelHoles{},
55  m_numberOfPixelDeadSensors{},
56  m_numberOfSCTHits{},
57  m_numberOfSCTHoles{},
58  m_numberOfSCTDeadSensors{},
59  m_numberOfTRTHits{},
60  m_numberOfTRTHoles{},
61  m_numberOfTRTDeadStraws{},
62  m_numberOfTRTHighThresholdHits{},
63  m_idHitPattern{}
64 {
65 
66  declareInterface<IValidationNtupleTool>(this);
67  // Declare the properties
68  declareProperty("BookNewNtuple", m_bookNewNtuple = false, "Create the ntuple tree or use existing one?");
69  declareProperty("NtupleFileName", m_ntupleFileName = "/NTUPLES/FILE1", "Ntuple file handle");
70  declareProperty("NtupleDirectoryName", m_ntupleDirName = "FitterValidation", "dircetory name for ntuple tree");
71  declareProperty("NtupleTreeName", m_ntupleTreeName = "Validation", "Name of the ntuple tree");
72 }
73 
74 // destructor
76 
77 
78 
79 
80 // initialize
82 
83  ATH_CHECK( m_evt.initialize() );
84 
85  // create ntuple tree
86  if (m_bookNewNtuple) {
87  // ---------------------------
88  // retrive pointer to THistSvc
89  ITHistSvc *tHistSvc;
90  StatusCode sc = service("THistSvc", tHistSvc);
91  if (sc.isFailure()) {
92  ATH_MSG_ERROR("Unable to retrieve pointer to THistSvc");
93  return sc;
94  }
95 
96  // ---------------------------
97  // create tree and register it to THistSvc
98 
99  m_nt = new TTree(TString(m_ntupleTreeName), "Track Particle Validation");
100  // NB: we must not delete the tree, this is done by THistSvc
101 
102  std::string fullNtupleName = "/"+m_ntupleFileName+"/"+m_ntupleDirName+"/"+m_ntupleTreeName;
103  sc = tHistSvc->regTree(fullNtupleName, m_nt);
104  if (sc.isFailure()) {
105  ATH_MSG_ERROR("Unable to register TTree : " << fullNtupleName);
106  return sc;
107  }
108  // add the ntuple branches (this function has to be called by the client of this tool, if m_bookNewNtuple is set to false...)
109  ATH_CHECK(addNtupleItems(m_nt));
110  }
111 
112  m_TrackIDcounter = 0;
113  return StatusCode::SUCCESS;
114 }
115 
120 
121  ATH_MSG_DEBUG("start finalize() in " << name());
122  if (m_nt) {
123  delete m_nt;
124  m_nt = nullptr;
125  }
126 
127  return StatusCode::SUCCESS;
128 }
129 
131  if (!tree) return StatusCode::FAILURE;
132  //-----------------
133  // add items *** Note: Documentation is in the header file, doxygen and wikis! ***
134  //
135  // event info:
136  tree->Branch("RunNumber", &m_runNumber, "run_number/I");
137  tree->Branch("EventNumber", &m_eventNumber, "event_number/I");
138  tree->Branch("TrackID", &m_TrackID, "ID_of_track_in_event/b");
139 
140  // reconstructed track parameters
141  tree->Branch("RecD0", &m_Rec_d0, "Reconstructed_d0/F");
142  tree->Branch("RecZ0", &m_Rec_z0, "Reconstructed_z0/F");
143  tree->Branch("RecPhi0", &m_Rec_phi0, "Reconstructed_phi0/F");
144  tree->Branch("RecEta", &m_Rec_eta, "Reconstructed_eta/F");
145  tree->Branch("RecQoverP", &m_Rec_qOverP, "Reconstructed_Q_over_p/F");
146 
147  // errors of reconstructed track parameters
148  tree->Branch("RecErrD0", &m_errord0, "err_d0/F");
149  tree->Branch("RecErrZ0", &m_errorz0, "err_z0/F");
150  tree->Branch("RecErrPhi0", &m_errorphi0, "err_phi0/F");
151  tree->Branch("RecErrTheta", &m_errortheta0, "err_theta/F");
152  tree->Branch("RecErrQoverP", &m_errorqoverp, "err_Q_over_p/F");
153 
154  // fit quality parameters
155  tree->Branch("chi2", &m_chi2, "chi2/F");
156 
157  //track particle summary parameters
158  tree->Branch("nPixelHits", &m_numberOfPixelHits, "numberOfPixelHits/b");
159  tree->Branch("nContribPixelLayers", &m_numberOfContribPixelLayers, "numberOfContribPixelLayers/b");
160  tree->Branch("nPixelHoles", &m_numberOfPixelHoles, "numberOfPixelHoles/b");
161  tree->Branch("nPixelDeadSensors", &m_numberOfPixelDeadSensors, "numberOfPixelDeadSensors/b");
162  tree->Branch("nSCTHits", &m_numberOfSCTHits, "numberOfSCTHits/b");
163  tree->Branch("nSCTHoles", &m_numberOfSCTHoles, "numberOfSCTHoles/b");
164  tree->Branch("nSCTDeadSensors" , &m_numberOfSCTDeadSensors, "numberOfSCTDeadSensors/b");
165  tree->Branch("nTRTHits" , &m_numberOfTRTHits, "numberOfTRTHits/b");
166  tree->Branch("nTRTHoles", &m_numberOfTRTHoles, "numberOfTRTHoles/b");
167  tree->Branch("nTRTDeadStraws", &m_numberOfTRTDeadStraws, "numberOfTRTDeadStraws/b");
168  tree->Branch("nTRTHighThresholdHits", &m_numberOfTRTHighThresholdHits, "numberOfTRTHighThresholdHits/b");
169 
170  tree->Branch("idHitPattern", &m_idHitPattern, "idHitPattern/l");
171 
172  ATH_MSG_DEBUG ("added own branches to ntuple");
173 
174  return StatusCode::SUCCESS;
175 }
176 
177 
179  const Trk::TrackParticleBase& track) {
180  if (!m_nt) {
181  ATH_MSG_ERROR("writeTrackParticleData(...) can only be used, if property BookNewNtuple is set to true" );
182  return StatusCode::FAILURE;
183  }
184  StatusCode sc;
185 
186  ATH_MSG_DEBUG ("in writeTrackParticleData(trk, indx)");
187 
188  sc = fillTrackParticleData(track);
189  if (sc.isFailure()) return sc;
190 
191  return writeRecord(m_nt);
192 }
193 
198  const Trk::TrackParticleBase& track) {
199 
200  // ---------------------------------------
201  // detect new event, reset TrackParticle counter if new event
203  if (!evt.isValid()) {
204  ATH_MSG_WARNING("Could not retrieve event info");
205  m_runNumber = (int)s_errorEntry;
206  m_eventNumber = (int)s_errorEntry;
207  return StatusCode::FAILURE;
208  }
209 
210  if (m_lastEventNumber!=evt->eventNumber()) {
211  // we have a new event, reset TrackParticleID:
212  m_TrackIDcounter = 0;
213  m_lastEventNumber = evt->eventNumber();
214  }
215  m_TrackIDcounter++;
216  m_TrackID = (unsigned char)m_TrackIDcounter;
217  m_eventNumber = evt->eventNumber();
218  m_runNumber = evt->runNumber();
219 
220  ATH_MSG_VERBOSE ("Event: " << m_eventNumber << ", Run: "<< m_runNumber << " TrackID: " << m_TrackID);
221 
222  //----------------------------------------------
223  // fill track parameters in ntuple
224  const Trk::Perigee* perpars = track.perigee();
225  if (perpars != nullptr && fillTrkParticlePerigee(perpars).isFailure()) ATH_MSG_WARNING("Perigee parameters could not be written to ntuple");
226 
227  const Trk::TrackSummary* summary = track.trackSummary();
228  if((!summary) || fillTrkParticleSummary(summary).isFailure()) ATH_MSG_WARNING("Summary parameters could not be written to ntuple");
229 
230  const Trk::FitQuality* fitQuality = track.fitQuality();
231  if((!fitQuality) || fillFitQualityData(fitQuality).isFailure() ) ATH_MSG_WARNING("Fit Quality data could not be written to ntuple");
232 
233  return StatusCode::SUCCESS;
234 }
235 
236 
241 
242  ATH_MSG_VERBOSE ("in fillTrackPerigee");
243 
244  if (!perigee) {
245  ATH_MSG_WARNING("Something is wrong - track has no perigee at all!");
246  m_Rec_d0 = 0;
247  m_Rec_z0 = 0;
248  m_Rec_phi0 = 0;
249  m_Rec_eta = 0;
250  m_Rec_qOverP = 0;
251  return StatusCode::FAILURE;
252  }
253 
254  ATH_MSG_VERBOSE("Fill Perigee Parameters now");
255  // track parameters
256  m_Rec_d0 = perigee->parameters()[Trk::d0];
257  m_Rec_z0 = perigee->parameters()[Trk::z0];
258  m_Rec_phi0 = perigee->parameters()[Trk::phi0];
259  m_Rec_eta = perigee->eta();
260  m_Rec_qOverP = perigee->parameters()[Trk::qOverP];
261 
262  if (perigee->covariance()) {
263 
264  // error of track parameters
265  m_errord0 = Amg::error(*perigee->covariance(),Trk::d0);
266  m_errorz0 = Amg::error(*perigee->covariance(),Trk::z0);
267  m_errorphi0 = Amg::error(*perigee->covariance(),Trk::phi0);
268  m_errortheta0 = Amg::error(*perigee->covariance(),Trk::theta);
269  m_errorqoverp = Amg::error(*perigee->covariance(),Trk::qOverP);
270 
271 
272  } // end if measPerigee
273  ATH_MSG_DEBUG ("Trackparameters: d0=" << m_Rec_d0 << ", z0=" << m_Rec_z0 << ", phi0=" << m_Rec_phi0 << ", eta=" << m_Rec_eta);
274 
275  return StatusCode::SUCCESS;
276 }
277 
282 
283  ATH_MSG_VERBOSE ("in fillTrackSummary");
284 
285  if (!summary) {
286  ATH_MSG_WARNING("Something is wrong - track has no summary at all!");
287  m_numberOfPixelHits = 0;
288  m_numberOfSCTHits = 0;
289 
290  return StatusCode::FAILURE;
291  }
292 
293  ATH_MSG_VERBOSE("Fill Summary Parameters now");
294  // summary of the track
295  m_numberOfPixelHits = (unsigned char)summary->get(Trk::numberOfPixelHits);
296  m_numberOfContribPixelLayers = (unsigned char)summary->get(Trk::numberOfContribPixelLayers);
297  m_numberOfPixelHoles = (unsigned char)summary->get(Trk::numberOfPixelHoles);
298  m_numberOfPixelDeadSensors = (unsigned char)summary->get(Trk::numberOfPixelDeadSensors);
299  m_numberOfSCTHits = (unsigned char)summary->get(Trk::numberOfSCTHits);
300  m_numberOfSCTHoles = (unsigned char)summary->get(Trk::numberOfSCTHoles);
301  m_numberOfSCTDeadSensors = (unsigned char)summary->get(Trk::numberOfSCTDeadSensors);
302  m_numberOfTRTHits = (unsigned char)summary->get(Trk::numberOfTRTHits);
303  m_numberOfTRTHoles = (unsigned char)summary->get(Trk::numberOfTRTHoles);
304  m_numberOfTRTDeadStraws = (unsigned char)summary->get(Trk::numberOfTRTDeadStraws);
305  m_numberOfTRTHighThresholdHits = (unsigned char)summary->get(Trk::numberOfTRTHighThresholdHits);
306 
307  std::bitset<Trk::numberOfDetectorTypes> hitPattern; // all position are set to 0
308  for (int i=0; i<Trk::numberOfDetectorTypes; ++i) {
309  if (summary->isHit(static_cast<Trk::DetectorType>(i))) hitPattern.set(i,1); // set position i to 1
310  }
311  m_idHitPattern = hitPattern.to_ulong();
312 
313  ATH_MSG_DEBUG ("Track summary: number of Pixel hit=" << m_numberOfPixelHits << ", number of SCT hits=" << m_numberOfSCTHits );
314 
315  return StatusCode::SUCCESS;
316 }
317 
319  if (!fitQuality) {
320  ATH_MSG_WARNING("Something is wrong - track has no fit quality data !!");
321  m_chi2 = 0;
322 
323  return StatusCode::FAILURE;
324  }
325 
326  if(fitQuality->numberDoF() == 0) {
327  ATH_MSG_WARNING("Number of DOF is zero !! Could not normalize chi2 ");
328  return StatusCode::FAILURE;
329  }
330 
331  else m_chi2 = (float)fitQuality->chiSquared()/(float)fitQuality->numberDoF();
332 
333  return StatusCode::SUCCESS;
334 }
335 
337  if (!tree) return StatusCode::FAILURE;
338  ATH_MSG_VERBOSE ("Writting Track Particles into the Tree");
339  tree->Fill();
340  resetVariables();
341  return StatusCode::SUCCESS;
342 }
343 
345  m_numberOfPixelHits=0;
346  m_numberOfContribPixelLayers=0;
347  m_numberOfPixelHoles=0;
348  m_numberOfPixelDeadSensors=0;
349  m_numberOfSCTHits=0;
350  m_numberOfSCTHoles=0;
351  m_numberOfSCTDeadSensors=0;
352  m_numberOfTRTHits=0;
353  m_numberOfTRTHoles=0;
354  m_numberOfTRTDeadStraws=0;
355  m_numberOfTRTHighThresholdHits=0;
356  m_idHitPattern=0;
357 }
358 
360  const Trk::Track&,
361  const int,
362  const unsigned int ) {return StatusCode::SUCCESS;}
363  //const Trk::FitterStatusCode ) const {return StatusCode::SUCCESS;}
364 
365 
367  const Trk::Track&,
368  const int,
369  const unsigned int ) {return StatusCode::SUCCESS;}
370  //const Trk::FitterStatusCode ) const {return StatusCode::SUCCESS;}
371 
372 
374  const Trk::TrackParameters*,
375  const int ) {return StatusCode::SUCCESS;}
376 
377 
379  const Trk::MeasurementBase*,
380  const Trk::TrackParameters* ) {return StatusCode::SUCCESS;}
381 
382 
384  const Trk::MeasurementBase*,
385  const Trk::TrackParameters*,
386  const Trk::FitQualityOnSurface* ) {return StatusCode::SUCCESS;}
387 
388 
390  const Trk::TrackStateOnSurface&) {return StatusCode::SUCCESS;}
391 
392 
394  const TrackParameters*&,
395  const TrackTruth&,
396  const int) {return StatusCode::SUCCESS;}
Trk::numberOfPixelHits
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:57
Trk::numberOfContribPixelLayers
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:49
Trk::BasicValTrkParticleNtupleTool::writeRecord
virtual StatusCode writeRecord(TTree *tree)
write the filled data into the ntuple
Definition: BasicValTrkParticleNtupleTool.cxx:336
Trk::BasicValTrkParticleNtupleTool::writeTrackParticleData
virtual StatusCode writeTrackParticleData(const Trk::TrackParticleBase &)
fill AND write ntuple data of a given track particle
Definition: BasicValTrkParticleNtupleTool.cxx:178
Trk::numberOfTRTHighThresholdHits
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:87
Trk::BasicValTrkParticleNtupleTool::s_errorEntry
static const float s_errorEntry
error entry costant
Definition: BasicValTrkParticleNtupleTool.h:160
Trk::BasicValTrkParticleNtupleTool::~BasicValTrkParticleNtupleTool
~BasicValTrkParticleNtupleTool()
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
BasicValTrkParticleNtupleTool.h
Trk::BasicValTrkParticleNtupleTool::fillMeasurementData
virtual StatusCode fillMeasurementData(const Trk::MeasurementBase *, const Trk::TrackParameters *)
fill ntuple data of given measurement and track parameters without writing the record
Definition: BasicValTrkParticleNtupleTool.cxx:378
Trk::BasicValTrkParticleNtupleTool::resetVariables
void resetVariables()
Definition: BasicValTrkParticleNtupleTool.cxx:344
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
Trk::BasicValTrkParticleNtupleTool::fillTrackParameter
virtual StatusCode fillTrackParameter(const Trk::TrackParameters *, const int iterationIndex)
fill ntuple data of a given track without writing the record.
Definition: BasicValTrkParticleNtupleTool.cxx:373
Trk::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of TRT hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:76
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
TrackParticleBase.h
EventPrimitivesHelpers.h
xAOD::char
char
Definition: TrigDecision_v1.cxx:38
tree
TChain * tree
Definition: tile_monitor.h:30
Trk::z0
@ z0
Definition: ParamDefs.h:70
Trk::BasicValTrkParticleNtupleTool::fillTrkParticleSummary
StatusCode fillTrkParticleSummary(const Trk::TrackSummary *summary)
fill the perigee in ntuple
Definition: BasicValTrkParticleNtupleTool.cxx:281
Trk::BasicValTrkParticleNtupleTool::finalize
StatusCode finalize()
finalize
Definition: BasicValTrkParticleNtupleTool.cxx:119
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
Trk::BasicValTrkParticleNtupleTool::fillHoleData
virtual StatusCode fillHoleData(const Trk::TrackStateOnSurface &)
fill ntuple data of holes on track without writing the record
Definition: BasicValTrkParticleNtupleTool.cxx:389
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Trk::numberOfSCTHoles
@ numberOfSCTHoles
number of Holes in both sides of a SCT module
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:73
Trk::numberOfTRTHoles
@ numberOfTRTHoles
number of TRT hits which pass the high threshold (only xenon counted) total number of TRT hits which ...
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:83
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Trk::numberOfTRTDeadStraws
@ numberOfTRTDeadStraws
number of TRT tube hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:95
Trk::TrackParticleBase
Definition: TrackParticleBase.h:41
Trk::FitQualityOnSurface
Definition: FitQualityOnSurface.h:19
Trk::BasicValTrkParticleNtupleTool::BasicValTrkParticleNtupleTool
BasicValTrkParticleNtupleTool(const std::string &, const std::string &, const IInterface *)
Definition: BasicValTrkParticleNtupleTool.cxx:27
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::BasicValTrkParticleNtupleTool::fillTrackTruthData
virtual StatusCode fillTrackTruthData(const TrackParameters *&, const TrackTruth &, const int truthIndex=-1)
fill ntuple data of holes on track without writing the record
Definition: BasicValTrkParticleNtupleTool.cxx:393
lumiFormat.i
int i
Definition: lumiFormat.py:92
beamspotman.n
n
Definition: beamspotman.py:731
Trk::theta
@ theta
Definition: ParamDefs.h:72
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
Trk::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:65
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trk::FitQuality
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition: FitQuality.h:97
TrackSummary.h
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::FitQualityOnSurface::numberDoF
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition: FitQuality.h:60
Trk::numberOfPixelHoles
@ numberOfPixelHoles
number of pixels which have a ganged ambiguity.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:59
Trk::BasicValTrkParticleNtupleTool::fillTrackData
virtual StatusCode fillTrackData(const Trk::Track &, const int iterationIndex, const unsigned int fitStatCode)
fill ntuple data of a given track without writing the record.
Definition: BasicValTrkParticleNtupleTool.cxx:366
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Trk::numberOfTRTHits
@ numberOfTRTHits
number of TRT outliers
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:79
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:192
Trk::d0
@ d0
Definition: ParamDefs.h:69
Amg::error
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Definition: EventPrimitivesHelpers.h:40
Trk::GsfMeasurementUpdator::fitQuality
FitQualityOnSurface fitQuality(const MultiComponentState &, const MeasurementBase &)
Method for determining the chi2 of the multi-component state and the number of degrees of freedom.
Definition: GsfMeasurementUpdator.cxx:845
Trk::DetectorType
DetectorType
enumerates the various detector types currently accessible from the isHit() method.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:231
Trk::BasicValTrkParticleNtupleTool::fillOutlierData
virtual StatusCode fillOutlierData(const Trk::MeasurementBase *, const Trk::TrackParameters *, const Trk::FitQualityOnSurface *)
fill ntuple data of an outlier measurement (without writing the record yet).
Definition: BasicValTrkParticleNtupleTool.cxx:383
TrackTruth
MC particle associated with a reco track + the quality of match.
Definition: TrackTruth.h:14
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Trk::BasicValTrkParticleNtupleTool::addNtupleItems
virtual StatusCode addNtupleItems(TTree *tree)
add branches to the tree Should be called once (per track collection and tree) dunring the initialisa...
Definition: BasicValTrkParticleNtupleTool.cxx:130
Trk::numberOfDetectorTypes
@ numberOfDetectorTypes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:263
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:73
Trk::BasicValTrkParticleNtupleTool::fillFitQualityData
StatusCode fillFitQualityData(const Trk::FitQuality *fitQuality)
Definition: BasicValTrkParticleNtupleTool.cxx:318
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Trk::BasicValTrkParticleNtupleTool::fillTrkParticlePerigee
StatusCode fillTrkParticlePerigee(const Trk::Perigee *perigee)
fill the perigee in ntuple
Definition: BasicValTrkParticleNtupleTool.cxx:240
AthAlgTool
Definition: AthAlgTool.h:26
readCCLHist.float
float
Definition: readCCLHist.py:83
Trk::FitQualityOnSurface::chiSquared
double chiSquared() const
returns the of the overall track fit
Definition: FitQuality.h:56
Trk::phi0
@ phi0
Definition: ParamDefs.h:71
Trk::BasicValTrkParticleNtupleTool::writeTrackData
virtual StatusCode writeTrackData(const Trk::Track &, const int iterationIndex, const unsigned int fitStatCode)
fill AND write ntuple data of a given track
Definition: BasicValTrkParticleNtupleTool.cxx:359
Trk::BasicValTrkParticleNtupleTool::fillTrackParticleData
virtual StatusCode fillTrackParticleData(const Trk::TrackParticleBase &)
fill ntuple data of a given track particle without writing the record.
Definition: BasicValTrkParticleNtupleTool.cxx:197
Trk::BasicValTrkParticleNtupleTool::initialize
StatusCode initialize()
Definition: BasicValTrkParticleNtupleTool.cxx:81
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65