BmnRoot
Loading...
Searching...
No Matches
BmnInnerTrackingRun7.h
Go to the documentation of this file.
1/*
2 * File: BmnInnerTrackingRun7.h
3 * Author: Sergei Merts
4 *
5 * Created on April 6, 2020
6 *
7 *
8 */
9
10#ifndef BMNINNERTRACKINGRUN7_H
11#define BMNINNERTRACKINGRUN7_H
12
13// Base Class Headers ----------------
14
15#include <map>
16#include <vector>
17
18#include "BmnCellDuet.h"
19#include "BmnGemStripStationSet.h"
20#include "BmnGlobalTrack.h"
21#include "BmnKalmanFilter.h"
22#include "BmnMath.h"
23#include "BmnSiliconStationSet.h"
24#include "BmnSteering.h"
25#include "BmnTrack.h"
26#include "CbmMCTrack.h"
27#include "FairMCPoint.h"
28#include "FairTask.h"
29#include "FairTrackParam.h"
30#include "TClonesArray.h"
31#include "TString.h"
32
33using namespace std;
34
35class BmnInnerTrackingRun7 : public FairTask {
36 public:
37 // Constructors/Destructors ---------
38
40 BmnInnerTrackingRun7(Int_t run, Bool_t target);
41 void SetFiltration(Bool_t f) {
42 fDoHitAsymFiltration = f;
43 }
45
46 virtual InitStatus Init();
47 virtual void Exec(Option_t* opt);
48 virtual void Finish();
49
50 private:
51 BmnStatus SortHits(vector<BmnHit*>* sortedHits);
52
53 BmnStatus FindTracks_4of4_OnLastGEMStations();
54 BmnStatus FindTracks_3of4_OnLastGEMStations();
55 BmnStatus FindTracks_2of2_OnFirstGEMStationsDownstream();
56 BmnStatus FindTracks_2of2_OnFirstGEMStationsUpstream();
57
58 BmnStatus MatchHit(BmnTrack* cand, vector<BmnHit*> sortedHits, Bool_t downstream);
59 BmnStatus FindCandidateByThreeStations(Short_t st0, Short_t st1, Short_t st2, vector<BmnTrack>& candidates, vector<BmnHit*>* sortedHits);
60 BmnStatus FindCandidateByTwoStations(Short_t st0, Short_t st1, vector<BmnTrack>& candidates, vector<BmnHit*>* sortedHits);
61
62 BmnStatus TrackUpdateByKalman(vector<BmnTrack>& cands);
63 BmnStatus TrackUpdateByLine(vector<BmnTrack>& cands);
64 BmnStatus SortTracks(vector<BmnTrack>& inTracks, vector<BmnTrack>& sortedTracks);
65 BmnStatus TrackSelection(vector<BmnTrack>& cands);
66
67 Double_t CalcQp(BmnTrack* track, Bool_t doSimple);
68 BmnStatus CalculateTrackParams(BmnTrack* tr);
69 BmnStatus CalcCovMatrix(BmnTrack* tr);
70 TVector2 CalcMeanSigma(vector<Double_t>);
71 Double_t CalculateLength(BmnTrack* tr);
72 BmnStatus CheckSharedHits(vector<BmnTrack>& sortedTracks);
73 void SetHitsUsing(BmnTrack* tr, Bool_t use);
74 BmnStatus DrawHits();
75
76 BmnGemStripStationSet* fGemDetector;
77 BmnSiliconStationSet* fSilDetector;
78 TString fGemHitsBranchName;
79 TString fSilHitsBranchName;
80 TString fGlobTracksBranchName;
81 TString fGemTracksBranchName;
82 TString fSilTracksBranchName;
83
84 TClonesArray* fGlobTracksArray;
85 TClonesArray* fSilTracksArray;
86 TClonesArray* fGemTracksArray;
87 TClonesArray* fSilHitsArray;
88 TClonesArray* fGemHitsArray;
89 TClonesArray* fHitsArray;
90
91 TClonesArray* fMCTracksArray;
92 TClonesArray* fSilPointsArray;
93 TClonesArray* fGemPointsArray;
94
95 BmnKalmanFilter* fKalman;
96
97 Bool_t fIsTarget; // run with target or not
98 Bool_t fDoHitAsymFiltration;
99
100 UInt_t fEventNo;
101 Short_t fNStations;
102 Short_t fNSiliconStations;
103
104 TVector3 fRoughVertex; // for correct transformation
105
106 FairField* fField;
107
108 Double_t fChiSquareCut;
109 Double_t* fHitXCutMin;
110 Double_t* fHitXCutMax;
111 Double_t* fHitYCutMin;
112 Double_t* fHitYCutMax;
113
114 Int_t fNHitsCut;
115 Double_t fDistCut;
116
117 TString fSteerFile;
118 BmnSteering* fSteering;
119
120 ClassDef(BmnInnerTrackingRun7, 1);
121};
122
123#endif /* BMNINNERTRACKINGRUN7_H */
float f
Definition P4_F32vec4.h:21
BmnStatus
Definition BmnEnums.h:24
virtual void Finish()
virtual InitStatus Init()
BmnInnerTrackingRun7(Int_t run, Bool_t target)
virtual ~BmnInnerTrackingRun7()
virtual void Exec(Option_t *opt)
-clang-format
STL namespace.