PandaRoot
PndForwardTrackFinderTask.h
Go to the documentation of this file.
1 #ifndef PndForwardTrackFinderTask_H
2 #define PndForwardTrackFinderTask_H
3 
4 #include "FairTask.h"
5 #include "FairRuntimeDb.h"
6 #include "FairRunAna.h"
7 #include "FairHit.h"
8 
9 #include "PndGeoFtsPar.h"
10 #include "PndFtsMapCreator.h"
12 #include "PndTrackCombiner.h"
13 #include "PndLine.h"
14 #include "PndFtsLineApproximator.h"
15 #include "PndModuleCombiner.h"
16 #include "PndWayFollower.h"
17 #include "PndTrackCollection.h"
18 
19 #include "PndFtsPoint.h"
20 
21 #include "TClonesArray.h"
22 #include "TVector3.h"
23 
24 #include <iostream>
25 #include <vector>
26 #include <string>
27 
28 class PndForwardTrackFinderTask : public FairTask {
29  public:
30  PndForwardTrackFinderTask() : eventNumber(0)
31  {
39  }
41 
42  virtual InitStatus Init();
43  virtual void SetParContainers();
44 
45  virtual void Exec(Option_t *opt);
46  virtual void FinishEvent();
47  virtual void Finish();
48 
49  void saveCombined(vector<PndLineApproximation> combined, Int_t branch, Int_t branchID, Bool_t useOrgHits);
50  void saveCorrectedTracklets(map<Int_t, vector<PndFtsExpandedTrackCand>>);
51  void saveTrackCollection(vector<PndTrackCollection> coll, Bool_t withOrgHits);
52 
53  private:
54  Int_t eventNumber;
55  // PndGeoFtsPar *fFtsParameters; // needed for FtsStrawMap
56  // TClonesArray *fTubeArray; // needed for FtsStrawMap
57  TClonesArray *fHits;
58  FairRootManager *fIoman;
59  std::vector<PndTrackCand> fFirstTrackCand;
60  string branchName = "FTSHitErr";
61 
62  TClonesArray *planes; // temp
63  TClonesArray *planesHit; // temp
64  TClonesArray *fFirstTrackCandArray;
65  TClonesArray *correctedTracklets;
66  TClonesArray *correctedHits;
67  TClonesArray *fLayerTracks;
68  TClonesArray *fLayerTracksHits;
69  TClonesArray *fGlobalTracks;
70  TClonesArray *fGlobalTracksHits;
71  TClonesArray *fFinalSolution;
72  TClonesArray *fTrackCollection;
73  TClonesArray *fTrackCollectionHits;
74 
75  TClonesArray *rootBranches[5];
76 
77  PndFtsCellTrackletGenerator *fPndFtsCellTrackletGenerator;
78  PndFtsLineApproximator *fPndFtsLineApproximator;
79  PndTrackCombiner *fPndTrackCombiner;
80  PndModuleCombiner *fModuleCombiner;
81  PndWayFollower *fWayFollower;
82  // ClassDef(PndForwardTrackFinderTask,1);
83 
84  Int_t combinedTracksHitNum;
85  Int_t combinedTracksTrackNum;
86 
87  map<Int_t, PndFtsHit *> fOriginalHits;
88 
89  void createStatictcs(vector<PndTrackCollection> c, vector<PndLineApproximation> a);
90  PndLineApproximation getBest(PndTrackCollection &c, vector<PndLineApproximation> a);
91  Int_t getMcId(vector<PndFtsHit *> hits);
92  Int_t dists[20];
93  Int_t angles[20];
94 
95  ClassDef(PndForwardTrackFinderTask, 1);
96 };
97 
98 #endif
virtual void FinishEvent()
static Double_t compAngle
static Double_t qualiT
static Double_t compDist
static Double_t compAngle
virtual InitStatus Init()
void saveTrackCollection(vector< PndTrackCollection > coll, Bool_t withOrgHits)
void saveCombined(vector< PndLineApproximation > combined, Int_t branch, Int_t branchID, Bool_t useOrgHits)
static Double_t compDist
void saveCorrectedTracklets(map< Int_t, vector< PndFtsExpandedTrackCand >>)
static Double_t compQuali
virtual ~PndForwardTrackFinderTask()
virtual void Exec(Option_t *opt)
virtual void SetParContainers()
static Double_t hitAddT