9 #include "FairPrimaryGenerator.h"
12 #include "TParticlePDG.h"
13 #include "TDatabasePDG.h"
18 fPDGType(0),fMult(0),fEvent(0), fPDGMass(0),
20 fX1(0),fY1(0),fX2(0),fY2(0),
21 fEtaRangeIsSet(0),fYRangeIsSet(0),fThetaRangeIsSet(0),
22 fCosThetaIsSet(0),fPtRangeIsSet(0),fPRangeIsSet(0),
23 fPointVtxIsSet(0),fBoxVtxIsSet(0),fDebug(0), fDoit(kTRUE), fFirstRun(kTRUE)
35 fPDGType(pdgid),fMult(mult), fEvent(0),fPDGMass(0),
37 fX1(0),fY1(0),fX2(0),fY2(0),
38 fEtaRangeIsSet(0),fYRangeIsSet(0),fThetaRangeIsSet(0),
39 fCosThetaIsSet(0),fPtRangeIsSet(0),fPRangeIsSet(0),
40 fPointVtxIsSet(0),fBoxVtxIsSet(0),fDebug(1), fDoit(kTRUE), fFirstRun(kTRUE)
58 Fatal(
"Init()",
"PndFixStepParticleGun: phi range is too wide: %f<phi<%f",
61 Fatal(
"Init()",
"PndFixStepParticleGun: Cannot set P and Pt ranges simultaneously");
63 Fatal(
"Init()",
"PndFixStepParticleGun: Cannot set P and Y ranges simultaneously");
67 Fatal(
"Init()",
"PndFixStepParticleGun: Cannot set Y, Theta or Eta ranges simultaneously");
69 Fatal(
"Init()",
"PndFixStepParticleGun: Cannot set point and box vertices simultaneously");
72 TDatabasePDG* pdgBase = TDatabasePDG::Instance();
74 if (! particle) Fatal(
"PndFixStepParticleGun",
"PDG code %d not defined.",
fPDGType);
111 if (
IsEndOfRanges(outerVal, midVal, innerVal) ==
true)
return kTRUE;
132 theta = 2*TMath::ATan(TMath::Exp(-
eta));
137 pz = mt * TMath::SinH(y);
158 printf(
"FlatGen: kf=%d, p=(%.2f, %.2f, %.2f) GeV, x=(%.1f, %.1f, %.1f) cm, Theta=%.1f phi=%.1f\n",
197 std::cout <<
"End of range reached at EventNr: " <<
fEvent << std::endl;
friend F32vec4 acos(const F32vec4 &a)
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
void SetStep(Double32_t val)
void SetPhiRange(Double32_t phimin=0, Double32_t phimax=360, Double32_t phistep=1)
static T Sqrt(const T &x)
bool IsEndOfRanges(PndRangeValues *val1, PndRangeValues *val2, PndRangeValues *val3)
FairPrimaryGenerator * primGen
TString pt(TString pts, TString exts="px py pz")
virtual Bool_t ReadEvent(FairPrimaryGenerator *primGen)
void SetStop(Double32_t val)
void SetStart(Double32_t val)
void CalcActValues(PndRangeValues *val1, PndRangeValues *val2, PndRangeValues *val3)