37 #include <TGenerator.h> 38 #include <TMCProcess.h> 76 fPileUpTimeWindow(-1.),
87 fCollisionGeometry(0),
100 AliDebug(1,
"AliGenerator Default Constructor");
105 SetThetaRange(); ResetBit(kThetaRange);
106 SetPhiRange(); ResetBit(kPhiRange);
107 SetMomentumRange(); ResetBit(kMomentumRange);
108 SetPtRange(); ResetBit(kPtRange);
109 SetYRange(); ResetBit(kYRange);
110 SetNumberParticles();
115 fOrigin[0]=fOrigin[1]=fOrigin[2]=0;
116 fOsigma[0]=fOsigma[1]=fOsigma[2]=0;
117 fVertex[0]=fVertex[1]=fVertex[2]=0;
119 fVMin[0]=fVMin[1]=fVMin[2]=0;
120 fVMax[0]=fVMax[1]=fVMax[2]=10000;
147 fPileUpTimeWindow(-1.),
158 fCollisionGeometry(0),
171 AliDebug(1,
"AliGenerator Constructor initializing number of particles");
228 for (Int_t i=0; i <
ntimes; i++) {
293 fPhiMin = TMath::Pi()*phimin/180;
294 fPhiMax = TMath::Pi()*phimax/180;
311 Float_t vymin, Float_t vymax,
312 Float_t vzmin, Float_t vzmax)
373 for (j=0; j < 3; j++) {
374 dv[j] = fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())*
375 TMath::Sqrt(-2*TMath::Log(random[2*j+1]));
383 TMath::Cos(2*random[0]*TMath::Pi())*
384 TMath::Sqrt(-2*TMath::Log(random[1]));
388 for (j=0; j < 3; j++)
396 Float_t *pmom, Float_t *vpos, Float_t *
polar,
397 Float_t tof, TMCProcess mech, Int_t &ntr,
398 Float_t weight, Int_t is)
406 mech, ntr, weight, is);
409 mech, ntr, weight, is);
414 Double_t px, Double_t py, Double_t pz, Double_t e,
415 Double_t vx, Double_t vy, Double_t
vz, Double_t tof,
416 Double_t polx, Double_t poly, Double_t polz,
417 TMCProcess mech, Int_t &ntr, Float_t weight, Int_t is)
424 fStack->
PushTrack(done, parent, pdg, px, py, pz, e, vx, vy, vz, tof,
425 polx, poly, polz, mech, ntr, weight, is);
427 gAlice->
GetMCApp()->
PushTrack(done, parent, pdg, px, py, pz, e, vx, vy, vz, tof,
428 polx, poly, polz, mech, ntr, weight, is);
virtual Float_t GetLastVertexTime()
void SetHighWaterMark(Int_t hgwmk)
virtual void GenerateN(Int_t ntimes)
Float_t fThetaMin
Pointer to the generator.
virtual void SetSeed(UInt_t seed)
virtual void SetPtRange(Float_t ptmin=0, Float_t ptmax=1.e10)
virtual void SetNumberParticles(Int_t npart=100)
virtual void SetMomentumRange(Float_t pmin=0, Float_t pmax=1.e10)
virtual void SetHighWaterMark(Int_t nt)
virtual void SetCutVertexZ(Float_t cut=999999.)
void Add(TDatabasePDG *pdg)
virtual void KeepTrack(Int_t itra) const
VertexSource_t fVertexSource
virtual void SetOrigin(Float_t ox, Float_t oy, Float_t oz)
virtual Float_t Rndm() const
virtual void KeepTrack(Int_t itrack)
virtual void SetPhiRange(Float_t phimin=0., Float_t phimax=360.)
void KeepTrack(Int_t itrack)
virtual void PushTrack(Int_t done, Int_t parent, Int_t pdg, const Float_t *pmom, const Float_t *vpos, const Float_t *polar, Float_t tof, TMCProcess mech, Int_t &ntr, Float_t weight=1, Int_t is=0) const
virtual void SetVRange(Float_t vxmin, Float_t vxmax, Float_t vymin, Float_t vymax, Float_t vzmin, Float_t vzmax)
virtual void SetHighWaterMark(Int_t nt) const
virtual TRandom * GetRandom() const
virtual void SetYRange(Float_t ymin=-100, Float_t ymax=100)
virtual TVector3 GetVertex()=0
virtual void PushTrack(Int_t done, Int_t parent, Int_t pdg, const Float_t *pmom, const Float_t *vpos, const Float_t *polar, Float_t tof, TMCProcess mech, Int_t &ntr, Float_t weight, Int_t is)
virtual void Generate()=0
AliVertexGenerator * fVertexGenerator
#define AliDebug(logLevel, message)
virtual void SetTrackingFlag(Int_t flag=1)
virtual void SetGenerator(AliGenerator *generator)
virtual void SetSigma(Float_t sx, Float_t sy, Float_t sz)
virtual void SetThetaRange(Float_t thetamin=0, Float_t thetamax=180)
TArrayF fOrigin
Generator for the vertex.
virtual void VertexInternal()
Float_t fTimeOrigin
Vertex of current event.
static AliConfig * Instance()
virtual void PushTrack(Int_t done, Int_t parent, Int_t pdg, Float_t *pmom, Float_t *vpos, Float_t *polar, Float_t tof, TMCProcess mech, Int_t &ntr, Float_t weight=1, Int_t is=0)