From: xsanchez Date: Fri, 16 May 2014 12:12:20 +0000 (+0200) Subject: AnalysisTask of AliRoot vAN-20140404 X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=4a73b782624402b530ac71eb356ee6830cc96f05;p=u%2Fmrichter%2FAliRoot.git AnalysisTask of AliRoot vAN-20140404 --- diff --git a/PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.cxx b/PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.cxx index 364044050d5..0ce727e8c8c 100644 --- a/PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.cxx +++ b/PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.cxx @@ -48,7 +48,7 @@ #include "AliAnalysisTaskLambdaOverK0sJets.h" -//extern TROOT *gROOT; +extern TROOT *gROOT; ClassImp(AliAnalysisTaskLambdaOverK0sJets) @@ -80,9 +80,9 @@ AliAnalysisTaskLambdaOverK0sJets::AliAnalysisTaskLambdaOverK0sJets(const char *n 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), @@ -98,6 +98,8 @@ fK0sMCPt(0), fK0sMCPtRap(0), fK0sMCPtRap2(0), fK0sMCPtRapVtx(0), fK0sMCPtRapEmbe 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), @@ -185,6 +187,15 @@ fK0sMCPt(0), fK0sMCPtRap(0), fK0sMCPtRap2(0), fK0sMCPtRapVtx(0), fK0sMCPtRapEmbe fAntiLambdadPhidEtaMC[i] = 0; } + for (Int_t i=0; iGetYaxis()->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); @@ -418,7 +450,7 @@ void AliAnalysisTaskLambdaOverK0sJets::UserCreateOutputObjects() 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); @@ -443,7 +475,7 @@ void AliAnalysisTaskLambdaOverK0sJets::UserCreateOutputObjects() 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); @@ -1248,8 +1280,94 @@ void AliAnalysisTaskLambdaOverK0sJets::UserCreateOutputObjects() 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;jjAdd(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;jjAdd(fXiMinusdPhidEtaMC3[jj*kN3+k]); + } + } + + } // End MC condition + + // Gamma conversion + for(Int_t jj=0;jjAdd(fGammaConversiondPhidEta[jj]); + } + + // hh correlations + for(Int_t jj=0;jjAdd(fChargeddPhidEta[jj*kNc*kNVtxZ + k*kNVtxZ + ll +]); + } + } + } + + // ============================================================= // + // Charged ME: + for(Int_t ll=0;llAdd(fChargeddPhidEtaME[ll*kNc*kNVtxZ + k*kNVtxZ + j]); + } + } + } + // K0s in ME: for(Int_t ll=0;llAdd(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: @@ -1583,11 +1701,11 @@ void AliAnalysisTaskLambdaOverK0sJets::UserCreateOutputObjects() // 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: @@ -1748,11 +1866,11 @@ void AliAnalysisTaskLambdaOverK0sJets::UserCreateOutputObjects() // 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: @@ -1830,17 +1948,17 @@ static Int_t CentBin(Double_t cent) 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 @@ -1959,6 +2077,10 @@ static Int_t SameTrack(AliAODTrack *trk, const AliAODTrack *daugTrk) 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; @@ -2182,51 +2304,6 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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.; @@ -2408,10 +2485,10 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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; @@ -2430,10 +2507,10 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge (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; @@ -2460,11 +2537,6 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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(); @@ -2477,7 +2549,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge // 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); @@ -2502,7 +2574,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge if( (lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && TMath::Abs(rapAs)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) ) @@ -2513,8 +2585,8 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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) ) @@ -2531,7 +2603,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge // 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); @@ -2550,7 +2622,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge if( (lPtArmV0 > TMath::Abs(0.2*lAlphaV0) ) && TMath::Abs(rapAs)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) ) @@ -2561,8 +2633,8 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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) ) @@ -2580,12 +2652,12 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge } // End K0s selection // Lambda: - if(ctL && lCheckMcLambda && (TMath::Abs(nsigPosProton)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); @@ -2614,7 +2686,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge if( TMath::Abs(rapAs)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) ) @@ -2632,8 +2704,8 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge } - // 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) ) @@ -2650,7 +2722,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge // 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)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) ) @@ -2686,9 +2758,9 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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); @@ -2705,11 +2777,11 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge } // End Lambda selection // AntiLambda: - if (ctAL && lCheckMcAntiLambda && (TMath::Abs(nsigNegProton)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); @@ -2737,7 +2809,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge if( TMath::Abs(rapAs)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) ) @@ -2754,8 +2826,8 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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) ) @@ -2772,7 +2844,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge // 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)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) ) @@ -2844,9 +2916,44 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge }// 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; @@ -2856,15 +2963,25 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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) TMath::Abs(0.2*lAlphaV0) ) && ( massK0s > 0.3979 && massK0s < 0.5981 ) ) { + if (ctK && (TMath::Abs(v0->RapK0Short()) 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; @@ -2923,19 +3040,19 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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]) && (ptAdd( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 3) ); - + */ } @@ -2944,14 +3061,14 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge // 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); @@ -2977,14 +3094,14 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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); @@ -3022,12 +3139,12 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge // ******************* // Lambda selection // ******************* - if ( ctL && (TMath::Abs(rapLambda) 1.0649 && massLambda < 1.1651 ) && (TMath::Abs(nsigPosProton)RapLambda()) 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; @@ -3083,7 +3200,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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); @@ -3094,13 +3211,13 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge } 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]) && (ptAdd( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 4) ); - + */ } @@ -3110,14 +3227,14 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge // 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); @@ -3144,14 +3261,14 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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); @@ -3188,12 +3305,12 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge // ******************* // AntiLambda selection // ******************* - if ( ctAL && (TMath::Abs(rapLambda) 1.0649 && massAntiLambda < 1.1651 ) && (TMath::Abs(nsigNegProton)RapLambda()) 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; @@ -3250,7 +3367,7 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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); @@ -3261,13 +3378,13 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge } 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]) && (ptAdd( new AliMiniParticle(centrality, zv, iV0, pt, lPhi, lEta, lMCAssocNegDaug, lMCAssocPosDaug, 5) ); - + */ } @@ -3276,14 +3393,14 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge // 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); @@ -3309,14 +3426,14 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge 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); @@ -3384,6 +3501,10 @@ void AliAnalysisTaskLambdaOverK0sJets::TriggerParticle() Double_t pt=t->Pt(); Double_t eta=t->Eta(); Double_t phi=t->Phi(); + + + if( (pt>=kPtBinCharged[0]) && (ptAdd( new AliMiniParticle(centrality, zv, i, pt, phi, eta, 0, 0, 1) ); if( (pt>fTrigPtMin) && (ptAdd( new AliMiniParticle(centrality, zv, i, pt, phi, eta, 0, 0, 1) ); @@ -3407,13 +3528,13 @@ void AliAnalysisTaskLambdaOverK0sJets::TriggerParticle() // ---------------------------- // 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); } - + */ } @@ -3511,6 +3632,8 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) // 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: @@ -3645,10 +3768,6 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) 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; @@ -3705,14 +3824,14 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) fK0sMCPtRap2->Fill(lPtCurrentPart,lRapCurrentPart,centrality); fK0sMCPtPhiEta[curCentBin]->Fill(lPhiCurrentPart,lEtaCurrentPart,lPtCurrentPart); - if(TMath::Abs(lRapCurrentPart)Fill(lPtCurrentPart,zv,centrality); + if(TMath::Abs(lRapCurrentPart)<0.7) fK0sMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality); if( (lPtCurrentPart>kPtBinV0[0]) && (lPtCurrentPartAdd( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 3) ); } else{ fK0sMCPtRapEmbeded->Fill(lPtCurrentPart,lRapCurrentPart,centrality); - if(TMath::Abs(lRapCurrentPart)Fill(lPtCurrentPart,zv,centrality); + if(TMath::Abs(lRapCurrentPart)<0.7) fK0sMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality); } } // End K0s selection @@ -3726,14 +3845,14 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) fLambdaMCPtRap2->Fill(lPtCurrentPart,lRapCurrentPart,centrality); fLambdaMCPtPhiEta[curCentBin]->Fill(lPhiCurrentPart,lEtaCurrentPart,lPtCurrentPart); - if(TMath::Abs(lRapCurrentPart)Fill(lPtCurrentPart,zv,centrality); + if(TMath::Abs(lRapCurrentPart)<0.7) fLambdaMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality); if( (lPtCurrentPart>kPtBinV0[0]) && (lPtCurrentPartAdd( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 4) ); } else{ fLambdaMCPtRapEmbeded->Fill(lPtCurrentPart,lRapCurrentPart,centrality); - if(TMath::Abs(lRapCurrentPart)Fill(lPtCurrentPart,zv,centrality); + if(TMath::Abs(lRapCurrentPart)<0.7) fLambdaMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality); } if ( isNaturalPart && TMath::Abs(lPdgCurrentMother) == 3312 ) @@ -3750,14 +3869,14 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) fAntiLambdaMCPtRap2->Fill(lPtCurrentPart,lRapCurrentPart,centrality); fAntiLambdaMCPtPhiEta[curCentBin]->Fill(lPhiCurrentPart,lEtaCurrentPart,lPtCurrentPart); - if(TMath::Abs(lRapCurrentPart)Fill(lPtCurrentPart,zv,centrality); + if(TMath::Abs(lRapCurrentPart)<0.7) fAntiLambdaMCPtRapVtx->Fill(lPtCurrentPart,zv,centrality); if( (lPtCurrentPart>kPtBinV0[0]) && (lPtCurrentPartAdd( new AliMiniParticle(centrality, zv, iTrkMC, lPtCurrentPart, lPhiCurrentPart, lEtaCurrentPart, 0, 0, 5) ); } else{ fAntiLambdaMCPtRapEmbeded->Fill(lPtCurrentPart,lRapCurrentPart,centrality); - if(TMath::Abs(lRapCurrentPart)Fill(lPtCurrentPart,zv,centrality); + if(TMath::Abs(lRapCurrentPart)<0.7) fAntiLambdaMCPtRapVtxEmbeded->Fill(lPtCurrentPart,zv,centrality); } if ( isNaturalPart && TMath::Abs(lPdgCurrentMother) == 3312 ) @@ -3818,10 +3937,117 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) 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;kPt()>=kPtBinV02[k]) && (assocMC->Pt()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;kPt()>=kPtBinV03[k]) && (p0->Pt()Fill(dPhiMC,dEtaMC,zv); + + } // End loop over primary particles + + } // end loop over Xi + + } // End condition of Xi is LP + */ } // End MC condition // ************************************************* @@ -3831,12 +4057,15 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) 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.; @@ -3845,10 +4074,37 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) 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=kPtBinCharged[k] && ptFill(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; @@ -3898,6 +4154,12 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) Int_t lMCAssocNegDaug = trackAssocME->NegDaugMCLabel(); Int_t lMCAssocPosDaug = trackAssocME->PosDaugMCLabel(); + // ******************* + // Gamma conversion + // ******************* + if( trackAssocME->WhichCandidate() == 2 ) + fGammaConversiondPhidEta[curCentBin]->Fill(dPhi,dEta,zv); + // ******************* // K0s selection // ******************* @@ -4077,7 +4339,7 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) } // End loop over associated particles } // End loop over trigger particles - + */ //------------------------------------------------------------- // Mixing @@ -4096,7 +4358,29 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) phiTrigME = trackTriggerME->Phi(); etaTrigME = trackTriggerME->Eta(); + // --- Charged associated particles + for(Int_t j=0; jGetEntriesFast(); 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; kPt()>=kPtBinCharged[k] && trackAssocME->Pt()Fill(deltaPhi,deltaEta); + + } // End loop over charged partilces + + // --- V0 associated particles + /* for(Int_t j=0; jGetEntriesFast(); j++){ AliMiniParticle* trackAssocME = (AliMiniParticle*) (fAssocParticles->At(j)); @@ -4161,7 +4445,7 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) fAntiLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta); } // End loop over V0's - + */ } } @@ -4191,7 +4475,7 @@ void AliAnalysisTaskLambdaOverK0sJets::UserExec(Option_t *) }// End adding trigger particles to buffers -} + } //___________________________________________________________________________________________ diff --git a/PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.h b/PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.h index fd99412d1f5..50067f6206d 100644 --- a/PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.h +++ b/PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.h @@ -32,10 +32,22 @@ class TString; class TObjArray; -// pt f0r V0 +// pt fpr V0 const int kN1 = 8; const float kPtBinV0[kN1+1] = {2.0,2.25,2.5,2.75,3.0,3.5,4.0,5.0,7.0}; +// pt for charged particles +const int kNc = 3; +const float kPtBinCharged[kN1+1] = {2.0,2.25,3.0,4.0}; + +// pt bins for Xi minus +const int kN2 = 12; +const float kPtBinV02[kN2+1] = {0.0,2.0,2.25,2.5,2.75,3.0,3.5,4.0,5.0,7.0,10.0,15.0,1000.}; + +const int kN3 = 3; +const float kPtBinV03[kN3+1] = {0.0,2.0,7.0,1000.}; +// ------- + const int kNVtxZ = 10; const double kBinVtxZ[kNVtxZ+1] = {-10.,-8.,-6.,-4.,-2.,0.,2.,4.,6.,8.,10.}; @@ -95,7 +107,6 @@ class AliAnalysisTaskLambdaOverK0sJets : public AliAnalysisTaskSE { void SetNSigmaPID(Float_t nSigma=3) {fNSigma=nSigma;} void SetNClsTPC(Float_t nClsTPC=70.) {fDaugNClsTPC=nClsTPC;} // 2. V0 candidate - void SetEtaCut(Bool_t etaCut=kFALSE) {fUseEtaCut=etaCut;} void SetMaxY(Float_t yMax=0.5) {fYMax=yMax;} void SetMinCPA(Float_t minCPA=0.998) {fMinCPA=minCPA;} void SetCtau(Float_t minCtau = 0., Float_t maxCtau = 3.) {fMinCtau=minCtau;fMaxCtau=maxCtau;} @@ -139,10 +150,10 @@ class AliAnalysisTaskLambdaOverK0sJets : public AliAnalysisTaskSE { Int_t fEndOfHijingEvent; // Limit natural-injected MC particles AliPIDResponse *fPIDResponse; // PID Response + Float_t fMinPtDaughter; // Minimum transverse momentum for V0's daughters Float_t fMaxEtaDaughter; // Maximum pseudo-rapidity for V0's daughters Float_t fMaxDCADaughter; // Maximum Distance of Closest Approach between daughters (given in sigmas) - Bool_t fUseEtaCut; // Swicth between rapidity or pseudo-rapidity cut Float_t fYMax; // Maximum rapidity for V0 Float_t fDCAToPrimVtx; // Mimimum distance of closest approach of daughters to the vertex Float_t fMinCPA; // Minimum Cosine of the Pointing Angle to the vertex for V0 @@ -162,10 +173,12 @@ class AliAnalysisTaskLambdaOverK0sJets : public AliAnalysisTaskSE { TList** fMEList; //![] List of Mixed Events TObjArray* fTriggerParticles; // Trigger particle array + TObjArray* fChargedAssocParticles; // Trigger particle array TObjArray* fTriggerPartMC; // MC Trigger particle array TObjArray* fAssocParticles; // Associated particle array TObjArray* fAssocPartMC; // MC Associated particle array - + TObjArray* fXiTriggerPartMC; // Xi leading particle: MC Trigger particle array + TH1F* fEvents; //! Counter for the number of events in each step TH1F* fCentrality; //! Event centrality per centil TH1F* fCentrality2; //! Event centrality per centil with |VtxZ|<10cm @@ -389,6 +402,18 @@ class AliAnalysisTaskLambdaOverK0sJets : public AliAnalysisTaskSE { TH2F* fAntiLambdaBckgDCANegDaugToPrimVtx; //! AntiLambda background: DCA of Negative daughter to the primary vertex inside the radio 0.4 wrt the near-side peak TH2F* fAntiLambdaBckgDCAPosDaugToPrimVtx; //! AntiLambda background: DCA of Positive daughter to the primary vertex inside the radio 0.4 wrt the near-side peak + // Xi Minus // + TH2F* fXiMinusPtMCAssoc; //! Xi Minus MC: Pt vs Centrality when they are associated particles + TH2F* fXiMinusPtMCTrigger; //! Xi Minus MC: Pt vs Centrality when they are trigger particles + TH3F* fXiMinusdPhidEtaMC[kNCent*kN2]; //! Xi Minus MC: Delta phi,Delta eta vs Z vertex position + TH3F* fXiMinusdPhidEtaMC2[kNCent*kN2]; //! Xi Minus MC: Delta phi,Delta eta vs Z vertex position + TH3F* fXiMinusdPhidEtaMC3[kNCent*kN3]; //! Xi Minus MC: Delta phi,Delta eta vs Z vertex position + + // Gamma converison // + TH3F* fGammaConversiondPhidEta[kNCent]; //! Gamma conversion: Delta phi,Delta eta vs Z vertex position + + // Charged particles // + TH2F* fChargeddPhidEta[kNVtxZ*kNCent*kNc]; //! Charged particles: Delta phi,Delta eta /// ==== Quality Assurance plots === /// @@ -495,6 +520,7 @@ class AliAnalysisTaskLambdaOverK0sJets : public AliAnalysisTaskSE { /// ==== Mixed Events plots === /// + TH2F* fChargeddPhidEtaME[kNVtxZ*kNCent*kNc+1]; //! K0s Mixed Events TH2F* fK0sdPhidEtaME[kNVtxZ*kNCent*kN1+1]; //! K0s Mixed Events TH2F* fLambdadPhidEtaME[kNVtxZ*kNCent*kN1+1]; //! Lambda Mixed Events TH2F* fAntiLambdadPhidEtaME[kNVtxZ*kNCent*kN1+1]; //! AntiLambda Mixed Events diff --git a/PWGLF/STRANGENESS/Correlations/macros/AddTaskLambdaOverK0sJets.C b/PWGLF/STRANGENESS/Correlations/macros/AddTaskLambdaOverK0sJets.C index 2fdae2e1972..091eff36b9d 100644 --- a/PWGLF/STRANGENESS/Correlations/macros/AddTaskLambdaOverK0sJets.C +++ b/PWGLF/STRANGENESS/Correlations/macros/AddTaskLambdaOverK0sJets.C @@ -4,8 +4,7 @@ AliAnalysisTaskLambdaOverK0sJets *AddTaskLambdaOverK0sJets( TString name = Float_t maxCen = 40., Bool_t sepInjec = kTRUE, Bool_t isMC = kFALSE, - Bool_t doQA = kTRUE, - Bool_t useEtaCut = kFALSE){ + Bool_t doQA = kTRUE){ @@ -15,12 +14,12 @@ AliAnalysisTaskLambdaOverK0sJets *AddTaskLambdaOverK0sJets( TString name = Float_t etaMaxTrig = 0.7; Float_t checkIDTrig = kTRUE; Float_t rapMaxV0 = 0.7; - Bool_t usePID = kTRUE; + Bool_t usePID = kFALSE; Float_t nSigmaPID = 3.0; Float_t dcaDaug = 1.0; Float_t dca2PrmVtx = 0.095; // tighter cut - Float_t nclsDaug = 0; // looser cut - Float_t minPtDaughter = 0.; + Float_t nclsDaug = 50; // looser cut + AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) { @@ -40,13 +39,11 @@ AliAnalysisTaskLambdaOverK0sJets *AddTaskLambdaOverK0sJets( TString name = task->SetTriggerEta(etaMaxTrig); task->SetCheckIDTrig(checkIDTrig); // V0 candidates - task->SetEtaCut(useEtaCut); task->SetMaxY(rapMaxV0); task->SetMaxDCADaughter(dcaDaug); // Added to perform systematics task->SetDCAToPrimVtx(dca2PrmVtx); // Added to perform systematics task->SetNSigmaPID(nSigmaPID); task->SetNClsTPC(nclsDaug); // Added to perform systematics - task->SetMinPtDaughter(minPtDaughter); // PID task->SetSeparateInjectedPart(sepInjec); // MC