-
Notifications
You must be signed in to change notification settings - Fork 0
/
PHTpcTracker.h
67 lines (54 loc) · 1.9 KB
/
PHTpcTracker.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*!
* \file PHTpcTracker.h
* \brief
* \author Dmitry Arkhipkin <arkhipkin@gmail.com>
*/
#ifndef PHTPCTRACKER_H_
#define PHTPCTRACKER_H_
// PHENIX includes
#include <fun4all/SubsysReco.h>
#include <phfield/PHField.h>
#include "Fitter.h"
#include <TGeoManager.h>
class PHTpcSeedFinder;
class PHTpcTrackFollower;
class PHTpcVertexFinder;
class PHTpcEventExporter;
class PHTpcLookup;
/// \class PHTpcTracker
///
/// \brief
///
class PHTpcTracker : public SubsysReco
{
public:
PHTpcTracker(const std::string &name = "PHTpcTracker");
~PHTpcTracker();
int process_event(PHCompositeNode *topNode);
void set_seed_finder_options( double maxdistance1 = 3.0, double tripletangle1 = M_PI/8, size_t minhits1 = 10,
double maxdistance2 = 6.0, double tripletangle2 = M_PI/8, size_t minhits2 = 5, size_t nthreads = 1 );
void set_seed_finder_optimization_remove_loopers( bool opt = false, double minr = 10.0, double maxr = 70.0 );
void set_track_follower_optimization_helix( bool opt = false );
void set_track_follower_optimization_precise_fit( bool opt = true );
PHTpcSeedFinder* get_seed_finder() { return mSeedFinder; }
PHTpcTrackFollower* get_track_follower() { return mTrackFollower; }
PHTpcVertexFinder* get_vertex_finder() { return mVertexFinder; }
PHTpcEventExporter* get_event_exporter() { return mEventExporter; }
void enable_vertexing( bool opt = false ) { mEnableVertexing = opt; }
void enable_json_export( bool opt = false ) { mEnableJsonExport = opt; }
protected:
PHField* getMagField( PHCompositeNode* topNode, double& B );
private:
PHTpcSeedFinder* mSeedFinder;
PHTpcTrackFollower* mTrackFollower;
PHTpcVertexFinder* mVertexFinder;
PHTpcEventExporter* mEventExporter;
PHTpcLookup* mLookup;
PHGenFit2::Fitter* mFitter;
TGeoManager* mTGeoManager;
PHField* mField;
double mB;
bool mEnableVertexing;
bool mEnableJsonExport;
};
#endif /* __PHTPCTRACKER_H */