10#ifndef BmnGlobalTracking_H_
11#define BmnGlobalTracking_H_
14#include "BmnCSCStationSet.h"
16#include "BmnDchTrack.h"
17#include "BmnGemTrack.h"
18#include "BmnGlobalTrack.h"
20#include "BmnKalmanFilter.h"
21#include "BmnScWallEvent.h"
22#include "BmnSiliconHit.h"
23#include "BmnSiliconStationSet.h"
26#include "CbmKFTrack.h"
27#include "CbmMCTrack.h"
29#include "CbmStsTrack.h"
30#include "CbmTofPoint.h"
32#include "FairMCPoint.h"
33#include "FairRootManager.h"
34#include "FairRunAna.h"
35#include "FairRuntimeDb.h"
36#include "TClonesArray.h"
37#include "TFitResult.h"
38#include "TFitResultPtr.h"
44#include <TStopwatch.h>
71 virtual void Exec(Option_t* opt);
78 virtual void OnlineWrite(
const std::unique_ptr<TTree>& resultTree);
97 TClonesArray* fInnerTracks;
98 TClonesArray* fGemTracks;
99 TClonesArray* fGemVertex;
100 TClonesArray* fGemHits;
101 TClonesArray* fSilHits;
102 TClonesArray* fCscHits;
103 TClonesArray* fDchTracks;
104 TClonesArray* fDchHits;
105 TClonesArray* fTof1Hits;
106 TClonesArray* fTof2Hits;
107 TClonesArray* fGemLowerCluster;
109 TClonesArray* fEvHead;
110 TClonesArray* fMCTracks;
112 TClonesArray* fStsHits;
113 TClonesArray* fStsTracks;
114 TClonesArray* fGlobalTracks;
118 TString fInnerTrackBranchName;
136 const static Int_t nModTof700 = 60;
137 const static Int_t nStripsTof700 = 32;
138 Float_t timeShiftsTof700[nModTof700][nStripsTof700];
140 const static Int_t nGemSt = 7;
141 Float_t qCalib_a0[nGemSt];
142 Float_t qCalib_b0[nGemSt];
143 Float_t qCalib_a1[nGemSt];
144 Float_t qCalib_b1[nGemSt];
146 TF1* fitMeanPosResX_tof400;
147 TF1* fitMeanPosResY_tof400;
148 TF1* fitMeanNegResX_tof400;
149 TF1* fitMeanNegResY_tof400;
150 TF1* fitSigmaPosResX_tof400;
151 TF1* fitSigmaPosResY_tof400;
152 TF1* fitSigmaNegResX_tof400;
153 TF1* fitSigmaNegResY_tof400;
155 TF1* fitMeanPosResX_tof700;
156 TF1* fitMeanPosResY_tof700;
157 TF1* fitMeanNegResX_tof700;
158 TF1* fitMeanNegResY_tof700;
159 TF1* fitSigmaPosResX_tof700;
160 TF1* fitSigmaPosResY_tof700;
161 TF1* fitSigmaNegResX_tof700;
162 TF1* fitSigmaNegResY_tof700;
169 Long_t fNMatchedDch1;
170 Long_t fNMatchedDch2;
171 Long_t fNMatchedTof400;
172 Long_t fNMatchedTof700;
173 Long_t fNMatchedNearCsc;
174 Long_t fNMatchedFarCsc;
175 Long_t fNInnerTracks;
176 Long_t fNGoodInnerTracks;
177 Long_t fNGoodGlobalTracks;
179 void PrintStatistics();
190 map<Float_t, pair<Int_t, Int_t>> FindPairsTof400(TClonesArray* tracks,
194 map<Float_t, pair<Int_t, Int_t>> FindPairsTof700(TClonesArray* tracks,
198 Int_t FindNearestHit(FairTrackParam* par, TClonesArray* hits, Float_t xCut, Float_t yCut);
199 Int_t FindNearestHit(FairTrackParam* par, TClonesArray* hits, Float_t xCut, Float_t yCut, vector<Int_t> stations);
202 Double_t MagFieldIntegral(FairTrackParam& par, Double_t zMin, Double_t zMax, Double_t step);
void SetDoAlign(Bool_t a)
BmnGlobalTracking(Bool_t isExp, Bool_t doAlign)
virtual void Exec(Option_t *opt)
Inherited from FairTask.
BmnGlobalTracking()
Constructor.
virtual void OnlineWrite(const std::unique_ptr< TTree > &resultTree)
Write task resul to tree.
virtual InitStatus Init()
Inherited from FairTask.
void SetRunNumber(Int_t r)
const Short_t GetDoAlign() const
void SetInnerTracksBranchName(TString name)
virtual void Finish()
Inherited from FairTask.
void SetPeriodNumber(Short_t p)
virtual ~BmnGlobalTracking()
Destructor.
Class for Bmn ScWall data container in event.