BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
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
33using namespace std;
34
36{
37 public:
38 // Constructors/Destructors ---------
39
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);
64 TVector2 CalcMeanSigma(vector<Double_t>);
66 BmnStatus CheckSharedHits(vector<BmnTrack>& sortedTracks);
67 void SetHitsUsing(BmnTrack* tr, Bool_t use);
69
79
88
93
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;
104
105 TVector3 fRoughVertex; // for correct transformation
106
108
119
123
126
128
129 size_t kCellsCut;
130
132};
133
134#endif /* BMNCELLAUTOTRACKING_H */
bool Bool_t
int Int_t
short Short_t
double Double_t
const char Option_t
#define ClassDef(name, id)
BmnStatus
Define status code.
Definition BmnEnums.h:93
TClonesArray * fMCTracksArray
map< DetectorId, Bool_t > fInnerTrackerSetup
BmnStatus SortTracks(vector< BmnTrack > &inTracks, vector< BmnTrack > &sortedTracks)
BmnStatus CheckSharedHits(vector< BmnTrack > &sortedTracks)
vector< BmnTrack > CellsConnection(vector< BmnCellDuet > *cells)
BmnKalmanFilter * fKalman
virtual void Exec(Option_t *opt)
TClonesArray * fSsdPointsArray
BmnSiliconStationSet * fSilDetector
Double_t CalculateLength(BmnTrack *tr)
BmnGemStripStationSet * fGemDetector
TClonesArray * fGemTracksArray
TClonesArray * fGemPointsArray
BmnStatus TrackSelection(vector< BmnTrack > &cands)
TClonesArray * fGemHitsArray
void SetHitsUsing(BmnTrack *tr, Bool_t use)
TVector2 CalcMeanSigma(vector< Double_t >)
TClonesArray * fSilHitsArray
TClonesArray * fSsdHitsArray
TClonesArray * fSilTracksArray
void SetInnerTrackerSetup(map< DetectorId, Bool_t > setup)
void SetDetectorPresence(DetectorId det, Bool_t use)
TClonesArray * fSsdTracksArray
TClonesArray * fGlobTracksArray
Double_t CalcQp(BmnTrack *track)
virtual InitStatus Init()
BmnStatus TrackUpdateByKalman(vector< BmnTrack > &cands)
TClonesArray * fSilPointsArray
BmnStatus CalculateTrackParams(BmnTrack *tr)
BmnStatus StateCalculation(vector< BmnCellDuet > *cells)
BmnStatus TrackUpdateByLine(vector< BmnTrack > &cands)
BmnStatus CalcCovMatrix(BmnTrack *tr)
BmnStatus CellsCreation(vector< BmnCellDuet > *cells)
Definition json.hpp:4446