12 #ifndef STAR_StGenericVertexFinder
13 #define STAR_StGenericVertexFinder
19 #include "StPrimaryVertex.h"
20 #include "tables/St_vertexSeed_Table.h"
21 #include "StGenericVertexMaker/VertexFinderOptions.h"
35 using StDcaList = std::vector<const StDcaGeometry*>;
39 using VertexFit_t = star_vertex::VertexFit_t;
42 using SeedFinder_t = star_vertex::SeedFinder_t;
52 void NoVertexConstraint();
53 int IsVertexConstraint()
const {
return mVertexConstrain;}
54 virtual void UsePCT(
bool usePCT =
true);
55 virtual void UseBTOF(
bool useBTOF =
true){mUseBtof=useBTOF;}
56 virtual void UseCTB (
bool useCTB =
true){mUseCtb =useCTB ;}
58 virtual void printInfo(ostream& = cout)
const=0;
61 virtual void SetMode(Int_t mode=0 ) {mMode = mode;}
62 virtual int GetMode()
const {
return mMode;}
63 void SetDebugLevel(Int_t level) {mDebugLevel=level;}
64 virtual void Init(){ ;}
65 virtual void Finish(){ ;}
66 virtual void InitRun(
int run_number,
const St_db_Maker* db_maker);
68 const std::vector<StPrimaryVertex> *result() {
return &mVertexList;}
70 void result(TClonesArray& stMuDstPrimaryVertices);
73 virtual void SetVertexPosition(
double x,
double y,
double z){assert(0);}
74 virtual void SetVertexError(
double x,
double y,
double z){assert(0);}
75 virtual int IsFixed()
const {
return 0;}
77 virtual int fit(
const StMuDst& muDst) {
return -1; }
87 bool mVertexConstrain;
121 double beamX(
double z)
const;
125 double beamY(
double z)
const;
141 static void fcnCalcChi2DCAs(
int& npar,
double* gin,
double& f,
double* par, Int_t iflag)
162 std::vector<StPrimaryVertex> mVertexList;
164 virtual void UseVertexConstraint() = 0;
virtual double CalcChi2DCAs(const StThreeVectorD &point)
Caclulates total chi2 for the track DCAs stored in mDCAs and a point.
void UseVertexConstraint(const vertexSeed_st &beamline)
star_vertex::VertexFit_t VertexFit_t
double CalcChi2DCAsBeamline(const StThreeVectorD &point)
Caclulates total chi2 for the beamline and track DCAs stored in mDCAs and a point.
SeedFinder_t mSeedFinderType
The type of vertex seed finder to use in derived concrete implementation.
double CalcChi2Beamline(const StThreeVectorD &point)
Caclulates chi2 for the beamline and a point.
double beamX(double z) const
star_vertex::SeedFinder_t SeedFinder_t
Options to select vertex seed finder.
double beamY(double z) const
void FillStEvent(StEvent *)
std::vector< double > FindSeeds_TSpectrum()
static void fcnCalcChi2DCAsBeamline1D(int &npar, double *gin, double &f, double *par, Int_t iflag)
A static interface to CalcChi2DCAs(...) with x and y fixed by beamline equation.
StThreeVectorD CalcVertexSeed(const StDcaList &trackDcas)
static void fcnCalcChi2DCAsBeamline(int &npar, double *gin, double &f, double *par, int iflag)
A static interface to CalcChi2DCAsBeamline(...)
VertexFit_t mVertexFitMode
The type of vertex fit to use in derived concrete implementation.
static StGenericVertexFinder * sSelf
By default point to invalid object.
StGenericVertexFinder()
Default initialization with unspecified seed finder and fitting mode.