BmnRoot
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 "TVector3.h"
21#include "TLorentzVector.h"
22#include "CbmL1MCPoint.h"
23#include <vector>
24#include <iostream>
25using std::vector;
26
27class CbmL1Track;
28
29class CbmL1MCTrack
30{
31 public:
32 double mass, q, p, x, y, z, px, py, pz;
33 int ID, mother_ID, pdg;
34 vector<int> Points; // indices of pints in L1::vMCPoints
35 vector<int> StsHits; // indices of hits in algo->vStsHits or L1::vStsHits
36
38 :mass(0),q(0),p(0),x(0),y(0),z(0),px(0),py(0),pz(0),ID(-1),mother_ID(-1),pdg(-1),Points(),StsHits(),
39 nMCContStations(0),nHitContStations(0),maxNStaMC(0),maxNSensorMC(0),maxNStaHits(0),nStations(0),nMCStations(0),isReconstructable(0),isAdditional(0),
40 rTracks(),tTracks(){};
41
42 CbmL1MCTrack(int _ID)
43 :mass(0),q(0),p(0),x(0),y(0),z(0),px(0),py(0),pz(0),ID(_ID),mother_ID(-1),pdg(-1),Points(),StsHits(),
44 nMCContStations(0),nHitContStations(0),maxNStaMC(0),maxNSensorMC(0),maxNStaHits(0),nStations(0),nMCStations(),isReconstructable(0),isAdditional(0),
45 rTracks(),tTracks(){};
46 CbmL1MCTrack(double mass, double q, TVector3 vr, TLorentzVector vp, int ID, int mother_ID, int pdg);
47// CbmL1MCTrack(TmpMCPoints &mcPoint, TVector3 vr, TLorentzVector vp, int ID, int mother_ID);
48
49 bool IsPrimary() const {return mother_ID < 0;};
50 bool IsReconstructable() const {return isReconstructable;};
51 bool IsAdditional() const {return isAdditional; }
52 int NStations() const {return nStations;};
53 int NMCStations() const {return nMCStations;};
54 int NMCContStations() const {return nMCContStations;};
55
56 void Init();
57
58 void AddRecoTrack(CbmL1Track* rTr){rTracks.push_back(rTr);}
59 vector< CbmL1Track* >& GetRecoTracks(){ return rTracks;}
60 int GetNClones() const { return rTracks.size() - 1;}
61 bool IsReconstructed() const { return rTracks.size(); }
62
63 void AddTouchTrack(CbmL1Track* tTr){tTracks.push_back(tTr);}
64 bool IsDisturbed() const { return tTracks.size(); }
65
66 friend class CbmL1;
67 private:
68 int nMCContStations; // number of consecutive stations with mcPoints
69 int nHitContStations; // number of consecutive stations with hits
70 int maxNStaMC; // max number of mcPoints on station
71 int maxNSensorMC; // max number of mcPoints with same z
72 int maxNStaHits; // max number of hits on station
73
74 int nStations; // number of stations with hits
75 int nMCStations; // number of stations with MCPoints
76
77 bool isReconstructable;
78 bool isAdditional; // is not reconstructable, but stil interesting
79
80 void CalculateMCCont();
81 void CalculateHitCont();
82 void CalculateMaxNStaHits();
83 void CalculateMaxNStaMC();
84 void CalculateIsReconstructable();
85
86 // next members filled and used in Performance
87 vector< CbmL1Track* > rTracks; // array of assosiated recoTracks
88 vector< CbmL1Track* > tTracks; // array of recoTracks wich aren't assosiated with this mcTrack, but use some hits from it.
89
90};
91
92
93#endif
int NMCContStations() const
CbmL1MCTrack(double mass, double q, TVector3 vr, TLorentzVector vp, int ID, int mother_ID, int pdg)
int GetNClones() const
void AddRecoTrack(CbmL1Track *rTr)
bool IsReconstructed() const
bool IsReconstructable() const
int NStations() const
CbmL1MCTrack(int _ID)
vector< int > StsHits
void AddTouchTrack(CbmL1Track *tTr)
vector< CbmL1Track * > & GetRecoTracks()
bool IsAdditional() const
bool IsDisturbed() const
int NMCStations() const
bool IsPrimary() const
vector< int > Points
Definition CbmL1.h:49