ATLAS Offline Software
Reconstruction/Particle/Particle/TrackParticle.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /***************************************************************************
6  TrackParticle.h - Description
7  -------------------
8  begin : 27-02-2004
9  authors : Andreas Wildauer (CERN PH-ATC), Fredrik Akesson (CERN PH-ATC)
10  email : andreas.wildauer@cern.ch, fredrik.akesson@cern.ch
11  changes :
12 
13  ***************************************************************************/
14 #ifndef RECPARTICLE_TRACKPARTICLE_H
15 #define RECPARTICLE_TRACKPARTICLE_H
16 
17 // includes for inheritance
18 #include "FourMom/P4PxPyPzE.h"
19 #include "Navigation/Navigable.h"
22 
23 // includes for datamembers
24 #include "AthLinks/ElementLink.h"
26 #include "VxVertex/VxContainer.h"
27 
28 #include "VxVertex/RecVertex.h"
29 #include "TrkTrack/Track.h"
33 
35 #include "AthenaKernel/BaseInfo.h"
36 
37 class MsgStream;
38 
39 namespace Rec
40 {
41  class TrackParticle :
42  virtual public INavigable4Momentum,
43  public Trk::TrackParticleBase,
44  public P4PxPyPzE ,
46 
47  {
48  public:
49 
52  TrackParticle();
53 
68  TrackParticle( const Trk::Track* trk,
69  const Trk::TrackParticleOrigin trkPrtOrigin,
70  const Trk::VxCandidate* vxCandidate,
71  const Trk::TrackSummary* trkSummary,
72  std::vector<const Trk::TrackParameters*>& parameters,
73  const Trk::TrackParameters* definingParameter,
74  const Trk::FitQuality* fitQuality);
75 
76 
100  const Trk::TrackParticleOrigin trkPrtOrigin,
101  const ElementLink<VxContainer>& vxCandidate,
102  std::unique_ptr<Trk::TrackSummary> trkSummary,
103  // passes ownership of elements.
104  std::vector<const Trk::TrackParameters*>&& parameters,
105  std::unique_ptr<Trk::FitQuality> fitQuality,
106  const Trk::TrackInfo& info,
107  const P4PxPyPzE& mom);
108 
110  TrackParticle(const TrackParticle &);
111 
115 
117  virtual ~TrackParticle();
118 
126  const Trk::Perigee* measuredPerigee() const;
127 
132  void removeSummary();
133 
135  void removeFitQuality();
136 
139  void removeErrorMatrix();
140 
142  virtual MsgStream& dump( MsgStream& out ) const ;
143  virtual std::ostream& dump( std::ostream& out ) const ;
144 
146  void set4Mom (const I4Momentum * const theI4Mom );
147 
149  void set4Mom (const I4Momentum & theI4Mom);
150 
152  void set4Mom (const CLHEP::HepLorentzVector & theHlv );
153 
157  void setAthenaBarCode(AthenaBarCode_t /*id*/);
158 
159  // Comparing & Versioning Control
160  // Should not be necessary here with a reasonable IAthenaBarCode implementation
161  bool hasSameAthenaBarCode(const IAthenaBarCode &/*obj*/) const;
164  void newVersion();
165  void setVersion(AthenaBarCodeVersion_t newversion);
166  // std::ostream& dump(std::ostream& out) const;
167 
170 private:
172  };
173 }
174 
175 
179 
181 {
182  //use the method from Particle Base
183  return this->perigee();
184 }
185 
189  MsgStream& operator << ( MsgStream& sl, const Rec::TrackParticle& trackParticle);
190 
194  std::ostream& operator << ( std::ostream& sl, const Rec::TrackParticle& trackParticle);
195 
196 #endif
RecVertex.h
AthenaBarCodeImpl.h
Trk::TrackInfo
Contains information about the 'fitter' of this track.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:32
I4Momentum
Definition: I4Momentum.h:31
Rec::TrackParticle::TrackParticle
TrackParticle()
Constructor 0 standard constructor which sets everything to 0, needed for persistency.
Definition: TrackParticle.cxx:35
TrackParameters.h
Rec::TrackParticle::setAthenaBarCode
void setAthenaBarCode(AthenaBarCode_t)
Definition: TrackParticle.cxx:221
AthenaBarCodeImpl
Definition: AthenaBarCodeImpl.h:37
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
INavigable4Momentum.h
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
Trk::VertexType
VertexType
Definition: VertexType.h:25
Rec::TrackParticle::operator=
TrackParticle & operator=(const TrackParticle &)
Assignment operator.
Definition: TrackParticle.cxx:106
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
NavigableTerminalNode
Dummy type needed fro specialized implementation.
Definition: NavigableTerminalNode.h:19
Rec::TrackParticle::getAthenaBarCode
AthenaBarCode_t getAthenaBarCode() const
Definition: TrackParticle.cxx:217
Track.h
Rec::TrackParticle::hasSameAthenaBarCodeExceptVersion
bool hasSameAthenaBarCodeExceptVersion(const IAthenaBarCode &) const
Definition: TrackParticle.cxx:230
Trk::TrackParticleBase
Definition: TrackParticleBase.h:41
Rec::TrackParticle::removeFitQuality
void removeFitQuality()
removeFitQuality to delete the fit quality object
Definition: TrackParticle.cxx:143
AthenaBarCode_t
uint64_t AthenaBarCode_t
barcode for all INav4Mom classes
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:44
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
Rec::TrackParticle::hasSameAthenaBarCode
bool hasSameAthenaBarCode(const IAthenaBarCode &) const
Definition: TrackParticle.cxx:226
BaseInfo.h
Provide an interface for finding inheritance information at run time.
SG_BASES2
SG_BASES2(Rec::TrackParticle, SG_VIRTUAL(INavigable4Momentum), Trk::TrackParticleBase)
Rec
Name: MuonSpContainer.h Package : offline/Reconstruction/MuonIdentification/muonEvent.
Definition: FakeTrackBuilder.h:10
TrackCollection.h
Rec::TrackParticle::dump
virtual MsgStream & dump(MsgStream &out) const
Dump methods to be used by the overloaded stream operator (inheritance!)
Definition: TrackParticle.cxx:165
Trk::TrackParticleBase::fitQuality
const FitQuality * fitQuality() const
accessor function for FitQuality.
Definition: TrackParticleBase.h:259
Rec::operator<<
MsgStream & operator<<(MsgStream &sl, const MuonOverlapDescriptor &des)
Overload of << operator for MsgStream for debug output.
Definition: MuonOverlapDescriptor.cxx:70
VxContainer.h
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
Rec::TrackParticle::removeErrorMatrix
void removeErrorMatrix()
removeErrorMatrix to delete the error matrix.
Definition: TrackParticle.cxx:149
Rec::TrackParticle::getVersion
AthenaBarCodeVersion_t getVersion() const
Definition: TrackParticle.cxx:234
IAthenaBarCode
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:48
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
Rec::TrackParticle::~TrackParticle
virtual ~TrackParticle()
Destructor.
Definition: TrackParticle.cxx:130
Rec::TrackParticle::setVersion
void setVersion(AthenaBarCodeVersion_t newversion)
Definition: TrackParticle.cxx:242
Rec::TrackParticle
Definition: Reconstruction/Particle/Particle/TrackParticle.h:47
Rec::TrackParticle::measuredPerigee
const Trk::Perigee * measuredPerigee() const
Accessor method for Perigee.
Definition: Reconstruction/Particle/Particle/TrackParticle.h:180
Navigable.h
Rec::TrackParticle::m_abc
AthenaBarCodeImpl m_abc
Definition: Reconstruction/Particle/Particle/TrackParticle.h:171
P4PxPyPzE
Definition: P4PxPyPzE.h:29
Trk::VxCandidate
Definition: VxCandidate.h:27
INavigable4Momentum
Definition: INavigable4Momentum.h:21
Rec::TrackParticle::set4Mom
void set4Mom(const I4Momentum *const theI4Mom)
set 4Momentum (will throw exception if cannot be implemented)
Definition: TrackParticle.cxx:183
Rec::TrackParticle::removeSummary
void removeSummary()
Slimming methods used to reduce the TrackParticle content and size that may be called by users when m...
Definition: TrackParticle.cxx:137
SG_VIRTUAL
#define SG_VIRTUAL(T)
Used to mark virtual derivation.
Definition: Control/AthenaKernel/AthenaKernel/BaseInfo.h:211
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
AthenaBarCodeVersion_t
AthenaBarCode_t AthenaBarCodeVersion_t
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:46
P4PxPyPzE.h
Trk::TrackParticleBase::perigee
const Perigee * perigee() const
Attempts to cast the definingParameters() to Perigee.
Definition: TrackParticleBase.h:263
FitQuality.h
Rec::TrackParticle::newVersion
void newVersion()
Definition: TrackParticle.cxx:238
Trk::TrackParticleBase::info
const TrackInfo & info() const
returns the info of the track.
Definition: TrackParticleBase.h:276