BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
MpdLAQGSMGenerator.h
Go to the documentation of this file.
1
// -------------------------------------------------------------------------
2
// ----- MpdLAQGSMGenerator header file -----
3
// -------------------------------------------------------------------------
4
5
/** MpdLAQGSMGenerator
6
*@author Elena Litvinenko <litvin@nf.jinr.ru>
7
*@version 15.02.2016
8
*
9
** The MpdLAQGSMGenerator uses the ASCII input
10
** provided by K.Gudima LAQGSM event generator.
11
**/
12
13
#ifndef MPDLAQGSMGENERATOR_H
14
#define MPDLAQGSMGENERATOR_H 1
15
16
#include "FairGenerator.h"
17
18
#include <fstream>
19
#include <map>
20
#include <vector>
21
22
#ifndef __CLING__
23
#include <zlib.h>
24
#endif
25
26
class
TDatabasePDG
;
27
class
FairPrimaryGenerator;
28
class
FairIon;
29
30
class
MpdLAQGSMGenerator
:
public
FairGenerator
31
{
32
33
struct
la_tab_t
34
{
35
Int_t
pdg
;
36
Int_t
Z
;
37
Int_t
strange
;
38
Int_t
lepton
;
39
Int_t
A
;
40
Float_t
mass
;
41
char
name
[10];
42
};
43
44
public
:
45
/** Default constructor without arguments should not be used. **/
46
MpdLAQGSMGenerator
();
47
48
/** Standard constructor.
49
** @param fileName The input file name
50
**/
51
MpdLAQGSMGenerator
(
const
char
* fileName,
52
const
Bool_t
use_collider_system =
kTRUE
,
53
Int_t
QGSM_format_ID = 0,
54
Int_t
Max_Event_Number = 0);
55
56
/** Destructor. **/
57
virtual
~MpdLAQGSMGenerator
();
58
59
// static la_tab_t la_tab[78]; //! list of light particles known for MpdLAQGSMGenerator
60
61
virtual
Bool_t
Init
()
62
{
63
InitGenerator
(
nullptr
);
64
return
kTRUE
;
65
}
66
void
InitGenerator
(
const
char
* light_particles_filename);
// fill list of known light particles
67
68
/** Reads on event from the input file and pushes the tracks onto
69
** the stack. Abstract method in base class.
70
** @param primGen pointer to the FairPrimaryGenerator
71
**/
72
virtual
Bool_t
ReadEvent
(FairPrimaryGenerator* primGen);
73
74
virtual
Bool_t
GetEventHeader
(
char
* ss);
75
76
Bool_t
SkipEvents
(
Int_t
nSkip);
// AZ
77
78
Bool_t
general_fgets
(
char
* ss,
Int_t
nn = 250, FILE* p = 0);
79
Bool_t
general_feof
(
void
* p);
80
81
void
SetXYZ
(
Double_t
x = 0.,
Double_t
y = 0.,
Double_t
z = 0.)
82
{
83
fX
= x;
84
fY
= y;
85
fZ
= z;
86
}
87
88
protected
:
89
FILE*
fInputFile
;
//! Input file
90
#ifndef __CLING__
91
gzFile
fGZInputFile
;
//! GZ Input file
92
#endif
93
const
Char_t
*
fFileName
;
//! Input file Name
94
TDatabasePDG
*
fPDG
;
//! PDG database
95
Int_t
fQGSM_format_ID
;
// Reflect format changes
96
Bool_t
fUseColliderSystem
;
// kTRUE- for NICA/MPD, kFALSE - for lab system (CBM)
97
// la_tab_t la_tab[84]; //! list of light particles known for MpdLAQGSMGenerator
98
std::vector<la_tab_t*>
fLa_tab
;
//! list of light particles known for MpdLAQGSMGenerator
99
Bool_t
fGZ_input
;
//! 0: ascii input, 1: gzipped input
100
101
Double_t
fX
,
fY
,
fZ
;
// Point vertex coordinates [cm]
102
103
/** Private method CloseInput. Just for convenience. Closes the
104
** input file properly. Called from destructor and from ReadEvent. **/
105
void
CloseInput
();
106
107
/** Private method RegisterIons. Goes through the input file and registers
108
** any ion needed. **/
109
Int_t
RegisterIons
(
Int_t
Max_Event_Number = 0);
110
Int_t
RegisterIons1
();
// AZ
111
112
Int_t
CreatePdgCode
(
Int_t
Z,
Int_t
A,
Int_t
Strange,
Int_t
user = 0);
113
Bool_t
FindParticle
(
Int_t
Z,
Int_t
strange,
Int_t
lepton,
Int_t
A,
Float_t
mass,
Int_t
& PDG,
char
name[11]);
114
Bool_t
CreateNucleus
(
Int_t
Z,
Float_t
mass,
Int_t
pdgCode,
char
pdgName[11]);
115
116
/** STL map from ion name to FairIon **/
117
std::map<TString, FairIon*>
fIonMap
;
//!
118
119
ClassDef
(
MpdLAQGSMGenerator
, 1);
120
};
121
122
#endif
Bool_t
bool Bool_t
Int_t
int Int_t
Char_t
char Char_t
Float_t
float Float_t
Double_t
double Double_t
kTRUE
constexpr Bool_t kTRUE
ClassDef
#define ClassDef(name, id)
FairGenerator
MpdLAQGSMGenerator
Definition
MpdLAQGSMGenerator.h:31
MpdLAQGSMGenerator::SetXYZ
void SetXYZ(Double_t x=0., Double_t y=0., Double_t z=0.)
Definition
MpdLAQGSMGenerator.h:81
MpdLAQGSMGenerator::SkipEvents
Bool_t SkipEvents(Int_t nSkip)
MpdLAQGSMGenerator::CloseInput
void CloseInput()
Private method CloseInput.
MpdLAQGSMGenerator::CreatePdgCode
Int_t CreatePdgCode(Int_t Z, Int_t A, Int_t Strange, Int_t user=0)
MpdLAQGSMGenerator::fZ
Double_t fZ
Definition
MpdLAQGSMGenerator.h:101
MpdLAQGSMGenerator::fY
Double_t fY
Definition
MpdLAQGSMGenerator.h:101
MpdLAQGSMGenerator::fX
Double_t fX
0: ascii input, 1: gzipped input
Definition
MpdLAQGSMGenerator.h:101
MpdLAQGSMGenerator::CreateNucleus
Bool_t CreateNucleus(Int_t Z, Float_t mass, Int_t pdgCode, char pdgName[11])
MpdLAQGSMGenerator::RegisterIons1
Int_t RegisterIons1()
MpdLAQGSMGenerator::~MpdLAQGSMGenerator
virtual ~MpdLAQGSMGenerator()
Destructor.
MpdLAQGSMGenerator::ReadEvent
virtual Bool_t ReadEvent(FairPrimaryGenerator *primGen)
Reads on event from the input file and pushes the tracks onto the stack.
MpdLAQGSMGenerator::fQGSM_format_ID
Int_t fQGSM_format_ID
PDG database.
Definition
MpdLAQGSMGenerator.h:95
MpdLAQGSMGenerator::RegisterIons
Int_t RegisterIons(Int_t Max_Event_Number=0)
Private method RegisterIons.
MpdLAQGSMGenerator::MpdLAQGSMGenerator
MpdLAQGSMGenerator()
Default constructor without arguments should not be used.
MpdLAQGSMGenerator::Init
virtual Bool_t Init()
Definition
MpdLAQGSMGenerator.h:61
MpdLAQGSMGenerator::FindParticle
Bool_t FindParticle(Int_t Z, Int_t strange, Int_t lepton, Int_t A, Float_t mass, Int_t &PDG, char name[11])
MpdLAQGSMGenerator::InitGenerator
void InitGenerator(const char *light_particles_filename)
Definition
MpdLAQGSMGenerator.cxx:113
MpdLAQGSMGenerator::general_feof
Bool_t general_feof(void *p)
MpdLAQGSMGenerator::MpdLAQGSMGenerator
MpdLAQGSMGenerator(const char *fileName, const Bool_t use_collider_system=kTRUE, Int_t QGSM_format_ID=0, Int_t Max_Event_Number=0)
Standard constructor.
MpdLAQGSMGenerator::fInputFile
FILE * fInputFile
Definition
MpdLAQGSMGenerator.h:89
MpdLAQGSMGenerator::fGZInputFile
gzFile fGZInputFile
Input file.
Definition
MpdLAQGSMGenerator.h:91
MpdLAQGSMGenerator::fFileName
const Char_t * fFileName
GZ Input file.
Definition
MpdLAQGSMGenerator.h:93
MpdLAQGSMGenerator::fLa_tab
std::vector< la_tab_t * > fLa_tab
Definition
MpdLAQGSMGenerator.h:98
MpdLAQGSMGenerator::GetEventHeader
virtual Bool_t GetEventHeader(char *ss)
MpdLAQGSMGenerator::fUseColliderSystem
Bool_t fUseColliderSystem
Definition
MpdLAQGSMGenerator.h:96
MpdLAQGSMGenerator::fIonMap
std::map< TString, FairIon * > fIonMap
STL map from ion name to FairIon.
Definition
MpdLAQGSMGenerator.h:117
MpdLAQGSMGenerator::fGZ_input
Bool_t fGZ_input
list of light particles known for MpdLAQGSMGenerator
Definition
MpdLAQGSMGenerator.h:99
MpdLAQGSMGenerator::fPDG
TDatabasePDG * fPDG
Input file Name.
Definition
MpdLAQGSMGenerator.h:94
MpdLAQGSMGenerator::general_fgets
Bool_t general_fgets(char *ss, Int_t nn=250, FILE *p=0)
TDatabasePDG
MpdLAQGSMGenerator::la_tab_t
Definition
MpdLAQGSMGenerator.h:34
MpdLAQGSMGenerator::la_tab_t::name
char name[10]
Definition
MpdLAQGSMGenerator.h:41
MpdLAQGSMGenerator::la_tab_t::pdg
Int_t pdg
Definition
MpdLAQGSMGenerator.h:35
MpdLAQGSMGenerator::la_tab_t::strange
Int_t strange
Definition
MpdLAQGSMGenerator.h:37
MpdLAQGSMGenerator::la_tab_t::lepton
Int_t lepton
Definition
MpdLAQGSMGenerator.h:38
MpdLAQGSMGenerator::la_tab_t::mass
Float_t mass
Definition
MpdLAQGSMGenerator.h:40
MpdLAQGSMGenerator::la_tab_t::Z
Int_t Z
Definition
MpdLAQGSMGenerator.h:36
MpdLAQGSMGenerator::la_tab_t::A
Int_t A
Definition
MpdLAQGSMGenerator.h:39
install
include
MpdLAQGSMGenerator.h
Generated on
for BmnRoot by
1.17.0