+ lPhi = trackAssocME->Phi();
+ lEta = trackAssocME->Eta();
+
+ // Correlation in deltaPhi & deltaEta
+ dPhi = dPHI(trig->Phi(),lPhi);
+ dEta = trig->Eta() - lEta;
+ radio = TMath::Sqrt(dPhi*dPhi + dEta*dEta);
+
+ // Armenteros variables:
+ lAlphaV0 = tAssoc->AlphaV0();
+ lPtArmV0 = tAssoc->PtArmV0();
+
+ // 2D momentum
+ pt = trackAssocME->Pt(); pxAssoc = tAssoc->Px(); pyAssoc = tAssoc->Py();
+ // Decay vertex
+ Double_t xyz[3]; tAssoc->GetSecondaryVtx(xyz);
+ dx=xyz[0]-xv; dy=xyz[1]-yv; dz=xyz[2]-zv;
+ // Decay length: 2D
+ lt=TMath::Sqrt(dx*dx + dy*dy);
+ // Spatial resolution trigger-V0 point decay
+ res = SpatialResolution(pxTrig,pyTrig,pxAssoc,pyAssoc,lt);
+ // Ctau
+ dlK = 0.4977*lt/pt;
+ dlL = 1.1157*lt/pt;
+
+ Int_t binPtv0 = PtBin( pt );
+ if(binPtv0==-1) continue;
+
+ Int_t lMCAssocNegDaug=0, lMCAssocPosDaug=0;
+
+ // *******************
+ // Gamma conversion
+ // *******************
+ if( trackAssocME->WhichCandidate() == 2 )
+ fGammaConversiondPhidEta[curCentBin]->Fill(dPhi,dEta,zv);
+
+ // *******************
+ // K0s selection
+ // *******************
+ if( trackAssocME->WhichCandidate() == 3 ){
+
+ massK0s = tAssoc->MassK0Short();
+ mK0s = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass();
+ sK0s = 0.0044 + (0.008-0.0044)/(10-1)*(pt - 1.);
+
+ // ==== Correlations K0s invariant mass peak ==== //
+ if (TMath::Abs(mK0s-massK0s) < 3*sK0s) {
+
+ fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0,0);
+ fK0sPtvsEta->Fill(pt,lEta,3);
+ fK0sPtvsRap->Fill(pt,tAssoc->RapK0Short(),3);
+
+ // Pt bin & centrality
+ fK0sdPhidEtaPtL[curCentBin*kN1+binPtv0]->Fill(dPhi,dEta,zv);
+
+ if(radio<0.1)
+ fK0sSpatialRes->Fill(dPhi,res,lt);
+ if(radio < 0.4){
+ fK0sDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig);
+ RecCascade(tTrig,ntrack,ptrack,"K0s");
+ RecCascade(tTrig,ptrack,ntrack,"K0s");
+ }
+
+
+ }
+ // ==== Correlations K0s background ==== //
+ if( TMath::Abs(mK0s-massK0s + 6.5*sK0s) < 1.5*sK0s ||
+ TMath::Abs(mK0s-massK0s - 6.5*sK0s) < 1.5*sK0s ) {
+
+ fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0,1);
+
+ // Pt bin & centrality
+ fK0sdPhidEtaPtLBckg[curCentBin*kN1+binPtv0]->Fill(dPhi,dEta,zv);
+
+ if(radio < 0.4){ // Under the correlation peak
+ fHistArmPodBckg->Fill(lAlphaV0,lPtArmV0,0);
+ fK0sBckgDecLength->Fill(dlK,ptTrig);
+ fK0sBckgDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig);
+ fK0sBckgEtaPhi->Fill(lPhi,lEta);
+ fK0sBckgPhiRadio->Fill(lPhi,lt);
+
+ // MC Association of daughter particles
+ for(Int_t ii=0;ii<5;ii++){
+ if(lMCAssocNegDaug == ii){
+ fK0sBckgDCANegDaugToPrimVtx->Fill(ii,dcaNeg);
+ //if eta selection for the trigger particle
+ }
+ if(lMCAssocPosDaug == ii){
+ fK0sBckgDCAPosDaugToPrimVtx->Fill(ii,dcaPos);
+ //if eta selection for the trigger particle
+ }
+
+ }
+
+ //RecCascade(trkTrig,ntrack,ptrack,"K0s");
+ //RecCascade(trkTrig,ptrack,ntrack,"K0s");
+
+ }// End selection in the correlation peak
+
+ } // End background selection
+
+ } // End K0s selection
+
+ // *******************
+ // Lambda selection
+ // *******************
+ if( trackAssocME->WhichCandidate() == 4 ){
+ massL = tAssoc->MassLambda();
+ mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
+ sL = 0.0023 + (0.004-0.0023)/(6-1)*(pt-1);
+
+ // ==== Correlations Lambda invariant mass peak ==== //
+ if (TMath::Abs(mL-massL) < 3*sL) {
+
+ fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0,2);
+ fLambdaPtvsEta->Fill(pt,lEta,3);
+ fLambdaPtvsRap->Fill(pt,tAssoc->RapLambda(),3);
+
+ // Pt bin & centrality
+ fLambdadPhidEtaPtL[curCentBin*kN1+binPtv0]->Fill(dPhi,dEta,zv);
+
+ if(radio<0.1)
+ fLambdaSpatialRes->Fill(dPhi,res,lt);
+ if(radio < 0.4){
+ fLambdaDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig);
+ RecCascade(tTrig,ntrack,ptrack,"Lambda");
+ RecCascade(tTrig,ptrack,ntrack,"Lambda");
+ }
+
+ } // End mass peak selection
+ // ==== Correlations Lambda background ==== //
+ if( TMath::Abs(mL-massL + 6.5*sL) < 1.5*sL ||
+ TMath::Abs(mL-massL - 6.5*sL) < 1.5*sL ) {
+
+ fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0,3);
+
+ // Pt bin & centrality
+ fLambdadPhidEtaPtLBckg[curCentBin*kN1+binPtv0]->Fill(dPhi,dEta,zv);
+
+ if(radio < 0.4){ // Under the peak
+ fHistArmPodBckg->Fill(lAlphaV0,lPtArmV0,1);
+ fLambdaBckgDecLength->Fill(dlL,ptTrig);
+ fLambdaBckgDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig);
+ fLambdaBckgEtaPhi->Fill(lPhi,lEta);
+ fLambdaBckgPhiRadio->Fill(lPhi,lt);
+
+ // MC Association of daughter particles
+ for(Int_t ii=0;ii<5;ii++){
+ if(lMCAssocNegDaug == ii)
+ fLambdaBckgDCANegDaugToPrimVtx->Fill(ii,dcaNeg);
+
+ if(lMCAssocPosDaug == ii)
+ fLambdaBckgDCAPosDaugToPrimVtx->Fill(ii,dcaPos);
+ }
+
+ //RecCascade(trkTrig,ntrack,ptrack,"Lambda");
+ //RecCascade(trkTrig,ptrack,ntrack,"Lambda");
+
+ }// End selection in the correlation peak
+
+ } // End bacground selection
+
+ }// End Lambda selection
+ // *******************
+ // AntiLambda selection
+ // *******************
+ if( trackAssocME->WhichCandidate() == 5 ){
+ massAL = tAssoc->MassAntiLambda();
+ mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
+ sL = 0.0023 + (0.004-0.0023)/(6-1)*(pt-1);
+
+ // ==== Correlations AntiLambda invariant mass peak ==== //
+ if (TMath::Abs(mL-massAL) < 3*sL) {
+
+ fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0,4);
+ fAntiLambdaPtvsEta->Fill(pt,lEta,3);
+ fAntiLambdaPtvsRap->Fill(pt,tAssoc->RapLambda(),3);
+
+ // Pt bin & centrality
+ fAntiLambdadPhidEtaPtL[curCentBin*kN1+binPtv0]->Fill(dPhi,dEta,zv);
+
+ if(radio<0.1)
+ fAntiLambdaSpatialRes->Fill(dPhi,res,lt);
+ if(radio < 0.4){
+ fAntiLambdaDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig);
+ RecCascade(tTrig,ntrack,ptrack,"AntiLambda");
+ RecCascade(tTrig,ptrack,ntrack,"AntiLambda");
+ }
+
+ } // End AntiLambda mass peak
+ // ==== Correlations AntiLambda background ==== //
+ if( (TMath::Abs(mL-massAL + 6.5*sL) < 1.5*sL) ||
+ (TMath::Abs(mL-massAL - 6.5*sL) < 1.5*sL) ){
+
+ fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0,5);
+
+ // Pt bin & centrality
+ fAntiLambdadPhidEtaPtLBckg[curCentBin*kN1+binPtv0]->Fill(dPhi,dEta,zv);
+
+ if(radio < 0.4){ // Under the peak
+ fHistArmPodBckg->Fill(lAlphaV0,lPtArmV0,2);
+ fAntiLambdaBckgDecLength->Fill(dlL,ptTrig);
+ fAntiLambdaBckgDCADaugToPrimVtx->Fill(dcaPos,dcaNeg,ptTrig);
+ fAntiLambdaBckgEtaPhi->Fill(lPhi,lEta);
+ fAntiLambdaBckgPhiRadio->Fill(lPhi,lt);
+
+ // MC Association of daughter particles
+ for(Int_t ii=0;ii<5;ii++){
+ if(lMCAssocNegDaug == ii)
+ fAntiLambdaBckgDCANegDaugToPrimVtx->Fill(ii,dcaNeg);
+
+ if(lMCAssocPosDaug == ii)
+ fAntiLambdaBckgDCAPosDaugToPrimVtx->Fill(ii,dcaPos);
+ }
+
+ //RecCascade(trkTrig,ntrack,ptrack,"AntiLambda");
+ //RecCascade(trkTrig,ptrack,ntrack,"AntiLambda");
+
+ }// End selection in the correlation peak
+
+ }// End AntiLambda background
+
+ } // End AntiLambda selection
+
+ } // End loop over associated particles
+
+ } // End loop over trigger particles
+
+ //-------------------------------------------------------------
+ // Mixing
+ //-------------------------------------------------------------
+
+ TList *evMixList = fMEList[curCentBin*kNVtxZ+curVtxBin];
+ Int_t nMixed = evMixList->GetSize();
+
+ if( nMixed>0 && fAssocParticles->GetEntriesFast() >= 0 ){
+
+ for(Int_t ii=0; ii<nMixed; ii++){
+
+ AliMiniParticle* trackTriggerME = (AliMiniParticle*) (evMixList->At(ii));
+ Double_t phiTrigME = trackTriggerME->Phi();
+ Double_t etaTrigME = trackTriggerME->Eta();
+
+ for(Int_t j=0; j<fAssocParticles->GetEntriesFast(); j++){
+
+ AliMiniParticle* trackAssocME = (AliMiniParticle*) (fAssocParticles->At(j));
+ if( CentBin(trackTriggerME->Centrality()) != CentBin(trackAssocME->Centrality()) ) continue;
+ if( VtxBin(trackTriggerME->VtxZ()) != VtxBin(trackAssocME->VtxZ()) ) continue;
+ if( trackAssocME->WhichCandidate() == 2 ) continue;
+
+ AliAODv0 *tAssoc=fAOD->GetV0(trackAssocME->ID());
+ pt = tAssoc->Pt();
+
+ Bool_t IsSelected = kFALSE;
+ // K0s
+ if( trackAssocME->WhichCandidate() == 3 ){
+ massK0s = tAssoc->MassK0Short();
+ mK0s = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass();
+ sK0s = 0.0044 + (0.008-0.0044)/(10-1)*(pt - 1.);
+ if (TMath::Abs(mK0s-massK0s) < 3*sK0s) IsSelected = kTRUE;
+ }
+ // Lambda
+ if( trackAssocME->WhichCandidate() == 4 ){
+ massL = tAssoc->MassLambda();
+ mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
+ sL = 0.0023 + (0.004-0.0023)/(6-1)*(pt-1);
+ if (TMath::Abs(mL-massL) < 3*sL) IsSelected = kTRUE;
+ }
+ // AntiLambda
+ if( trackAssocME->WhichCandidate() == 5 ){
+ massAL = tAssoc->MassAntiLambda();
+ mL = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
+ sL = 0.0023 + (0.004-0.0023)/(6-1)*(pt-1);
+ if (TMath::Abs(mL-massAL) < 3*sL) IsSelected = kTRUE;
+ }
+
+ if(!IsSelected) continue;
+
+ Double_t phiAssocME = trackAssocME->Phi();
+ Double_t etaAssocME = trackAssocME->Eta();
+
+ Double_t deltaPhi = dPHI(phiTrigME,phiAssocME);
+ Double_t deltaEta = etaTrigME - etaAssocME;
+
+ Int_t binPtv0 = PtBin( trackAssocME->Pt() );
+ if(binPtv0==-1) continue;
+
+ if( trackAssocME->WhichCandidate() == 3 ) {
+ fK0sdPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);}
+ else if( trackAssocME->WhichCandidate() == 4 )
+ fLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);
+ else if( trackAssocME->WhichCandidate() == 5 )
+ fAntiLambdadPhidEtaME[curCentBin*kN1*kNVtxZ + binPtv0*kNVtxZ + curVtxBin]->Fill(deltaPhi,deltaEta);
+
+ }
+
+ }
+
+ }
+
+ //--------------------------------------------------------
+ //Add the current event to the list of events for mixing
+ //--------------------------------------------------------
+
+ //Add current event to buffer and Remove redundant events
+ if(fTriggerParticles->GetEntriesFast()>=0){
+
+ for(Int_t ii=0; ii<(fTriggerParticles->GetEntriesFast()); ii++){
+ AliMiniParticle* trkTrig = (AliMiniParticle*) fTriggerParticles->At(ii);
+ //cout << trkTrig->Pt() << " " << ii << endl;
+
+ evMixList->AddFirst(trkTrig);
+ if(evMixList->GetSize() >= nMaxEvMix) {
+ AliMiniParticle *tmp = (AliMiniParticle*) (evMixList->Last()) ;
+ evMixList->RemoveLast();
+ delete tmp;
+ }
+
+ }// End loop over fTriggerParticles
+
+ }// End adding trigger particles to buffers
+