CbmRoot
CbmMuchMergeVectors.h
Go to the documentation of this file.
1 
11 #ifndef CBMMUCHMERGEVECTORS_H_
12 #define CBMMUCHMERGEVECTORS_H_ 1
13 
14 #include "CbmMuchGeoScheme.h"
15 #include "FairTask.h"
16 #include "FairTrackParam.h"
17 #include <TDecompLU.h>
18 #include <map>
19 
20 class CbmMuchTrack;
21 class TClonesArray;
22 
23 class CbmMuchMergeVectors : public FairTask {
24 public:
27 
29  virtual ~CbmMuchMergeVectors();
30 
32  virtual InitStatus Init();
33 
35  virtual void Exec(Option_t* opt);
36 
38  virtual void Finish();
39 
41  virtual void SetParContainers();
42 
44  Int_t GetNofTracks() { return fNofTracks; };
45  Int_t GetNofStat() const { return fgkStat; }
46 
47  void PassAbsorber(Int_t ist,
48  Double_t* zabs,
49  Double_t x0,
50  FairTrackParam& parFirst,
51  TMatrixFSym& cov,
52  Int_t pFlag = 0);
53 
54 private:
55  // Some constants
56  static const Int_t fgkPlanes = 8; // Number of straw planes per station
57  static const Int_t fgkStat =
58  5; //2; // Number of stations (including STS tracks)
59 
60 private:
61  CbmMuchGeoScheme* fGeoScheme; // Geometry scheme
62  TClonesArray* fTrackArray; // Output array of CbmMuchTrack
63  Int_t fNofTracks; // Number of tracks created
64  TClonesArray* fHits; // Input array of CbmMuchHit
65  TClonesArray* fGemHits; // Input array of CbmMuchHit
66  TClonesArray* fPoints; // Input array of CbmMuchPoint
67  TClonesArray* fDigiMatches; // Input array of CbmMatch
68  TClonesArray* fVecArray; // Input array of CbmMuchTrack
69  TClonesArray* fTracksSts; // Input array of CbmStsTrack
70  TClonesArray* fTrStsMatch; // Input array of CbmTrackMatch
71  TClonesArray* fTracksLit; // Input array of LIT MuchTrack
72 
73  Int_t fNstat; // Number of MUCH stations
74  Int_t fNdoubl; // Number of straw doublets per station
75  Int_t fStatFirst; // First straw station No.
76  std::map<Int_t, CbmMuchTrack*>
77  fVectors[fgkStat]; // track vectors for stations
78  Double_t fDz[fgkPlanes]; // geometrical constants (Z-distances from layer 0)
79  Double_t fCosa[fgkPlanes]; // geometrical constants (cos of stereo angles)
80  Double_t fSina[fgkPlanes]; // geometrical constants (sin of stereo angles)
81  Double_t fCutChi2[9]; // Chi2-cuts for each absorber
82  Double_t fZ0[9]; // Z-positions of the first layers
83  Double_t fRmin[9]; // inner radii of stations
84  Double_t fRmax[9]; // outer radii of stations
85  std::map<Int_t, TMatrixDSym*>
86  fMatr; // system matrices (for different hit layer patterns)
87  Double_t fZabs0[9][2]; // Z-positions of absorber faces
88  Double_t fX0abs[9]; // radiation lengths of the absorbers
89 
90  void GetVectors();
91  void MatchVectors();
92  void MergeVectors();
93  void AddTrack(Int_t ista0,
94  CbmMuchTrack* tr1,
95  CbmMuchTrack* tr2,
96  Int_t indx1,
97  Int_t indx2,
98  //TMatrixF &par, Double_t c2);
99  FairTrackParam& parOk,
100  Double_t c2);
101  void RemoveClones(Int_t ibeg,
102  Int_t iabs,
103  std::map<Int_t, CbmMuchTrack*>& mapMerged);
104  void SelectTracks();
105  void AddStation1();
106  void AddTrack1(Int_t ista0,
107  CbmMuchTrack* tr1,
108  CbmMuchTrack* tr2,
109  Int_t indx1,
110  Int_t indx2,
111  FairTrackParam& parOk,
112  Double_t c2);
113 
116 
117  ClassDef(CbmMuchMergeVectors, 0)
118 };
119 
120 #endif
CbmMuchMergeVectors::fNstat
Int_t fNstat
Definition: CbmMuchMergeVectors.h:73
CbmMuchMergeVectors::fRmin
Double_t fRmin[9]
Definition: CbmMuchMergeVectors.h:83
CbmMuchGeoScheme
Definition: CbmMuchGeoScheme.h:43
CbmMuchMergeVectors::operator=
CbmMuchMergeVectors & operator=(const CbmMuchMergeVectors &)
CbmMuchMergeVectors::fSina
Double_t fSina[fgkPlanes]
Definition: CbmMuchMergeVectors.h:80
CbmMuchMergeVectors::fPoints
TClonesArray * fPoints
Definition: CbmMuchMergeVectors.h:66
CbmMuchMergeVectors::fVectors
std::map< Int_t, CbmMuchTrack * > fVectors[fgkStat]
Definition: CbmMuchMergeVectors.h:77
CbmMuchMergeVectors::fZabs0
Double_t fZabs0[9][2]
Definition: CbmMuchMergeVectors.h:87
CbmMuchMergeVectors::MatchVectors
void MatchVectors()
Definition: CbmMuchMergeVectors.cxx:328
CbmMuchMergeVectors::fMatr
std::map< Int_t, TMatrixDSym * > fMatr
Definition: CbmMuchMergeVectors.h:86
CbmMuchMergeVectors::fHits
TClonesArray * fHits
Definition: CbmMuchMergeVectors.h:64
CbmMuchMergeVectors::PassAbsorber
void PassAbsorber(Int_t ist, Double_t *zabs, Double_t x0, FairTrackParam &parFirst, TMatrixFSym &cov, Int_t pFlag=0)
Definition: CbmMuchMergeVectors.cxx:658
CbmMuchMergeVectors::CbmMuchMergeVectors
CbmMuchMergeVectors(const CbmMuchMergeVectors &)
CbmMuchMergeVectors::fNdoubl
Int_t fNdoubl
Definition: CbmMuchMergeVectors.h:74
CbmMuchMergeVectors::fRmax
Double_t fRmax[9]
Definition: CbmMuchMergeVectors.h:84
CbmMuchMergeVectors::AddTrack
void AddTrack(Int_t ista0, CbmMuchTrack *tr1, CbmMuchTrack *tr2, Int_t indx1, Int_t indx2, FairTrackParam &parOk, Double_t c2)
Definition: CbmMuchMergeVectors.cxx:741
CbmMuchMergeVectors::CbmMuchMergeVectors
CbmMuchMergeVectors()
Definition: CbmMuchMergeVectors.cxx:42
CbmMuchTrack
Definition: CbmMuchTrack.h:16
CbmMuchMergeVectors::~CbmMuchMergeVectors
virtual ~CbmMuchMergeVectors()
Definition: CbmMuchMergeVectors.cxx:66
CbmMuchMergeVectors::fTrStsMatch
TClonesArray * fTrStsMatch
Definition: CbmMuchMergeVectors.h:70
CbmMuchMergeVectors::Init
virtual InitStatus Init()
Definition: CbmMuchMergeVectors.cxx:76
CbmMuchMergeVectors::fgkPlanes
static const Int_t fgkPlanes
Definition: CbmMuchMergeVectors.h:56
CbmMuchMergeVectors::fVecArray
TClonesArray * fVecArray
Definition: CbmMuchMergeVectors.h:68
CbmMuchMergeVectors::fCosa
Double_t fCosa[fgkPlanes]
Definition: CbmMuchMergeVectors.h:79
CbmMuchMergeVectors
Definition: CbmMuchMergeVectors.h:23
CbmMuchMergeVectors::Exec
virtual void Exec(Option_t *opt)
Definition: CbmMuchMergeVectors.cxx:157
CbmMuchMergeVectors::fCutChi2
Double_t fCutChi2[9]
Definition: CbmMuchMergeVectors.h:81
CbmMuchMergeVectors::fStatFirst
Int_t fStatFirst
Definition: CbmMuchMergeVectors.h:75
CbmMuchMergeVectors::fTracksSts
TClonesArray * fTracksSts
Definition: CbmMuchMergeVectors.h:69
CbmMuchMergeVectors::GetVectors
void GetVectors()
Definition: CbmMuchMergeVectors.cxx:196
CbmMuchMergeVectors::fX0abs
Double_t fX0abs[9]
Definition: CbmMuchMergeVectors.h:88
CbmMuchMergeVectors::fTrackArray
TClonesArray * fTrackArray
Definition: CbmMuchMergeVectors.h:62
CbmMuchMergeVectors::Finish
virtual void Finish()
Definition: CbmMuchMergeVectors.cxx:186
CbmMuchMergeVectors::fNofTracks
Int_t fNofTracks
Definition: CbmMuchMergeVectors.h:63
CbmMuchMergeVectors::fDigiMatches
TClonesArray * fDigiMatches
Definition: CbmMuchMergeVectors.h:67
CbmMuchMergeVectors::GetNofStat
Int_t GetNofStat() const
Definition: CbmMuchMergeVectors.h:45
CbmMuchMergeVectors::SetParContainers
virtual void SetParContainers()
Definition: CbmMuchMergeVectors.cxx:153
CbmMuchMergeVectors::fZ0
Double_t fZ0[9]
Definition: CbmMuchMergeVectors.h:82
CbmMuchMergeVectors::fTracksLit
TClonesArray * fTracksLit
Definition: CbmMuchMergeVectors.h:71
CbmMuchMergeVectors::AddTrack1
void AddTrack1(Int_t ista0, CbmMuchTrack *tr1, CbmMuchTrack *tr2, Int_t indx1, Int_t indx2, FairTrackParam &parOk, Double_t c2)
Definition: CbmMuchMergeVectors.cxx:1134
CbmMuchMergeVectors::AddStation1
void AddStation1()
Definition: CbmMuchMergeVectors.cxx:1015
CbmMuchGeoScheme.h
CbmMuchMergeVectors::fDz
Double_t fDz[fgkPlanes]
Definition: CbmMuchMergeVectors.h:78
CbmMuchMergeVectors::MergeVectors
void MergeVectors()
Definition: CbmMuchMergeVectors.cxx:473
CbmMuchMergeVectors::fGemHits
TClonesArray * fGemHits
Definition: CbmMuchMergeVectors.h:65
CbmMuchMergeVectors::GetNofTracks
Int_t GetNofTracks()
Definition: CbmMuchMergeVectors.h:44
CbmMuchMergeVectors::RemoveClones
void RemoveClones(Int_t ibeg, Int_t iabs, std::map< Int_t, CbmMuchTrack * > &mapMerged)
Definition: CbmMuchMergeVectors.cxx:808
CbmMuchMergeVectors::fgkStat
static const Int_t fgkStat
Definition: CbmMuchMergeVectors.h:57
CbmMuchMergeVectors::SelectTracks
void SelectTracks()
Definition: CbmMuchMergeVectors.cxx:895
CbmMuchMergeVectors::fGeoScheme
CbmMuchGeoScheme * fGeoScheme
Definition: CbmMuchMergeVectors.h:61