ATLAS Offline Software
Loading...
Searching...
No Matches
SimHitHandle_TrackRecord Class Reference

#include <SimHitHandle_TrackRecord.h>

Inheritance diagram for SimHitHandle_TrackRecord:
Collaboration diagram for SimHitHandle_TrackRecord:

Public Member Functions

 SimHitHandle_TrackRecord (const TrackRecord *)
virtual ~SimHitHandle_TrackRecord ()
virtual QString type () const override
virtual Amg::Vector3D momentumDirection () const override
virtual double actualMomentum () const override
virtual Amg::Vector3D posStart () const override
virtual Amg::Vector3D posEnd () const override
virtual double hitTime () const override
virtual int actualPDGCodeFromSimHit () const override
virtual const HepMcParticleLinkparticleLink () const override
virtual Trk::TrackParameterscreateTrackParameters () const override
double momentum () const
int pdg () const
SimBarCode simBarCode () const
bool hasCharge () const
double charge () const
void setFakeMomentum (const double &m)
void setCharge (const double &c)
void cacheMomentum ()

Private Member Functions

void setPDG (int)

Private Attributes

TrackRecordm_trkrecord
double m_mom
Amg::Vector3D m_momdir
const HepMcParticleLinkm_link
Trk::TrackParametersm_trackPars
int m_pdgId
double m_fakemom
double m_charge

Detailed Description

Definition at line 28 of file SimHitHandle_TrackRecord.h.

Constructor & Destructor Documentation

◆ SimHitHandle_TrackRecord()

SimHitHandle_TrackRecord::SimHitHandle_TrackRecord ( const TrackRecord * tr)

Definition at line 25 of file SimHitHandle_TrackRecord.cxx.

27 m_trkrecord(const_cast<TrackRecord*>(tr)),
28 m_mom(m_trkrecord->GetMomentum().mag()),
29 m_momdir( Amg::Hep3VectorToEigen( m_trkrecord->GetMomentum().unit() ) ),
30 m_link( new HepMcParticleLink(m_trkrecord->barcode(), 0, HepMcParticleLink::IS_POSITION, HepMcParticleLink::IS_BARCODE))// FIXME barcode-based
31{
32}
const HepMcParticleLink * m_link
Amg::Vector3D Hep3VectorToEigen(const CLHEP::Hep3Vector &CLHEPvector)
Converts a CLHEP-based CLHEP::Hep3Vector into an Eigen-based Amg::Vector3D.

◆ ~SimHitHandle_TrackRecord()

SimHitHandle_TrackRecord::~SimHitHandle_TrackRecord ( )
virtual

Definition at line 35 of file SimHitHandle_TrackRecord.cxx.

36{
37 delete m_link;
38}

Member Function Documentation

◆ actualMomentum()

double SimHitHandle_TrackRecord::actualMomentum ( ) const
inlineoverridevirtual

Reimplemented from SimHitHandleBase.

Definition at line 62 of file SimHitHandle_TrackRecord.h.

63{
64 return m_mom;
65}

◆ actualPDGCodeFromSimHit()

int SimHitHandle_TrackRecord::actualPDGCodeFromSimHit ( ) const
inlineoverridevirtual

Reimplemented from SimHitHandleBase.

Definition at line 82 of file SimHitHandle_TrackRecord.h.

83{
84 return m_trkrecord->GetPDGCode();
85}

◆ cacheMomentum()

void SimHitHandleBase::cacheMomentum ( )
inlineinherited

Definition at line 58 of file SimHitHandleBase.h.

58{ if (m_fakemom==-2) m_fakemom = actualMomentum(); }
virtual double actualMomentum() const

◆ charge()

double SimHitHandleBase::charge ( ) const
inlineinherited

Definition at line 51 of file SimHitHandleBase.h.

51{ return m_charge; }

◆ createTrackParameters()

Trk::TrackParameters * SimHitHandle_TrackRecord::createTrackParameters ( ) const
overridevirtual

Implements SimHitHandleBase.

Definition at line 41 of file SimHitHandle_TrackRecord.cxx.

42{
43 Amg::Transform3D transf = Amg::CLHEPTranslate3DToEigen(HepGeom::Translate3D(m_trkrecord->GetPosition().x(),m_trkrecord->GetPosition().y(),m_trkrecord->GetPosition().z()));
44 //Surface:
45 const Trk::PlaneSurface * surf
46 = new Trk::PlaneSurface( transf );
47 //Fixme: surface and transform ever DELETED??
48
49 //Fixme: Don't do this in every simhit!!:
50 bool hasCharge;
51 double charge;
53 if (!hasCharge) {
54 VP1Msg::message("SimHitHandle_TrackRecord::createTrackParameters ERROR: Could not find particle charge (pdg="
55 +QString::number(pdg())+"). Assuming charge=+1.");
56 charge = +1.0;
57 } else {
58 if (VP1Msg::verbose())
59 VP1Msg::messageVerbose("Looked up particle charge for track record with pdg code "+VP1Msg::str(pdg())+": "+VP1Msg::str(charge));
60 }
61 return new Trk::AtaPlane(posStart(), Amg::Hep3VectorToEigen(m_trkrecord->GetMomentum()),charge,*surf);
62}
double charge() const
bool hasCharge() const
virtual Amg::Vector3D posStart() const override
static void messageVerbose(const QString &)
Definition VP1Msg.cxx:84
static bool verbose()
Definition VP1Msg.h:31
static void message(const QString &, IVP1System *sys=0)
Definition VP1Msg.cxx:30
static double particleCharge(const int &pdgcode, bool &ok)
static QString str(const QString &s)
Definition VP1String.h:49
Amg::Transform3D CLHEPTranslate3DToEigen(const HepGeom::Translate3D &CLHEPtranslate3D)
Converts a CLHEP-based HepGeom::Translate3 into an Eigen-based Amg::Transform3D.
Eigen::Affine3d Transform3D
ParametersT< TrackParametersDim, Charged, PlaneSurface > AtaPlane

