BmnRoot
Loading...
Searching...
No Matches
MpdDCMSMMGenerator.h
Go to the documentation of this file.
1// -------------------------------------------------------------------------
2// ----- MpdDCMSMMGenerator header file -----
3// ----- Created 27-AUG-2019 by Igor Rufanov -----
4// -------------------------------------------------------------------------
5// The MpdDCMSMMGenerator reads the CAS-SMM-evt.out file from DCM-SMM
6// ( Dubna Cascade Model + Statistical Multifragmentation Model).
7// PHYS REV C 95, 014902 (2017) & Phys Rep 257 (1995) 133.
8// The code of the model was provided by Alexander Botvina.
9
10#ifndef MPDDCMSMMGENERATOR_H
11#define MPDDCMSMMGENERATOR_H
12
13#define GZIP_SUPPORT // version with gz support
14
15#include "FairGenerator.h"
16
17#include <TFile.h>
18#include <TH1D.h>
19#include <TH2D.h>
20#include <TString.h>
21
22#ifdef GZIP_SUPPORT
23#include <zlib.h>
24#endif
25
26class MpdDCMSMMGenerator : public FairGenerator
27{
28 public:
32 MpdDCMSMMGenerator(const char* fileName);
35
36 Bool_t ReadEvent(FairPrimaryGenerator* primGen);
37 Bool_t SkipEvents(Int_t count);
38
39 Int_t FindPDGCodeParticipant(Int_t A, Int_t S, Int_t Z, Float_t mass, Double_t& massFactor);
40 Int_t FindPDGCodeSpectator(Int_t N, Int_t Z, Int_t& dN);
41
42 Int_t RegisterIons(void);
43
44 private:
45#ifdef GZIP_SUPPORT
46 gzFile fInputFile;
47#else
48 FILE* fInputFile;
49#endif
50
51 TString fFileName; // Input file name
52
53 TString fBoostType; // "None" MPD, "CmsFixed" BM@N, "CmsFixedInverted" SRC, "FixedFixedInverted" SRC.
54 Bool_t fUseLorentzBoost;
55 Double_t fBoostBeta;
56 Double_t fBoostGamma;
57
58 Bool_t fSpectatorsON; // includes spectators (with heavy ions) into MC
59 static const Int_t fZMax = 82; // maximal charge of ions in MC
60 Int_t fN1[fZMax + 1] = {0}; //[fZMax+1] region of barion number for given Z for registered ions
61 Int_t fN2[fZMax + 1] = {0}; //[fZMax+1] region of barion number for given Z for registered ions
62 static const Int_t fBMax = 208; // maximal baryon charge of ions in MC
63 Int_t fZ1[fBMax + 1] = {0}; //[fBMax+1] region of Z for given B for registered ions
64 Int_t fZ2[fBMax + 1] = {0}; //[fBMax+1] region of Z for given B for registered ions
65
66 Int_t fInputFileVersion; // 0 - old version, 1 - current version
67
69 MpdDCMSMMGenerator& operator=(const MpdDCMSMMGenerator&);
70
71 ClassDef(MpdDCMSMMGenerator, 2);
72};
73
74#endif
Int_t FindPDGCodeSpectator(Int_t N, Int_t Z, Int_t &dN)
Int_t FindPDGCodeParticipant(Int_t A, Int_t S, Int_t Z, Float_t mass, Double_t &massFactor)
Bool_t ReadEvent(FairPrimaryGenerator *primGen)
Bool_t SkipEvents(Int_t count)