BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnMCTrackCreator.h
Go to the documentation of this file.
1
/**
2
* \file BmnMCTrackCreator.h
3
* \brief Creates BmnMCTrack objects.
4
* \author Andrey Lebedev <andrey.lebedev@gsi.de>
5
* \author Sergey Merts <sergey.merts@gmail.com> - modifications for BMN experiment
6
* \date 2011-2014
7
**/
8
#ifndef BMNMCTRACKCREATOR_H_
9
#define BMNMCTRACKCREATOR_H_
10
11
#include "
BmnCSCStationSet.h
"
12
#include "
BmnGemStripStationSet.h
"
13
#include "
BmnGemStripStationSet_RunSpring2017.h
"
14
#include "
BmnMCTrack.h
"
15
#include "
BmnSiliconStationSet.h
"
16
17
#include <assert.h>
18
#include <iostream>
19
#include <map>
20
21
class
TClonesArray
;
22
class
FairMCPoint
;
23
class
CbmStsPoint
;
24
class
CbmGeoStsPar
;
25
class
CbmStsDigiPar
;
26
class
CbmStsDigiScheme
;
27
28
/**
29
* \class CbmLitMCTrackCreator
30
* \brief Creates CbmLitMCTrack objects.
31
* \author Andrey Lebedev <andrey.lebedev@gsi.de>
32
* \date 2011
33
**/
34
class
BmnMCTrackCreator
35
{
36
private
:
37
/**
38
* \brief Constructor.
39
*/
40
BmnMCTrackCreator
(
TString
gem,
TString
sil,
TString
csc);
41
42
public
:
43
/**
44
* \brief Destructor.
45
*/
46
virtual
~BmnMCTrackCreator
();
47
48
/**
49
* \brief Singleton instance.
50
*/
51
static
BmnMCTrackCreator
*
Instance
(
TString
gem,
TString
sil,
TString
csc);
52
53
/**
54
* \brief Creates array of BmnMCTracks for current event.
55
* Has to be executed in Exec() function of the task.
56
*/
57
void
Create
();
58
59
/**
60
* \brief Check whether a track exists in the array.
61
* \param[in] mcId MC index of track.
62
* \return true if track exists in array.
63
*/
64
Bool_t
TrackExists
(
Int_t
mcId)
const
65
{
66
return
(
fBmnMCTracks
.count(mcId) > 0) ?
kTRUE
:
kFALSE
;
67
// if (fBmnMCTracks.count(mcId) == 0) return kFALSE;
68
// Int_t NPointsSil = fBmnMCTracks.find(mcId)->second.GetNofPoints(kSILICON);
69
// Int_t NPointsGem = fBmnMCTracks.find(mcId)->second.GetNofPoints(kGEM);
70
// if (NPointsSil > fSilDetector->GetNStations()) return kFALSE;
71
// if (NPointsGem > fGemDetector->GetNStations()) return kFALSE;
72
// //if (NPointsSil + NPointsGem < 4) return kFALSE;
73
// return kTRUE;
74
//// printf("NPointsSil = %d isNSilPointsCorrect = %d\n", NPointsSil, isNSilPointsCorrect);
75
//// printf("NPointsGem = %d isNGemPointsCorrect = %d\n", NPointsGem, isNGemPointsCorrect);
76
}
77
78
/**
79
* \brief Return BmnMCTrack by its index.
80
* \param[in] mcId MC index of track.
81
* \return MC track.
82
*/
83
const
BmnMCTrack
&
GetTrack
(
int
mcId)
const
84
{
85
assert(
TrackExists
(mcId));
86
return
fBmnMCTracks
.find(mcId)->second;
87
}
88
89
/**
90
* \brief Return number of tracks.
91
* \return Number of tracks.
92
*/
93
Int_t
GetNofTracks
()
const
{
return
fBmnMCTracks
.size(); }
94
95
private
:
96
/**
97
* \brief Read data branches.
98
*/
99
void
ReadDataBranches
();
100
101
/**
102
* \brief Add MC points from a certain detector.
103
* \param[in] detId Detector identificator.
104
* \param[in] array Array of FairMCPoint.
105
*/
106
void
AddPoints
(
DetectorId
detId,
const
TClonesArray
* array);
107
108
/**
109
* \brief Calculate and set number of RICH hits for MC track.
110
*/
111
void
AddRichHits
();
112
113
/**
114
* \brief Fit Rich MC points using ellipse fitter and fill ellipse parameters.
115
*/
116
void
AddRingParameters
();
117
118
/**
119
* \brief Convert FairMCPoint to BmnMCPoint.
120
* \param[in] fairPoint Pointer to FairMCPoint to be converted.
121
* \param[out] bmnPoint Pointer to output BmnMCPoint.
122
* \param[in] refId Reference index of the MC point.
123
* \param[in] stationId Index of the station of the MC point.
124
*/
125
void
FairMCPointToBmnMCPoint
(
const
FairMCPoint
* fairPoint,
BmnMCPoint
* bmnPoint,
int
refId,
int
stationId);
126
127
void
FairMCPointCoordinatesAndMomentumToBmnMCPoint
(
// for DCH1, DCH2, TOF1 points
128
const
FairMCPoint
* fairPoint,
129
BmnMCPoint
* bmnPoint);
130
131
TClonesArray
*
fMCTracks
;
132
TClonesArray
*
fSilPoints
;
133
TClonesArray
*
fSsdPoints
;
134
TClonesArray
*
fGemPoints
;
135
TClonesArray
*
fTof400Points
;
136
TClonesArray
*
fTof700Points
;
137
TClonesArray
*
fCscPoints
;
138
TClonesArray
*
fDchPoints
;
139
140
Int_t
fNSiliconStations
;
141
Int_t
fNGemStations
;
142
Int_t
fNCscStations
;
143
144
// Stores created BmnMCTrack objects.
145
// std::map<MC track index, BmnMCTrack object>.
146
std::map<Int_t, BmnMCTrack>
fBmnMCTracks
;
147
148
BmnGemStripStationSet
*
fGemDetector
;
149
BmnSiliconStationSet
*
fSilDetector
;
150
BmnCSCStationSet
*
fCscDetector
;
151
};
152
153
#endif
/* BMNMCTRACKCREATOR_H_ */
Bool_t
bool Bool_t
Int_t
int Int_t
kFALSE
constexpr Bool_t kFALSE
kTRUE
constexpr Bool_t kTRUE
DetectorId
DetectorId
BM@N DetectorID enumerator.
Definition
BmnDetectorList.h:12
BmnCSCStationSet
Definition
BmnCSCStationSet.h:14
BmnGemStripStationSet
Definition
BmnGemStripStationSet.h:15
BmnMCPoint
Monte-Carlo point.
Definition
BmnMCPoint.h:23
BmnMCTrackCreator::FairMCPointToBmnMCPoint
void FairMCPointToBmnMCPoint(const FairMCPoint *fairPoint, BmnMCPoint *bmnPoint, int refId, int stationId)
Convert FairMCPoint to BmnMCPoint.
Definition
BmnMCTrackCreator.cxx:129
BmnMCTrackCreator::AddPoints
void AddPoints(DetectorId detId, const TClonesArray *array)
Add MC points from a certain detector.
Definition
BmnMCTrackCreator.cxx:94
BmnMCTrackCreator::fDchPoints
TClonesArray * fDchPoints
Definition
BmnMCTrackCreator.h:138
BmnMCTrackCreator::FairMCPointCoordinatesAndMomentumToBmnMCPoint
void FairMCPointCoordinatesAndMomentumToBmnMCPoint(const FairMCPoint *fairPoint, BmnMCPoint *bmnPoint)
Definition
BmnMCTrackCreator.cxx:145
BmnMCTrackCreator::fBmnMCTracks
std::map< Int_t, BmnMCTrack > fBmnMCTracks
Definition
BmnMCTrackCreator.h:146
BmnMCTrackCreator::fTof400Points
TClonesArray * fTof400Points
Definition
BmnMCTrackCreator.h:135
BmnMCTrackCreator::ReadDataBranches
void ReadDataBranches()
Read data branches.
Definition
BmnMCTrackCreator.cxx:81
BmnMCTrackCreator::fMCTracks
TClonesArray * fMCTracks
Definition
BmnMCTrackCreator.h:131
BmnMCTrackCreator::GetNofTracks
Int_t GetNofTracks() const
Return number of tracks.
Definition
BmnMCTrackCreator.h:93
BmnMCTrackCreator::AddRingParameters
void AddRingParameters()
Fit Rich MC points using ellipse fitter and fill ellipse parameters.
BmnMCTrackCreator::fTof700Points
TClonesArray * fTof700Points
Definition
BmnMCTrackCreator.h:136
BmnMCTrackCreator::fCscDetector
BmnCSCStationSet * fCscDetector
Definition
BmnMCTrackCreator.h:150
BmnMCTrackCreator::fGemDetector
BmnGemStripStationSet * fGemDetector
Definition
BmnMCTrackCreator.h:148
BmnMCTrackCreator::~BmnMCTrackCreator
virtual ~BmnMCTrackCreator()
Destructor.
Definition
BmnMCTrackCreator.cxx:43
BmnMCTrackCreator::fSilDetector
BmnSiliconStationSet * fSilDetector
Definition
BmnMCTrackCreator.h:149
BmnMCTrackCreator::fCscPoints
TClonesArray * fCscPoints
Definition
BmnMCTrackCreator.h:137
BmnMCTrackCreator::fNGemStations
Int_t fNGemStations
Definition
BmnMCTrackCreator.h:141
BmnMCTrackCreator::TrackExists
Bool_t TrackExists(Int_t mcId) const
Check whether a track exists in the array.
Definition
BmnMCTrackCreator.h:64
BmnMCTrackCreator::BmnMCTrackCreator
BmnMCTrackCreator(TString gem, TString sil, TString csc)
Constructor.
Definition
BmnMCTrackCreator.cxx:27
BmnMCTrackCreator::fSilPoints
TClonesArray * fSilPoints
Definition
BmnMCTrackCreator.h:132
BmnMCTrackCreator::Create
void Create()
Creates array of BmnMCTracks for current event.
Definition
BmnMCTrackCreator.cxx:56
BmnMCTrackCreator::Instance
static BmnMCTrackCreator * Instance(TString gem, TString sil, TString csc)
Singleton instance.
Definition
BmnMCTrackCreator.cxx:50
BmnMCTrackCreator::fNCscStations
Int_t fNCscStations
Definition
BmnMCTrackCreator.h:142
BmnMCTrackCreator::fNSiliconStations
Int_t fNSiliconStations
Definition
BmnMCTrackCreator.h:140
BmnMCTrackCreator::fGemPoints
TClonesArray * fGemPoints
Definition
BmnMCTrackCreator.h:134
BmnMCTrackCreator::AddRichHits
void AddRichHits()
Calculate and set number of RICH hits for MC track.
BmnMCTrackCreator::fSsdPoints
TClonesArray * fSsdPoints
Definition
BmnMCTrackCreator.h:133
BmnMCTrackCreator::GetTrack
const BmnMCTrack & GetTrack(int mcId) const
Return BmnMCTrack by its index.
Definition
BmnMCTrackCreator.h:83
BmnMCTrack
Monte-Carlo track.
Definition
BmnMCTrack.h:27
BmnSiliconStationSet
Definition
BmnSiliconStationSet.h:14
CbmGeoStsPar
Definition
CbmGeoStsPar.h:8
CbmStsDigiPar
Definition
CbmStsDigiPar.h:31
CbmStsDigiScheme
Definition
CbmStsDigiScheme.h:36
CbmStsPoint
Definition
CbmStsPoint.h:23
FairMCPoint
TClonesArray
TString
BmnCSCStationSet.h
BmnGemStripStationSet.h
BmnGemStripStationSet_RunSpring2017.h
BmnMCTrack.h
Monte-Carlo track.
BmnSiliconStationSet.h
install
include
BmnMCTrackCreator.h
Generated on
for BmnRoot by
1.17.0