#include "AliAnalysisTaskLambdaOverK0sJets.h"
-//extern TROOT *gROOT;
+extern TROOT *gROOT;
ClassImp(AliAnalysisTaskLambdaOverK0sJets)
fAOD(0), fCollision("PbPb2010"), fIsMC(kFALSE), fUsePID(kFALSE), fCentMin(0.), fCentMax(90.), fDoQA(kFALSE), fDoMixEvt(kFALSE), fTrigPtMin(5.), fTrigPtMax(10.), fTrigPtMCMin(5.), fTrigPtMCMax(10000.), fTrigEtaMax(0.8), fCheckIDTrig(kFALSE), fSeparateInjPart(kTRUE), fEndOfHijingEvent(-1), fPIDResponse(0),
- fMinPtDaughter(0.160), fMaxEtaDaughter(0.8), fMaxDCADaughter(1.0), fUseEtaCut(kFALSE), fYMax(0.5), fDCAToPrimVtx(0.1), fMinCPA(0.998), fNSigma(3.0), fDaugNClsTPC(70.), fMinCtau(0.), fMaxCtau(3.), fIdTrigger(-1), fIsV0LP(0), fPtV0LP(0.), fIsSndCheck(0),
+ fMinPtDaughter(0.160), fMaxEtaDaughter(0.8), fMaxDCADaughter(1.0), fYMax(0.5), fDCAToPrimVtx(0.1), fMinCPA(0.998), fNSigma(3.0),fDaugNClsTPC(70.), fMinCtau(0.), fMaxCtau(3.), fIdTrigger(-1), fIsV0LP(0), fPtV0LP(0.), fIsSndCheck(0),
- fOutput(0), fOutputQA(0), fOutputME(0), fMEList(0x0), fTriggerParticles(0x0), fTriggerPartMC(0x0), fAssocParticles(0x0), fAssocPartMC(0x0), fEvents(0), fCentrality(0), fCentrality2(0), fCentralityTrig(0), fPrimaryVertexX(0), fPrimaryVertexY(0), fPrimaryVertexZ(0),
+ fOutput(0), fOutputQA(0), fOutputME(0), fMEList(0x0), fTriggerParticles(0x0), fChargedAssocParticles(0x0), fTriggerPartMC(0x0), fAssocParticles(0x0), fAssocPartMC(0x0), fXiTriggerPartMC(0x0), fEvents(0), fCentrality(0), fCentrality2(0), fCentralityTrig(0), fPrimaryVertexX(0), fPrimaryVertexY(0), fPrimaryVertexZ(0),
fTriggerEventPlane(0), fTriggerMCPtCent(0), fTriggerMCResPt(0), fTriggerMCResEta(0), fTriggerMCResPhi(0), fTriggerPtCent(0), fTriggerPtCentCh(0), fNTrigPerEvt(0), fTriggerWiSPDHit(0), fTriggerEtaPhi(0), fCheckTriggerFromV0Daug(0), fTriggerComingFromDaug(0), fTriggerIsV0(0), fCheckIDTrigPtK0s(0), fCheckIDTrigPhiK0s(0), fCheckIDTrigEtaK0s(0), fCheckIDTrigNclsK0s(0), fCheckIDTrigPtLambda(0), fCheckIDTrigPhiLambda(0), fCheckIDTrigEtaLambda(0), fCheckIDTrigNclsLambda(0), fCheckIDTrigPtAntiLambda(0), fCheckIDTrigPhiAntiLambda(0), fCheckIDTrigEtaAntiLambda(0), fCheckIDTrigNclsAntiLambda(0),
fAntiLambdaMass(0), fAntiLambdaMassEmbeded(0), fAntiLambdaMass2(0), fAntiLambdaMass2Embeded(0), fAntiLambdaMassPtEta(0), fAntiLambdaMassPtPhi(0), fAntiLambdaDaughtersPt(0), fAntiLambdaDCADaugToPrimVtx(0), fAntiLambdaSpatialRes(0), fAntiLambdaBckgDecLength(0), fAntiLambdaBckgDCADaugToPrimVtx(0), fAntiLambdaBckgEtaPhi(0), fAntiLambdaBckgPhiRadio(0), fAntiLambdaBckgDCANegDaugToPrimVtx(0), fAntiLambdaBckgDCAPosDaugToPrimVtx(0),
+ fXiMinusPtMCAssoc(0), fXiMinusPtMCTrigger(0),
+
fK0sPtPosDaug(0), fK0sPtNegDaug(0), fK0sBckgPtPosDaug(0), fK0sBckgPtNegDaug(0), fK0sPhiEtaPosDaug(0), fK0sPhiEtaNegDaug(0), fK0sBckgPhiEtaPosDaug(0), fK0sBckgPhiEtaNegDaug(0), fK0sDCAPosDaug(0), fK0sDCANegDaug(0), fK0sBckgDCAPosDaug(0), fK0sBckgDCANegDaug(0), fK0sDecayPos(0), fK0sBckgDecayPos(0), fK0sDecayVertex(0), fK0sBckgDecayVertex(0), fK0sCPA(0), fK0sBckgCPA(0), fK0sDCAV0Daug(0), fK0sBckgDCAV0Daug(0), fK0sNClustersTPC(0), fK0sBckgNClustersTPC(0), fK0sNClustersITSPos(0), fK0sNClustersITSNeg(0), fK0sBckgNClustersITSPos(0), fK0sBckgNClustersITSNeg(0),
fLambdaPtPosDaug(0), fLambdaPtNegDaug(0), fLambdaBckgPtPosDaug(0), fLambdaBckgPtNegDaug(0), fLambdaPhiEtaPosDaug(0),fLambdaPhiEtaNegDaug(0), fLambdaBckgPhiEtaPosDaug(0),fLambdaBckgPhiEtaNegDaug(0), fLambdaDCAPosDaug(0),fLambdaDCANegDaug(0), fLambdaBckgDCAPosDaug(0), fLambdaBckgDCANegDaug(0), fLambdaDecayPos(0), fLambdaBckgDecayPos(0), fLambdaDecayVertex(0), fLambdaBckgDecayVertex(0), fLambdaCPA(0), fLambdaBckgCPA(0), fLambdaDCAV0Daug(0), fLambdaBckgDCAV0Daug(0), fLambdaNClustersTPC(0), fLambdaBckgNClustersTPC(0), fLambdaNClustersITSPos(0), fLambdaNClustersITSNeg(0), fLambdaBckgNClustersITSPos(0), fLambdaBckgNClustersITSNeg(0),
fAntiLambdadPhidEtaMC[i] = 0;
}
+ for (Int_t i=0; i<kNCent*kN2; i++){
+ // Xi-: associated particle
+ fXiMinusdPhidEtaMC[i] = 0; // Pt of Trigger particle as in the analysis
+ fXiMinusdPhidEtaMC2[i] = 0; // Higher Pt of Trigger particle
+ }
+
+ for (Int_t i=0; i<kNCent*kN3; i++)
+ fXiMinusdPhidEtaMC3[i] = 0; // Xi is the leading particle in the event
+
// Correlations
for (Int_t i=0; i<(kNCent*kN1*kNVtxZ); i++){
// K0s
fAntiLambdadPhidEtaPtL[i] = 0;
}
+ // Gamma Conversion correlation
+ for (Int_t i=0; i<kNCent; i++)
+ fGammaConversiondPhidEta[i] = 0;
+
+ // h-h correlations
+ for (Int_t i=0; i<(kNCent*kNc*kNVtxZ); i++)
+ fChargeddPhidEta[i] = 0;
+
// Mixed events distributions
+ for (Int_t i=0; i<(kNc*kNVtxZ*kNCent); i++)
+ fChargeddPhidEtaME[i] = 0;
+
for (Int_t i=0; i<(kN1*kNVtxZ*kNCent); i++){
fK0sdPhidEtaME[i] = 0;
fLambdadPhidEtaME[i] = 0;
fTriggerParticles=0x0;
}
+ if(fChargedAssocParticles) {
+ delete fChargedAssocParticles;
+ fChargedAssocParticles=0x0;
+ }
+
if(fTriggerPartMC) {
delete fTriggerPartMC;
fTriggerPartMC=0x0;
delete fAssocPartMC;
fAssocPartMC=0x0;
}
-
+
+ if(fXiTriggerPartMC) {
+ delete fXiTriggerPartMC;
+ fXiTriggerPartMC=0x0;
+ }
+
}
fCheckIDTrigEtaK0s->GetYaxis()->SetBinLabel(2,"Neg Daug");
fOutput->Add(fCheckIDTrigEtaK0s);
- fCheckIDTrigNclsK0s = new TH3F("fCheckIDTrigNclsK0s","K^{0}_{S};NCls TPC;;p_{V0}",181,0.5,180.5,3,-0.5,2.5,100,1.,11.);
+ fCheckIDTrigNclsK0s = new TH3F("fCheckIDTrigNclsK0s","K^{0}_{S};NCls TPC;;p_{V0}",131,49.5,180.5,3,-0.5,2.5,100,1.,11.);
fCheckIDTrigNclsK0s->GetYaxis()->SetBinLabel(1,"Pos Daug");
fCheckIDTrigNclsK0s->GetYaxis()->SetBinLabel(2,"Neg Daug");
fOutput->Add(fCheckIDTrigNclsK0s);
fCheckIDTrigEtaLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
fOutput->Add(fCheckIDTrigEtaLambda);
- fCheckIDTrigNclsLambda = new TH3F("fCheckIDTrigNclsLambda","#Lambda;NCls TPC;;p_{V0}",181,0.5,180.5,3,-0.5,2.5,100,1.,11.);
+ fCheckIDTrigNclsLambda = new TH3F("fCheckIDTrigNclsLambda","#Lambda;NCls TPC;;p_{V0}",131,49.5,180.5,3,-0.5,2.5,100,1.,11.);
fCheckIDTrigNclsLambda->GetYaxis()->SetBinLabel(1,"Pos Daug");
fCheckIDTrigNclsLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
fOutput->Add(fCheckIDTrigNclsLambda);
fCheckIDTrigEtaAntiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
fOutput->Add(fCheckIDTrigEtaAntiLambda);
- fCheckIDTrigNclsAntiLambda = new TH3F("fCheckIDTrigNclsAntiLambda","#bar{#Lambda};NCls TPC;;p_{V0}",181,0.5,180.5,3,-0.5,2.5,100,1.,11.);
+ fCheckIDTrigNclsAntiLambda = new TH3F("fCheckIDTrigNclsAntiLambda","#bar{#Lambda};NCls TPC;;p_{V0}",131,49.5,180.5,3,-0.5,2.5,100,1.,11.);
fCheckIDTrigNclsAntiLambda->GetYaxis()->SetBinLabel(1,"Pos Daug");
fCheckIDTrigNclsAntiLambda->GetYaxis()->SetBinLabel(2,"Neg Daug");
fOutput->Add(fCheckIDTrigNclsAntiLambda);
fOutput->Add(fAntiLambdaBckgDCAPosDaugToPrimVtx);
+ // Xi: correlations in MC
+ if(fIsMC){ // Monte-Carlo level:
+
+ // Pt of Xi as associated particles
+ fXiMinusPtMCAssoc = new TH2F("fXiMinusPtMCAssoc","Xi Minus MC (Assocaiated particle);#it{p}_{T} (GeV/#it{c});Centrality",50,0.,50.,100,0.,100.);
+ fOutput->Add(fXiMinusPtMCAssoc);
+
+ // Pt of Xi as trigger particles
+ fXiMinusPtMCTrigger = new TH2F("fXiMinusPtMCTrigger","Xi Minus MC (Leadinf particle);#it{p}_{T} (GeV/#it{c});Centrality",50,0.,50.,100,0.,100.);
+ fOutput->Add(fXiMinusPtMCTrigger);
+
+ // Correlations: h-Xi
+ for(Int_t jj=0;jj<kNCent;jj++){
+ for(Int_t k=0;k<kN2;k++){
+
+ snprintf(hNameHist,100, "fXiMinusdPhidEtaMC_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV02[k],kPtBinV02[k+1],kBinCent[jj],kBinCent[jj+1]);
+ fXiMinusdPhidEtaMC[jj*kN2+k] = new TH3F(hNameHist,"Xi Minus MC: #Delta#varphi vs #Delta#eta vs p_{T,l}; #Delta#varphi (rad); #Delta#eta; Vertex Z (cm)",
+ nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
+ nbinsdEta,-1.5,1.5,
+ nbinsVtx,-10.,10.);
+ fOutput->Add(fXiMinusdPhidEtaMC[jj*kN2+k]);
+
+
+ snprintf(hNameHist,100, "fXiMinusdPhidEtaMC2_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV02[k],kPtBinV02[k+1],kBinCent[jj],kBinCent[jj+1]);
+ fXiMinusdPhidEtaMC2[jj*kN2+k] = new TH3F(hNameHist,"Xi Minus MC: #Delta#varphi vs #Delta#eta vs p_{T,l}; #Delta#varphi (rad); #Delta#eta; Vertex Z (cm)",
+ nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
+ nbinsdEta,-1.5,1.5,
+ nbinsVtx,-10.,10.);
+ fOutput->Add(fXiMinusdPhidEtaMC2[jj*kN2+k]);
+
+ }
+ }
+
+ // Correlations: Xi-h
+ for(Int_t jj=0;jj<kNCent;jj++){
+ for(Int_t k=0;k<kN3;k++){
+ snprintf(hNameHist,100, "fXiMinusdPhidEtaMC3_%.2f_%.2f_Cent_%.0f_%.0f",kPtBinV02[k],kPtBinV02[k+1],kBinCent[jj],kBinCent[jj+1]);
+ fXiMinusdPhidEtaMC3[jj*kN3+k] = new TH3F(hNameHist,"Xi Minus MC (LP): #Delta#varphi vs #Delta#eta vs p_{T,l}; #Delta#varphi (rad); #Delta#eta; Vertex Z (cm)",
+ nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
+ nbinsdEta,-1.5,1.5,
+ nbinsVtx,-10.,10.);
+ fOutput->Add(fXiMinusdPhidEtaMC3[jj*kN3+k]);
+ }
+ }
+
+ } // End MC condition
+
+ // Gamma conversion
+ for(Int_t jj=0;jj<kNCent;jj++){
+ snprintf(hNameHist,100, "fGammaConversiondPhidEta_Cent_%.0f_%.0f",kBinCent[jj],kBinCent[jj+1]);
+ fGammaConversiondPhidEta[jj] = new TH3F(hNameHist,"Gamma Conversion: #Delta#varphi vs #Delta#eta;#Delta#varphi (rad);#Delta#eta;Vertex Z (cm)",
+ 2*nbinsdPhi,-TMath::PiOver2(),3*TMath::PiOver2(),
+ nbinsdEta,-1.5,1.5,
+ nbinsVtx,-10.,10.);
+ fOutput->Add(fGammaConversiondPhidEta[jj]);
+ }
+
+ // hh correlations
+ for(Int_t jj=0;jj<kNCent;jj++){
+ for(Int_t k=0;k<kNc;k++){
+ for(Int_t ll=0;ll<kNVtxZ;ll++){
+ snprintf(hNameHist,100, "fChargeddPhidEta_Cent_%.0f_%.0f_pt_%.2lf_%.2lf_%d",kBinCent[jj],kBinCent[jj+1],kPtBinCharged[k],kPtBinCharged[k+1],ll);
+ fChargeddPhidEta[jj*kNc*kNVtxZ + k*kNVtxZ + ll] = new TH2F(hNameHist,"hh correlations: #Delta#varphi vs #Delta#eta;#Delta#varphi (rad);#Delta#eta)",
+ 72,-TMath::PiOver2(),3*TMath::PiOver2(),
+ nbinsdEta,-1.5,1.5);
+ fOutput->Add(fChargeddPhidEta[jj*kNc*kNVtxZ + k*kNVtxZ + ll
+]);
+ }
+ }
+ }
+
+
// ============================================================= //
+ // Charged ME:
+ for(Int_t ll=0;ll<kNCent;ll++){
+ for(Int_t k=0;k<kNc;k++){
+ for(Int_t j=0;j<kNVtxZ;j++){
+
+ snprintf(hNameHist,100,"fChargeddPhidEtaME_%.2f_%.2f_%.0f_%.0f_%d",kPtBinCharged[k],kPtBinCharged[k+1],kBinCent[ll],kBinCent[ll+1],j);
+ fChargeddPhidEtaME[ll*kNc*kNVtxZ + k*kNVtxZ + j] = new TH2F(hNameHist,"Charged particles: #Delta#varphi vs #Delta#eta in ME;#Delta#varphi (rad);#Delta#eta",
+ 72,-TMath::PiOver2(),3*TMath::PiOver2(),
+ nbinsdEta,-1.5,1.5);
+ fOutputME->Add(fChargeddPhidEtaME[ll*kNc*kNVtxZ + k*kNVtxZ + j]);
+ }
+ }
+ }
+
// K0s in ME:
for(Int_t ll=0;ll<kNCent;ll++){
for(Int_t k=0;k<kN1;k++){
// Number of TPC clusters:
// --- signal ---
fK0sNClustersTPC = // Positive momentum to positive daugther - Negative momentum to negative daugther
- new TH3F("fK0sNClustersTPC","K^{0}_{S};#varphi;Num. TPC Clusters; #it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
+ new TH3F("fK0sNClustersTPC","K^{0}_{S};#varphi;Num. TPC Clusters; #it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax);
fOutputQA->Add(fK0sNClustersTPC);
// --- background ---
fK0sBckgNClustersTPC = // Positive momentum to positive daugther - Negative momentum to negative daugther
- new TH3F("fK0sBckgNClustersTPC","K^{0}_{S} Bckg;#varphi;Num. TPC Clusters; #it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
+ new TH3F("fK0sBckgNClustersTPC","K^{0}_{S} Bckg;#varphi;Num. TPC Clusters; #it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax);
fOutputQA->Add(fK0sBckgNClustersTPC);
// Number of ITS clusters:
// Number of TPC clusters:
// --- signal ---
fLambdaNClustersTPC =
- new TH3F("fLambdaNClustersTPC","#Lambda;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
+ new TH3F("fLambdaNClustersTPC","#Lambda;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax);
fOutputQA->Add(fLambdaNClustersTPC);
// --- background ---
fLambdaBckgNClustersTPC =
- new TH3F("fLambdaBckgNClustersTPC","#Lambda Bckg;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
+ new TH3F("fLambdaBckgNClustersTPC","#Lambda Bckg;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax);
fOutputQA->Add(fLambdaBckgNClustersTPC);
// Number of ITS clusters:
// Number of TPC clusters:
// --- signal ---
fAntiLambdaNClustersTPC =
- new TH3F("fAntiLambdaNClustersTPC","#bar{#Lambda};#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
+ new TH3F("fAntiLambdaNClustersTPC","#bar{#Lambda};#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax);
fOutputQA->Add(fAntiLambdaNClustersTPC);
// --- background ---
fAntiLambdaBckgNClustersTPC =
- new TH3F("fAntiLambdaBckgNClustersTPC","#bar{#Lambda} Bckg;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),181,0.5,180.5,nbins,-pMax,pMax);
+ new TH3F("fAntiLambdaBckgNClustersTPC","#bar{#Lambda} Bckg;#varphi;Num. TPC Clusters;#it{p}_{T} (GeV/#it{c})",nbinsPhi,0.,2.*TMath::Pi(),131,49.5,180.5,nbins,-pMax,pMax);
fOutputQA->Add(fAntiLambdaBckgNClustersTPC);
// Number of ITS clusters:
Bool_t AliAnalysisTaskLambdaOverK0sJets::AcceptTrack(AliAODTrack *t)
{
// Track criteria for primaries particles
-
+ /*
// TPC only tracks
if (TMath::Abs(t->Eta())>0.8 ) return kFALSE;
if (!(t->TestFilterMask(1<<7))) return kFALSE;
Float_t nCrossedRowsTPC = t->GetTPCClusterInfo(2,1);
- if (nCrossedRowsTPC < 70) return kFALSE;
-
+ if (nCrossedRowsTPC < 70) return kFALSE;
+ */
// Hybrid tracks
- //if( !(t->TestFilterBit(272)) ) return kFALSE;
+ if( !(t->TestFilterBit(272)) ) return kFALSE;
//if(!t->IsHybridGlobalConstrainedGlobal()) return kFALSE;
// Point in the SPD
if( (TMath::Abs(daugTrk->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;
Float_t lPhi = v0->Phi();
//lPhi = ( (lPhi < 0) ? lPhi + 2*TMath::Pi() : lPhi );
- // rapidity
- Float_t rapK0s = v0->RapK0Short();
- Float_t rapLambda = v0->RapLambda();
-
- if(fUseEtaCut){
- rapK0s = lEta;
- rapLambda = lEta;
- }
-
- // **********************************
- // PID - tracks
- Float_t pPos = -100.;
- Float_t pNeg = -100.;
-
- //Float_t dedxPos = -1000.;
- //Float_t dedxNeg = -1000.;
- //Float_t nsigPosPion = 0.;
- //Float_t nsigNegPion = 0.;
- Float_t nsigPosProton = 0.;
- Float_t nsigNegProton = 0.;
-
- if(fUsePID && !fIsMC) {
- const AliAODPid *pidNeg = ntrack->GetDetPid();
- const AliAODPid *pidPos = ptrack->GetDetPid();
-
- if (pidNeg && pidPos) {
- pPos = pidPos->GetTPCmomentum();
- pNeg = pidNeg->GetTPCmomentum();
- //dedxPos = pidPos->GetTPCsignal()/47.;
- //dedxNeg = pidNeg->GetTPCsignal()/47.;
-
-
- if(pPos<1.){
- //nsigPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ptrack,AliPID::kPion));
- nsigPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ptrack,AliPID::kProton));
- }
- if(pNeg<1.){
- //nsigNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ntrack,AliPID::kPion));
- nsigNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ntrack,AliPID::kProton));
- }
-
- }
-
- }
-
// **********************************
// Disentangle the V0 candidate
Float_t massK0s = 0., mK0s = 0., sK0s = 0.;
else if( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) &&
(inMother==ipMother) && (lPDGCodeV0==3122) ){
- if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) /*||
+ if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
- ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)*/
+ ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
) lComeFromSigma = kTRUE;
else lComeFromSigma = kFALSE;
(inMother==ipMother) && (lPDGCodeV0==-3122) ) {
- if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) /*||
+ if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
- ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)*/
+ ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
) lComeFromSigma = kTRUE;
else lComeFromSigma = kFALSE;
Float_t ptAs = p0->Pt();
Float_t rapAs = p0->Y();
Float_t etaAs = p0->Eta();
-
- if(fUseEtaCut){
- rapAs = etaAs;
- }
-
// phi resolution for V0-reconstruction
Float_t resEta = p0->Eta() - v0->Eta();
Float_t resPhi = p0->Phi() - v0->Phi();
// Natural particles
if(isNaturalPart){
- if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){
fK0sAssocPt->Fill(ptAs);
fK0sAssocPtRap->Fill(ptAs,rapAs,centrality);
if( (lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && TMath::Abs(rapAs)<fYMax ){
// Cut in the DCA ToPrim Vtx
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){
if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value
fK0sAssocMassPtDCAPV[curCentBin]->Fill(v0->MassK0Short(),ptAs,1);
if( (dcaPos>0.115) && (dcaNeg>0.115) )
fK0sAssocMassPtDCAPV[curCentBin]->Fill(v0->MassK0Short(),ptAs,4);
}
- // cut in the number of tpc clusters
- if( (dcaPos>0.1) && (dcaNeg>0.1) && TMath::Abs(rapAs)<0.5 ){
+ // cut in the number of tpc ckusters
+ if( (dcaPos>0.1) && (dcaNeg>0.1) ){
if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value
fK0sAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassK0Short(),ptAs,1);
if( (nClsTPCPos>50) && (nClsTPCNeg>50) )
// Embeded particles
if(!isNaturalPart){
- if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){
fK0sAssocPtRapEmbeded->Fill(ptAs,rapAs,centrality);
if( (lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && TMath::Abs(rapAs)<fYMax ){
// Cut in the DCA ToPrim Vtx
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){
if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value
fK0sAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,1);
if( (dcaPos>0.115) && (dcaNeg>0.115) )
fK0sAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,4);
}
- // cut in the number of tpc clusters
- if( (dcaPos>0.1) && (dcaNeg>0.1) && TMath::Abs(rapAs)<0.5 ){
+ // cut in the number of tpc ckusters
+ if( (dcaPos>0.1) && (dcaNeg>0.1) ){
if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value
fK0sAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassK0Short(),ptAs,1);
if( (nClsTPCPos>50) && (nClsTPCNeg>50) )
} // End K0s selection
// Lambda:
- if(ctL && lCheckMcLambda && (TMath::Abs(nsigPosProton)<fNSigma) ) {
+ if(ctL && lCheckMcLambda) {
// Natural particles
if(isNaturalPart){
- if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){
fLambdaAssocPt->Fill(ptAs);
fLambdaAssocPtRap->Fill(ptAs,rapAs,centrality);
if( TMath::Abs(rapAs)<fYMax ){
// Cut in the DCA ToPrim Vtx
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){
if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value
fLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassLambda(),ptAs,1);
if( (dcaPos>0.115) && (dcaNeg>0.115) )
}
- // cut in the number of tpc clusters
- if( (dcaPos>0.1) && (dcaNeg>0.1) && TMath::Abs(rapAs)<0.5 ){
+ // cut in the number of tpc ckusters
+ if( (dcaPos>0.1) && (dcaNeg>0.1) ){
if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value
fLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassLambda(),ptAs,1);
if( (nClsTPCPos>50) && (nClsTPCNeg>50) )
// Embeded particles
if(!isNaturalPart){
- if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){
if( TMath::Abs(rapAs)<fYMax ){
// Distributions for the efficiency (systematics chechks)
if( TMath::Abs(rapAs)<fYMax ){
// Cut in the DCA ToPrim Vtx
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){
if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value
fLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,1);
if( (dcaPos>0.115) && (dcaNeg>0.115) )
fLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,7);
}
- // cut in the number of tpc clusters
+ // cut in the number of tpc ckusters
if( (dcaPos>0.1) && (dcaNeg>0.1) ){
- if( (nClsTPCPos>70) && (nClsTPCNeg>70) && TMath::Abs(rapAs)<0.5 ) // default value
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value
fLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,1);
if( (nClsTPCPos>50) && (nClsTPCNeg>50) )
fLambdaAssocMassPtDaugNClsTPCEmbeded[curCentBin]->Fill(v0->MassLambda(),ptAs,2);
} // End Lambda selection
// AntiLambda:
- if (ctAL && lCheckMcAntiLambda && (TMath::Abs(nsigNegProton)<fNSigma) ){
+ if (ctAL && lCheckMcAntiLambda){
if(isNaturalPart){
- if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){
fAntiLambdaAssocPt->Fill(ptAs);
fAntiLambdaAssocPtRap->Fill(ptAs,rapAs,centrality);
if( TMath::Abs(rapAs)<fYMax ){
// Cut in the DCA ToPrim Vtx
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){
if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value
fAntiLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,1);
if( (dcaPos>0.115) && (dcaNeg>0.115) )
fAntiLambdaAssocMassPtDCAPV[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,7);
}
- // cut in the number of tpc clusters
- if( (dcaPos>0.1) && (dcaNeg>0.1) && TMath::Abs(rapAs)<0.5 ){
+ // cut in the number of tpc ckusters
+ if( (dcaPos>0.1) && (dcaNeg>0.1) ){
if( (nClsTPCPos>70) && (nClsTPCNeg>70) ) // default value
fAntiLambdaAssocMassPtDaugNClsTPC[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,1);
if( (nClsTPCPos>50) && (nClsTPCNeg>50) )
// Embeded particles
if(!isNaturalPart){
- if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){
if( TMath::Abs(rapAs)<fYMax ){
// Distributions for the efficiency (systematics chechks)
if( TMath::Abs(rapAs)<fYMax ){
// Cut in the DCA ToPrim Vtx
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){
if( (dcaPos>0.1) && (dcaNeg>0.1) ) // default value
fAntiLambdaAssocMassPtDCAPVEmbeded[curCentBin]->Fill(v0->MassAntiLambda(),ptAs,1);
if( (dcaPos>0.095) && (dcaNeg>0.095) )
}// End Correlation Step
// ************************************
-
noas:
+ /*
+ Float_t pPos = -100.;
+ Float_t pNeg = -100.;
+
+ Float_t dedxPos = -1000.;
+ Float_t dedxNeg = -1000.;
+ Float_t nsigPosPion = 0.;
+ Float_t nsigNegPion = 0.;
+ Float_t nsigPosProton = 0.;
+ Float_t nsigNegProton = 0.;
+
+ if(fUsePID && !fIsMC) {
+ const AliAODPid *pidNeg = ntrack->GetDetPid();
+ const AliAODPid *pidPos = ptrack->GetDetPid();
+
+ if (pidNeg && pidPos) {
+ pPos = pidPos->GetTPCmomentum();
+ pNeg = pidNeg->GetTPCmomentum();
+ dedxPos = pidPos->GetTPCsignal()/47.;
+ dedxNeg = pidNeg->GetTPCsignal()/47.;
+
+
+ if(pPos<1.){
+ nsigPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ptrack,AliPID::kPion));
+ nsigPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ptrack,AliPID::kProton));
+ }
+ if(pNeg<1.){
+ nsigNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ntrack,AliPID::kPion));
+ nsigNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(ntrack,AliPID::kProton));
+ }
+
+ }
+
+ }
+ */
+
// Comparing the pt of the trigger particle wrt the v0-candidate's daughter:
// It is used as well for the side-band subtraction
Int_t isSameTrkPosDaug = -1;
isSameTrkNegDaug = SameTrack(trkTrig,ntrack);
}
+ // *******************
+ // Gamma conversion
+ // *******************
+ /*
+ if(step==kReconstruction)
+ if( (TMath::Sqrt(lPtArmV0*lPtArmV0 + lAlphaV0*lAlphaV0) < 0.2) && isNaturalPart ){
+ fAssocParticles->Add( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 2) );
+ }
+ */
+
// *******************
// K0s selection
// *******************
- if (ctK && (TMath::Abs(rapK0s)<fYMax) && ( lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && ( massK0s > 0.3979 && massK0s < 0.5981 ) ) {
+ if (ctK && (TMath::Abs(v0->RapK0Short())<fYMax) && ( lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && ( massK0s > 0.3979 && massK0s < 0.5981 ) ) {
switch(step) {
case kTriggerCheck:
- if (isCandidate2K0s && (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if (isCandidate2K0s && (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) ){
if(pt>ptTrig){
fIsV0LP = 1;
break; // End K0s selection for TriggerCheck
case kReconstruction:
- if( (dcaPos > 0.1) && (dcaNeg > 0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) && (pt<10.) ){
+ if( (dcaPos > 0.1) && (dcaNeg > 0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) && (pt<10.) ){
if(isNaturalPart) fK0sMass->Fill(massK0s,pt,centrality);
else fK0sMassEmbeded->Fill(massK0s,pt,centrality);
fK0sMassPtEta->Fill(massK0s,pt,lEta);
- fK0sMassPtRap[curCentBin]->Fill(massK0s,pt,rapK0s);
+ fK0sMassPtRap[curCentBin]->Fill(massK0s,pt,v0->RapK0Short());
fK0sMassPtPhi->Fill(massK0s,pt,lPhi);
-
+ /*
if( (pt>kPtBinV0[0]) && (pt<kPtBinV0[kN1]) && isNaturalPart )
fAssocParticles->Add( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 3) );
-
+ */
}
// Invariant Mass cut
if (TMath::Abs(mK0s-massK0s) < 3*sK0s) {
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){
fK0sDCAPosDaug->Fill(dcaPos,pt);
fK0sDCANegDaug->Fill(dcaNeg,pt);
}
if( (dcaPos > 0.1) && (dcaNeg > 0.1) ){
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC ) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){
fK0sPtPosDaug->Fill(pt,lPtPos);
fK0sPtNegDaug->Fill(pt,lPtNeg);
if( TMath::Abs(mK0s-massK0s + 6.5*sK0s) < 1.5*sK0s ||
TMath::Abs(mK0s-massK0s - 6.5*sK0s) < 1.5*sK0s ) {
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){
fK0sBckgDCAPosDaug->Fill(dcaPos,pt);
fK0sBckgDCANegDaug->Fill(dcaNeg,pt);
}
if( (dcaPos > 0.1) && (dcaNeg > 0.1) ){
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){
fK0sBckgPtPosDaug->Fill(pt,lPtPos);
fK0sBckgPtNegDaug->Fill(pt,lPtNeg);
// *******************
// Lambda selection
// *******************
- if ( ctL && (TMath::Abs(rapLambda)<fYMax) && (massLambda > 1.0649 && massLambda < 1.1651 ) && (TMath::Abs(nsigPosProton)<fNSigma) ){
+ if ( ctL && (TMath::Abs(v0->RapLambda())<fYMax) && (massLambda > 1.0649 && massLambda < 1.1651 ) ){
switch(step) {
case kTriggerCheck:
- if (isCandidate2Lambda && (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) && !isCandidate2K0s && !isCandidate2LambdaBar ){
+ if (isCandidate2Lambda && (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70 ) && !isCandidate2K0s && !isCandidate2LambdaBar ){
if(pt>ptTrig) {
fIsV0LP = 1;
break; // End Lambda selection for TriggerCheck
case kReconstruction:
- if( (dcaPos > 0.1) && (dcaNeg > 0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) && (pt<10.) ){
+ if( (dcaPos > 0.1) && (dcaNeg > 0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70 ) && (pt<10.) ){
if(isNaturalPart) fLambdaMass->Fill(massLambda,pt,centrality);
else fLambdaMassEmbeded->Fill(massLambda,pt,centrality);
}
fLambdaMassPtEta->Fill(massLambda,pt,lEta);
- fLambdaMassPtRap[curCentBin]->Fill(massLambda,pt,rapLambda);
+ fLambdaMassPtRap[curCentBin]->Fill(massLambda,pt,v0->RapLambda());
fLambdaMassPtPhi->Fill(massLambda,pt,lPhi);
-
+ /*
if( (pt>kPtBinV0[0]) && (pt<kPtBinV0[kN1]) && isNaturalPart )
fAssocParticles->Add( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 4) );
-
+ */
}
// Invariant Mass cut
if (TMath::Abs(mLambda-massLambda) < 3*sL) {
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){
fLambdaDCAPosDaug->Fill(dcaPos,pt);
fLambdaDCANegDaug->Fill(dcaNeg,pt);
}
if( (dcaPos > 0.1) && (dcaNeg > 0.1) ){
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){
fLambdaPtPosDaug->Fill(pt,lPtPos);
fLambdaPtNegDaug->Fill(pt,lPtNeg);
if( (TMath::Abs(mLambda-massLambda + 6.5*sL) < 1.5*sL) ||
(TMath::Abs(mLambda-massLambda - 6.5*sL) < 1.5*sL) ){
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){
fLambdaBckgDCAPosDaug->Fill(dcaPos,pt);
fLambdaBckgDCANegDaug->Fill(dcaNeg,pt);
}
if( (dcaPos > 0.1) && (dcaNeg > 0.1) ){
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){
fLambdaBckgPtPosDaug->Fill(pt,lPtPos);
fLambdaBckgPtNegDaug->Fill(pt,lPtNeg);
// *******************
// AntiLambda selection
// *******************
- if ( ctAL && (TMath::Abs(rapLambda)<fYMax) && (massAntiLambda > 1.0649 && massAntiLambda < 1.1651 ) && (TMath::Abs(nsigNegProton)<fNSigma) ) {
+ if ( ctAL && (TMath::Abs(v0->RapLambda())<fYMax) && (massAntiLambda > 1.0649 && massAntiLambda < 1.1651 ) ) {
switch(step) {
case kTriggerCheck:
- if (isCandidate2LambdaBar && (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) && !isCandidate2K0s && !isCandidate2Lambda ){
+ if (isCandidate2LambdaBar && (dcaPos>0.1) && (dcaNeg>0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70) && !isCandidate2K0s && !isCandidate2Lambda ){
if(pt>ptTrig) {
fIsV0LP = 1;
break; // End AntiLambda selection for CheckTrigger
case kReconstruction:
- if( (dcaPos > 0.1) && (dcaNeg > 0.1) && (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) && (pt<10.) ) {
+ if( (dcaPos > 0.1) && (dcaNeg > 0.1) && (nClsTPCPos>70) && (nClsTPCNeg>70 ) && (pt<10.) ) {
if(isNaturalPart) fAntiLambdaMass->Fill(massAntiLambda,pt,centrality);
else fAntiLambdaMassEmbeded->Fill(massAntiLambda,pt,centrality);
}
fAntiLambdaMassPtEta->Fill(massAntiLambda,pt,lEta);
- fAntiLambdaMassPtRap[curCentBin]->Fill(massAntiLambda,pt,rapLambda);
+ fAntiLambdaMassPtRap[curCentBin]->Fill(massAntiLambda,pt,v0->RapLambda());
fAntiLambdaMassPtPhi->Fill(massAntiLambda,pt,lPhi);
-
+ /*
if( (pt>kPtBinV0[0]) && (pt<kPtBinV0[kN1]) && isNaturalPart )
fAssocParticles->Add( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 5) );
-
+ */
}
// Invariant Mass cut
if (TMath::Abs(mLambda-massAntiLambda) < 3*sAL) {
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){
fAntiLambdaDCAPosDaug->Fill(dcaPos,pt);
fAntiLambdaDCANegDaug->Fill(dcaNeg,pt);
}
if( (dcaPos>0.1) && (dcaNeg>0.1) ){
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70) ){
fAntiLambdaPtPosDaug->Fill(pt,lPtPos);
fAntiLambdaPtNegDaug->Fill(pt,lPtNeg);
if( (TMath::Abs(mLambda-massAntiLambda + 6.5*sAL) < 1.5*sAL) ||
(TMath::Abs(mLambda-massAntiLambda - 6.5*sAL) < 1.5*sAL) ){
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){
fAntiLambdaBckgDCAPosDaug->Fill(dcaPos,pt);
fAntiLambdaBckgDCANegDaug->Fill(dcaNeg,pt);
}
if( (dcaPos>0.1) && (dcaNeg>0.1) ){
- if( (nClsTPCPos>fDaugNClsTPC) && (nClsTPCNeg>fDaugNClsTPC) ){
+ if( (nClsTPCPos>70) && (nClsTPCNeg>70 ) ){
fAntiLambdaBckgPtPosDaug->Fill(pt,lPtPos);
fAntiLambdaBckgPtNegDaug->Fill(pt,lPtNeg);
Double_t pt=t->Pt();
Double_t eta=t->Eta();
Double_t phi=t->Phi();
+
+
+ if( (pt>=kPtBinCharged[0]) && (pt<kPtBinCharged[kNc]) && (TMath::Abs(eta)<fTrigEtaMax) )
+ fChargedAssocParticles->Add( new AliMiniParticle(centrality, zv, i, pt, phi, eta, 0, 0, 1) );
if( (pt>fTrigPtMin) && (pt<fTrigPtMax) && (TMath::Abs(eta)<fTrigEtaMax) ) {
fTriggerParticles->Add( new AliMiniParticle(centrality, zv, i, pt, phi, eta, 0, 0, 1) );
// ----------------------------
// 2. Checking if the trigger particle
// might be a daughter from the V0-candidate
-
+ /*
for (Int_t i=0; i<(fTriggerParticles->GetEntriesFast()); i++){
AliMiniParticle* trig = (AliMiniParticle*) fTriggerParticles->At(i);
Int_t id = trig->ID();
V0Loop(kTriggerCheck,kFALSE,i,id);
}
-
+ */
}
// Triggered Particle - Trigger Particle
fTriggerParticles = new TObjArray();
fTriggerParticles->SetOwner(kTRUE);
+ fChargedAssocParticles = new TObjArray();
+ fChargedAssocParticles->SetOwner(kTRUE);
TriggerParticle();
// V0-candidate is the highest particle in the event:
Float_t lPhiCurrentPart = p0->Phi();
Float_t lPtCurrentPart = p0->Pt();
- if(fUseEtaCut){
- lRapCurrentPart = lEtaCurrentPart;
- }
-
Int_t iCurrentMother = p0->GetMother();
AliAODMCParticle *pCurrentMother = (AliAODMCParticle *)stack->At(iCurrentMother);
Int_t lPdgCurrentMother = 0;
fK0sMCPtRap2->Fill(lPtCurrentPart,lRapCurrentPart,centrality);
fK0sMCPtPhiEta[curCentBin]->Fill(lPhiCurrentPart,lEtaCurrentPart,lPtCurrentPart);
- if(TMath::Abs(lRapCurrentPart)<fYMax) fK0sMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality);
+ if(TMath::Abs(lRapCurrentPart)<0.7) fK0sMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality);
if( (lPtCurrentPart>kPtBinV0[0]) && (lPtCurrentPart<kPtBinV0[kN1]) && isNaturalPart )
fAssocPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 3) );
}
else{
fK0sMCPtRapEmbeded->Fill(lPtCurrentPart,lRapCurrentPart,centrality);
- if(TMath::Abs(lRapCurrentPart)<fYMax) fK0sMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality);
+ if(TMath::Abs(lRapCurrentPart)<0.7) fK0sMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality);
}
} // End K0s selection
fLambdaMCPtRap2->Fill(lPtCurrentPart,lRapCurrentPart,centrality);
fLambdaMCPtPhiEta[curCentBin]->Fill(lPhiCurrentPart,lEtaCurrentPart,lPtCurrentPart);
- if(TMath::Abs(lRapCurrentPart)<fYMax) fLambdaMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality);
+ if(TMath::Abs(lRapCurrentPart)<0.7) fLambdaMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality);
if( (lPtCurrentPart>kPtBinV0[0]) && (lPtCurrentPart<kPtBinV0[kN1]) && isNaturalPart )
fAssocPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 4) );
}
else{
fLambdaMCPtRapEmbeded->Fill(lPtCurrentPart,lRapCurrentPart,centrality);
- if(TMath::Abs(lRapCurrentPart)<fYMax) fLambdaMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality);
+ if(TMath::Abs(lRapCurrentPart)<0.7) fLambdaMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality);
}
if ( isNaturalPart && TMath::Abs(lPdgCurrentMother) == 3312 )
fAntiLambdaMCPtRap2->Fill(lPtCurrentPart,lRapCurrentPart,centrality);
fAntiLambdaMCPtPhiEta[curCentBin]->Fill(lPhiCurrentPart,lEtaCurrentPart,lPtCurrentPart);
- if(TMath::Abs(lRapCurrentPart)<fYMax) fAntiLambdaMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality);
+ if(TMath::Abs(lRapCurrentPart)<0.7) fAntiLambdaMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality);
if( (lPtCurrentPart>kPtBinV0[0]) && (lPtCurrentPart<kPtBinV0[kN1]) && isNaturalPart )
fAssocPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 5) );
}
else{
fAntiLambdaMCPtRapEmbeded->Fill(lPtCurrentPart,lRapCurrentPart,centrality);
- if(TMath::Abs(lRapCurrentPart)<fYMax) fAntiLambdaMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality);
+ if(TMath::Abs(lRapCurrentPart)<0.7) fAntiLambdaMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality);
}
if ( isNaturalPart && TMath::Abs(lPdgCurrentMother) == 3312 )
fAntiLambdadPhidEtaMC[curCentBin*kN1+k]->Fill(dPhiMC,dEtaMC,zv);
} // End pt bin
+ // Xi Minus (h-Xi correlations)
+ /*
+ if( (assocMC->WhichCandidate()==6) ){
+
+ fXiMinusPtMCAssoc->Fill(assocMC->Pt(),centrality);
+
+ for(Int_t k=0;k<kN2;k++)
+ if( (assocMC->Pt()>=kPtBinV02[k]) && (assocMC->Pt()<kPtBinV02[k+1]) ){
+ if(triggerMCPt<fTrigPtMax)
+ fXiMinusdPhidEtaMC[curCentBin*kN2+k]->Fill(dPhiMC,dEtaMC,zv);
+ else
+ fXiMinusdPhidEtaMC2[curCentBin*kN2+k]->Fill(dPhiMC,dEtaMC,zv);
+ } // End pt bin
+
+ } // End Xi selection
+ */
} // End loop over trigger particles
} // End loop over trigger particles
+ // -----------------------------------------
+ // ---------- MC Correlations --------------
+ // -------- Xi leading particle ------------
+ // -----------------------------------------
+
+ // With natural Xi's do loop over the MC trigger particle
+ // to see if Xi are the leading particle in the event:
+ // in that case, does the correlations with charged particles as associated particles
+ /*
+ Bool_t isXiLP = kFALSE;
+ for (Int_t iTrkMC = 0; iTrkMC < nTrkMC; iTrkMC++){
+
+ AliAODMCParticle *p0 = (AliAODMCParticle*)stack->At(iTrkMC);
+ if(!p0) continue;
+
+ // ----------------------------------------
+ // Selecting only Xi Minus
+ Int_t lPdgcodeCurrentPart = p0->GetPdgCode();
+ if ( (lPdgcodeCurrentPart != kXiMinus) ||
+ (lPdgcodeCurrentPart != 3322) ) continue;
+
+ // ----------------------------------------
+ Int_t isNaturalPart = 1;
+ if ( (iTrkMC>=fEndOfHijingEvent) &&
+ (fEndOfHijingEvent!=-1) &&
+ (p0->GetMother()<0) )
+ isNaturalPart = 0;
+
+ if(!isNaturalPart) continue;
+
+ // ----------------------------------------
+ // Loop over Trigger particles
+ isXiLP = kFALSE;
+ for(Int_t ii=0; ii<(fTriggerPartMC->GetEntriesFast()); ii++){
+ AliMiniParticle* trigMC = (AliMiniParticle*) fTriggerPartMC->At(ii);
+
+ if( p0->Pt() > trigMC->Pt() ) isXiLP = kTRUE;
+ else isXiLP = kFALSE;
+
+ if( isXiLP == kFALSE ) break;
+
+ } // End loop over trigger particles
+
+ // ----------------------------------------
+ // Xi is Leading particle
+ if(isXiLP){
+ fXiMinusPtMCTrigger->Fill(p0->Pt(),centrality);
+ fXiTriggerPartMC->Add( new AliMiniParticle(centrality, zv, iTrkMC, p0->Pt(), p0->Phi(), p0->Eta(), 0, 0, 10) );
+ }
+
+ }*/
+
+ // ----------------------------------------
+ // Xi-h: Do correlations with primary particles
+ /*
+ if(isXiLP){
+ for(Int_t ii=0; ii<(fXiTriggerPartMC->GetEntriesFast()); ii++){
+ AliMiniParticle* trigXiMC = (AliMiniParticle*) fXiTriggerPartMC->At(ii);
+
+ // ========= Charged particles
+ for (Int_t iTrkMC = 0; iTrkMC < nTrkMC; iTrkMC++){
+ AliAODMCParticle *p0 = (AliAODMCParticle*)stack->At(iTrkMC);
+ if(!p0) continue;
+
+ // ----------------------------------------
+ Int_t isNaturalPart = 1;
+ if ( (iTrkMC>=fEndOfHijingEvent) &&
+ (fEndOfHijingEvent!=-1) &&
+ (p0->GetMother()<0) )
+ isNaturalPart = 0;
+ // ----------------------------------------
+
+ if(p0->Charge()==0) continue;
+ if(isNaturalPart == 0) continue;
+ if( !p0->IsPhysicalPrimary() ) continue;
+
+ if(TMath::Abs(p0->Eta())>fTrigEtaMax) continue;
+
+ dPhiMC = dPHI(trigXiMC->Phi(),p0->Phi());
+ dEtaMC = trigXiMC->Eta() - p0->Eta();
+
+ for(Int_t k=0;k<kN1;k++) // Pt bin
+ if( (p0->Pt()>=kPtBinV03[k]) && (p0->Pt()<kPtBinV03[k+1]) )
+ fXiMinusdPhidEtaMC3[curCentBin*kN3+k]->Fill(dPhiMC,dEtaMC,zv);
+
+ } // End loop over primary particles
+
+ } // end loop over Xi
+
+ } // End condition of Xi is LP
+ */
} // End MC condition
// *************************************************
if(NtrigPerEvnt>0)
V0Loop(kReconstruction,kTRUE,-1,-1);
else
- V0Loop(kReconstruction,kFALSE,-1,-1);
-
+ V0Loop(kReconstruction,kFALSE,-1,-1);
+
//-------------------------------------------------------------
// Correlations
//-------------------------------------------------------------
Float_t ptTrig=0., pxTrig=0., pyTrig=0.;
+ Float_t pt=-100.; // ***
+ Float_t lPhi=0., lEta=0.; // ***
+/*
Float_t massK0s=0., mK0s=0., sK0s=0.;
Float_t massL=0., mL=0., sL=0.;
Float_t massAL=0.; //, mAL=0., sAL=0.;
Float_t lAlphaV0=0., lPtArmV0=0, dcaPos=0., dcaNeg=0.;
Float_t dx=-100., dy=-100., dz=-100., lt=-100., res=-100.;
Float_t dlK=-100., dlL=-100.;
+*/
Float_t dPhi=-100., dEta=-100., radio=-100.;
-
+
+ // --------------------------------
+ // h-h correlations
+ for (Int_t i=0; i<(fTriggerParticles->GetEntriesFast()); i++){
+ AliMiniParticle* trig = (AliMiniParticle*) fTriggerParticles->At(i);
+
+ for(Int_t j=0; j<(fChargedAssocParticles->GetEntriesFast()); j++){
+ AliMiniParticle* tChAssoc = (AliMiniParticle*) (fChargedAssocParticles->At(j));
+
+ lPhi = tChAssoc->Phi();
+ lEta = tChAssoc->Eta();
+
+ // Correlation in deltaPhi & deltaEta
+ dPhi = dPHI(trig->Phi(),lPhi);
+ dEta = trig->Eta() - lEta;
+
+ pt = tChAssoc->Pt();
+
+ for( Int_t k=0; k<kNc; k++)
+ if( pt>=kPtBinCharged[k] && pt<kPtBinCharged[k+1] )
+ fChargeddPhidEta[curCentBin*kNc*kNVtxZ + k*kNVtxZ + curVtxBin]->Fill(dPhi,dEta);
+
+ }
+
+ } // End loop over trigger particles
+
// --------------------------------
// h-V0 correlations
+ /*
for (Int_t i=0; i<(fTriggerParticles->GetEntriesFast()); i++){
AliMiniParticle* trig = (AliMiniParticle*) fTriggerParticles->At(i);
if( trig->WhichCandidate() == 0 ) continue;
Int_t lMCAssocNegDaug = trackAssocME->NegDaugMCLabel();
Int_t lMCAssocPosDaug = trackAssocME->PosDaugMCLabel();
+ // *******************
+ // Gamma conversion
+ // *******************
+ if( trackAssocME->WhichCandidate() == 2 )
+ fGammaConversiondPhidEta[curCentBin]->Fill(dPhi,dEta,zv);
+
// *******************
// K0s selection
// *******************
} // End loop over associated particles
} // End loop over trigger particles
-
+ */
//-------------------------------------------------------------
// Mixing
phiTrigME = trackTriggerME->Phi();
etaTrigME = trackTriggerME->Eta();
+ // --- Charged associated particles
+ for(Int_t j=0; j<fChargedAssocParticles->GetEntriesFast(); j++){
+
+ AliMiniParticle* trackAssocME = (AliMiniParticle*) (fChargedAssocParticles->At(j));
+ if( CentBin(trackTriggerME->Centrality()) != CentBin(trackAssocME->Centrality()) ) continue;
+ if( VtxBin(trackTriggerME->VtxZ()) != VtxBin(trackAssocME->VtxZ()) ) continue;
+ if( trackAssocME->WhichCandidate() != 1 ) continue;
+
+ phiAssocME = trackAssocME->Phi();
+ etaAssocME = trackAssocME->Eta();
+
+ deltaPhi = dPHI(phiTrigME,phiAssocME);
+ deltaEta = etaTrigME - etaAssocME;
+
+ for(Int_t k=0; k<kNc; k++)
+ if( trackAssocME->Pt()>=kPtBinCharged[k] && trackAssocME->Pt()<kPtBinCharged[k+1] )
+ fChargeddPhidEtaME[curCentBin*kNc*kNVtxZ + k*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);
+
+ } // End loop over charged partilces
+
+
// --- V0 associated particles
+ /*
for(Int_t j=0; j<fAssocParticles->GetEntriesFast(); j++){
AliMiniParticle* trackAssocME = (AliMiniParticle*) (fAssocParticles->At(j));
fAntiLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);
} // End loop over V0's
-
+ */
}
}
}// End adding trigger particles to buffers
-}
+ }
//___________________________________________________________________________________________