forked from sPHENIX-Collaboration/coresoftware
/
PHTpcTrackSeedCircleFit.h
64 lines (46 loc) · 1.68 KB
/
PHTpcTrackSeedCircleFit.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
// Tell emacs that this is a C++ source
// -*- C++ -*-.
#ifndef PHTPCTRACKSEEDCIRCLEFIT_H
#define PHTPCTRACKSEEDCIRCLEFIT_H
#include <fun4all/SubsysReco.h>
#include <trackbase/ActsSurfaceMaps.h>
#include <trackbase/ActsTrackingGeometry.h>
#include <tpc/TpcDistortionCorrection.h>
#include <string>
#include <vector>
class PHCompositeNode;
class SvtxTrackMap;
class SvtxTrack;
class TrkrCluster;
class TF1;
class TrkrClusterContainer;
class PHTpcTrackSeedCircleFit : public SubsysReco
{
public:
PHTpcTrackSeedCircleFit(const std::string &name = "PHTpcTrackSeedCircleFit");
~PHTpcTrackSeedCircleFit() override = default;
int InitRun(PHCompositeNode* topNode) override;
int process_event(PHCompositeNode*) override;
int End(PHCompositeNode*) override;
void use_truth_clusters(bool truth)
{ _use_truth_clusters = truth; }
void set_track_map_name(const std::string &map_name) { _track_map_name = map_name; }
void SetIteration(int iter){_n_iteration = iter;}
private:
int GetNodes(PHCompositeNode* topNode);
std::vector<TrkrCluster*> getTrackClusters(SvtxTrack *);
Acts::Vector3D getGlobalPosition( TrkrCluster* cluster ) const;
ActsSurfaceMaps *_surfmaps{nullptr};
ActsTrackingGeometry *_tGeometry{nullptr};
SvtxTrackMap *_track_map{nullptr};
bool _use_truth_clusters = false;
bool _are_clusters_corrected = true;
TrkrClusterContainer *_cluster_map = nullptr;
/// distortion correction container
TpcDistortionCorrectionContainer* _dcc = nullptr;
/// tpc distortion correction utility class
TpcDistortionCorrection _distortionCorrection;
int _n_iteration = 0;
std::string _track_map_name = "SvtxTrackMap";
};
#endif // PHTRACKSEEDVERTEXASSOCIATION_H