#include <TClonesArray.h>
#include <TObjArray.h>
#include <TPDGCode.h>
+#include <TMCProcess.h>
#include <TParticle.h>
#include <TParticlePDG.h>
#include <TDatabasePDG.h>
= new(fParticles[fLoadPoint++])
TParticle(pdg, is, parent, -1, kFirstDaughter, kLastDaughter,
px, py, pz, e, vx, vy, vz, tof);
-
+
particle->SetPolarisation(polx, poly, polz);
particle->SetWeight(weight);
particle->SetUniqueID(mech);
particle->SetBit(kDaughtersBit);
// Add the particle to the stack
-
fParticleMap.AddAtAndExpand(particle, fNtrack);//CHECK!!
if(parent>=0) {
TParticle* particle = Particle(i);
- if (!particle->TestBit(kDoneBit))
+ if (!particle->TestBit(kDoneBit)) {
+ fCurrentTrack = particle;
return particle;
+ }
else
return 0;
}
// by physics analysis. Decision is put here.
//
Bool_t keep = kFALSE;
+
+ Int_t parent = part->GetFirstMother();
+ if (parent >= 0 && parent <= fHgwmk) {
+ TParticle* father = GetParticleMapEntry(parent);
//
// Keep first-generation daughter from primaries with heavy flavor
//
- Int_t parent = part->GetFirstMother();
- if (parent >= 0 && parent <= fHgwmk) {
- TParticle* father = GetParticleMapEntry(parent);
Int_t kf = father->GetPdgCode();
kf = TMath::Abs(kf);
Int_t kfl = kf;
// meson ?
if (kfl > 10) kfl/=100;
// baryon
- if (kfl > 10) kfl/=10;
- if (kfl > 10) kfl/=10;
+ if (kfl > 10) kfl/=10;
+ if (kfl > 10) kfl/=10;
if (kfl >= 4) {
keep = kTRUE;
}
+ //
+ // e+e- from pair production of primary gammas
+ //
+ if ((part->GetUniqueID()) == kPPair) keep = kTRUE;
}
return keep;
}
"\n=======================================================================\n\n");
}
+//_____________________________________________________________________________
+void AliStack::SetCurrentTrack(Int_t track)
+{
+ fCurrent = track;
+ if (fCurrent < fNprimary) fCurrentTrack = Particle(track);
+}
+
+
+//_____________________________________________________________________________
//
// protected methods
//
// Nuclear code is 10LZZZAAAI
if(pdg>1000000000)return kTRUE;
- const Int_t kNstable = 15;
+ const Int_t kNstable = 18;
Int_t i;
Int_t pdgStable[kNstable] = {
3312, // Xsi Minus
3322, // Xsi
3334, // Omega
+ kNuE, // Electron Neutrino
+ kNuMu, // Muon Neutrino
+ kNuTau // Tau Neutrino
};
Bool_t isStable = kFALSE;
return isStable;
}
+//_____________________________________________________________________________
Bool_t AliStack::IsPhysicalPrimary(Int_t index)
{
//