BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnTwoParticleDecay.h
Go to the documentation of this file.
1
// @(#)bmnroot/physics/particles:$Id$
2
// Author: Pavel Batyuk <pavel.batyuk@jinr.ru> 2017-12-27
3
4
////////////////////////////////////////////////////////////////////////////////
5
// //
6
// BmnTwoParticleDecay //
7
// //
8
// A supplementary class for two-body decay reconstruction //
9
// //
10
////////////////////////////////////////////////////////////////////////////////
11
12
#ifndef BMNTWOPARTICLEDECAY_H
13
#define BMNTWOPARTICLEDECAY_H 1
14
15
#include "
BmnFieldMap.h
"
16
#include "
BmnGemStripHit.h
"
17
#include "
BmnGemStripStationSet.h
"
18
#include "
BmnGemStripStationSet_RunSpring2017.h
"
19
#include "
BmnGemStripStationSet_RunWinter2016.h
"
20
#include "
BmnGlobalTrack.h
"
21
#include "
BmnKalmanFilter.h
"
22
#include "
BmnNewFieldMap.h
"
23
#include "
BmnSiliconPoint.h
"
24
#include "
BmnTrackMatch.h
"
25
#include "
BmnVertex.h
"
26
#include "
CbmMCTrack.h
"
27
#include "
CbmStsPoint.h
"
28
#include "
CbmVertex.h
"
29
#include "FairTask.h"
30
31
#include <
BmnEventHeader.h
>
32
#include <
BmnParticlePair.h
>
33
#include <
DstEventHeader.h
>
34
#include <
TClonesArray.h
>
35
#include <
TDatabasePDG.h
>
36
#include <
TF1.h
>
37
#include <
TFitResult.h
>
38
#include <
TGraph.h
>
39
#include <
TH1F.h
>
40
#include <
TH1I.h
>
41
#include <
TH2F.h
>
42
#include <
TLorentzVector.h
>
43
#include <
TMath.h
>
44
#include <
TString.h
>
45
#include <
TVector2.h
>
46
#include <
TVector3.h
>
47
#include <
UniDetectorParameter.h
>
48
#include <
UniRun.h
>
49
#include <iostream>
50
#include <vector>
51
52
using namespace
std
;
53
using namespace
TMath
;
54
55
// Extenion of "standard" dst event header by info to be used in dec. particle anal ...
56
57
class
DstEventHeaderExtended
:
public
DstEventHeader
58
{
59
private
:
60
/** Event Header branch name **/
61
TString
fHeaderName
;
//!
62
63
Int_t
fRecoTracks
;
// track multiplicity
64
Int_t
fBD
;
// number of BD-counts per event
65
Int_t
fFD
;
// number of FD-counts per event
66
67
TVector3
fVp
;
// reconstructed prim. vertex
68
69
public
:
70
DstEventHeaderExtended
()
71
{
72
fHeaderName
=
"DstEventHeaderExtended."
;
73
74
fBD
= 0;
75
fFD
= 0;
76
fRecoTracks
= 0;
77
78
fVp
.SetXYZ(-1., -1., -1.);
79
}
80
81
DstEventHeaderExtended
(UInt_t run_id, UInt_t event_id)
82
{
83
fBD
= 0;
84
fFD
= 0;
85
fRecoTracks
= 0;
86
87
fVp
.SetXYZ(-1., -1., -1.);
88
}
89
90
// Getters ...
91
92
Int_t
bd
() {
return
fBD
; }
93
94
Int_t
fd
() {
return
fFD
; }
95
96
Int_t
nTracks
() {
return
fRecoTracks
; }
97
98
TVector3
Vp
() {
return
fVp
; }
99
100
// Setters ...
101
102
void
SetBd
(
Int_t
n
) {
fBD
=
n
; }
103
104
void
SetFd
(
Int_t
n
) {
fFD
=
n
; }
105
106
void
SetVp
(
Double_t
x,
Double_t
y,
Double_t
z) {
fVp
.SetXYZ(x, y, z); }
107
108
void
SetNTracks
(
Int_t
n
) {
fRecoTracks
=
n
; }
109
110
virtual
~DstEventHeaderExtended
() { ; }
111
112
ClassDef
(
DstEventHeaderExtended
, 1)
113
};
114
115
class
BmnTwoParticleDecay
:
public
FairTask
116
{
117
private
:
118
Int_t
fRunPeriod
;
// run period
119
Int_t
fRunId
;
// runID
120
UInt_t
fEventCounter
;
//! event counter
121
TDatabasePDG
*
fPDG
;
//! PDG database
122
123
TClonesArray
*
fGemPoints
;
124
TClonesArray
*
fSilPoints
;
125
TClonesArray
*
fSilHits
;
126
127
TClonesArray
*
fGlobalTracks
;
128
TClonesArray
*
fGemTracks
;
129
TClonesArray
*
fSiliconTracks
;
130
131
TClonesArray
*
fMCTracks
;
132
TClonesArray
*
fGlobalMatches
;
133
TClonesArray
*
fVertex
;
134
135
TVector3
fMcVertex
;
136
BmnVertex
*
fEventVertex
;
137
138
TString
fBranchGemPoints
;
139
TString
fBranchSilPoints
;
140
TString
fBranchGlobalTracks
;
141
TString
fBranchMCTracks
;
142
TString
fBranchGlobalMatch
;
143
TString
fBranchVertex
;
144
145
BmnGemStripStationSet
*
fDetector
;
// Detector geometry
146
BmnGemStripConfiguration::GEM_CONFIG
fGeometry
;
147
148
FairField
*
fField
;
149
BmnFieldMap
*
fMagField
;
150
BmnKalmanFilter
*
fKalman
;
151
152
TClonesArray
*
fParticlePair
;
153
TClonesArray
*
fParticlePair_MC
;
154
TClonesArray
*
fParticlePair_RECO
;
155
156
Int_t
fPDG1
,
fPDG2
,
fPDGDecay
,
fPdgParticle1
,
fPdgParticle2
;
157
158
vector<TString>
fAnalType
;
159
vector<double>
fWeightsModel
;
160
161
Bool_t
fIsCbmDst
;
162
TString
fGeomFile
;
163
TString
fDigiDir
;
164
TString
fEoSNode
;
165
166
// Dst event header ...
167
DstEventHeader
*
fDstHeader
;
168
169
// Adding PhysInfo ...
170
DstEventHeaderExtended
*
fPhysInfo
;
171
172
map<UInt_t, pair<Int_t, Int_t>>
fTrigCountMap
;
// evId --> (bd, fd)
173
174
public
:
175
BmnTwoParticleDecay
() {};
176
BmnTwoParticleDecay
(
BmnGemStripConfiguration::GEM_CONFIG
config,
Int_t
runId = 4649);
177
virtual
~BmnTwoParticleDecay
();
178
179
virtual
void
Exec
(
Option_t
* option);
180
virtual
InitStatus
Init
();
181
virtual
void
Finish
();
182
183
void
SetParticlePDG
(
Int_t
pdg1,
Int_t
pdg2)
184
{
185
fPDG1
= pdg1;
186
fPDG2
= pdg2;
187
}
188
189
void
SetGeometryFile
(
TString
file) {
fGeomFile
= file; }
190
191
void
SetDigiDir
(
TString
dir) {
fDigiDir
= dir; }
192
193
void
SetEoSNode
(
TString
node) {
fEoSNode
= node; }
194
195
private
:
196
void
Analysis
();
197
BmnStatus
FindFirstPointOnMCTrack
(
Int_t
,
BmnGlobalTrack
*,
Int_t
);
198
FairTrackParam
KalmanTrackPropagation
(
BmnGlobalTrack
* track,
Int_t
,
Double_t
);
199
vector<Double_t>
GeomTopology
(FairTrackParam, FairTrackParam, FairTrackParam, FairTrackParam);
200
Bool_t
CheckTrack
(
BmnGlobalTrack
*,
Int_t
,
Double_t
&,
Double_t
&);
201
202
inline
Int_t
recoToMcIdx
(
Int_t
iTrack)
203
{
204
BmnTrackMatch
* globTrackMatch = (
BmnTrackMatch
*)(
fGlobalMatches
->UncheckedAt(iTrack));
205
return
globTrackMatch->
GetMatchedLink
().
GetIndex
();
206
}
207
208
inline
Int_t
CheckSign
(
Double_t
val) {
return
(val > 0) ? 1 : ((val < 0) ? -1 : 0); }
209
210
TVector2
ArmenterosPodol
(FairTrackParam, FairTrackParam);
211
Double_t
FindV0ByVirtualPlanes
(
BmnGlobalTrack
*,
BmnGlobalTrack
*,
Double_t
,
Double_t
range = 50.);
212
213
ClassDef
(
BmnTwoParticleDecay
, 0)
214
};
215
216
#endif
Bool_t
bool Bool_t
Int_t
int Int_t
Double_t
double Double_t
Option_t
const char Option_t
ClassDef
#define ClassDef(name, id)
TClonesArray.h
TDatabasePDG.h
TF1.h
TFitResult.h
TGraph.h
TH1F.h
TH1I.h
TH2F.h
TLorentzVector.h
TMath.h
TString.h
TVector2.h
TVector3.h
BmnStatus
BmnStatus
Define status code.
Definition
BmnEnums.h:93
BmnFieldMap
Definition
BmnFieldMap.h:22
BmnGemStripStationSet
Definition
BmnGemStripStationSet.h:15
BmnGlobalTrack
BmnGlobalTrack.h.
Definition
BmnGlobalTrack.h:14
BmnKalmanFilter
Definition
BmnKalmanFilter.h:28
BmnLink::GetIndex
Int_t GetIndex() const
Definition
BmnLink.h:40
BmnMatch::GetMatchedLink
const BmnLink & GetMatchedLink() const
Definition
BmnMatch.h:40
BmnTrackMatch
Definition
BmnTrackMatch.h:20
BmnTwoParticleDecay
Definition
BmnTwoParticleDecay.h:116
BmnTwoParticleDecay::fBranchMCTracks
TString fBranchMCTracks
Definition
BmnTwoParticleDecay.h:141
BmnTwoParticleDecay::FindFirstPointOnMCTrack
BmnStatus FindFirstPointOnMCTrack(Int_t, BmnGlobalTrack *, Int_t)
Definition
BmnTwoParticleDecay.cxx:150
BmnTwoParticleDecay::CheckSign
Int_t CheckSign(Double_t val)
Definition
BmnTwoParticleDecay.h:208
BmnTwoParticleDecay::fBranchGemPoints
TString fBranchGemPoints
Definition
BmnTwoParticleDecay.h:138
BmnTwoParticleDecay::fAnalType
vector< TString > fAnalType
Definition
BmnTwoParticleDecay.h:158
BmnTwoParticleDecay::fDstHeader
DstEventHeader * fDstHeader
Definition
BmnTwoParticleDecay.h:167
BmnTwoParticleDecay::fGemTracks
TClonesArray * fGemTracks
Definition
BmnTwoParticleDecay.h:128
BmnTwoParticleDecay::Exec
virtual void Exec(Option_t *option)
Definition
BmnTwoParticleDecay.cxx:599
BmnTwoParticleDecay::CheckTrack
Bool_t CheckTrack(BmnGlobalTrack *, Int_t, Double_t &, Double_t &)
Definition
BmnTwoParticleDecay.cxx:201
BmnTwoParticleDecay::fParticlePair
TClonesArray * fParticlePair
Definition
BmnTwoParticleDecay.h:152
BmnTwoParticleDecay::fMCTracks
TClonesArray * fMCTracks
Definition
BmnTwoParticleDecay.h:131
BmnTwoParticleDecay::SetGeometryFile
void SetGeometryFile(TString file)
Definition
BmnTwoParticleDecay.h:189
BmnTwoParticleDecay::GeomTopology
vector< Double_t > GeomTopology(FairTrackParam, FairTrackParam, FairTrackParam, FairTrackParam)
Definition
BmnTwoParticleDecay.cxx:89
BmnTwoParticleDecay::fDetector
BmnGemStripStationSet * fDetector
Definition
BmnTwoParticleDecay.h:145
BmnTwoParticleDecay::fPDG
TDatabasePDG * fPDG
event counter
Definition
BmnTwoParticleDecay.h:121
BmnTwoParticleDecay::fPDG2
Int_t fPDG2
Definition
BmnTwoParticleDecay.h:156
BmnTwoParticleDecay::fEventVertex
BmnVertex * fEventVertex
Definition
BmnTwoParticleDecay.h:136
BmnTwoParticleDecay::fGeometry
BmnGemStripConfiguration::GEM_CONFIG fGeometry
Definition
BmnTwoParticleDecay.h:146
BmnTwoParticleDecay::fMcVertex
TVector3 fMcVertex
Definition
BmnTwoParticleDecay.h:135
BmnTwoParticleDecay::fGemPoints
TClonesArray * fGemPoints
PDG database.
Definition
BmnTwoParticleDecay.h:123
BmnTwoParticleDecay::fKalman
BmnKalmanFilter * fKalman
Definition
BmnTwoParticleDecay.h:150
BmnTwoParticleDecay::SetDigiDir
void SetDigiDir(TString dir)
Definition
BmnTwoParticleDecay.h:191
BmnTwoParticleDecay::Finish
virtual void Finish()
Definition
BmnTwoParticleDecay.cxx:652
BmnTwoParticleDecay::fRunPeriod
Int_t fRunPeriod
Definition
BmnTwoParticleDecay.h:118
BmnTwoParticleDecay::BmnTwoParticleDecay
BmnTwoParticleDecay()
Definition
BmnTwoParticleDecay.h:175
BmnTwoParticleDecay::fPdgParticle1
Int_t fPdgParticle1
Definition
BmnTwoParticleDecay.h:156
BmnTwoParticleDecay::fBranchGlobalTracks
TString fBranchGlobalTracks
Definition
BmnTwoParticleDecay.h:140
BmnTwoParticleDecay::fDigiDir
TString fDigiDir
Definition
BmnTwoParticleDecay.h:163
BmnTwoParticleDecay::SetEoSNode
void SetEoSNode(TString node)
Definition
BmnTwoParticleDecay.h:193
BmnTwoParticleDecay::fPhysInfo
DstEventHeaderExtended * fPhysInfo
Definition
BmnTwoParticleDecay.h:170
BmnTwoParticleDecay::Init
virtual InitStatus Init()
Definition
BmnTwoParticleDecay.cxx:458
BmnTwoParticleDecay::fWeightsModel
vector< double > fWeightsModel
Definition
BmnTwoParticleDecay.h:159
BmnTwoParticleDecay::fBranchGlobalMatch
TString fBranchGlobalMatch
Definition
BmnTwoParticleDecay.h:142
BmnTwoParticleDecay::fEoSNode
TString fEoSNode
Definition
BmnTwoParticleDecay.h:164
BmnTwoParticleDecay::~BmnTwoParticleDecay
virtual ~BmnTwoParticleDecay()
Definition
BmnTwoParticleDecay.cxx:84
BmnTwoParticleDecay::FindV0ByVirtualPlanes
Double_t FindV0ByVirtualPlanes(BmnGlobalTrack *, BmnGlobalTrack *, Double_t, Double_t range=50.)
Definition
BmnTwoParticleDecay.cxx:692
BmnTwoParticleDecay::fSiliconTracks
TClonesArray * fSiliconTracks
Definition
BmnTwoParticleDecay.h:129
BmnTwoParticleDecay::fParticlePair_MC
TClonesArray * fParticlePair_MC
Definition
BmnTwoParticleDecay.h:153
BmnTwoParticleDecay::fPDGDecay
Int_t fPDGDecay
Definition
BmnTwoParticleDecay.h:156
BmnTwoParticleDecay::fVertex
TClonesArray * fVertex
Definition
BmnTwoParticleDecay.h:133
BmnTwoParticleDecay::fIsCbmDst
Bool_t fIsCbmDst
Definition
BmnTwoParticleDecay.h:161
BmnTwoParticleDecay::fSilPoints
TClonesArray * fSilPoints
Definition
BmnTwoParticleDecay.h:124
BmnTwoParticleDecay::fGlobalMatches
TClonesArray * fGlobalMatches
Definition
BmnTwoParticleDecay.h:132
BmnTwoParticleDecay::SetParticlePDG
void SetParticlePDG(Int_t pdg1, Int_t pdg2)
Definition
BmnTwoParticleDecay.h:183
BmnTwoParticleDecay::fTrigCountMap
map< UInt_t, pair< Int_t, Int_t > > fTrigCountMap
Definition
BmnTwoParticleDecay.h:172
BmnTwoParticleDecay::fParticlePair_RECO
TClonesArray * fParticlePair_RECO
Definition
BmnTwoParticleDecay.h:154
BmnTwoParticleDecay::fPdgParticle2
Int_t fPdgParticle2
Definition
BmnTwoParticleDecay.h:156
BmnTwoParticleDecay::fGeomFile
TString fGeomFile
Definition
BmnTwoParticleDecay.h:162
BmnTwoParticleDecay::Analysis
void Analysis()
Definition
BmnTwoParticleDecay.cxx:220
BmnTwoParticleDecay::fField
FairField * fField
Definition
BmnTwoParticleDecay.h:148
BmnTwoParticleDecay::fRunId
Int_t fRunId
Definition
BmnTwoParticleDecay.h:119
BmnTwoParticleDecay::fGlobalTracks
TClonesArray * fGlobalTracks
Definition
BmnTwoParticleDecay.h:127
BmnTwoParticleDecay::KalmanTrackPropagation
FairTrackParam KalmanTrackPropagation(BmnGlobalTrack *track, Int_t, Double_t)
Definition
BmnTwoParticleDecay.cxx:142
BmnTwoParticleDecay::fBranchVertex
TString fBranchVertex
Definition
BmnTwoParticleDecay.h:143
BmnTwoParticleDecay::fPDG1
Int_t fPDG1
Definition
BmnTwoParticleDecay.h:156
BmnTwoParticleDecay::fEventCounter
UInt_t fEventCounter
Definition
BmnTwoParticleDecay.h:120
BmnTwoParticleDecay::fSilHits
TClonesArray * fSilHits
Definition
BmnTwoParticleDecay.h:125
BmnTwoParticleDecay::ArmenterosPodol
TVector2 ArmenterosPodol(FairTrackParam, FairTrackParam)
Definition
BmnTwoParticleDecay.cxx:659
BmnTwoParticleDecay::fMagField
BmnFieldMap * fMagField
Definition
BmnTwoParticleDecay.h:149
BmnTwoParticleDecay::fBranchSilPoints
TString fBranchSilPoints
Definition
BmnTwoParticleDecay.h:139
BmnTwoParticleDecay::recoToMcIdx
Int_t recoToMcIdx(Int_t iTrack)
Definition
BmnTwoParticleDecay.h:202
BmnVertex
Definition
BmnVertex.h:22
DstEventHeaderExtended
Definition
BmnTwoParticleDecay.h:58
DstEventHeaderExtended::fFD
Int_t fFD
Definition
BmnTwoParticleDecay.h:65
DstEventHeaderExtended::~DstEventHeaderExtended
virtual ~DstEventHeaderExtended()
Definition
BmnTwoParticleDecay.h:110
DstEventHeaderExtended::SetNTracks
void SetNTracks(Int_t n)
Definition
BmnTwoParticleDecay.h:108
DstEventHeaderExtended::SetFd
void SetFd(Int_t n)
Definition
BmnTwoParticleDecay.h:104
DstEventHeaderExtended::SetBd
void SetBd(Int_t n)
Definition
BmnTwoParticleDecay.h:102
DstEventHeaderExtended::fd
Int_t fd()
Definition
BmnTwoParticleDecay.h:94
DstEventHeaderExtended::fRecoTracks
Int_t fRecoTracks
Definition
BmnTwoParticleDecay.h:63
DstEventHeaderExtended::fHeaderName
TString fHeaderName
Event Header branch name.
Definition
BmnTwoParticleDecay.h:61
DstEventHeaderExtended::fBD
Int_t fBD
Definition
BmnTwoParticleDecay.h:64
DstEventHeaderExtended::nTracks
Int_t nTracks()
Definition
BmnTwoParticleDecay.h:96
DstEventHeaderExtended::fVp
TVector3 fVp
Definition
BmnTwoParticleDecay.h:67
DstEventHeaderExtended::DstEventHeaderExtended
DstEventHeaderExtended()
Definition
BmnTwoParticleDecay.h:70
DstEventHeaderExtended::bd
Int_t bd()
Definition
BmnTwoParticleDecay.h:92
DstEventHeaderExtended::Vp
TVector3 Vp()
Definition
BmnTwoParticleDecay.h:98
DstEventHeaderExtended::SetVp
void SetVp(Double_t x, Double_t y, Double_t z)
Definition
BmnTwoParticleDecay.h:106
DstEventHeaderExtended::DstEventHeaderExtended
DstEventHeaderExtended(UInt_t run_id, UInt_t event_id)
Definition
BmnTwoParticleDecay.h:81
DstEventHeader
Definition
DstEventHeader.h:10
DstEventHeader::DstEventHeader
DstEventHeader()
Default constructor.
Definition
DstEventHeader.cxx:4
FairField
FairTask
TClonesArray
TDatabasePDG
TString
TVector2
TVector3
BmnEventHeader.h
BmnFieldMap.h
BmnGemStripHit.h
BmnGemStripStationSet.h
BmnGemStripStationSet_RunSpring2017.h
BmnGemStripStationSet_RunWinter2016.h
BmnGlobalTrack.h
BmnKalmanFilter.h
BmnNewFieldMap.h
BmnParticlePair.h
BmnSiliconPoint.h
BmnTrackMatch.h
BmnVertex.h
CbmMCTrack.h
CbmStsPoint.h
CbmVertex.h
DstEventHeader.h
UniDetectorParameter.h
UniRun.h
n
*brief user defined string literal for JSON values *sa std::size_t n
Definition
json.hpp:20362
BmnGemStripConfiguration::GEM_CONFIG
GEM_CONFIG
Definition
BmnGemStripConfiguration.h:10
TMath
std
Definition
json.hpp:4446
install
include
BmnTwoParticleDecay.h
Generated on
for BmnRoot by
1.17.0