1#ifndef MPDUNIGENGENERATOR_H
2#define MPDUNIGENGENERATOR_H
6#include <FairGenerator.h>
7#include <FairPrimaryGenerator.h>
8#include <FairMCEventHeader.h>
11#include "FairParticle.h"
20#include <TClonesArray.h>
22#include <TDatabasePDG.h>
23#include <TParticlePDG.h>
26class FairPrimaryGenerator;
35 Bool_t
ReadEvent(FairPrimaryGenerator* primGen)
override;
40 std::cout <<
"NUMBER OF SKIPPED EVENTS = " << ev << std::endl;
46 fEventPlaneSet = kTRUE;
47 random_engine_ = std::mt19937(random_device_());
48 uniform_real_distribution_ = std::uniform_real_distribution<double>(fPhiMin,fPhiMax);
51 std::random_device random_device_;
52 std::mt19937 random_engine_;
53 std::uniform_real_distribution<double> uniform_real_distribution_;
54 Long64_t fEventNumber;
63 Double_t fPhiMin, fPhiMax;
64 Bool_t fEventPlaneSet;
66 std::map<TString, FairIon*> fIonMap;
68 static const Int_t kPdgLambda = 10000000;
69 static const Int_t kPdgCharge = 10000;
70 static const Int_t kPdgMass = 10;
72 Double_t fGammaCM = 0.;
73 Double_t fBetaCM = 0.;
75 Int_t GetIonCharge(Int_t pdgCode)
const {
return (pdgCode % kPdgLambda) / kPdgCharge; }
76 Int_t GetIonLambdas(Int_t pdgCode) {
return (pdgCode % (10 * kPdgLambda)) / kPdgLambda; }
77 Int_t GetIonMass(Int_t pdgCode) {
return (pdgCode % kPdgCharge) / kPdgMass; }
void SetEventPlane(Double_t phiMin, Double_t phiMax)
~MpdUnigenGenerator() override=default
void SkipEvents(Int_t ev)
Bool_t ReadEvent(FairPrimaryGenerator *primGen) override
MpdUnigenGenerator(TString fileName, Bool_t isSpectator=kFALSE)