◆ hasCharge()

bool SimHitHandleBase::hasCharge ( ) const
inlineinherited

Definition at line 50 of file SimHitHandleBase.h.

50{ return m_charge!=-99999.0; }

◆ hitTime()

double SimHitHandle_TrackRecord::hitTime ( ) const
inlineoverridevirtual

Implements SimHitHandleBase.

Definition at line 77 of file SimHitHandle_TrackRecord.h.

78{
79 return m_trkrecord->GetTime();
80}

◆ momentum()

double SimHitHandleBase::momentum ( ) const
inlineinherited

Definition at line 41 of file SimHitHandleBase.h.

41{ return m_fakemom == -2 ? actualMomentum() : m_fakemom; }

◆ momentumDirection()

Amg::Vector3D SimHitHandle_TrackRecord::momentumDirection ( ) const
inlineoverridevirtual

Implements SimHitHandleBase.

Definition at line 57 of file SimHitHandle_TrackRecord.h.

58{
59 return m_momdir;
60}

◆ particleLink()

const HepMcParticleLink & SimHitHandle_TrackRecord::particleLink ( ) const
overridevirtual

Implements SimHitHandleBase.

Definition at line 64 of file SimHitHandle_TrackRecord.cxx.

65{
66 return *m_link;
67}

◆ pdg()

int SimHitHandleBase::pdg ( ) const
inlineinherited

Definition at line 82 of file SimHitHandleBase.h.

83{
84 return m_pdgId;
85}

◆ posEnd()

Amg::Vector3D SimHitHandle_TrackRecord::posEnd ( ) const
inlineoverridevirtual

Implements SimHitHandleBase.

Definition at line 72 of file SimHitHandle_TrackRecord.h.

73{
74 return posStart() + 0.1*CLHEP::mm*(momentumDirection());//faking it... but shouldn't matter.
75}
virtual Amg::Vector3D momentumDirection() const override

◆ posStart()

Amg::Vector3D SimHitHandle_TrackRecord::posStart ( ) const
inlineoverridevirtual

Implements SimHitHandleBase.

Definition at line 67 of file SimHitHandle_TrackRecord.h.

68{
69 return Amg::Hep3VectorToEigen(m_trkrecord->GetPosition());
70}

◆ setCharge()

void SimHitHandleBase::setCharge ( const double & c)
inlineinherited

Definition at line 57 of file SimHitHandleBase.h.

◆ setFakeMomentum()

void SimHitHandleBase::setFakeMomentum ( const double & m)
inlineinherited

Definition at line 56 of file SimHitHandleBase.h.

◆ setPDG()

void SimHitHandleBase::setPDG ( int pdg)
inlineprivateinherited

Definition at line 87 of file SimHitHandleBase.h.

88{
89 m_pdgId = pdg;
90}

◆ simBarCode()

SimBarCode SimHitHandleBase::simBarCode ( ) const
inlineinherited

Definition at line 48 of file SimHitHandleBase.h.

48{ return SimBarCode(particleLink(),pdg()); }
virtual const HepMcParticleLink & particleLink() const =0

◆ type()

virtual QString SimHitHandle_TrackRecord::type ( ) const
inlineoverridevirtual

Implements SimHitHandleBase.

Definition at line 34 of file SimHitHandle_TrackRecord.h.

34{ return "TrackRecord"; };

Member Data Documentation

◆ m_charge

double SimHitHandleBase::m_charge
privateinherited

Definition at line 71 of file SimHitHandleBase.h.

◆ m_fakemom

double SimHitHandleBase::m_fakemom
privateinherited

Definition at line 70 of file SimHitHandleBase.h.

◆ m_link

const HepMcParticleLink* SimHitHandle_TrackRecord::m_link
private

Definition at line 50 of file SimHitHandle_TrackRecord.h.

◆ m_mom

double SimHitHandle_TrackRecord::m_mom
private

Definition at line 48 of file SimHitHandle_TrackRecord.h.

◆ m_momdir

Amg::Vector3D SimHitHandle_TrackRecord::m_momdir
private

Definition at line 49 of file SimHitHandle_TrackRecord.h.

◆ m_pdgId

int SimHitHandleBase::m_pdgId
privateinherited

Definition at line 68 of file SimHitHandleBase.h.

◆ m_trackPars

Trk::TrackParameters* SimHitHandleBase::m_trackPars
mutableprivateinherited

Definition at line 67 of file SimHitHandleBase.h.

◆ m_trkrecord

TrackRecord* SimHitHandle_TrackRecord::m_trkrecord
private

Definition at line 47 of file SimHitHandle_TrackRecord.h.


The documentation for this class was generated from the following files: