CbmRoot
CbmVectorFinder.h
Go to the documentation of this file.
1 
11 #ifndef CBMVECTORFINDER_H_
12 #define CBMVECTORFINDER_H_ 1
13 
14 //#include "CbmMuchGeoScheme.h"
15 #include "FairTask.h"
16 //#include "FairTrackParam.h"
17 //#include <TDecompLU.h>
18 //#include <map>
19 //#include <set>
20 //#include <vector>
21 
22 //class CbmMuchPixelHit;
23 //class CbmMuchTrack;
24 //class TClonesArray;
25 
26 class CbmVectorFinder : public FairTask {
27 public:
30 
32  virtual ~CbmVectorFinder();
33 
35  virtual InitStatus Init();
36 
38  virtual void Exec(Option_t* opt);
39 
41  virtual void Finish();
42 
44  virtual void SetParContainers();
45 
47  //Int_t GetNofTracks() { return fNofTracks; };
48  //Int_t GetNofStat() const { return fgkStat; }
49 
50 private:
51  // Some constants
52  //static const Int_t fgkStat = 4; // Number of stations - 4 GEMs
53  //static const Int_t fgkPlanes = 6; // Number of GEM planes per station
54 
55 private:
56  /*
57  CbmMuchGeoScheme* fGeoScheme; // Geometry scheme
58  TClonesArray* fTrackArray; // Output array of CbmMuchVectors
59  Int_t fNofTracks; // Number of tracks created
60  TClonesArray* fHits; // Input array of CbmMuchHit
61  TClonesArray* fClusters; // Input array of CbmMuchCluster
62  TClonesArray* fPoints; // Input array of CbmMuchHit
63  TClonesArray* fDigiMatches; // Input array of CbmMuchHit
64  Int_t fStatFirst; // First straw station No.
65  std::multimap<Int_t,Int_t> fHitPl[fgkStat][fgkPlanes]; // hit indices on planes vs tube No
66  std::multimap<Double_t,Int_t> fHitX[fgkStat][fgkPlanes]; // hit indices on planes vs X-coord.
67  std::vector<CbmMuchTrack*> fVectors[fgkStat]; // track vectors for stations
68  //std::vector<CbmMuchTrack*> fVectorsHigh[fgkStat]; // track vectors for stations (high resolution)
69  Double_t fXy[fgkPlanes][5]; // hit float data
70  Double_t fXyi[fgkPlanes][3]; // hit int data
71  Double_t fDz[fgkPlanes]; // geometrical constants (Z-distances from layer 0)
72  std::map<Int_t,TDecompLU*> fLus; // system matrices (for different hit layer patterns)
73  Double_t fErrX[9]; // hit measurement error in X
74  Double_t fErrY[9]; // hit measurement error in Y
75  Double_t fCutChi2[9]; // Chi2-cuts for each station
76  Double_t fZ0[fgkStat]; // Z-positions of the first layers
77  Double_t fRmin[fgkStat]; // inner radii of stations
78  Double_t fRmax[fgkStat]; // outer radii of stations
79  Int_t fNsect[fgkStat]; // number of sectors per layer
80  //Double_t fDtubes[fgkStat][fgkPlanes]; // max. tube difference between views
81  std::map<Int_t,TMatrixDSym*> fMatr; // system matrices (for different hit layer patterns)
82  std::multimap<Int_t,CbmMuchTrack*> fSecVec[fgkStat]; // to arrange vectors according to sectors
83  Double_t fZabs0[9][2]; // Z-positions of absorber faces
84  Double_t fX0abs[9]; // radiation lengths of the absorbers
85 
86  //std::vector<pair<Int_t,Int_t> > fHit2d[fgkStat][fgkPlanes/2]; // Indx1,Indx2 of doublet hits
87 
88  void ComputeMatrix();
89  void GetHits();
90  Bool_t SelectHitId(const CbmMuchPixelHit *hit);
91  Int_t GetDowns(Int_t ista, std::vector<std::pair<Double_t,Double_t> >& vecDowns);
92  void MakeVectors();
93  //void ProcessDouble(Int_t ista, Int_t lay2, Int_t patt, Int_t flag, Int_t tube0, Int_t segment0);
94  void ProcessPlane(Int_t ista, Int_t lay2, Int_t patt, Int_t flag);
95  void AddVector(Int_t ista, Int_t patt, Double_t chi2, Double_t *pars);
96  void SetTrackId(CbmMuchTrack *vec);
97  void FindLine(Int_t patt, Double_t *pars);
98  Double_t FindChi2(Int_t ista, Int_t patt, Double_t *pars);
99  void CheckParams();
100  //void HighRes();
101  //void ProcessSingleHigh(Int_t ista, Int_t plane, Int_t patt, Int_t flag, Int_t nok, Double_t uu[fgkPlanes][2]);
102  void RemoveClones();
103  void StoreVectors();
104  Int_t CountBits(Int_t x);
105  void Refit(Int_t patt, Double_t &chi2, Double_t *pars, TMatrixDSym &cov);
106  void MatchVectors();
107  */
108 
111 
112  ClassDef(CbmVectorFinder, 0)
113 };
114 
115 #endif
CbmVectorFinder::CbmVectorFinder
CbmVectorFinder(const CbmVectorFinder &)
CbmVectorFinder::Exec
virtual void Exec(Option_t *opt)
Definition: CbmVectorFinder.cxx:71
CbmVectorFinder::~CbmVectorFinder
virtual ~CbmVectorFinder()
Definition: CbmVectorFinder.cxx:27
CbmVectorFinder::operator=
CbmVectorFinder & operator=(const CbmVectorFinder &)
CbmVectorFinder::Init
virtual InitStatus Init()
Definition: CbmVectorFinder.cxx:31
CbmVectorFinder::CbmVectorFinder
CbmVectorFinder()
Definition: CbmVectorFinder.cxx:23
CbmVectorFinder::Finish
virtual void Finish()
Definition: CbmVectorFinder.cxx:75
CbmVectorFinder
Definition: CbmVectorFinder.h:26
CbmVectorFinder::SetParContainers
virtual void SetParContainers()
Definition: CbmVectorFinder.cxx:67