for(i=0;i<fNpart;i++) {
Rndm(random,3);
- theta=fThetaMin+random[0]*(fThetaMax-fThetaMin);
+
+ if (TestBit(kThetaRange)) {
+ theta = fThetaMin+random[0]*(fThetaMax-fThetaMin);
+ } else {
+ Float_t eta = fEtaMin+random[0]*(fEtaMax-fEtaMin);
+ theta = 2. * TMath::ATan(TMath::Exp(-eta));
+ }
+
+
if(TestBit(kMomentumRange)) {
pmom=fPMin+random[1]*(fPMax-fPMin);
pt=pmom*TMath::Sin(theta);
pt=fPtMin+random[1]*(fPtMax-fPtMin);
pmom=pt/TMath::Sin(theta);
}
+
phi=fPhiMin+random[2]*(fPhiMax-fPhiMin);
p[0] = pt*TMath::Cos(phi);
p[1] = pt*TMath::Sin(phi);
virtual ~AliGenBox() {}
virtual void Generate();
virtual void Init();
+ virtual void SetEtaRange(Float_t etamin, Float_t etamax);
virtual void SetPart(Int_t part) {fIpart=part;}
+ virtual void SetParticleType(Int_t part) {SetPart(part);}
protected:
Int_t fIpart; // Particle type
-
- ClassDef(AliGenBox,1) // Square box random generator
+ Float_t fEtaMin; // Minimum eta
+ Float_t fEtaMax; // Maximum eta
+ ClassDef(AliGenBox,2) // Square box random generator
};
#endif