ATLAS Offline Software
InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRT_CALIBDATA__TRACKINFO_H
6 #define TRT_CALIBDATA__TRACKINFO_H
7 /********************************************************************
8 
9 NAME: TRT::Track
10 PACKAGE: TRT_AlignData
11 
12 AUTHORS: Jorgen Beck Hansen
13 CREATED: December 2005
14 
15 PURPOSE: "messenger"-class for track information used inside
16  TRT Alignment
17 
18 ********************************************************************/
19 
20 // INCLUDES:
21 
22 #include <vector>
23 #include "TRT_CalibData/HitInfo.h"
24 
25 namespace TRT {
26  namespace Track{
27  // Declare indices
28  enum FloatVariables{
29  d0 = 0,
30  z0,
31  phi,
32  cotTheta,
33  qOverPT,
34  chiSquare,
35  t0,
36  TNOFV // always leave as last enum and DON*T change
37  };
38  // Declare names
39  const std::string floatVariableName[TNOFV]={
40  "d0",
41  "z0",
42  "phi",
43  "cotTheta",
44  "qOverPT",
45  "chiSquare",
46  "t0"
47  };
48 
49  // Declare indices
51  run = 0,
52  event,
58  TNOIV // always leave as last enum and DON*T change
59  };
60  // Declare names
61  const std::string intVariableName[TNOIV]={
62  "run",
63  "event",
64  "trackNumber",
65  "numberOfPixelHits",
66  "numberOfSCTHits",
67  "numberOfTRTHits",
68  "degreesOfFreedom"
69  };
70  }
71 
72  class TrackInfo : public std::vector<HitInfo*> {
73  public:
74  // Constructors
76  TrackInfo(std::vector<HitInfo*>& orig) : std::vector<HitInfo*>(orig), m_Ints(Track::TNOIV),m_Floats(Track::TNOFV){}
77  TrackInfo(const TrackInfo& orig): std::vector<HitInfo*>(orig), m_Ints(orig.m_Ints),m_Floats(orig.m_Floats){}
78  //assignment
80  if (&other != this){
81  for(auto &i:*this){
82  delete i;
83  }
84  this->clear();
85  *this = other;
86  m_Ints = other.m_Ints;
87  m_Floats = other.m_Floats;
88  }
89  return *this;
90  }
91  // Destructor
92  ~TrackInfo(){for (std::vector<HitInfo*>::iterator i=this->begin();i!=this->end();++i) delete *i; } // We _OWN_ the hits!!!
93  // Access
94  const int& operator[](const Track::IntVariables& theIndex) const {return m_Ints[theIndex];}
95  const float& operator[](const Track::FloatVariables& theIndex) const {return m_Floats[theIndex];}
96  // Set/modify
97  int& operator[](const Track::IntVariables& theIndex) {return m_Ints[theIndex];}
98  float& operator[](const Track::FloatVariables& theIndex) {return m_Floats[theIndex];}
99 
100  private:
101  std::vector<int> m_Ints;
102  std::vector<float> m_Floats;
103  };
104 }
105 
106 #endif //TRT_CALIBDATA__TRACKINFO_H
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TRT::Track::TNOFV
@ TNOFV
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:69
TRT::Track::chiSquare
@ chiSquare
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:67
TRT::TrackInfo::m_Floats
std::vector< float > m_Floats
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:113
TRT::Track::numberOfSCTHits
@ numberOfSCTHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:77
TRT::Track::phi
@ phi
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:64
TRT::Track::FloatVariables
FloatVariables
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:50
TRT::Track::event
@ event
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:74
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
TRT::Track::qOverPT
@ qOverPT
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:66
TRT::TrackInfo::operator=
TrackInfo & operator=(const TrackInfo &other)
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:90
TRT::TrackInfo
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:83
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
TRT::Track::intVariableName
const std::string intVariableName[TNOIV]
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:83
TRT::TrackInfo::m_Ints
std::vector< int > m_Ints
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:112
TRT::Track::floatVariableName
const std::string floatVariableName[TNOFV]
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:61
TRT::Track::IntVariables
IntVariables
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:72
TRT
Definition: HitInfo.h:33
TRT::Track::TNOIV
@ TNOIV
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:80
lumiFormat.i
int i
Definition: lumiFormat.py:92
vector
Definition: MultiHisto.h:13
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
run
Definition: run.py:1
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
python.KeyStore.clear
def clear(self)
Definition: KeyStore.py:235
TRT::Track::degreesOfFreedom
@ degreesOfFreedom
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:79
TRT::HitInfo
Definition: HitInfo.h:100
TRT::TrackInfo::operator[]
const int & operator[](const Track::IntVariables &theIndex) const
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:105
TRT::Track::numberOfTRTHits
@ numberOfTRTHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:78
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
TRT::TrackInfo::TrackInfo
TrackInfo()
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:86
TRT::Track::trackNumber
@ trackNumber
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:75
TRT::Track::numberOfPixelHits
@ numberOfPixelHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:76
TRT::Track::cotTheta
@ cotTheta
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:65
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
HitInfo.h
TRT::Track::t0
@ t0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:68
TRT::TrackInfo::~TrackInfo
~TrackInfo()
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:103