BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
MpdUnigenGenerator.h
Go to the documentation of this file.
1
#ifndef MPDUNIGENGENERATOR_H
2
#define MPDUNIGENGENERATOR_H
3
4
#include "FairIon.h"
5
#include "FairParticle.h"
6
#include "UEvent.h"
7
#include "UParticle.h"
8
#include "URun.h"
9
10
#include <FairGenerator.h>
11
#include <FairMCEventHeader.h>
12
#include <FairPrimaryGenerator.h>
13
#include <FairRunSim.h>
14
#include <
TClonesArray.h
>
15
#include <
TDatabasePDG.h
>
16
#include <
TFile.h
>
17
#include <
TParticlePDG.h
>
18
#include <
TRandom.h
>
19
#include <
TString.h
>
20
#include <
TTree.h
>
21
#include <iostream>
22
#include <random>
23
24
class
TVirtualMCStack;
25
class
FairPrimaryGenerator;
26
27
class
MpdUnigenGenerator
:
public
FairGenerator
28
{
29
public
:
30
MpdUnigenGenerator
();
31
explicit
MpdUnigenGenerator
(
TString
fileName,
Bool_t
isSpectator =
kFALSE
);
32
~MpdUnigenGenerator
()
override
=
default
;
33
Long64_t
GetNEntries
() {
return
fNEntries
; }
34
Bool_t
ReadEvent
(FairPrimaryGenerator* primGen)
override
;
35
Int_t
RegisterIons
();
36
37
void
SkipEvents
(
Int_t
ev)
38
{
39
fEventNumber
= ev;
40
std::cout <<
"NUMBER OF SKIPPED EVENTS = "
<< ev << std::endl;
41
}
42
43
void
SetEventPlane
(
Double_t
phiMin,
Double_t
phiMax)
44
{
45
fPhiMin
= phiMin;
46
fPhiMax
= phiMax;
47
fEventPlaneSet
=
kTRUE
;
48
random_engine_
= std::mt19937(
random_device_
());
49
uniform_real_distribution_
= std::uniform_real_distribution<double>(
fPhiMin
,
fPhiMax
);
50
}
51
52
private
:
53
std::random_device
random_device_
;
54
std::mt19937
random_engine_
;
55
std::uniform_real_distribution<double>
uniform_real_distribution_
;
56
Long64_t
fEventNumber
;
//!
57
Long64_t
fNEntries
;
//!
58
TFile
*
fInFile
;
59
TTree
*
fInTree
;
60
UEvent
*
fEvent
;
61
URun
*
fRun
;
62
UParticle
*
fParticle
;
63
Bool_t
fSpectatorsON
;
64
65
Double_t
fPhiMin
,
fPhiMax
;
// Limits of event plane angle
66
Bool_t
fEventPlaneSet
;
// Flag whether event plane angle is used
67
68
std::map<TString, FairIon*>
fIonMap
;
//!< Map from ion name to FairIon
69
70
static
const
Int_t
kPdgLambda
= 10000000;
71
static
const
Int_t
kPdgCharge
= 10000;
72
static
const
Int_t
kPdgMass
= 10;
73
74
Double_t
fGammaCM
= 0.;
75
Double_t
fBetaCM
= 0.;
76
77
Int_t
GetIonCharge
(
Int_t
pdgCode)
const
{
return
(pdgCode %
kPdgLambda
) /
kPdgCharge
; }
78
Int_t
GetIonLambdas
(
Int_t
pdgCode) {
return
(pdgCode % (10 *
kPdgLambda
)) /
kPdgLambda
; }
79
Int_t
GetIonMass
(
Int_t
pdgCode) {
return
(pdgCode %
kPdgCharge
) /
kPdgMass
; }
80
81
MpdUnigenGenerator
(
const
MpdUnigenGenerator
&);
82
MpdUnigenGenerator
&
operator=
(
const
MpdUnigenGenerator
&);
83
84
ClassDefOverride
(
MpdUnigenGenerator
, 1);
85
};
86
87
#endif
Bool_t
bool Bool_t
Int_t
int Int_t
kFALSE
constexpr Bool_t kFALSE
Double_t
double Double_t
Long64_t
long long Long64_t
kTRUE
constexpr Bool_t kTRUE
ClassDefOverride
#define ClassDefOverride(name, id)
TClonesArray.h
TDatabasePDG.h
TFile.h
TParticlePDG.h
TRandom.h
TString.h
TTree.h
FairGenerator
MpdUnigenGenerator::SetEventPlane
void SetEventPlane(Double_t phiMin, Double_t phiMax)
Definition
MpdUnigenGenerator.h:43
MpdUnigenGenerator::random_engine_
std::mt19937 random_engine_
Definition
MpdUnigenGenerator.h:54
MpdUnigenGenerator::~MpdUnigenGenerator
~MpdUnigenGenerator() override=default
MpdUnigenGenerator::fBetaCM
Double_t fBetaCM
Definition
MpdUnigenGenerator.h:75
MpdUnigenGenerator::fEventPlaneSet
Bool_t fEventPlaneSet
Definition
MpdUnigenGenerator.h:66
MpdUnigenGenerator::RegisterIons
Int_t RegisterIons()
Definition
MpdUnigenGenerator.cxx:194
MpdUnigenGenerator::SkipEvents
void SkipEvents(Int_t ev)
Definition
MpdUnigenGenerator.h:37
MpdUnigenGenerator::fNEntries
Long64_t fNEntries
Definition
MpdUnigenGenerator.h:57
MpdUnigenGenerator::GetIonCharge
Int_t GetIonCharge(Int_t pdgCode) const
Definition
MpdUnigenGenerator.h:77
MpdUnigenGenerator::GetIonLambdas
Int_t GetIonLambdas(Int_t pdgCode)
Definition
MpdUnigenGenerator.h:78
MpdUnigenGenerator::GetNEntries
Long64_t GetNEntries()
Definition
MpdUnigenGenerator.h:33
MpdUnigenGenerator::fEventNumber
Long64_t fEventNumber
Definition
MpdUnigenGenerator.h:56
MpdUnigenGenerator::random_device_
std::random_device random_device_
Definition
MpdUnigenGenerator.h:53
MpdUnigenGenerator::fInTree
TTree * fInTree
Definition
MpdUnigenGenerator.h:59
MpdUnigenGenerator::fParticle
UParticle * fParticle
Definition
MpdUnigenGenerator.h:62
MpdUnigenGenerator::ReadEvent
Bool_t ReadEvent(FairPrimaryGenerator *primGen) override
Definition
MpdUnigenGenerator.cxx:88
MpdUnigenGenerator::fInFile
TFile * fInFile
Definition
MpdUnigenGenerator.h:58
MpdUnigenGenerator::fRun
URun * fRun
Definition
MpdUnigenGenerator.h:61
MpdUnigenGenerator::GetIonMass
Int_t GetIonMass(Int_t pdgCode)
Definition
MpdUnigenGenerator.h:79
MpdUnigenGenerator::kPdgMass
static const Int_t kPdgMass
Definition
MpdUnigenGenerator.h:72
MpdUnigenGenerator::fSpectatorsON
Bool_t fSpectatorsON
Definition
MpdUnigenGenerator.h:63
MpdUnigenGenerator::fPhiMax
Double_t fPhiMax
Definition
MpdUnigenGenerator.h:65
MpdUnigenGenerator::fGammaCM
Double_t fGammaCM
Definition
MpdUnigenGenerator.h:74
MpdUnigenGenerator::MpdUnigenGenerator
MpdUnigenGenerator()
Definition
MpdUnigenGenerator.cxx:5
MpdUnigenGenerator::kPdgLambda
static const Int_t kPdgLambda
Definition
MpdUnigenGenerator.h:70
MpdUnigenGenerator::MpdUnigenGenerator
MpdUnigenGenerator(const MpdUnigenGenerator &)
MpdUnigenGenerator::operator=
MpdUnigenGenerator & operator=(const MpdUnigenGenerator &)
MpdUnigenGenerator::fEvent
UEvent * fEvent
Definition
MpdUnigenGenerator.h:60
MpdUnigenGenerator::fIonMap
std::map< TString, FairIon * > fIonMap
Map from ion name to FairIon.
Definition
MpdUnigenGenerator.h:68
MpdUnigenGenerator::kPdgCharge
static const Int_t kPdgCharge
Definition
MpdUnigenGenerator.h:71
MpdUnigenGenerator::fPhiMin
Double_t fPhiMin
Definition
MpdUnigenGenerator.h:65
MpdUnigenGenerator::uniform_real_distribution_
std::uniform_real_distribution< double > uniform_real_distribution_
Definition
MpdUnigenGenerator.h:55
TFile
TString
TTree
UEvent
unigen event
Definition
UEvent.h:20
UParticle
unigen particle
Definition
UParticle.h:14
URun
Definition
URun.h:8
generators
MpdUnigenGenerator.h
Generated on
for BmnRoot by
1.17.0