// ------------------------------------- ...done!
- if (fMuonTrackReco->GetMCLabel()>=0) fCountRealTracksWithRefMC++;
-
fLabelMC = fMuonTrackReco->GetMCLabel();
+ Int_t motherPdg=0;
+ if (fLabelMC>=0) {
+ fCountRealTracksWithRefMC++;
+ if (fStack->Particle(fLabelMC)->GetFirstMother() != -1) {
+ motherPdg = fStack->Particle(fStack->Particle(fLabelMC)->GetFirstMother())->GetPdgCode();
+ }
+ }
+
CheckCurrentMuonTrackable();
if (fMuonTrackReco->GetMatchTrigger()) fCountRealTracksWithRefMC_andTrigger++;
Double_t(nFinalTracks),
Double_t(fLabelMC>=0),
xVtx, yVtx, zVtx,
+ motherPdg,
Double_t(fMuonTrackReco->GetMatchTrigger()),
Double_t(nClustersMC),
Double_t(nGoodClusters),
Double_t(nFinalTracks),
Double_t(fLabelMC>=0),
xVtx, yVtx, zVtx,
+ motherPdg,
Double_t(fMuonTrackReco->GetMatchTrigger()),
Double_t(nClustersMC),
Double_t(nGoodClustersBestCandidate),
}
- fNtuFinalCandidates = new TNtuple("ntuFinalCandidates", "Final Candidates (ALL)", "run:event:muonTrack:nFinalCandidates:MCTrackRefExists:xVtx:yVtx:zVtx:triggerMatch:nClustersMC:nGoodClusters:pt:theta:eta:chi2AtPlane0:chi2AtPlane1:chi2AtPlane2:chi2AtPlane3:chi2AtPlane4:chi2AtPlane5:chi2AtPlane6:chi2AtPlane7:chi2AtPlane8");
+ fNtuFinalCandidates = new TNtuple("ntuFinalCandidates", "Final Candidates (ALL)", "run:event:muonTrack:nFinalCandidates:MCTrackRefExists:xVtx:yVtx:zVtx:motherPdg:triggerMatch:nClustersMC:nGoodClusters:pt:theta:eta:chi2AtPlane0:chi2AtPlane1:chi2AtPlane2:chi2AtPlane3:chi2AtPlane4:chi2AtPlane5:chi2AtPlane6:chi2AtPlane7:chi2AtPlane8");
- fNtuFinalBestCandidates = new TNtuple("ntuFinalBestCandidates", "Final Best Candidates", "run:event:muonTrack:nFinalCandidates:MCTrackRefExists:xVtx:yVtx:zVtx:triggerMatch:nClustersMC:nGoodClusters:pt:theta:eta:chi2AtPlane0:chi2AtPlane1:chi2AtPlane2:chi2AtPlane3:chi2AtPlane4:chi2AtPlane5:chi2AtPlane6:chi2AtPlane7:chi2AtPlane8:nClustersAtPlane0:nClustersAtPlane1:nClustersAtPlane2:nClustersAtPlane3:nClustersAtPlane4:nClustersAtPlane5:nClustersAtPlane6:nClustersAtPlane7:nClustersAtPlane8");
+ fNtuFinalBestCandidates = new TNtuple("ntuFinalBestCandidates", "Final Best Candidates", "run:event:muonTrack:nFinalCandidates:MCTrackRefExists:xVtx:yVtx:zVtx:motherPdg:triggerMatch:nClustersMC:nGoodClusters:pt:theta:eta:chi2AtPlane0:chi2AtPlane1:chi2AtPlane2:chi2AtPlane3:chi2AtPlane4:chi2AtPlane5:chi2AtPlane6:chi2AtPlane7:chi2AtPlane8:nClustersAtPlane0:nClustersAtPlane1:nClustersAtPlane2:nClustersAtPlane3:nClustersAtPlane4:nClustersAtPlane5:nClustersAtPlane6:nClustersAtPlane7:nClustersAtPlane8");
}
enum PDCProc_t {kGenBox,
kGenMuonLMR,
+ kGenPionKaon,
kGenCorrHF,
kPythia6,
kPythiaPerugia0,
const Char_t* pprRunName[] = {"kGenBox",
"kGenMuonLMR",
+ "kGenPionKaon",
"kGenCorrHF",
"kPythia6",
"kPythiaPerugia0",
void LoadLibs();
// ----------------------- Generator, field, beam energy,... ------------------------------------------------------------
-static PDCProc_t proc = kGenBox;
+static PDCProc_t proc = kGenPionKaon;
static PDCProc_t signal = kGenBox; // only in case kHijing2500Cocktail is the proc
static Mag_t mag = k5kG;
static Float_t energy = 14000.; // energy in CMS
else if (proc == kGenBox) gener = GenBox();
else if (proc == kGenMuonLMR) gener = GenMuonLMR();
else if (proc == kGenCorrHF) gener = GenCorrHF();
+ else if (proc == kGenPionKaon) gener = GenParamPionKaon();
// Size of the interaction diamond
Float_t sigmaz = 5.4 / TMath::Sqrt(2.); // [cm]
}
if (iPIPE) {
// AliPIPE *PIPE = new AliPIPEv3("PIPE", "Beam Pipe");
- AliPIPE *PIPE = new AliPIPEv4("PIPE", "Beam Pipe", 1.98, 0.08); // cylindre with new adaptator pipe
+ AliPIPE *PIPE = new AliPIPEv4("PIPE", "Beam Pipe", 1.98, 0.08);
}
if (iZDC) {
AliZDC *ZDC = new AliZDCv3("ZDC", "normal ZDC");
//====================================================================================================================================================
+AliGenerator* GenParamPionKaon() {
+
+ AliGenParamPionsKaons *gener = new AliGenParamPionsKaons(100,"$ALICE_ROOT/MFT/PionKaonKinematics.root");
+ gener->SetPtRange(0, 5.);
+ gener->SetPhiRange(0., 360.);
+ gener->SetYRange(-10., 0.);
+ gener->SetOrigin(0.0, 0.0, 0.0); // vertex position
+ gener->SetSigma(0.0, 0.0, 0.0); // vertex position smearing
+ // gener->SetCutOnChild(1);
+
+ return gener;
+
+}
+
+//====================================================================================================================================================
+
AliGenerator* GenCorrHF() {
AliGenCorrHF *gener = new AliGenCorrHF(1, 4, 14); // for charm, 1 pair per event