BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnCellAutoTracking.h
Go to the documentation of this file.
1
/*
2
* File: BmnCellAutoTracking.h
3
* Author: Sergey Merts
4
*
5
* Created on July 30, 2018, 11:29 AM
6
*
7
* Attempt to implement Cellular Automaton Tracking.
8
*/
9
10
#ifndef BMNCELLAUTOTRACKING_H
11
#define BMNCELLAUTOTRACKING_H
12
13
// Base Class Headers ----------------
14
15
#include "
BmnCellDuet.h
"
16
#include "BmnGemStripStationSet.h"
17
#include "BmnGlobalTrack.h"
18
#include "BmnKalmanFilter.h"
19
#include "BmnMath.h"
20
#include "BmnSiliconStationSet.h"
21
#include "BmnSteering.h"
22
#include "BmnTrack.h"
23
#include "CbmMCTrack.h"
24
#include "FairMCPoint.h"
25
#include "FairTask.h"
26
#include "FairTrackParam.h"
27
#include "
TClonesArray.h
"
28
#include "
TString.h
"
29
30
#include <map>
31
#include <vector>
32
33
using namespace
std
;
34
35
class
BmnCellAutoTracking
:
public
FairTask
36
{
37
public
:
38
// Constructors/Destructors ---------
39
40
BmnCellAutoTracking
() {};
41
BmnCellAutoTracking
(
Short_t
period,
Int_t
run,
Bool_t
field,
Bool_t
target,
TString
steerFile =
""
);
42
virtual
~BmnCellAutoTracking
();
43
44
virtual
InitStatus
Init
();
45
virtual
void
Exec
(
Option_t
* opt);
46
virtual
void
Finish
();
47
48
void
SetInnerTrackerSetup
(map<DetectorId, Bool_t> setup) {
fInnerTrackerSetup
= setup; };
49
50
void
SetDetectorPresence
(DetectorId det,
Bool_t
use) {
fInnerTrackerSetup
[det] = use; };
51
52
private
:
53
BmnStatus
CellsCreation
(vector<BmnCellDuet>* cells);
54
BmnStatus
StateCalculation
(vector<BmnCellDuet>* cells);
55
vector<BmnTrack>
CellsConnection
(vector<BmnCellDuet>* cells);
56
BmnStatus
TrackUpdateByKalman
(vector<BmnTrack>& cands);
57
BmnStatus
TrackUpdateByLine
(vector<BmnTrack>& cands);
58
BmnStatus
SortTracks
(vector<BmnTrack>& inTracks, vector<BmnTrack>& sortedTracks);
59
BmnStatus
TrackSelection
(vector<BmnTrack>& cands);
60
61
Double_t
CalcQp
(
BmnTrack
* track);
62
BmnStatus
CalculateTrackParams
(
BmnTrack
* tr);
63
BmnStatus
CalcCovMatrix
(
BmnTrack
* tr);
64
TVector2
CalcMeanSigma
(vector<Double_t>);
65
Double_t
CalculateLength
(
BmnTrack
* tr);
66
BmnStatus
CheckSharedHits
(vector<BmnTrack>& sortedTracks);
67
void
SetHitsUsing
(
BmnTrack
* tr,
Bool_t
use);
68
BmnStatus
DrawHits
();
69
70
BmnGemStripStationSet
*
fGemDetector
;
71
BmnSiliconStationSet
*
fSilDetector
;
72
TString
fGemHitsBranchName
;
73
TString
fSilHitsBranchName
;
74
TString
fSsdHitsBranchName
;
75
TString
fGlobTracksBranchName
;
76
TString
fGemTracksBranchName
;
77
TString
fSilTracksBranchName
;
78
TString
fSsdTracksBranchName
;
79
80
TClonesArray
*
fGlobTracksArray
;
81
TClonesArray
*
fSilTracksArray
;
82
TClonesArray
*
fGemTracksArray
;
83
TClonesArray
*
fSsdTracksArray
;
84
TClonesArray
*
fSilHitsArray
;
85
TClonesArray
*
fSsdHitsArray
;
86
TClonesArray
*
fGemHitsArray
;
87
TClonesArray
*
fHitsArray
;
88
89
TClonesArray
*
fMCTracksArray
;
90
TClonesArray
*
fSilPointsArray
;
91
TClonesArray
*
fSsdPointsArray
;
92
TClonesArray
*
fGemPointsArray
;
93
94
BmnKalmanFilter
*
fKalman
;
95
96
Bool_t
fIsField
;
// run with mag.field or not
97
Bool_t
fIsTarget
;
// run with target or not
98
map<DetectorId, Bool_t>
fInnerTrackerSetup
;
99
100
UInt_t
fEventNo
;
101
Short_t
fPeriodId
;
102
Short_t
fNStations
;
103
Short_t
fNSiliconStations
;
104
105
TVector3
fRoughVertex
;
// for correct transformation
106
107
FairField
*
fField
;
108
109
Double_t
fChiSquareCut
;
110
Double_t
*
fCellDistCut
;
111
Double_t
*
fHitXCutMin
;
112
Double_t
*
fHitXCutMax
;
113
Double_t
*
fHitYCutMin
;
114
Double_t
*
fHitYCutMax
;
115
Double_t
*
fCellSlopeXZCutMin
;
116
Double_t
*
fCellSlopeXZCutMax
;
117
Double_t
*
fCellSlopeYZCutMin
;
118
Double_t
*
fCellSlopeYZCutMax
;
119
120
Double_t
*
fCellDiffSlopeYZCut
;
121
Double_t
*
fCellDiffSlopeXZCut
;
122
Int_t
fNHitsCut
;
123
124
TString
fSteerFile
;
125
BmnSteering
*
fSteering
;
126
127
Bool_t
isSRC
;
128
129
size_t
kCellsCut
;
130
131
ClassDef
(
BmnCellAutoTracking
, 1);
132
};
133
134
#endif
/* BMNCELLAUTOTRACKING_H */
Bool_t
bool Bool_t
Int_t
int Int_t
Short_t
short Short_t
Double_t
double Double_t
Option_t
const char Option_t
ClassDef
#define ClassDef(name, id)
TClonesArray.h
TString.h
BmnStatus
BmnStatus
Define status code.
Definition
BmnEnums.h:93
BmnCellAutoTracking::fMCTracksArray
TClonesArray * fMCTracksArray
Definition
BmnCellAutoTracking.h:89
BmnCellAutoTracking::fSsdHitsBranchName
TString fSsdHitsBranchName
Definition
BmnCellAutoTracking.h:74
BmnCellAutoTracking::fHitYCutMin
Double_t * fHitYCutMin
Definition
BmnCellAutoTracking.h:113
BmnCellAutoTracking::fInnerTrackerSetup
map< DetectorId, Bool_t > fInnerTrackerSetup
Definition
BmnCellAutoTracking.h:98
BmnCellAutoTracking::fNStations
Short_t fNStations
Definition
BmnCellAutoTracking.h:102
BmnCellAutoTracking::isSRC
Bool_t isSRC
Definition
BmnCellAutoTracking.h:127
BmnCellAutoTracking::fNHitsCut
Int_t fNHitsCut
Definition
BmnCellAutoTracking.h:122
BmnCellAutoTracking::fCellSlopeYZCutMin
Double_t * fCellSlopeYZCutMin
Definition
BmnCellAutoTracking.h:117
BmnCellAutoTracking::fRoughVertex
TVector3 fRoughVertex
Definition
BmnCellAutoTracking.h:105
BmnCellAutoTracking::SortTracks
BmnStatus SortTracks(vector< BmnTrack > &inTracks, vector< BmnTrack > &sortedTracks)
Definition
BmnCellAutoTracking.cxx:362
BmnCellAutoTracking::fSsdTracksBranchName
TString fSsdTracksBranchName
Definition
BmnCellAutoTracking.h:78
BmnCellAutoTracking::fNSiliconStations
Short_t fNSiliconStations
Definition
BmnCellAutoTracking.h:103
BmnCellAutoTracking::CheckSharedHits
BmnStatus CheckSharedHits(vector< BmnTrack > &sortedTracks)
Definition
BmnCellAutoTracking.cxx:1050
BmnCellAutoTracking::fCellDiffSlopeXZCut
Double_t * fCellDiffSlopeXZCut
Definition
BmnCellAutoTracking.h:121
BmnCellAutoTracking::CellsConnection
vector< BmnTrack > CellsConnection(vector< BmnCellDuet > *cells)
Definition
BmnCellAutoTracking.cxx:525
BmnCellAutoTracking::fHitYCutMax
Double_t * fHitYCutMax
Definition
BmnCellAutoTracking.h:114
BmnCellAutoTracking::fEventNo
UInt_t fEventNo
Definition
BmnCellAutoTracking.h:100
BmnCellAutoTracking::fCellSlopeXZCutMin
Double_t * fCellSlopeXZCutMin
Definition
BmnCellAutoTracking.h:115
BmnCellAutoTracking::fCellSlopeYZCutMax
Double_t * fCellSlopeYZCutMax
Definition
BmnCellAutoTracking.h:118
BmnCellAutoTracking::fKalman
BmnKalmanFilter * fKalman
Definition
BmnCellAutoTracking.h:94
BmnCellAutoTracking::fField
FairField * fField
Definition
BmnCellAutoTracking.h:107
BmnCellAutoTracking::Exec
virtual void Exec(Option_t *opt)
Definition
BmnCellAutoTracking.cxx:233
BmnCellAutoTracking::fSsdPointsArray
TClonesArray * fSsdPointsArray
Definition
BmnCellAutoTracking.h:91
BmnCellAutoTracking::fPeriodId
Short_t fPeriodId
Definition
BmnCellAutoTracking.h:101
BmnCellAutoTracking::fSilDetector
BmnSiliconStationSet * fSilDetector
Definition
BmnCellAutoTracking.h:71
BmnCellAutoTracking::fHitXCutMin
Double_t * fHitXCutMin
Definition
BmnCellAutoTracking.h:111
BmnCellAutoTracking::fIsField
Bool_t fIsField
Definition
BmnCellAutoTracking.h:96
BmnCellAutoTracking::Finish
virtual void Finish()
Definition
BmnCellAutoTracking.cxx:392
BmnCellAutoTracking::CalculateLength
Double_t CalculateLength(BmnTrack *tr)
Definition
BmnCellAutoTracking.cxx:1024
BmnCellAutoTracking::fGemDetector
BmnGemStripStationSet * fGemDetector
Definition
BmnCellAutoTracking.h:70
BmnCellAutoTracking::fGemTracksArray
TClonesArray * fGemTracksArray
Definition
BmnCellAutoTracking.h:82
BmnCellAutoTracking::DrawHits
BmnStatus DrawHits()
Definition
BmnCellAutoTracking.cxx:1082
BmnCellAutoTracking::fGemPointsArray
TClonesArray * fGemPointsArray
Definition
BmnCellAutoTracking.h:92
BmnCellAutoTracking::TrackSelection
BmnStatus TrackSelection(vector< BmnTrack > &cands)
Definition
BmnCellAutoTracking.cxx:691
BmnCellAutoTracking::fGemHitsArray
TClonesArray * fGemHitsArray
Definition
BmnCellAutoTracking.h:86
BmnCellAutoTracking::fHitsArray
TClonesArray * fHitsArray
Definition
BmnCellAutoTracking.h:87
BmnCellAutoTracking::fChiSquareCut
Double_t fChiSquareCut
Definition
BmnCellAutoTracking.h:109
BmnCellAutoTracking::fGemTracksBranchName
TString fGemTracksBranchName
Definition
BmnCellAutoTracking.h:76
BmnCellAutoTracking::fCellDistCut
Double_t * fCellDistCut
Definition
BmnCellAutoTracking.h:110
BmnCellAutoTracking::SetHitsUsing
void SetHitsUsing(BmnTrack *tr, Bool_t use)
Definition
BmnCellAutoTracking.cxx:752
BmnCellAutoTracking::fCellDiffSlopeYZCut
Double_t * fCellDiffSlopeYZCut
Definition
BmnCellAutoTracking.h:120
BmnCellAutoTracking::CalcMeanSigma
TVector2 CalcMeanSigma(vector< Double_t >)
Definition
BmnCellAutoTracking.cxx:896
BmnCellAutoTracking::fSilHitsArray
TClonesArray * fSilHitsArray
Definition
BmnCellAutoTracking.h:84
BmnCellAutoTracking::fSteerFile
TString fSteerFile
Definition
BmnCellAutoTracking.h:124
BmnCellAutoTracking::fSsdHitsArray
TClonesArray * fSsdHitsArray
Definition
BmnCellAutoTracking.h:85
BmnCellAutoTracking::fSilTracksArray
TClonesArray * fSilTracksArray
Definition
BmnCellAutoTracking.h:81
BmnCellAutoTracking::SetInnerTrackerSetup
void SetInnerTrackerSetup(map< DetectorId, Bool_t > setup)
Definition
BmnCellAutoTracking.h:48
BmnCellAutoTracking::~BmnCellAutoTracking
virtual ~BmnCellAutoTracking()
Definition
BmnCellAutoTracking.cxx:117
BmnCellAutoTracking::fGlobTracksBranchName
TString fGlobTracksBranchName
Definition
BmnCellAutoTracking.h:75
BmnCellAutoTracking::BmnCellAutoTracking
BmnCellAutoTracking()
Definition
BmnCellAutoTracking.h:40
BmnCellAutoTracking::fIsTarget
Bool_t fIsTarget
Definition
BmnCellAutoTracking.h:97
BmnCellAutoTracking::SetDetectorPresence
void SetDetectorPresence(DetectorId det, Bool_t use)
Definition
BmnCellAutoTracking.h:50
BmnCellAutoTracking::fSsdTracksArray
TClonesArray * fSsdTracksArray
Definition
BmnCellAutoTracking.h:83
BmnCellAutoTracking::fSilTracksBranchName
TString fSilTracksBranchName
Definition
BmnCellAutoTracking.h:77
BmnCellAutoTracking::fGlobTracksArray
TClonesArray * fGlobTracksArray
Definition
BmnCellAutoTracking.h:80
BmnCellAutoTracking::CalcQp
Double_t CalcQp(BmnTrack *track)
Definition
BmnCellAutoTracking.cxx:911
BmnCellAutoTracking::fCellSlopeXZCutMax
Double_t * fCellSlopeXZCutMax
Definition
BmnCellAutoTracking.h:116
BmnCellAutoTracking::fGemHitsBranchName
TString fGemHitsBranchName
Definition
BmnCellAutoTracking.h:72
BmnCellAutoTracking::Init
virtual InitStatus Init()
Definition
BmnCellAutoTracking.cxx:137
BmnCellAutoTracking::TrackUpdateByKalman
BmnStatus TrackUpdateByKalman(vector< BmnTrack > &cands)
Definition
BmnCellAutoTracking.cxx:622
BmnCellAutoTracking::kCellsCut
size_t kCellsCut
Definition
BmnCellAutoTracking.h:129
BmnCellAutoTracking::fSilPointsArray
TClonesArray * fSilPointsArray
Definition
BmnCellAutoTracking.h:90
BmnCellAutoTracking::CalculateTrackParams
BmnStatus CalculateTrackParams(BmnTrack *tr)
Definition
BmnCellAutoTracking.cxx:861
BmnCellAutoTracking::fSilHitsBranchName
TString fSilHitsBranchName
Definition
BmnCellAutoTracking.h:73
BmnCellAutoTracking::StateCalculation
BmnStatus StateCalculation(vector< BmnCellDuet > *cells)
Definition
BmnCellAutoTracking.cxx:487
BmnCellAutoTracking::TrackUpdateByLine
BmnStatus TrackUpdateByLine(vector< BmnTrack > &cands)
Definition
BmnCellAutoTracking.cxx:602
BmnCellAutoTracking::CalcCovMatrix
BmnStatus CalcCovMatrix(BmnTrack *tr)
Definition
BmnCellAutoTracking.cxx:761
BmnCellAutoTracking::fHitXCutMax
Double_t * fHitXCutMax
Definition
BmnCellAutoTracking.h:112
BmnCellAutoTracking::fSteering
BmnSteering * fSteering
Definition
BmnCellAutoTracking.h:125
BmnCellAutoTracking::CellsCreation
BmnStatus CellsCreation(vector< BmnCellDuet > *cells)
Definition
BmnCellAutoTracking.cxx:407
BmnGemStripStationSet
Definition
BmnGemStripStationSet.h:15
BmnKalmanFilter
Definition
BmnKalmanFilter.h:28
BmnSiliconStationSet
Definition
BmnSiliconStationSet.h:14
BmnSteering
Definition
BmnSteering.h:28
BmnTrack
Definition
BmnTrack.h:20
FairField
FairTask
TClonesArray
TString
TVector2
TVector3
std
Definition
json.hpp:4446
BmnCellDuet.h
reconstruction
tracking
BmnCellAutoTracking.h
Generated on
for BmnRoot by
1.17.0