ATLAS Offline Software
TRT_TrajectoryElement_xk.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Header file for class TRT_TrajectoryElement_xk
8 // (c) ATLAS Detector software
10 // Class for trajector element in TRT
12 // Version 1.0 3/10/2004 I.Gavrilenko
14 
15 #ifndef TRT_TrajectoryElement_xk_H
16 #define TRT_TrajectoryElement_xk_H
17 
26 // MagField cache
29 #include <memory>
30 
31 class TRT_ID;
32 
33 namespace InDet{
34 
36  {
38  // Public methods:
40 
41  public:
42 
47 
48  const bool & isCluster() const {return m_isCluster ;}
49  const bool & isBarrel () const {return m_barrel ;}
50  const int & status () const {return m_status ;}
51  const int & nlinks () const {return m_nlinks ;}
52  const int & bestlink () const {return m_bestlink ;}
53  const double& radius () const {return m_radius ;}
54  const double& z () const {return m_z ;}
55  const double& radiusMin() const {return m_radiusMin ;}
56  const double& radiusMax() const {return m_radiusMax ;}
57  const double& dpositive() const {return m_dpositive ;}
58  const double& dnegative() const {return m_dnegative ;}
60  const TRT_ExtensionDriftCircleLink_xk& link (int i) const {return m_link[i] ;}
61 
63  // Main methods
65  void set
66  (const TRT_ID *,
71  double );
72 
73  void set
75 
77  InDet::TRT_DriftCircleCollection::const_iterator&,
78  InDet::TRT_DriftCircleCollection::const_iterator&,
79  std::pair<Amg::Vector3D,double>&, const double*,double);
80 
82  InDet::TRT_DriftCircleCollection::const_iterator&,
83  InDet::TRT_DriftCircleCollection::const_iterator&,
84  std::pair<Amg::Vector3D,double>&, const double*,double);
85 
86  void initiateLinksForPrecisionSeed(InDet::TRT_DriftCircleCollection::const_iterator&,
87  InDet::TRT_DriftCircleCollection::const_iterator&,
88  std::pair<Amg::Vector3D,double>&,
89  const double*,double);
90 
91  void initiateLinksForTRTSeed (InDet::TRT_DriftCircleCollection::const_iterator&,
92  InDet::TRT_DriftCircleCollection::const_iterator&,
93  std::pair<Amg::Vector3D,double>&,
94  const double*,double);
95 
96  bool boundaryTest(double,std::pair<Amg::Vector3D,double>&);
97 
98  bool buildForPrecisionSeed(double,double,bool&,bool&);
99  bool buildForTRTSeed (double,double,bool&,bool&);
100 
101  double findCloseLink(double,double);
102  void radiusCorrection(const double&);
103  const Trk::RIO_OnTrack* rioOnTrack();
104  std::unique_ptr<Trk::RIO_OnTrack> rioOnTrackSimple() const;
105 
107 
110 
113 
115  (TRT_TrajectoryElement_xk*,Amg::Vector3D&,Amg::Vector3D&,double,double,double*) const;
116 
117  bool addCluster
119  bool propagate
121 
122  protected:
123 
125  // Protected Data
127 
128  bool m_barrel ;
129  bool m_isCluster ;
130  int m_status ;
132  int m_nlinks ;
133  double m_z ;
134  double m_zMin ;
135  double m_zMax ;
136  double m_radius ;
137  double m_radiusMin ;
138  double m_radiusMax ;
140  double m_dpositive ;
141  double m_dnegative ;
144  const TRT_ID * m_trtid ;
151 
153  // Comments
154  // m_status = -1 no crossed straw
155  // m_status = 0 crossed straw without signal (hole)
156  // m_status = 1 crossed straw with signal but without drift time
157  // m_status = 2 crossed straw with signal and with drift time
159 
161  // Methods
163 
164  };
165 
167  // Inline methods
169 
171  {
172  m_isCluster = false;
173  m_status =-1 ;
174  m_riomakerD = 0 ;
175  m_riomakerN = 0 ;
176  m_proptool = 0 ;
177  m_updatortool = 0 ;
178  m_trtid = 0 ;
179  m_scale_error = 2. ;
180  m_barrel = false;
181  m_bestlink = 0 ;
182  m_nlinks = 0 ;
183  m_z = 0. ;
184  m_zMin = 0. ;
185  m_zMax = 0. ;
186  m_radius = 0. ;
187  m_radiusMin = 0. ;
188  m_radiusMax = 0. ;
189  m_dpositive = 0. ;
190  m_dnegative = 0. ;
191  m_detelement = 0 ;
192  }
193 
195  (const TRT_TrajectoryElement_xk& E)
196  {
197  (*this) = E;
198  }
199 
200  inline TRT_TrajectoryElement_xk& TRT_TrajectoryElement_xk::operator =
201  (const TRT_TrajectoryElement_xk& E)
202  {
203  m_status = E.m_status ;
204  m_isCluster = E.m_isCluster ;
205  m_barrel = E.m_barrel ;
206  m_bestlink = E.m_bestlink ;
207  m_nlinks = E.m_nlinks ;
208  m_detelement = E.m_detelement ;
209  m_trtid = E.m_trtid ;
210  m_proptool = E.m_proptool ;
211  m_updatortool = E.m_updatortool;
212  m_fieldprop = E.m_fieldprop ;
213  m_riomakerD = E.m_riomakerD ;
214  m_riomakerN = E.m_riomakerN ;
215  m_z = E.m_z ;
216  m_zMin = E.m_zMin ;
217  m_zMax = E.m_zMax ;
218  m_radius = E.m_radius ;
219  m_radiusMin = E.m_radiusMin ;
220  m_radiusMax = E.m_radiusMax ;
221  m_scale_error = E.m_scale_error;
222  m_dpositive = E.m_dpositive ;
223  m_dnegative = E.m_dnegative ;
224  for(int i=0; i!=m_nlinks; ++i) {m_link[i]=E.m_link[i];}
225  return(*this);
226  }
227 
229 
231  {
233  }
234 
235 } // end of name space
236 
237 #endif // TRT_TrajectoryElement_xk
InDet::TRT_TrajectoryElement_xk::findCloseLink
double findCloseLink(double, double)
Definition: TRT_TrajectoryElement_xk.cxx:540
InDet::TRT_TrajectoryElement_xk::m_updatortool
const Trk::IPatternParametersUpdator * m_updatortool
Definition: TRT_TrajectoryElement_xk.h:146
InDet::TRT_TrajectoryElement_xk::polarAngleEstimation
void polarAngleEstimation(TRT_TrajectoryElement_xk *, Amg::Vector3D &, Amg::Vector3D &, double, double, double *) const
Definition: TRT_TrajectoryElement_xk.cxx:882
InDet::TRT_TrajectoryElement_xk::bestlink
const int & bestlink() const
Definition: TRT_TrajectoryElement_xk.h:52
InDet::TRT_TrajectoryElement_xk::detElement
const InDetDD::TRT_BaseElement * detElement() const
Definition: TRT_TrajectoryElement_xk.h:59
InDet::TRT_TrajectoryElement_xk::m_radiusMax
double m_radiusMax
Definition: TRT_TrajectoryElement_xk.h:138
InDet::TRT_TrajectoryElement_xk::~TRT_TrajectoryElement_xk
~TRT_TrajectoryElement_xk()
Definition: TRT_TrajectoryElement_xk.h:228
InDet::TRT_TrajectoryElement_xk::nlinks
const int & nlinks() const
Definition: TRT_TrajectoryElement_xk.h:51
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
InDet::TRT_TrajectoryElement_xk::m_barrel
bool m_barrel
Definition: TRT_TrajectoryElement_xk.h:128
TRT_DetectorManager.h
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
InDet::TRT_TrajectoryElement_xk::m_dpositive
double m_dpositive
Definition: TRT_TrajectoryElement_xk.h:140
InDet::TRT_TrajectoryElement_xk::link
const TRT_ExtensionDriftCircleLink_xk & link(int i) const
Definition: TRT_TrajectoryElement_xk.h:60
InDet::TRT_TrajectoryElement_xk::m_fieldCache
MagField::AtlasFieldCache m_fieldCache
Definition: TRT_TrajectoryElement_xk.h:150
AtlasFieldCacheCondObj.h
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
IRIO_OnTrackCreator.h
InDet::TRT_TrajectoryElement_xk::operator=
TRT_TrajectoryElement_xk & operator=(const TRT_TrajectoryElement_xk &)
Definition: TRT_TrajectoryElement_xk.h:201
InDet::TRT_TrajectoryElement_xk::dnegative
const double & dnegative() const
Definition: TRT_TrajectoryElement_xk.h:58
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
InDet::TRT_TrajectoryElement_xk::m_zMax
double m_zMax
Definition: TRT_TrajectoryElement_xk.h:135
python.TurnDataReader.dr
dr
Definition: TurnDataReader.py:112
InDet::TRT_TrajectoryElement_xk::buildForPrecisionSeed
bool buildForPrecisionSeed(double, double, bool &, bool &)
Definition: TRT_TrajectoryElement_xk.cxx:456
InDet::TRT_TrajectoryElement_xk::m_proptool
const Trk::IPatternParametersPropagator * m_proptool
Definition: TRT_TrajectoryElement_xk.h:145
Trk::IPatternParametersPropagator
interface for track parameter propagation through the magnetic field, using the Trk::PatternTrackPara...
Definition: IPatternParametersPropagator.h:41
InDet::TRT_TrajectoryElement_xk::m_radius
double m_radius
Definition: TRT_TrajectoryElement_xk.h:136
InDet::TRT_TrajectoryElement_xk::radiusCorrection
void radiusCorrection(const double &)
Definition: TRT_TrajectoryElement_xk.h:230
MagneticFieldProperties.h
InDet::TRT_TrajectoryElement_xk::m_dnegative
double m_dnegative
Definition: TRT_TrajectoryElement_xk.h:141
Trk::IPatternParametersUpdator
Interface for updating Trk::PatternTrackParameters, the fast internal representation of track paramet...
Definition: IPatternParametersUpdator.h:40
IPatternParametersUpdator.h
InDet::TRT_TrajectoryElement_xk::radiusMax
const double & radiusMax() const
Definition: TRT_TrajectoryElement_xk.h:56
InDet::TRT_TrajectoryElement_xk::m_riomakerD
const Trk::IRIO_OnTrackCreator * m_riomakerD
Definition: TRT_TrajectoryElement_xk.h:147
InDet::TRT_TrajectoryElement_xk::rioOnTrack
const Trk::RIO_OnTrack * rioOnTrack()
Definition: TRT_TrajectoryElement_xk.cxx:559
InDet::TRT_TrajectoryElement_xk::m_nlinks
int m_nlinks
Definition: TRT_TrajectoryElement_xk.h:132
lumiFormat.i
int i
Definition: lumiFormat.py:85
InDet::TRT_TrajectoryElement_xk::m_isCluster
bool m_isCluster
Definition: TRT_TrajectoryElement_xk.h:129
InDet::TRT_TrajectoryElement_xk::trackParametersEstimation
bool trackParametersEstimation(TRT_TrajectoryElement_xk *, TRT_TrajectoryElement_xk *, Trk::PatternTrackParameters &, double)
Definition: TRT_TrajectoryElement_xk.cxx:686
InDet::TRT_TrajectoryElement_xk::set
void set(const TRT_ID *, const Trk::IPatternParametersPropagator *, const Trk::IPatternParametersUpdator *, const Trk::IRIO_OnTrackCreator *, const Trk::IRIO_OnTrackCreator *, double)
Definition: TRT_TrajectoryElement_xk.cxx:15
InDet::TRT_TrajectoryElement_xk::dpositive
const double & dpositive() const
Definition: TRT_TrajectoryElement_xk.h:57
AtlasFieldCache.h
InDet::TRT_TrajectoryElement_xk::z
const double & z() const
Definition: TRT_TrajectoryElement_xk.h:54
InDet::TRT_TrajectoryElement_xk::m_fieldprop
Trk::MagneticFieldProperties m_fieldprop
Definition: TRT_TrajectoryElement_xk.h:149
InDet::TRT_TrajectoryElement_xk::boundaryTest
bool boundaryTest(double, std::pair< Amg::Vector3D, double > &)
Definition: TRT_TrajectoryElement_xk.cxx:91
InDet::TRT_TrajectoryElement_xk::m_trtid
const TRT_ID * m_trtid
Definition: TRT_TrajectoryElement_xk.h:144
InDet::TRT_TrajectoryElement_xk::m_scale_error
double m_scale_error
Definition: TRT_TrajectoryElement_xk.h:139
InDet::TRT_TrajectoryElement_xk::m_z
double m_z
Definition: TRT_TrajectoryElement_xk.h:133
TRT_DriftCircleContainer.h
InDet::TRT_TrajectoryElement_xk::isBarrel
const bool & isBarrel() const
Definition: TRT_TrajectoryElement_xk.h:49
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
InDet::TRT_TrajectoryElement_xk::propagate
bool propagate(Trk::PatternTrackParameters &, Trk::PatternTrackParameters &)
Definition: TRT_TrajectoryElement_xk.cxx:601
InDet::TRT_TrajectoryElement_xk::TRT_TrajectoryElement_xk
TRT_TrajectoryElement_xk()
Definition: TRT_TrajectoryElement_xk.h:170
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::TRT_TrajectoryElement_xk::initiateForTRTSeed
bool initiateForTRTSeed(bool, const InDetDD::TRT_BaseElement *, InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)
Definition: TRT_TrajectoryElement_xk.cxx:66
InDet::TRT_TrajectoryElement_xk::addCluster
bool addCluster(Trk::PatternTrackParameters &, Trk::PatternTrackParameters &, double &)
Definition: TRT_TrajectoryElement_xk.cxx:615
InDet::TRT_TrajectoryElement_xk::initiateForPrecisionSeed
bool initiateForPrecisionSeed(bool, const InDetDD::TRT_BaseElement *, InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)
Definition: TRT_TrajectoryElement_xk.cxx:42
InDet::TRT_TrajectoryElement_xk::status
const int & status() const
Definition: TRT_TrajectoryElement_xk.h:50
InDet::TRT_TrajectoryElement_xk::m_status
int m_status
Definition: TRT_TrajectoryElement_xk.h:130
InDet::TRT_TrajectoryElement_xk::isCluster
const bool & isCluster() const
Definition: TRT_TrajectoryElement_xk.h:48
TRT_ID
Definition: TRT_ID.h:84
InDet::TRT_TrajectoryElement_xk::radius
const double & radius() const
Definition: TRT_TrajectoryElement_xk.h:53
Trk::PatternTrackParameters
Definition: PatternTrackParameters.h:32
InDet::TRT_TrajectoryElement_xk::m_zMin
double m_zMin
Definition: TRT_TrajectoryElement_xk.h:134
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
InDet::TRT_TrajectoryElement_xk::m_riomakerN
const Trk::IRIO_OnTrackCreator * m_riomakerN
Definition: TRT_TrajectoryElement_xk.h:148
InDet::TRT_TrajectoryElement_xk::rioOnTrackSimple
std::unique_ptr< Trk::RIO_OnTrack > rioOnTrackSimple() const
Definition: TRT_TrajectoryElement_xk.cxx:579
InDet::TRT_TrajectoryElement_xk::buildForTRTSeed
bool buildForTRTSeed(double, double, bool &, bool &)
Definition: TRT_TrajectoryElement_xk.cxx:502
PatternTrackParameters.h
InDet::TRT_TrajectoryElement_xk::radiusMin
const double & radiusMin() const
Definition: TRT_TrajectoryElement_xk.h:55
InDet::TRT_TrajectoryElement_xk::initiateLinksForTRTSeed
void initiateLinksForTRTSeed(InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)
Definition: TRT_TrajectoryElement_xk.cxx:294
Trk::IRIO_OnTrackCreator
Interface class for transforming Trk::PrepRawData to Trk::RIO_OnTrack using a local track hypothesis.
Definition: IRIO_OnTrackCreator.h:33
InDet::TRT_TrajectoryElement_xk
Definition: TRT_TrajectoryElement_xk.h:36
InDet::TRT_TrajectoryElement_xk::m_detelement
const InDetDD::TRT_BaseElement * m_detelement
Definition: TRT_TrajectoryElement_xk.h:143
InDet::TRT_TrajectoryElement_xk::trajectoryGlobalPosition
bool trajectoryGlobalPosition(Amg::Vector3D &, double &)
Definition: TRT_TrajectoryElement_xk.cxx:647
IPatternParametersPropagator.h
InDet::TRT_TrajectoryElement_xk::initiateLinksForPrecisionSeed
void initiateLinksForPrecisionSeed(InDet::TRT_DriftCircleCollection::const_iterator &, InDet::TRT_DriftCircleCollection::const_iterator &, std::pair< Amg::Vector3D, double > &, const double *, double)
Definition: TRT_TrajectoryElement_xk.cxx:147
InDet::TRT_TrajectoryElement_xk::m_link
TRT_ExtensionDriftCircleLink_xk m_link[24]
Definition: TRT_TrajectoryElement_xk.h:142
InDet::TRT_TrajectoryElement_xk::m_bestlink
int m_bestlink
Definition: TRT_TrajectoryElement_xk.h:131
InDetDD::TRT_BaseElement
Definition: TRT_BaseElement.h:57
InDet::TRT_TrajectoryElement_xk::m_radiusMin
double m_radiusMin
Definition: TRT_TrajectoryElement_xk.h:137