SND@LHC Software
Loading...
Searching...
No Matches
genfit::GFRaveVertexFactory Class Reference

Vertex factory for producing GFRaveVertex objects from Track objects. More...

#include <GFRaveVertexFactory.h>

Public Member Functions

 GFRaveVertexFactory (int verbosity=0, bool useVacuumPropagator=false)
 
 ~GFRaveVertexFactory ()
 
void findVertices (std::vector< genfit::GFRaveVertex * > *, const std::vector< genfit::Track * > &, bool use_beamspot=false)
 
void findVertices (std::vector< genfit::GFRaveVertex * > *, const std::vector< genfit::Track * > &, std::vector< genfit::MeasuredStateOnPlane * > &, bool use_beamspot=false)
 MeasuredStateOnPlanes will be used (instead of the tracks fitted states) to calculate the rave::Track parameters. takes ownership of MeasuredStateOnPlanes.
 
void setBeamspot (const TVector3 &pos, const TMatrixDSym &cov)
 
void setMethod (const std::string &method)
 

Private Member Functions

void clearMap ()
 

Private Attributes

std::map< int, genfit::trackAndStateIdGFTrackStateMap_
 
rave::VertexFactory * factory_
 
rave::MagneticField * magneticField_
 
rave::Propagator * propagator_
 

Detailed Description

Vertex factory for producing GFRaveVertex objects from Track objects.

The GFRaveVertexFactory is basically a wrapper around the rave::VertexFactory. It takes care of initializing the rave::VertexFactory, building the necessary maps, convert GENFIT to rave objects and vice versa.

Definition at line 64 of file GFRaveVertexFactory.h.

Constructor & Destructor Documentation

◆ GFRaveVertexFactory()

genfit::GFRaveVertexFactory::GFRaveVertexFactory ( int  verbosity = 0,
bool  useVacuumPropagator = false 
)

Definition at line 40 of file GFRaveVertexFactory.cc.

40 {
41
42 if (useVacuumPropagator) {
43 propagator_ = new rave::VacuumPropagator();
44 }
45 else {
46 propagator_ = new GFRavePropagator();
47 (static_cast<GFRavePropagator*>(propagator_))->setIdGFTrackStateMap(&IdGFTrackStateMap_);
48 }
49
50 magneticField_ = new GFRaveMagneticField();
51
52 if (verbosity > 0) ++verbosity; // verbosity has to be >1 for rave
53
54 factory_ = new rave::VertexFactory(*magneticField_, *propagator_, "kalman-smoothing:1", verbosity); // here copies of magneticField_ and propagator_ are made!
55}
rave::MagneticField * magneticField_
rave::VertexFactory * factory_
std::map< int, genfit::trackAndState > IdGFTrackStateMap_

◆ ~GFRaveVertexFactory()

genfit::GFRaveVertexFactory::~GFRaveVertexFactory ( )

Definition at line 58 of file GFRaveVertexFactory.cc.

58 {
59 delete magneticField_;
60 delete propagator_;
61 delete factory_;
62}

Member Function Documentation

◆ clearMap()

void genfit::GFRaveVertexFactory::clearMap ( )
private

Definition at line 125 of file GFRaveVertexFactory.cc.

125 {
126
127 for (unsigned int i=0; i<IdGFTrackStateMap_.size(); ++i)
128 delete IdGFTrackStateMap_[i].state_;
129
130 IdGFTrackStateMap_.clear();
131}
int i
Definition ShipAna.py:86

◆ findVertices() [1/2]

void genfit::GFRaveVertexFactory::findVertices ( std::vector< genfit::GFRaveVertex * > *  GFvertices,
const std::vector< genfit::Track * > &  GFTracks,
bool  use_beamspot = false 
)

Definition at line 66 of file GFRaveVertexFactory.cc.

68 {
69
70 clearMap();
71
72 try{
73 RaveToGFVertices(GFvertices,
74 factory_->create(GFTracksToTracks(GFTracks, NULL, IdGFTrackStateMap_, 0),
75 use_beamspot),
77 }
78 catch(Exception & e){
79 std::cerr << e.what();
80 }
81
82}
std::vector< rave::Track > GFTracksToTracks(const std::vector< genfit::Track * > &GFTracks, std::vector< genfit::MeasuredStateOnPlane * > *GFStates, std::map< int, genfit::trackAndState > &IdGFTrackStateMap, int startID=0)
void RaveToGFVertices(std::vector< GFRaveVertex * > *, const std::vector< rave::Vertex > &, const std::map< int, genfit::trackAndState > &IdGFTrackStateMap)

◆ findVertices() [2/2]

void genfit::GFRaveVertexFactory::findVertices ( std::vector< genfit::GFRaveVertex * > *  GFvertices,
const std::vector< genfit::Track * > &  GFTracks,
std::vector< genfit::MeasuredStateOnPlane * > &  GFStates,
bool  use_beamspot = false 
)

MeasuredStateOnPlanes will be used (instead of the tracks fitted states) to calculate the rave::Track parameters. takes ownership of MeasuredStateOnPlanes.

Definition at line 86 of file GFRaveVertexFactory.cc.

89 {
90
91 clearMap();
92
93 try{
94 RaveToGFVertices(GFvertices,
95 factory_->create(GFTracksToTracks(GFTracks, &GFStates, IdGFTrackStateMap_, 0),
96 use_beamspot),
98 }
99 catch(Exception & e){
100 std::cerr << e.what();
101 }
102
103}

◆ setBeamspot()

void genfit::GFRaveVertexFactory::setBeamspot ( const TVector3 &  pos,
const TMatrixDSym &  cov 
)

Definition at line 107 of file GFRaveVertexFactory.cc.

107 {
108 factory_->setBeamSpot(rave::Ellipsoid3D(TVector3ToPoint3D(pos),
110}
rave::Covariance3D TMatrixDSymToCovariance3D(const TMatrixDSym &)
rave::Point3D TVector3ToPoint3D(const TVector3 &)

◆ setMethod()

void genfit::GFRaveVertexFactory::setMethod ( const std::string &  method)

Set the reconstruction method. See http://projects.hepforge.org/rave/trac/wiki/RaveMethods Smoothing has to be turned on! e.g. kalman-smoothing:1

Definition at line 114 of file GFRaveVertexFactory.cc.

114 {
115 size_t found = method.find("smoothing:1");
116 if (found==std::string::npos){
117 std::cerr << "GFRaveVertexFactory::setMethod(" << method << ") ==> smoothing not turned on! GFRaveTrackParameters will be unsmoothed!" << std::endl;
118 }
119 factory_->setDefaultMethod(method);
120 std::cout << "GFRaveVertexFactory::setMethod ==> set method to " << factory_->method() << std::endl;
121}

Member Data Documentation

◆ factory_

rave::VertexFactory* genfit::GFRaveVertexFactory::factory_
private

Definition at line 89 of file GFRaveVertexFactory.h.

◆ IdGFTrackStateMap_

std::map<int, genfit::trackAndState> genfit::GFRaveVertexFactory::IdGFTrackStateMap_
private

Definition at line 88 of file GFRaveVertexFactory.h.

◆ magneticField_

rave::MagneticField* genfit::GFRaveVertexFactory::magneticField_
private

Definition at line 90 of file GFRaveVertexFactory.h.

◆ propagator_

rave::Propagator* genfit::GFRaveVertexFactory::propagator_
private

Definition at line 91 of file GFRaveVertexFactory.h.


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