AliAnalysisTaskLambdaOverK0sJets::AliAnalysisTaskLambdaOverK0sJets(const char *name) :
AliAnalysisTaskSE(name),
- fAOD(0),
- fIsMC(kFALSE),
- fUsePID(kFALSE),
- fCentMin(0.),
- fCentMax(90.),
- fTrigPtMin(8.),
- fTrigPtMax(20.),
- fTrigEtaMax(0.8),
- fSeparateInjPart(kTRUE),
- fEndOfHijingEvent(-1),
- fPIDResponse(0),
-
- fMinPtDaughter(0.160),
- fMaxEtaDaughter(0.8),
- fMaxDCADaughter(1.0),
- fYMax(0.5),
- fDCAToPrimVtx(0.1),
- fMinCPA(0.998),
- fNSigma(3.0),
- fMinCtau(0.),
- fMaxCtau(3.),
-
- fOutput(0),
-
- fEvents(0),
- fCentrality(0),
- fPrimaryVertexX(0),
- fPrimaryVertexY(0),
- fPrimaryVertexZ(0),
- fNumberPileUp(0),
- fCentMult(0),
- fdEdx(0),
- fdEdxPid(0),
+ fAOD(0), fIsMC(kFALSE), fUsePID(kFALSE), fCentMin(0.), fCentMax(90.), fDoQA(kFALSE), fTrigPtMin(8.), fTrigPtMax(20.), fTrigEtaMax(0.8), fCheckIDTrig(kFALSE), fSeparateInjPart(kTRUE), fEndOfHijingEvent(-1), fPIDResponse(0),
+
+ fMinPtDaughter(0.160), fMaxEtaDaughter(0.8), fMaxDCADaughter(1.0), fYMax(0.5), fDCAToPrimVtx(0.1), fMinCPA(0.998), fNSigma(3.0), fMinCtau(0.), fMaxCtau(3.),
+
+ fOutput(0), fOutputQA(0), fEvents(0), fCentrality(0), fPrimaryVertexX(0), fPrimaryVertexY(0), fPrimaryVertexZ(0), fNumberPileUp(0), fCentMult(0), fdEdx(0), fdEdxPid(0),
fTriggerMCPtCent(0),
fTriggerPtCent(0),
fCheckTriggerFromV0Daug(0),
fTriggerComingFromDaug(0),
fTriggerIsV0(0),
+ fCheckIDTrigPtK0s(0),
+ fCheckIDTrigPhiK0s(0),
+ fCheckIDTrigPtLambda(0),
+ fCheckIDTrigPhiLambda(0),
fInjectedParticles(0),
fLambdaBckgPhiRadio(0),
fLambdaBckgDCANegDaugToPrimVtx(0),
fLambdaBckgDCAPosDaugToPrimVtx(0),
- fLambdaMassCascade(0)
+ fLambdaMassCascade(0),
+
+ fK0sPIDPosDaug(0), fK0sPIDNegDaug(0), fK0sBckgPIDPosDaug(0), fK0sBckgPIDNegDaug(0), fK0sPhiEtaPosDaug(0), fK0sPhiEtaNegDaug(0), fK0sBckgPhiEtaPosDaug(0), fK0sBckgPhiEtaNegDaug(0), fK0sDCAPosDaug(0), fK0sDCANegDaug(0), fK0sBckgDCAPosDaug(0), fK0sBckgDCANegDaug(0), fK0sDifPtPosDaug(0), fK0sDifPtNegDaug(0), fK0sBckgDifPtPosDaug(0), fK0sBckgDifPtNegDaug(0), fK0sDecayPos(0), fK0sBckgDecayPos(0), fK0sDecayVertex(0), fK0sBckgDecayVertex(0), fK0sDecayVertexZoom(0), fK0sBckgDecayVertexZoom(0), fK0sCPA(0), fK0sBckgCPA(0), fK0sDCAV0Daug(0), fK0sBckgDCAV0Daug(0),
+ fLambdaPIDPosDaug(0), fLambdaPIDNegDaug(0), fLambdaBckgPIDPosDaug(0), fLambdaBckgPIDNegDaug(0), fLambdaPhiEtaPosDaug(0),fLambdaPhiEtaNegDaug(0), fLambdaBckgPhiEtaPosDaug(0),fLambdaBckgPhiEtaNegDaug(0), fLambdaDCAPosDaug(0),fLambdaDCANegDaug(0), fLambdaBckgDCAPosDaug(0), fLambdaBckgDCANegDaug(0), fLambdaDifPtPosDaug(0), fLambdaDifPtNegDaug(0), fLambdaBckgDifPtPosDaug(0), fLambdaBckgDifPtNegDaug(0), fLambdaDecayPos(0), fLambdaBckgDecayPos(0), fLambdaDecayVertex(0), fLambdaBckgDecayVertex(0), fLambdaDecayVertexZoom(0), fLambdaBckgDecayVertexZoom(0), fLambdaCPA(0), fLambdaBckgCPA(0), fLambdaDCAV0Daug(0), fLambdaBckgDCAV0Daug(0)
{
// Dummy Constructor
// Constructor. Initialization of pointers
DefineOutput(1, TList::Class());
+ DefineOutput(2, TList::Class());
+
}
fOutput = new TList();
fOutput->SetOwner();
+ fOutputQA = new TList();
+ fOutputQA->SetOwner();
+
// ====== General characteristics of the event and tracks ====== //
// Counter for the number of events in each step:
fTriggerIsV0->GetYaxis()->SetTitle("Counts");
fOutput->Add(fTriggerIsV0);
+ fCheckIDTrigPtK0s
+ = new TH3F("fCheckIDTrigPtK0s","K^{0}_{S}",200,-10.,10.,3,-0.5,2.5,100,1.,6.);
+ fOutput->Add(fCheckIDTrigPtK0s);
+
+ fCheckIDTrigPhiK0s
+ = new TH3F("fCheckIDTrigPhiK0s","K^{0}_{S}",100,-2*TMath::Pi(),2*TMath::Pi(),3,-0.5,2.5,100,1.,6.);
+ fOutput->Add(fCheckIDTrigPhiK0s);
+
+ fCheckIDTrigPtLambda
+ = new TH3F("fCheckIDTrigPtLambda","#Lambda",200,-10.,10.,3,-0.5,2.5,100.,1.,6.);
+ fOutput->Add(fCheckIDTrigPtLambda);
+
+ fCheckIDTrigPhiLambda
+ = new TH3F("fCheckIDTrigPhiLambda","#Lambda",100,-2*TMath::Pi(),2*TMath::Pi(),3,-0.5,2.5,100.,1.,6.);
+ fOutput->Add(fCheckIDTrigPhiLambda);
+
// ====== MC-true and MC-Association information ====== //
if(fIsMC){
fLambdaMassCascade->GetYaxis()->SetTitle("Cascade type");
fOutput->Add(fLambdaMassCascade);
-
- //----------------------
+ // ============================================================= //
+
+ if(fDoQA){
+
+
+ // Quality Assurance K0s:
+ // Track PID :
+ // --- signal ---
+ fK0sPIDPosDaug =
+ new TH3F("fK0sPIDPosDaug","K^{0}_{S}: dE/dx Pos. Daug.",50,0.2,3,50,0.,6.,nbins,pMin,pMax);
+ fK0sPIDPosDaug->GetXaxis()->SetTitle("TPC Momentum (GeV/c)");
+ fK0sPIDPosDaug->GetYaxis()->SetTitle("a.u.");
+ fK0sPIDPosDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sPIDPosDaug);
+
+ fK0sPIDNegDaug =
+ new TH3F("fK0sPIDNegDaug","K^{0}_{S}: dE/dx Neg. Daug.",50,0.2,3,50,0.,6.,nbins,pMin,pMax);
+ fK0sPIDNegDaug->GetXaxis()->SetTitle("TPC Momentum (GeV/c)");
+ fK0sPIDNegDaug->GetYaxis()->SetTitle("a.u.");
+ fK0sPIDNegDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sPIDNegDaug);
+
+ // --- background ---
+ fK0sBckgPIDPosDaug =
+ new TH3F("fK0sBckgPIDPosDaug","K^{0}_{S} Bckg: dE/dx Pos. Daug.",50,0.2,3,50,0.,6.,nbins,pMin,pMax);
+ fK0sBckgPIDPosDaug->GetXaxis()->SetTitle("TPC Momentum (GeV/c)");
+ fK0sBckgPIDPosDaug->GetYaxis()->SetTitle("a.u.");
+ fK0sBckgPIDPosDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgPIDPosDaug);
+
+ fK0sBckgPIDNegDaug =
+ new TH3F("fK0sBckgPIDNegDaug","K^{0}_{S} Bckg: dE/dx Neg. Daug.",50,0.2,3,50,0.,6.,nbins,pMin,pMax);
+ fK0sBckgPIDNegDaug->GetXaxis()->SetTitle("TPC Momentum (GeV/c)");
+ fK0sBckgPIDNegDaug->GetYaxis()->SetTitle("a.u.");
+ fK0sBckgPIDNegDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgPIDNegDaug);
+
+ // Phi Eta
+ // --- signal ---
+ fK0sPhiEtaPosDaug =
+ new TH3F("fK0sPhiEtaPosDaug","K^{0}_{S}: #phi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
+ fK0sPhiEtaPosDaug->GetXaxis()->SetTitle("#phi");
+ fK0sPhiEtaPosDaug->GetYaxis()->SetTitle("#eta");
+ fK0sPhiEtaPosDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sPhiEtaPosDaug);
+
+ fK0sPhiEtaNegDaug =
+ new TH3F("fK0sPhiEtaNegDaug","K^{0}_{S}: #phi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
+ fK0sPhiEtaNegDaug->GetXaxis()->SetTitle("#phi");
+ fK0sPhiEtaNegDaug->GetYaxis()->SetTitle("#eta");
+ fK0sPhiEtaNegDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sPhiEtaNegDaug);
+
+ // --- background ---
+ fK0sBckgPhiEtaPosDaug =
+ new TH3F("fK0sBckgPhiEtaPosDaug","K^{0}_{S} Bckg: #phi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
+ fK0sBckgPhiEtaPosDaug->GetXaxis()->SetTitle("#phi");
+ fK0sBckgPhiEtaPosDaug->GetYaxis()->SetTitle("#eta");
+ fK0sBckgPhiEtaPosDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgPhiEtaPosDaug);
+
+ fK0sBckgPhiEtaNegDaug =
+ new TH3F("fK0sBckgPhiEtaNegDaug","K^{0}_{S} Bckg: #phi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
+ fK0sBckgPhiEtaNegDaug->GetXaxis()->SetTitle("#phi");
+ fK0sBckgPhiEtaNegDaug->GetYaxis()->SetTitle("#eta");
+ fK0sBckgPhiEtaNegDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgPhiEtaNegDaug);
+
+ // Distance of closest approach
+ // --- signal ---
+ fK0sDCAPosDaug =
+ new TH2F("fK0sDCAPosDaug","K^{0}_{S}: dca Pos",90,0.,3.3,nbins,pMin,pMax);
+ fK0sDCAPosDaug->GetXaxis()->SetTitle("dca");
+ fK0sDCAPosDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sDCAPosDaug);
+
+ fK0sDCANegDaug =
+ new TH2F("fK0sDCANegDaug","K^{0}_{S}: dca Neg",90,0.,3.3,nbins,pMin,pMax);
+ fK0sDCANegDaug->GetXaxis()->SetTitle("dca");
+ fK0sDCANegDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sDCANegDaug);
+
+ // --- background ---
+ fK0sBckgDCAPosDaug =
+ new TH2F("fK0sBckgDCAPosDaug","K^{0}_{S} Bckg: dca Pos",90,0.,3.3,nbins,pMin,pMax);
+ fK0sBckgDCAPosDaug->GetXaxis()->SetTitle("dca");
+ fK0sBckgDCAPosDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgDCAPosDaug);
+
+ fK0sBckgDCANegDaug =
+ new TH2F("fK0sBckgDCANegDaug","K^{0}_{S} Bckg: dca Neg",90,0.,3.3,nbins,pMin,pMax);
+ fK0sBckgDCANegDaug->GetXaxis()->SetTitle("dca");
+ fK0sBckgDCANegDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgDCANegDaug);
+
+ // Difference in momentum
+ // --- signal ---
+ fK0sDifPtPosDaug =
+ new TH2F("fK0sDifPtPosDaug","K^{0}_{S}: dif. p_{T}",90,0.,3.3,nbins,pMin,pMax);
+ fK0sDifPtPosDaug->GetXaxis()->SetTitle("#Delta p_{T}");
+ fK0sDifPtPosDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sDifPtPosDaug);
+
+ fK0sDifPtNegDaug =
+ new TH2F("fK0sDifPtNegDaug","K^{0}_{S}: dif. p_{T}",90,0.,3.3,nbins,pMin,pMax);
+ fK0sDifPtNegDaug->GetXaxis()->SetTitle("#Delta p_{T}");
+ fK0sDifPtNegDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sDifPtNegDaug);
+
+ // --- background ---
+ fK0sBckgDifPtPosDaug =
+ new TH2F("fK0sBckgDifPtPosDaug","K^{0}_{S} Bckg: dif. p_{T}",90,0.,3.3,nbins,pMin,pMax);
+ fK0sBckgDifPtPosDaug->GetXaxis()->SetTitle("#Delta p_{T}");
+ fK0sBckgDifPtPosDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgDifPtPosDaug);
+
+ fK0sBckgDifPtNegDaug =
+ new TH2F("fK0sBckgDifPtNegDaug","K^{0}_{S} Bckg: dif. p_{T}",90,0.,3.3,nbins,pMin,pMax);
+ fK0sBckgDifPtNegDaug->GetXaxis()->SetTitle("#Delta p_{T}");
+ fK0sBckgDifPtNegDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgDifPtNegDaug);
+
+
+ // Decay vertex reconstruction
+ // --- signal ---
+ fK0sDecayPos =
+ new TH3F("fK0sDecayPos","K^{0}_{S}: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
+ fK0sDecayPos->GetXaxis()->SetTitle("Pos. X");
+ fK0sDecayPos->GetYaxis()->SetTitle("Pos. Y");
+ fK0sDecayPos->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sDecayPos);
+
+ fK0sDecayVertex =
+ new TH2F("fK0sDecayVertex","K^{0}_{S}: decay lenght",100,0.,100.,nbins,pMin,pMax);
+ fK0sDecayVertex->GetXaxis()->SetTitle("l_{T}");
+ fK0sDecayVertex->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sDecayVertex);
+
+ fK0sDecayVertexZoom =
+ new TH2F("fK0sDecayVertexZoom","K^{0}_{S}: decay lenght",20,0.,1.,nbins,pMin,pMax);
+ fK0sDecayVertexZoom->GetXaxis()->SetTitle("l_{T}");
+ fK0sDecayVertexZoom->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sDecayVertexZoom);
+
+ // --- background ---
+ fK0sBckgDecayPos =
+ new TH3F("fK0sBckgDecayPos","K^{0}_{S}: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
+ fK0sBckgDecayPos->GetXaxis()->SetTitle("Pos. X");
+ fK0sBckgDecayPos->GetYaxis()->SetTitle("Pos. Y");
+ fK0sBckgDecayPos->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgDecayPos);
+
+ fK0sBckgDecayVertex =
+ new TH2F("fK0sBckgDecayVertex","K^{0}_{S} Bckg: decay vertex",100,0.,100.,nbins,pMin,pMax);
+ fK0sBckgDecayVertex->GetXaxis()->SetTitle("l_{T}");
+ fK0sBckgDecayVertex->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgDecayVertex);
+
+ fK0sBckgDecayVertexZoom =
+ new TH2F("fK0sBckgDecayVertexZoom","K^{0}_{S} Bckg: decay lenght",20,0.,1.,nbins,pMin,pMax);
+ fK0sBckgDecayVertexZoom->GetXaxis()->SetTitle("l_{T}");
+ fK0sBckgDecayVertexZoom->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgDecayVertexZoom);
+
+ // Cosine of the Pointing Angle
+ // --- signal ---
+ fK0sCPA =
+ new TH2F("fK0sCPA","K^{0}_{S}: cosine of the pointing angle",100,0.9,1.,nbins,pMin,pMax);
+ fK0sCPA->GetXaxis()->SetTitle("cpa");
+ fK0sCPA->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sCPA);
+ // --- background ---
+ fK0sBckgCPA =
+ new TH2F("fK0sBckgCPA","K^{0}_{S} Bckg: cosine of the pointing angle",100,0.9,1.,nbins,pMin,pMax);
+ fK0sBckgCPA->GetXaxis()->SetTitle("cpa");
+ fK0sBckgCPA->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgCPA);
+
+ // DCA between daughters
+ // --- signal ---
+ fK0sDCAV0Daug =
+ new TH2F("fK0sDCAV0Daug","K^{0}_{S}: DCA daughters",60,0,1.2,nbins,pMin,pMax);
+ fK0sDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
+ fK0sDCAV0Daug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sDCAV0Daug);
+ // --- background ---
+ fK0sBckgDCAV0Daug =
+ new TH2F("fK0sBckgDCAV0Daug","K^{0}_{S} Bckg: DCA daughters",60,0,1.2,nbins,pMin,pMax);
+ fK0sBckgDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
+ fK0sBckgDCAV0Daug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fK0sBckgDCAV0Daug);
+
+ // Quality Assurance Lambda:
+ // Track PID :
+ // --- signal ---
+ fLambdaPIDPosDaug =
+ new TH3F("fLambdaPIDPosDaug","#Lambda: dE/dx Pos. Daug.",50,0.2,3,50,0.,6.,nbins,pMin,pMax);
+ fLambdaPIDPosDaug->GetXaxis()->SetTitle("TPC Momentum (GeV/c)");
+ fLambdaPIDPosDaug->GetYaxis()->SetTitle("a.u.");
+ fLambdaPIDPosDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaPIDPosDaug);
+
+ fLambdaPIDNegDaug =
+ new TH3F("fLambdaPIDNegDaug","#Lambda: dE/dx Neg. Daug.",50,0.2,3,50,0.,6.,nbins,pMin,pMax);
+ fLambdaPIDNegDaug->GetXaxis()->SetTitle("TPC Momentum (GeV/c)");
+ fLambdaPIDNegDaug->GetYaxis()->SetTitle("a.u.");
+ fLambdaPIDNegDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaPIDNegDaug);
+
+ // --- background ---
+ fLambdaBckgPIDPosDaug =
+ new TH3F("fLambdaBckgPIDPosDaug","#Lambda: dE/dx Pos. Daug.",50,0.2,3,50,0.,6.,nbins,pMin,pMax);
+ fLambdaBckgPIDPosDaug->GetXaxis()->SetTitle("TPC Momentum (GeV/c)");
+ fLambdaBckgPIDPosDaug->GetYaxis()->SetTitle("a.u.");
+ fLambdaBckgPIDPosDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgPIDPosDaug);
+
+ fLambdaBckgPIDNegDaug =
+ new TH3F("fLambdaBckgPIDNegDaug","#Lambda: dE/dx Neg. Daug.",50,0.2,3,50,0.,6.,nbins,pMin,pMax);
+ fLambdaBckgPIDNegDaug->GetXaxis()->SetTitle("TPC Momentum (GeV/c)");
+ fLambdaBckgPIDNegDaug->GetYaxis()->SetTitle("a.u.");
+ fLambdaBckgPIDNegDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgPIDNegDaug);
+
+ // Phi Eta
+ // --- signal ---
+ fLambdaPhiEtaPosDaug =
+ new TH3F("fLambdaPhiEtaPosDaug","#Lambda: #phi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
+ fLambdaPhiEtaPosDaug->GetXaxis()->SetTitle("#phi");
+ fLambdaPhiEtaPosDaug->GetYaxis()->SetTitle("#eta");
+ fLambdaPhiEtaPosDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaPhiEtaPosDaug);
+
+ fLambdaPhiEtaNegDaug =
+ new TH3F("fLambdaPhiEtaNegDaug","#Lambda: #phi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
+ fLambdaPhiEtaNegDaug->GetXaxis()->SetTitle("#phi");
+ fLambdaPhiEtaNegDaug->GetYaxis()->SetTitle("#eta");
+ fLambdaPhiEtaNegDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaPhiEtaNegDaug);
+
+ // --- background ---
+ fLambdaBckgPhiEtaPosDaug =
+ new TH3F("fLambdaBckgPhiEtaPosDaug","#Lambda: #phi vs #eta Pos. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
+ fLambdaBckgPhiEtaPosDaug->GetXaxis()->SetTitle("#phi");
+ fLambdaBckgPhiEtaPosDaug->GetYaxis()->SetTitle("#eta");
+ fLambdaBckgPhiEtaPosDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgPhiEtaPosDaug);
+
+ fLambdaBckgPhiEtaNegDaug =
+ new TH3F("fLambdaBckgPhiEtaNegDaug","#Lambda: #phi vs #eta Neg. Daug.",nbinsPhi,0.,2.*TMath::Pi(),100,-1.,1.,nbins,pMin,pMax);
+ fLambdaBckgPhiEtaNegDaug->GetXaxis()->SetTitle("#phi");
+ fLambdaBckgPhiEtaNegDaug->GetYaxis()->SetTitle("#eta");
+ fLambdaBckgPhiEtaNegDaug->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgPhiEtaNegDaug);
+
+ // Distance of closest approach
+ // --- signal ---
+ fLambdaDCAPosDaug =
+ new TH2F("fLambdaDCAPosDaug","#Lambda: dca Pos",90,0.,3.3,nbins,pMin,pMax);
+ fLambdaDCAPosDaug->GetXaxis()->SetTitle("dca");
+ fLambdaDCAPosDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaDCAPosDaug);
+
+ fLambdaDCANegDaug =
+ new TH2F("fLambdaDCANegDaug","#Lambda: dca Neg",90,0.,3.3,nbins,pMin,pMax);
+ fLambdaDCANegDaug->GetXaxis()->SetTitle("dca");
+ fLambdaDCANegDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaDCANegDaug);
+
+ // --- background ---
+ fLambdaBckgDCAPosDaug =
+ new TH2F("fLambdaBckgDCAPosDaug","#Lambda Bckg: dca Pos",90,0.,3.3,nbins,pMin,pMax);
+ fLambdaBckgDCAPosDaug->GetXaxis()->SetTitle("dca");
+ fLambdaBckgDCAPosDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgDCAPosDaug);
+
+ fLambdaBckgDCANegDaug =
+ new TH2F("fLambdaBckgDCANegDaug","#Lambda Bckg: dca Neg",90,0.,3.3,nbins,pMin,pMax);
+ fLambdaBckgDCANegDaug->GetXaxis()->SetTitle("dca");
+ fLambdaBckgDCANegDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgDCANegDaug);
+
+ // Difference in momentum
+ // --- signal ---
+ fLambdaDifPtPosDaug =
+ new TH2F("fLambdaDifPtPosDaug","#Lambda: dif. p_{T} Pos",90,0.,3.3,nbins,pMin,pMax);
+ fLambdaDifPtPosDaug->GetXaxis()->SetTitle("#Delta p_{T}");
+ fLambdaDifPtPosDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaDifPtPosDaug);
+
+ fLambdaDifPtNegDaug =
+ new TH2F("fLambdaDifPtNegDaug","#Lambda: dif. p_{T} Neg",90,0.,3.3,nbins,pMin,pMax);
+ fLambdaDifPtNegDaug->GetXaxis()->SetTitle("#Delta p_{T}");
+ fLambdaDifPtNegDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaDifPtNegDaug);
+
+ // --- background ---
+ fLambdaBckgDifPtPosDaug =
+ new TH2F("fLambdaBckgDifPtPosDaug","#Lambda Bckg: dif. p_{T} Pos.",90,0.,3.3,nbins,pMin,pMax);
+ fLambdaBckgDifPtPosDaug->GetXaxis()->SetTitle("#Delta p_{T}");
+ fLambdaBckgDifPtPosDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgDifPtPosDaug);
+
+ fLambdaBckgDifPtNegDaug =
+ new TH2F("fLambdaBckgDifPtNegDaug","#Lambda Bckg: dif. p_{t} Neg",90,0.,3.3,nbins,pMin,pMax);
+ fLambdaBckgDifPtNegDaug->GetXaxis()->SetTitle("#Delta p_{T}");
+ fLambdaBckgDifPtNegDaug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgDifPtNegDaug);
+
+
+ // Decay vertex reconstruction
+ // --- signal ---
+ fLambdaDecayPos =
+ new TH3F("fLambdaDecayPos","#Lambda: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
+ fLambdaDecayPos->GetXaxis()->SetTitle("Pos. X");
+ fLambdaDecayPos->GetYaxis()->SetTitle("Pos. Y");
+ fLambdaDecayPos->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaDecayPos);
+
+ fLambdaDecayVertex =
+ new TH2F("fLambdaDecayVertex","#Lambda: decay lenght",100,0.,100.,nbins,pMin,pMax);
+ fLambdaDecayVertex->GetXaxis()->SetTitle("l_{T}");
+ fLambdaDecayVertex->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaDecayVertex);
+
+ fLambdaDecayVertexZoom =
+ new TH2F("fLambdaDecayVertexZoom","#Lambda: decay lenght",20,0.,1.,nbins,pMin,pMax);
+ fLambdaDecayVertexZoom->GetXaxis()->SetTitle("l_{T}");
+ fLambdaDecayVertexZoom->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaDecayVertexZoom);
+
+ // --- background ---
+ fLambdaBckgDecayPos =
+ new TH3F("fLambdaBckgDecayPos","#Lambda Bckg: Position of Dec. Vtx",200,-100.,100.,200,-100.,100.,nbins,pMin,pMax);
+ fLambdaBckgDecayPos->GetXaxis()->SetTitle("Pos. X");
+ fLambdaBckgDecayPos->GetYaxis()->SetTitle("Pos. Y");
+ fLambdaBckgDecayPos->GetZaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgDecayPos);
+
+ fLambdaBckgDecayVertex =
+ new TH2F("fLambdaBckgDecayVertex","#Lambda Bckg: decay lenght",100,0.,100.,nbins,pMin,pMax);
+ fLambdaBckgDecayVertex->GetXaxis()->SetTitle("l_{T}");
+ fLambdaBckgDecayVertex->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgDecayVertex);
+
+ fLambdaBckgDecayVertexZoom =
+ new TH2F("fLambdaBckgDecayVertexZoom","#Lambda Bckg: decay lenght",20,0.,1.,nbins,pMin,pMax);
+ fLambdaBckgDecayVertexZoom->GetXaxis()->SetTitle("l_{T}");
+ fLambdaBckgDecayVertexZoom->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgDecayVertexZoom);
+
+ // Cosine of the Pointing Angle
+ // --- signal ---
+ fLambdaCPA =
+ new TH2F("fLambdaCPA","#Lambda: cosine of the pointing angle",100,0.9,1.,nbins,pMin,pMax);
+ fLambdaCPA->GetXaxis()->SetTitle("cpa");
+ fLambdaCPA->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaCPA);
+ // --- background ---
+ fLambdaBckgCPA =
+ new TH2F("fLambdaBckgCPA","#Lambda Bckg: cosine of the pointing angle",100,0.9,1.,nbins,pMin,pMax);
+ fLambdaBckgCPA->GetXaxis()->SetTitle("cpa");
+ fLambdaBckgCPA->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgCPA);
+
+ // DCA between daughters
+ // --- signal ---
+ fLambdaDCAV0Daug =
+ new TH2F("fLambdaDCAV0Daug","#Lambda: DCA daughters",60,0,1.2,nbins,pMin,pMax);
+ fLambdaDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
+ fLambdaDCAV0Daug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaDCAV0Daug);
+ // --- background ---
+ fLambdaBckgDCAV0Daug =
+ new TH2F("fLambdaBckgDCAV0Daug","#Lambda Bckg: DCA daughters",60,0,1.2,nbins,pMin,pMax);
+ fLambdaBckgDCAV0Daug->GetXaxis()->SetTitle("dca between daughters");
+ fLambdaBckgDCAV0Daug->GetYaxis()->SetTitle("p_{T} V0");
+ fOutputQA->Add(fLambdaBckgDCAV0Daug);
+
+ }
+
+
+ // ============================================================= //
PostData(1, fOutput);
+ PostData(2, fOutputQA);
}
//___________________________________________________________________________________________
+/*
static Bool_t AcceptTrack(const AliAODTrack *t)
{
// Track criteria for primaries particles
return kTRUE;
}
-
+*/
//___________________________________________________________________________________________
{
// Local method to compaire the momentum between two tracks
- double const kEpsilon = 0.000001;
+ //double const kEpsilon = 0.000001;
Int_t isSamePt = 0;
+ /*
Double_t p[3]; trk->GetPxPyPz(p);
Double_t pNegTrk[3]; nTrk->GetPxPyPz(pNegTrk);
Double_t pPosTrk[3]; pTrk->GetPxPyPz(pPosTrk);
+
if( ( fabs(p[0]-pNegTrk[0])<kEpsilon &&
fabs(p[1]-pNegTrk[1])<kEpsilon &&
fabs(p[2]-pNegTrk[2])<kEpsilon )
fabs(p[1]-pPosTrk[1])<kEpsilon &&
fabs(p[2]-pPosTrk[2])<kEpsilon ) )
isSamePt = 1;
+ */
+
+
+ if( (TMath::Abs(nTrk->GetID())+1)==(TMath::Abs(trk->GetID())) ||
+ (TMath::Abs(pTrk->GetID())+1)==(TMath::Abs(trk->GetID())) ) isSamePt = 1;
+ /*
+ if( (TMath::Abs(nTrk->GetID()))==(TMath::Abs(trk->GetID())) ||
+ (TMath::Abs(pTrk->GetID()))==(TMath::Abs(trk->GetID())) ) isSamePt = 1;
+ */
+
return isSamePt;
}
noas:
Double_t pPos = -100.;
+ Double_t pNeg = -100.;
Double_t dedxPos = -1000.;
+ Double_t dedxNeg = -1000.;
Double_t nsigPosPion = 0.;
Double_t nsigPosProton = 0.;
if (pidNeg && pidPos) {
pPos = pidPos->GetTPCmomentum();
+ pNeg = pidNeg->GetTPCmomentum();
dedxPos = pidPos->GetTPCsignal()/47.;
+ dedxNeg = pidNeg->GetTPCsignal()/47.;
}
nsigPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ptrack,AliPID::kPion));
Double_t dcaPos = -100.;
Double_t lPtNeg = -100.;
Double_t lPtPos = -100.;
+ Double_t phiNeg = -100.;
+ Double_t phiPos = -100.;
+ Double_t etaNeg = -100.;
+ Double_t etaPos = -100.;
+
+ Double_t dPtPos = -100.;
+ Double_t dPtNeg = -100.;
Double_t dca = -100;
Double_t cpa = -100;
Double_t dPhi = -100.;
Double_t dEta = -100.;
- /*
+ /*
// Good regions
lPhi = v0->Phi();
if(lPhi>0. && lPhi<1.8) continue;
if(lPhi>5.8 && lPhi<6.2) continue;
*/
- if(step==kCorrelation){//Correlation
+ if(step==kCorrelation || fDoQA){//Correlation
dcaNeg = v0->DcaNegToPrimVertex();
dcaPos = v0->DcaPosToPrimVertex();
lPtNeg = ntrack->Pt();
lPtPos = ptrack->Pt();
+ phiPos = ptrack->Phi();
+ phiNeg = ntrack->Phi();
+ etaPos = ptrack->Eta();
+ etaNeg = ntrack->Eta();
+
+ dPtPos = pt - lPtPos;
+ dPtNeg = pt - lPtNeg;
dca = v0->DcaV0Daughters();
cpa = v0->CosPointingAngle(fAOD->GetPrimaryVertex());
lEta = v0->PseudoRapV0();
lPhi = v0->Phi();
-
lPhi = ( (lPhi < 0) ? lPhi + 2*TMath::Pi() : lPhi );
+
dPhi = dPHI(phiTrig,lPhi);
dEta = etaTrig - v0->PseudoRapV0();
radio = TMath::Sqrt(dPhi*dPhi + dEta*dEta);
}
isTrigFromV0daug = isSameTrk;
- if(isTrigFromV0daug)
+ if(isTrigFromV0daug){
Printf(" The LP has the same momentum in X and Y as one of the K0s daughters *** iV0 %d",iV0);
+
+
+ if(fCheckIDTrig){
+ Printf(" The LP has the same momentum in X and Y as one of the K0s daughters *** iV0 %d \n\t\t %d %d %d \n\t\t %lf %lf %lf \n\t\t %lf %lf %lf \n\t\t %lf %lf \n\t\t %lf %lf ",
+ iV0, TMath::Abs( trkTrig->GetID() ),
+ ntrack->GetID() , ptrack->GetID() ,
+ TMath::Abs( ntrack->Px() - trkTrig->Px() ), TMath::Abs( ntrack->Py() - trkTrig->Py() ), TMath::Abs( ntrack->Pz() - trkTrig->Pz() ),
+ TMath::Abs( ptrack->Px() - trkTrig->Px() ), TMath::Abs( ptrack->Py() - trkTrig->Py() ), TMath::Abs( ptrack->Pz() - trkTrig->Pz() ),
+ TMath::Abs( ntrack->Phi() - trkTrig->Phi() ), TMath::Abs( ntrack->Eta() - trkTrig->Eta() ),
+ TMath::Abs( ptrack->Phi() - trkTrig->Phi() ), TMath::Abs( ptrack->Eta() - trkTrig->Eta() )
+ );
+
+
+ Double_t posDeltaPt = ptTrig - ptrack->Pt();
+ Double_t negDeltaPt = ptTrig - ntrack->Pt();
+
+ Double_t posDeltaPhi = phiTrig - ptrack->Phi();
+ Double_t negDeltaPhi = phiTrig - ntrack->Phi();
+
+
+ if( (TMath::Abs(ptrack->GetID())+1)==(TMath::Abs(trkTrig->GetID())) ){
+ fCheckIDTrigPtK0s->Fill(posDeltaPt,0.,pt);
+ fCheckIDTrigPhiK0s->Fill(posDeltaPhi,0.,pt);
+ }
+ else if( (TMath::Abs(ntrack->GetID())+1)==(TMath::Abs(trkTrig->GetID())) ){
+ fCheckIDTrigPtK0s->Fill(negDeltaPt,2.,pt);
+ fCheckIDTrigPhiK0s->Fill(negDeltaPhi,2.,pt);
+ }
+
+ } // End check ID
+ } // Close isTrigFromV0daug
+
}
break; // End K0s selection for TriggerCheck
// Invariant Mass cut
if (TMath::Abs(mK0s-massK0s) < 3*sK0s) {
+ if(fDoQA){ // Quality Assurance
+ fK0sPIDPosDaug->Fill(pPos,dedxPos,pt);
+ fK0sPIDNegDaug->Fill(pNeg,dedxNeg,pt);
+
+ fK0sPhiEtaPosDaug->Fill(phiPos,etaPos,pt);
+ fK0sPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt);
+
+ fK0sDCAPosDaug->Fill(dcaPos,pt);
+ fK0sDCANegDaug->Fill(dcaNeg,pt);
+
+ fK0sDifPtPosDaug->Fill(dPtPos,pt);
+ fK0sDifPtNegDaug->Fill(dPtNeg,pt);
+
+ fK0sDecayPos->Fill(dx,dy,pt);
+ fK0sDecayVertex->Fill(lt,pt);
+
+ if(lt<1.0)
+ fK0sDecayVertexZoom->Fill(lt,pt); //**
+ fK0sCPA->Fill(cpa,pt); //**
+ fK0sDCAV0Daug->Fill(dca,pt); //**
+
+ }// End QA
+
fK0sPtLtSB->Fill(pt,lt);
fK0sEtaPhi->Fill(lPhi,lEta);
if( TMath::Abs(mK0s-massK0s + 6.5*sK0s) < 1.5*sK0s ||
TMath::Abs(mK0s-massK0s - 6.5*sK0s) < 1.5*sK0s ) {
+ if(fDoQA){ // Quality Assurance
+ fK0sBckgPIDPosDaug->Fill(pPos,dedxPos,pt);
+ fK0sBckgPIDNegDaug->Fill(pNeg,dedxNeg,pt);
+
+ fK0sBckgPhiEtaPosDaug->Fill(phiPos,etaPos,pt);
+ fK0sBckgPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt);
+
+ fK0sBckgDCAPosDaug->Fill(dcaPos,pt);
+ fK0sBckgDCANegDaug->Fill(dcaNeg,pt);
+
+ fK0sBckgDifPtPosDaug->Fill(dPtPos,pt);
+ fK0sBckgDifPtNegDaug->Fill(dPtNeg,pt);
+
+ fK0sBckgDecayPos->Fill(dx,dy,pt);
+ fK0sBckgDecayVertex->Fill(lt,pt);
+
+ if(lt<1.0)
+ fK0sBckgDecayVertexZoom->Fill(lt,pt); //**
+ fK0sBckgCPA->Fill(cpa,pt); //**
+ fK0sBckgDCAV0Daug->Fill(dca,pt); //**
+
+ } // End QA
+
fK0sEtaPhi->Fill(lPhi,lEta,-1);
fK0sPtLtSB->Fill(pt,lt,-1);
}
isTrigFromV0daug = isSameTrk;
- if(isTrigFromV0daug)
+ if(isTrigFromV0daug){
Printf(" The LP has the same momentum in X and Y as one of the Lambda daughters *** iV0 %d",iV0);
+
+
+ if(fCheckIDTrig){
+ Printf(" The LP has the same momentum in X and Y as one of the L daughters *** iV0 %d \n\t\t %d %d %d \n\t\t %lf %lf %lf \n\t\t %lf %lf %lf \n\t\t %lf %lf \n\t\t %lf %lf ",
+ iV0, TMath::Abs( trkTrig->GetID() ),
+ ntrack->GetID() , ptrack->GetID() ,
+ TMath::Abs( ntrack->Px() - trkTrig->Px() ), TMath::Abs( ntrack->Py() - trkTrig->Py() ), TMath::Abs( ntrack->Pz() - trkTrig->Pz() ),
+ TMath::Abs( ptrack->Px() - trkTrig->Px() ), TMath::Abs( ptrack->Py() - trkTrig->Py() ), TMath::Abs( ptrack->Pz() - trkTrig->Pz() ),
+ TMath::Abs( ntrack->Phi() - trkTrig->Phi() ), TMath::Abs( ntrack->Eta() - trkTrig->Eta() ),
+ TMath::Abs( ptrack->Phi() - trkTrig->Phi() ), TMath::Abs( ptrack->Eta() - trkTrig->Eta() )
+ );
+
+
+ Double_t posDeltaPt = ptTrig - ptrack->Pt();
+ Double_t negDeltaPt = ptTrig - ntrack->Pt();
+
+ Double_t posDeltaPhi = phiTrig - ptrack->Phi();
+ Double_t negDeltaPhi = phiTrig - ntrack->Phi();
+
+ if( (TMath::Abs(ptrack->GetID())+1)==(TMath::Abs(trkTrig->GetID())) ){
+ fCheckIDTrigPtLambda->Fill(posDeltaPt,0.,pt);
+ fCheckIDTrigPhiLambda->Fill(posDeltaPhi,0.,pt);
+ }
+ else if( (TMath::Abs(ntrack->GetID())+1)==(TMath::Abs(trkTrig->GetID())) ){
+ fCheckIDTrigPtLambda->Fill(negDeltaPt,2.,pt);
+ fCheckIDTrigPhiLambda->Fill(negDeltaPhi,2.,pt);
+ }
+
+ } // End check ID
+ } // Close isTrigFromV0daug
+
}
break; // End Lambda selection for TriggerCheck
if( lPtArmV0 < TMath::Abs(0.2*lAlphaV0) )
fLambdaMass->Fill(massLambda,pt,2);
-
if(pt>2. && pt<5.)
fLambdaMassPtPhi->Fill(massLambda,pt,lPhi);
// Invariant Mass cut
if (TMath::Abs(mLambda-massLambda) < 3*sLambda) {
+ if(fDoQA){ // Quality Assurance
+ fLambdaPIDPosDaug->Fill(pPos,dedxPos,pt);
+ fLambdaPIDNegDaug->Fill(pNeg,dedxNeg,pt);
+
+ fLambdaPhiEtaPosDaug->Fill(phiPos,etaPos,pt);
+ fLambdaPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt);
+
+ fLambdaDCAPosDaug->Fill(dcaPos,pt);
+ fLambdaDCANegDaug->Fill(dcaNeg,pt);
+
+ fLambdaDifPtPosDaug->Fill(dPtPos,pt);
+ fLambdaDifPtNegDaug->Fill(dPtNeg,pt);
+
+ fLambdaDecayPos->Fill(dx,dy,pt);
+ fLambdaDecayVertex->Fill(lt,pt);
+
+ if(lt<1.0)
+ fLambdaDecayVertexZoom->Fill(lt,pt); //**
+ fLambdaCPA->Fill(cpa,pt); //**
+ fLambdaDCAV0Daug->Fill(dca,pt); //**
+
+ } //End QA
+
fDCA->Fill(dca,1);
fCPA->Fill(cpa,1);
fLambdaPtLtSB->Fill(pt,lt);
if( (TMath::Abs(mLambda-massLambda + 6.5*sLambda) < 1.5*sLambda) ||
(TMath::Abs(mLambda-massLambda - 6.5*sLambda) < 1.5*sLambda) ){
+ if(fDoQA){ // Quality Assurance
+ fLambdaBckgPIDPosDaug->Fill(pPos,dedxPos,pt);
+ fLambdaBckgPIDNegDaug->Fill(pNeg,dedxNeg,pt);
+
+ fLambdaBckgPhiEtaPosDaug->Fill(phiPos,etaPos,pt);
+ fLambdaBckgPhiEtaNegDaug->Fill(phiNeg,etaNeg,pt);
+
+ fLambdaBckgDCAPosDaug->Fill(dcaPos,pt);
+ fLambdaBckgDCANegDaug->Fill(dcaNeg,pt);
+
+ fLambdaBckgDifPtPosDaug->Fill(dPtPos,pt);
+ fLambdaBckgDifPtNegDaug->Fill(dPtNeg,pt);
+
+ fLambdaBckgDecayPos->Fill(dx,dy,pt);
+ fLambdaBckgDecayVertex->Fill(lt,pt);
+
+ if(lt<1.0)
+ fLambdaBckgDecayVertexZoom->Fill(lt,pt); //**
+ fLambdaBckgCPA->Fill(cpa,pt); //**
+ fLambdaBckgDCAV0Daug->Fill(dca,pt); //**
+
+ }
+
fCPA->Fill(cpa,-1);
fDCA->Fill(dca,-1);
fLambdaPtLtSB->Fill(pt,lt,-1);
}
isTrigFromV0daug = isSameTrk;
- if(isTrigFromV0daug)
+ if(isTrigFromV0daug){
Printf(" The LP has the same momentum in X and Y as one of the AntiLambda daughters *** iV0 %d",iV0);
+
+ if(fCheckIDTrig){
+ Printf(" The LP has the same momentum in X and Y as one of the AL daughters *** iV0 %d \n\t\t %d %d %d \n\t\t %lf %lf %lf \n\t\t %lf %lf %lf \n\t\t %lf %lf \n\t\t %lf %lf ",
+ iV0, TMath::Abs( trkTrig->GetID() ),
+ ntrack->GetID() , ptrack->GetID() ,
+ TMath::Abs( ntrack->Px() - trkTrig->Px() ), TMath::Abs( ntrack->Py() - trkTrig->Py() ), TMath::Abs( ntrack->Pz() - trkTrig->Pz() ),
+ TMath::Abs( ptrack->Px() - trkTrig->Px() ), TMath::Abs( ptrack->Py() - trkTrig->Py() ), TMath::Abs( ptrack->Pz() - trkTrig->Pz() ),
+ TMath::Abs( ntrack->Phi() - trkTrig->Phi() ), TMath::Abs( ntrack->Eta() - trkTrig->Eta() ),
+ TMath::Abs( ptrack->Phi() - trkTrig->Phi() ), TMath::Abs( ptrack->Eta() - trkTrig->Eta() )
+ );
+
+ }// End CheckTrigger
+
+ }
}
break; // End Lambda selection for Correlation
AliAODTrack *t = fAOD->GetTrack(i);
if (t->IsMuonTrack()) continue;
- if (!t->IsOn(AliAODTrack::kTPCrefit)) continue;
- if (!AcceptTrack(t)) continue;
-
- Double_t xyz[3];
- // position of first point on track or dca
- if (t->GetPosition(xyz)) continue;
- if (TMath::Abs(xyz[0])>3.) continue;
- if (TMath::Abs(xyz[1])>3.) continue;
-
Double_t pt=t->Pt(),pz=t->Pz();
if (TMath::Abs(pz/pt)>0.8) continue;
if (TMath::Abs(t->Eta())>0.8 ) continue;
- /// Do I need another cuts for the primary tracks?
+ if (!(t->TestFilterMask(1<<7))) continue;
+
if(pt>ptTrigger) {
ptTrigger = pt;
AliAODTrack *t=fAOD->GetTrack(i);
if (t->IsMuonTrack()) continue;
- if (!t->IsOn(AliAODTrack::kTPCrefit)) continue;
- if (!AcceptTrack(t)) continue;
-
- Double_t xyz[3];
- // position of first point on track or dca
- if (t->GetPosition(xyz)) continue;
- if (TMath::Abs(xyz[0])>3.) continue;
- if (TMath::Abs(xyz[1])>3.) continue;
-
Double_t pt=t->Pt(),pz=t->Pz();
if (TMath::Abs(pz/pt)>0.8) continue;
if (TMath::Abs(t->Eta())>0.8 ) continue;
- /// Do I need another cuts for the primary tracks?
+ if (!(t->TestFilterMask(1<<7))) continue;
if(pt>ptTrigger) {
ptTrigger = pt;