BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmL1MCTrack.h
Go to the documentation of this file.
1/*
2 *====================================================================
3 *
4 * CBM Level 1 Reconstruction
5 *
6 * Authors: I.Kisel, S.Gorbunov
7 *
8 * e-mail : ikisel@kip.uni-heidelberg.de
9 *
10 *====================================================================
11 *
12 * L1 Monte Carlo information
13 *
14 *====================================================================
15 */
16
17#ifndef CbmL1MCTrack_H
18#define CbmL1MCTrack_H
19
20#include "CbmL1MCPoint.h"
21#include "TLorentzVector.h"
22#include "TVector3.h"
23
24#include <iostream>
25#include <vector>
26using std::vector;
27
28class CbmL1Track;
29
30class CbmL1MCTrack
31{
32 public:
33 double mass, q, p, x, y, z, px, py, pz;
34 int ID, mother_ID, pdg;
35 vector<int> Points; // indices of pints in L1::vMCPoints
36 vector<int> StsHits; // indices of hits in algo->vStsHits or L1::vStsHits
37
39 : mass(0)
40 , q(0)
41 , p(0)
42 , x(0)
43 , y(0)
44 , z(0)
45 , px(0)
46 , py(0)
47 , pz(0)
48 , ID(-1)
49 , mother_ID(-1)
50 , pdg(-1)
51 , Points()
52 , StsHits()
55 , maxNStaMC(0)
56 , maxNSensorMC(0)
57 , maxNStaHits(0)
58 , nStations(0)
59 , nMCStations(0)
61 , isAdditional(0)
62 , rTracks()
63 , tTracks() {};
64
65 CbmL1MCTrack(int _ID)
66 : mass(0)
67 , q(0)
68 , p(0)
69 , x(0)
70 , y(0)
71 , z(0)
72 , px(0)
73 , py(0)
74 , pz(0)
75 , ID(_ID)
76 , mother_ID(-1)
77 , pdg(-1)
78 , Points()
79 , StsHits()
82 , maxNStaMC(0)
83 , maxNSensorMC(0)
84 , maxNStaHits(0)
85 , nStations(0)
86 , nMCStations()
88 , isAdditional(0)
89 , rTracks()
90 , tTracks() {};
91 CbmL1MCTrack(double mass, double q, TVector3 vr, TLorentzVector vp, int ID, int mother_ID, int pdg);
92 // CbmL1MCTrack(TmpMCPoints &mcPoint, TVector3 vr, TLorentzVector vp, int ID, int mother_ID);
93
94 bool IsPrimary() const { return mother_ID < 0; };
95 bool IsReconstructable() const { return isReconstructable; };
96 bool IsAdditional() const { return isAdditional; }
97 int NStations() const { return nStations; };
98 int NMCStations() const { return nMCStations; };
99 int NMCContStations() const { return nMCContStations; };
100
101 void Init();
102
103 void AddRecoTrack(CbmL1Track* rTr) { rTracks.push_back(rTr); }
104 vector<CbmL1Track*>& GetRecoTracks() { return rTracks; }
105 int GetNClones() const { return rTracks.size() - 1; }
106 bool IsReconstructed() const { return rTracks.size(); }
107
108 void AddTouchTrack(CbmL1Track* tTr) { tTracks.push_back(tTr); }
109 bool IsDisturbed() const { return tTracks.size(); }
110
111 friend class CbmL1;
112
113 private:
114 int nMCContStations; // number of consecutive stations with mcPoints
115 int nHitContStations; // number of consecutive stations with hits
116 int maxNStaMC; // max number of mcPoints on station
117 int maxNSensorMC; // max number of mcPoints with same z
118 int maxNStaHits; // max number of hits on station
119
120 int nStations; // number of stations with hits
121 int nMCStations; // number of stations with MCPoints
122
124 bool isAdditional; // is not reconstructable, but stil interesting
125
131
132 // next members filled and used in Performance
133 vector<CbmL1Track*> rTracks; // array of assosiated recoTracks
134 vector<CbmL1Track*>
135 tTracks; // array of recoTracks wich aren't assosiated with this mcTrack, but use some hits from it.
136};
137
138#endif
int NMCContStations() const
vector< CbmL1Track * > rTracks
CbmL1MCTrack(double mass, double q, TVector3 vr, TLorentzVector vp, int ID, int mother_ID, int pdg)
void CalculateIsReconstructable()
int GetNClones() const
void CalculateMaxNStaHits()
void CalculateMCCont()
void AddRecoTrack(CbmL1Track *rTr)
bool IsReconstructed() const
bool IsReconstructable() const
int NStations() const
CbmL1MCTrack(int _ID)
void CalculateMaxNStaMC()
vector< int > StsHits
void AddTouchTrack(CbmL1Track *tTr)
vector< CbmL1Track * > & GetRecoTracks()
bool IsAdditional() const
bool isReconstructable
bool IsDisturbed() const
int NMCStations() const
bool IsPrimary() const
void CalculateHitCont()
vector< CbmL1Track * > tTracks
vector< int > Points
Definition CbmL1.h:48