#include "TArrayF.h"
#include "TGenerator.h"
-typedef enum { none, perEvent, perTrack } VertexSmear_t;
+typedef enum { kNoSmear, kPerEvent, kPerTrack } VertexSmear_t;
class AliGenerator : public TNamed
{
-protected:
- static TGenerator* fgMCEvGen;
- Float_t fThetaMin; //Minimum theta of generation in radians
- Float_t fThetaMax; //Maximum theta of generation in radians
- Float_t fPhiMin; //Minimum phi of generation in radians
- Float_t fPhiMax; //Maximum phi of generation in radians
- Float_t fPMin; //Minimum momentum of generation in GeV/c
- Float_t fPMax; //Minimum momentum of generation in GeV/c
- Float_t fPtMin; //Minimum transverse momentum
- Float_t fPtMax; //Maximum transverse momentum
- Float_t fYMin; //Minimum rapidity
- Float_t fYMax; //Maximum rapidity
- TArrayF fVMin; //Minimum Decaylength
- TArrayF fVMax; //Minimum Decaylength
- Int_t fNpart; //Maximum number of particles per event
- Float_t fParentWeight; //Parent Weight
- Float_t fChildWeight; //ChildWeight
- Int_t fTrackit; // Track the generated final state particle if 1
- Int_t fAnalog; //Flaf for anolog or pt-weighted generation
- //
- VertexSmear_t fVertexSmear; //Vertex Smearing mode
- Int_t fTrackIt; // if 1 Track final state particles
- TArrayF fOrigin; //Origin of event
- TArrayF fOsigma; //Sigma of the Origin of event
-
- enum {kThetaRange=1, kVertexRange=2, kPhiRange=4, kPtRange=8,
- kYRange=32, kMomentumRange=16};
-
public:
AliGenerator();
AliGenerator(Int_t npart);
+ AliGenerator(const AliGenerator &gen);
virtual ~AliGenerator();
virtual void Init();
+ virtual void Copy(AliGenerator &gen) const;
virtual void SetOrigin(Float_t ox, Float_t oy, Float_t oz)
{fOrigin[0]=ox;fOrigin[1]=oy;fOrigin[2]=oz;}
virtual void SetOrigin(const TLorentzVector &o)
virtual void SetMC(TGenerator *theMC)
{if (!fgMCEvGen) fgMCEvGen =theMC;}
+ virtual AliGenerator & operator=(const AliGenerator &gen);
+
// Getters
virtual void GetOrigin(Float_t &ox, Float_t &oy, Float_t &oz)
virtual void GetOrigin(TLorentzVector &o)
{o[0]=fOrigin[0];o[1]=fOrigin[1];o[2]=fOrigin[2];o[3]=0;}
+protected:
+ static TGenerator* fgMCEvGen; // Pointer to the generator
+ Float_t fThetaMin; //Minimum theta of generation in radians
+ Float_t fThetaMax; //Maximum theta of generation in radians
+ Float_t fPhiMin; //Minimum phi of generation in radians
+ Float_t fPhiMax; //Maximum phi of generation in radians
+ Float_t fPMin; //Minimum momentum of generation in GeV/c
+ Float_t fPMax; //Minimum momentum of generation in GeV/c
+ Float_t fPtMin; //Minimum transverse momentum
+ Float_t fPtMax; //Maximum transverse momentum
+ Float_t fYMin; //Minimum rapidity
+ Float_t fYMax; //Maximum rapidity
+ TArrayF fVMin; //Minimum Decaylength
+ TArrayF fVMax; //Minimum Decaylength
+ Int_t fNpart; //Maximum number of particles per event
+ Float_t fParentWeight; //Parent Weight
+ Float_t fChildWeight; //ChildWeight
+ Int_t fTrackit; // Track the generated final state particle if 1
+ Int_t fAnalog; //Flaf for anolog or pt-weighted generation
+ //
+ VertexSmear_t fVertexSmear; //Vertex Smearing mode
+ Int_t fTrackIt; // if 1 Track final state particles
+ TArrayF fOrigin; //Origin of event
+ TArrayF fOsigma; //Sigma of the Origin of event
+
+ enum {kThetaRange=1, kVertexRange=2, kPhiRange=4, kPtRange=8,
+ kYRange=32, kMomentumRange=16};
+
ClassDef(AliGenerator,1)
};