]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenMC.cxx
dynamic cast replaced by static cast in order to avoid undefined reference to typinfo...
[u/mrichter/AliRoot.git] / EVGEN / AliGenMC.cxx
index 554dc173b8cb3a8202a2384582285609bfa77f4d..61166d587fc9384b0eeeaa3a78f464213487a6b7 100644 (file)
@@ -34,7 +34,7 @@ ClassImp(AliGenMC)
 
 AliGenMC::AliGenMC()
     :AliGenerator(),
-     fParticles(0),
+     fParticles("TParticle", 1000),
      fParentSelect(8),
      fChildSelect(8),
      fCutOnChild(0),
@@ -62,14 +62,15 @@ AliGenMC::AliGenMC()
      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),
@@ -97,7 +98,8 @@ AliGenMC::AliGenMC(Int_t npart)
      fGeometryAcceptance(0),
      fPdgCodeParticleforAcceptanceCut(0),
      fNumberOfAcceptedParticles(0),
-     fNprimaries(0)
+     fNprimaries(0),
+     fEnergyCMS(0)
 {
 //  Constructor
 // 
@@ -146,8 +148,17 @@ void AliGenMC::Init()
        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:
@@ -188,14 +199,14 @@ Bool_t AliGenMC::ChildSelected(Int_t ip) const
 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;
 
@@ -358,10 +369,10 @@ void AliGenMC::Boost()
     //    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();