]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenMC.cxx
kBSemiElectronic and kBSemiMuonic added.
[u/mrichter/AliRoot.git] / EVGEN / AliGenMC.cxx
index aeb67fe7a78cdb6c6b30fd02505f883a492eca31..84f642f9e6fa0cb801c3aeda620119e999813ad9 100644 (file)
 // decay products and particle selection.
 // andreas.morsch@cern.ch
 
+#include <TClonesArray.h>
 #include <TMath.h>
 #include <TPDGCode.h>
 #include <TParticle.h>
 
 #include "AliGenMC.h"
+#include "AliGeometry.h"
 
 ClassImp(AliGenMC)
 
 AliGenMC::AliGenMC()
-    :AliGenerator()
+    :AliGenerator(),
+     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)
 {
 // Default Constructor
-    SetCutOnChild();
-    SetChildMomentumRange();
-    SetChildPtRange();
-    SetChildPhiRange();
-    SetChildThetaRange(); 
-    SetChildYRange(); 
-    SetMaximumLifetime();
-    SetGeometryAcceptance();
-    SetPdgCodeParticleforAcceptanceCut();
-    SetNumberOfAcceptedParticles();
-    SetTarget();
-    SetProjectile();
-    fParentSelect.Set(8);
-    fChildSelect.Set(8);
 }
 
 AliGenMC::AliGenMC(Int_t npart)
-    :AliGenerator(npart)
+    :AliGenerator(npart),
+     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)
 {
 //  Constructor
-    SetCutOnChild();
-    SetChildMomentumRange();
-    SetChildPtRange();
-    SetChildPhiRange();
-    SetChildThetaRange();
-    SetChildYRange(); 
 // 
-    fParentSelect.Set(8);
-    fChildSelect.Set(8);
     for (Int_t i=0; i<8; i++) fParentSelect[i]=fChildSelect[i]=0;
-    SetMaximumLifetime();
-    SetGeometryAcceptance();
-    SetPdgCodeParticleforAcceptanceCut();
-    SetNumberOfAcceptedParticles();
-    SetTarget();
-    SetProjectile();
-}
-
-AliGenMC::AliGenMC(const AliGenMC & mc):
-    AliGenerator(mc)
-{
-// Copy constructor
-    mc.Copy(*this);
 }
 
 AliGenMC::~AliGenMC()
@@ -88,6 +111,7 @@ void AliGenMC::Init()
 //
 //  Initialization
     switch (fForceDecay) {
+    case kBSemiElectronic:
     case kSemiElectronic:
     case kDiElectron:
     case kBJpsiDiElectron:
@@ -95,20 +119,30 @@ void AliGenMC::Init()
        fChildSelect[0] = kElectron;    
        break;
     case kHardMuons:   
+    case kBSemiMuonic:
     case kSemiMuonic:
     case kDiMuon:
     case kBJpsiDiMuon:
     case kBPsiPrimeDiMuon:
     case kPiToMu:
     case kKaToMu:
+    case kWToMuon:
+    case kWToCharmToMuon:
+    case kZDiMuon:
        fChildSelect[0]=kMuonMinus;
        break;
+    case kWToCharm:
+       break;
     case kHadronicD:
        fChildSelect[0]=kPiPlus;
        fChildSelect[1]=kKPlus;
        break;
     case kPhiKK:
        fChildSelect[0]=kKPlus;
+       break;
+    case kBJpsi:
+       fChildSelect[0]=443;
+       break;
     case kOmega:       
     case kAll:
     case kNoDecay:
@@ -333,22 +367,3 @@ void AliGenMC::Boost()
        iparticle->SetMomentum(px, py, pzb, eb);
     }
 }
-
-
-         
-AliGenMC& AliGenMC::operator=(const  AliGenMC& rhs)
-{
-// Assignment operator
-    rhs.Copy(*this);
-    return *this;
-}
-
-void AliGenMC::Copy(TObject&) const
-{
-    //
-    // Copy 
-    //
-    Fatal("Copy","Not implemented!\n");
-}
-
-