AliGenMC::AliGenMC()
:AliGenerator(),
- fParticles(0),
+ fParticles("TParticle", 1000),
fParentSelect(8),
fChildSelect(8),
fCutOnChild(0),
fGeometryAcceptance(0),
fPdgCodeParticleforAcceptanceCut(0),
fNumberOfAcceptedParticles(0),
- fNprimaries(0)
+ fNprimaries(0),
+ fEnergyCMS(0)
{
// Default Constructor
}
AliGenMC::AliGenMC(Int_t npart)
:AliGenerator(npart),
- fParticles(0),
+ fParticles("TParticle", 1000),
fParentSelect(8),
fChildSelect(8),
fCutOnChild(0),
fGeometryAcceptance(0),
fPdgCodeParticleforAcceptanceCut(0),
fNumberOfAcceptedParticles(0),
- fNprimaries(0)
+ fNprimaries(0),
+ fEnergyCMS(0)
{
// Constructor
//
fChildSelect[0]=kKPlus;
break;
case kBJpsi:
- fChildSelect[0]=443;
+ fChildSelect[0]= 443;
break;
+ case kChiToJpsiGammaToMuonMuon:
+ fChildSelect[0]= 22;
+ fChildSelect[1]= 13;
+ break;
+ case kChiToJpsiGammaToElectronElectron:
+ fChildSelect[0]= 22;
+ fChildSelect[1]= 11;
+ break;
+
case kOmega:
case kAll:
case kAllMuonic:
Bool_t AliGenMC::KinematicSelection(TParticle *particle, Int_t flag) const
{
// Perform kinematic selection
- Float_t pz = particle->Pz();
- Float_t e = particle->Energy();
- Float_t pt = particle->Pt();
- Float_t p = particle->P();
- Float_t theta = particle->Theta();
- Float_t mass = particle->GetCalcMass();
- Float_t mt2 = pt * pt + mass * mass;
- Float_t phi = particle->Phi();
+ Double_t pz = particle->Pz();
+ Double_t e = particle->Energy();
+ Double_t pt = particle->Pt();
+ Double_t p = particle->P();
+ Double_t theta = particle->Theta();
+ Double_t mass = particle->GetCalcMass();
+ Double_t mt2 = pt * pt + mass * mass;
+ Double_t phi = particle->Phi();
Double_t y, y0;
// printf("\n Boosting particles to lab frame %f %f %f", fDyBoost, beta, gamma);
Int_t i;
- Int_t np = fParticles->GetEntriesFast();
+ Int_t np = fParticles.GetEntriesFast();
for (i = 0; i < np; i++)
{
- TParticle* iparticle = (TParticle*) fParticles->At(i);
+ TParticle* iparticle = (TParticle*) fParticles.At(i);
Double_t e = iparticle->Energy();
Double_t px = iparticle->Px();