]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenMC.cxx
Warnings fixed.
[u/mrichter/AliRoot.git] / EVGEN / AliGenMC.cxx
index 63872c8f7e4641cc375410e7fef7f16d4e81efb6..466f44b21439be3dc7fef765db5d1976540362aa 100644 (file)
 #include <TParticle.h>
 
 #include "AliGenMC.h"
+#include "AliRun.h"
 #include "AliGeometry.h"
 
 ClassImp(AliGenMC)
 
 AliGenMC::AliGenMC()
     :AliGenerator(),
-     fParticles(0),
+     fParticles("TParticle", 1000),
      fParentSelect(8),
      fChildSelect(8),
      fCutOnChild(0),
@@ -51,23 +52,24 @@ AliGenMC::AliGenMC()
      fXingAngleY(0.),
      fForceDecay(kAll),
      fMaxLifeTime(1.e-15),
-     fAProjectile(1),
-     fZProjectile(1),
-     fATarget(1),
-     fZTarget(1),
-     fProjectile("P"),
-     fTarget("P"),    
      fDyBoost(0.),
      fGeometryAcceptance(0),
      fPdgCodeParticleforAcceptanceCut(0),
-     fNumberOfAcceptedParticles(2)
+     fNumberOfAcceptedParticles(0),
+     fNprimaries(0)
 {
 // Default Constructor
+  fAProjectile = 1;
+  fZProjectile = 1;
+  fATarget = 1;
+  fZTarget = 1;
+  fProjectile = "P";
+  fTarget = "P";
 }
 
 AliGenMC::AliGenMC(Int_t npart)
     :AliGenerator(npart),
-     fParticles(0),
+     fParticles("TParticle", 1000),
      fParentSelect(8),
      fChildSelect(8),
      fCutOnChild(0),
@@ -85,55 +87,21 @@ AliGenMC::AliGenMC(Int_t npart)
      fXingAngleY(0.),
      fForceDecay(kAll),
      fMaxLifeTime(1.e-15),
-     fAProjectile(1),
-     fZProjectile(1),
-     fATarget(1),
-     fZTarget(1),
-     fProjectile("P"),
-     fTarget("P"),    
      fDyBoost(0.),
      fGeometryAcceptance(0),
      fPdgCodeParticleforAcceptanceCut(0),
-     fNumberOfAcceptedParticles(2)
+     fNumberOfAcceptedParticles(0),
+     fNprimaries(0)
 {
 //  Constructor
 // 
-    for (Int_t i=0; i<8; i++) fParentSelect[i]=fChildSelect[i]=0;
-}
-
-AliGenMC::AliGenMC(const AliGenMC & mc):
-    AliGenerator(mc),
-    fParticles(0),
-    fParentSelect(8),
-    fChildSelect(8),
-    fCutOnChild(0),
-    fChildPtMin(0.),
-    fChildPtMax(1.e10),
-    fChildPMin(0.),
-    fChildPMax(1.e10),
-    fChildPhiMin(0.),
-    fChildPhiMax(2. * TMath::Pi()),
-    fChildThetaMin(0.),
-    fChildThetaMax(TMath::Pi()),
-    fChildYMin(-12.),
-    fChildYMax(12.),
-    fXingAngleX(0.),
-    fXingAngleY(0.),
-    fForceDecay(kAll),
-    fMaxLifeTime(1.e-15),
-    fAProjectile(1),
-    fZProjectile(1),
-    fATarget(1),
-    fZTarget(1),
-    fProjectile("P"),
-    fTarget("P"),    
-    fDyBoost(0.),
-    fGeometryAcceptance(0),
-    fPdgCodeParticleforAcceptanceCut(0),
-    fNumberOfAcceptedParticles(2)
-{
-// Copy constructor
-    mc.Copy(*this);
+  fAProjectile = 1;
+  fZProjectile = 1;
+  fATarget = 1;
+  fZTarget = 1;
+  fProjectile = "P";
+  fTarget = "P";
+  for (Int_t i=0; i<8; i++) fParentSelect[i]=fChildSelect[i]=0;
 }
 
 AliGenMC::~AliGenMC()
@@ -146,6 +114,7 @@ void AliGenMC::Init()
 //
 //  Initialization
     switch (fForceDecay) {
+    case kBSemiElectronic:
     case kSemiElectronic:
     case kDiElectron:
     case kBJpsiDiElectron:
@@ -153,6 +122,7 @@ void AliGenMC::Init()
        fChildSelect[0] = kElectron;    
        break;
     case kHardMuons:   
+    case kBSemiMuonic:
     case kSemiMuonic:
     case kDiMuon:
     case kBJpsiDiMuon:
@@ -162,11 +132,13 @@ void AliGenMC::Init()
     case kWToMuon:
     case kWToCharmToMuon:
     case kZDiMuon:
+    case kZDiElectron:
        fChildSelect[0]=kMuonMinus;
        break;
     case kWToCharm:
        break;
     case kHadronicD:
+    case kHadronicDWithout4Bodies:
        fChildSelect[0]=kPiPlus;
        fChildSelect[1]=kKPlus;
        break;
@@ -174,12 +146,23 @@ 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:
     case kNoDecay:
     case kNoDecayHeavy:
+    case kNeutralPion:
        break;
     }
 
@@ -214,14 +197,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;
 
@@ -384,10 +367,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();
@@ -401,21 +384,12 @@ void AliGenMC::Boost()
     }
 }
 
-
-         
-AliGenMC& AliGenMC::operator=(const  AliGenMC& rhs)
-{
-// Assignment operator
-    rhs.Copy(*this);
-    return *this;
-}
-
-void AliGenMC::Copy(TObject&) const
+void AliGenMC::AddHeader(AliGenEventHeader* header)
 {
-    //
-    // Copy 
-    //
-    Fatal("Copy","Not implemented!\n");
+    // Passes header either to the container or to gAlice
+    if (fContainer) {
+       fContainer->AddHeader(header);
+    } else {
+       gAlice->SetGenEventHeader(header);      
+    }
 }
-
-