PandaRoot
PndForwardTrackFinderTask.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef PndForwardTrackFinderTask_H
14 #define PndForwardTrackFinderTask_H
15 
16 #include "FairTask.h"
17 #include "FairRuntimeDb.h"
18 #include "FairRunAna.h"
19 #include "FairHit.h"
20 
21 #include "PndGeoFtsPar.h"
22 #include "PndFtsMapCreator.h"
24 #include "PndTrackCombiner.h"
25 #include "PndLine.h"
26 #include "PndFtsLineApproximator.h"
27 #include "PndModuleCombiner.h"
28 #include "PndWayFollower.h"
29 #include "PndTrackCollection.h"
30 
31 #include "PndFtsPoint.h"
32 
33 #include "TClonesArray.h"
34 #include "TVector3.h"
35 
36 #include <iostream>
37 #include <vector>
38 #include <string>
39 
40 class PndForwardTrackFinderTask : public FairTask {
41  public:
42  PndForwardTrackFinderTask() : eventNumber(0)
43  {
51  }
53 
54  virtual InitStatus Init();
55  virtual void SetParContainers();
56 
57  virtual void Exec(Option_t *opt);
58  virtual void FinishEvent();
59  virtual void Finish();
60 
61  void saveCombined(vector<PndLineApproximation> combined, Int_t branch, Int_t branchID, Bool_t useOrgHits);
62  void saveCorrectedTracklets(map<Int_t, vector<PndFtsExpandedTrackCand>>);
63  void saveTrackCollection(vector<PndTrackCollection> coll, Bool_t withOrgHits);
64 
65  private:
66  Int_t eventNumber;
67  // PndGeoFtsPar *fFtsParameters; // needed for FtsStrawMap
68  // TClonesArray *fTubeArray; // needed for FtsStrawMap
69  TClonesArray *fHits;
70  FairRootManager *fIoman;
71  std::vector<PndTrackCand> fFirstTrackCand;
72  string branchName = "FTSHitErr";
73 
74  TClonesArray *planes; // temp
75  TClonesArray *planesHit; // temp
76  TClonesArray *fFirstTrackCandArray;
77  TClonesArray *correctedTracklets;
78  TClonesArray *correctedHits;
79  TClonesArray *fLayerTracks;
80  TClonesArray *fLayerTracksHits;
81  TClonesArray *fGlobalTracks;
82  TClonesArray *fGlobalTracksHits;
83  TClonesArray *fFinalSolution;
84  TClonesArray *fTrackCollection;
85  TClonesArray *fTrackCollectionHits;
86 
87  TClonesArray *rootBranches[5];
88 
89  PndFtsCellTrackletGenerator *fPndFtsCellTrackletGenerator;
90  PndFtsLineApproximator *fPndFtsLineApproximator;
91  PndTrackCombiner *fPndTrackCombiner;
92  PndModuleCombiner *fModuleCombiner;
93  PndWayFollower *fWayFollower;
94  // ClassDef(PndForwardTrackFinderTask,1);
95 
96  Int_t combinedTracksHitNum;
97  Int_t combinedTracksTrackNum;
98 
99  map<Int_t, PndFtsHit *> fOriginalHits;
100 
101  void createStatictcs(vector<PndTrackCollection> c, vector<PndLineApproximation> a);
102  PndLineApproximation getBest(PndTrackCollection &c, vector<PndLineApproximation> a);
103  Int_t getMcId(vector<PndFtsHit *> hits);
104  Int_t dists[20];
105  Int_t angles[20];
106 
107  ClassDef(PndForwardTrackFinderTask, 1);
108 };
109 
110 #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