26 #include <Riostream.h>
28 #include <TDatabasePDG.h>
30 #include <TLorentzVector.h>
33 #include "AliAnalysisManager.h"
34 #include "AliInputEventHandler.h"
35 #include "AliPIDResponse.h"
38 #include "AliAODTrack.h"
39 #include "AliESDtrack.h"
40 #include "AliESDVertex.h"
41 #include "AliAODVertex.h"
43 #include "AliAODcascade.h"
57 fPIDStrategy(kNSigmaCuts),
58 fCombinedPIDThreshold(0.),
59 fUseOnTheFlyV0(kFALSE),
61 fProdTrackTPCNclsPIDMin(0),
62 fProdTrackTPCNclsRatioMin(0.0),
63 fProdUseAODFilterBit(kTRUE),
65 fProdRejectTrackWithShared(kFALSE),
66 fProdV0MassTolK0s(0.01),
67 fProdV0MassRejLambda(0.00),
68 fProdV0MassRejPhoton(0.00),
70 fProdV0CosPointingAngleToPrimVtxMin(0.99),
71 fProdV0DcaDaughtersMax(1.5),
72 fProdV0DaughterEtaRange(0.8),
73 fProdV0DaughterPtMin(0.0),
74 fProdV0DaughterTPCClusterMin(70),
75 fProdV0EtaMin(-9999.),
77 fProdV0RapMin(-9999.),
79 fProdRoughMassTol(0.25),
81 fNWeightingProtonBinLimits(0),
82 fWeightingProtonBins(0),
83 fNWeightingK0sBinLimits(0),
95 for(
Int_t i=0;i<3;i++){
101 TString varNames[nvars]={
"Lc inv. mass [GeV/c2]",
102 "Opening angle [rad]",
105 "Decay Length min [cm]",
112 Bool_t isUpperCut[nvars]={kTRUE,
123 Bool_t forOpt[nvars]={kFALSE,
135 Float_t limits[2]={0,999999999.};
141 fPIDStrategy(source.fPIDStrategy),
142 fCombinedPIDThreshold(source.fCombinedPIDThreshold),
143 fUseOnTheFlyV0(source.fUseOnTheFlyV0),
145 fProdTrackTPCNclsPIDMin(source.fProdTrackTPCNclsPIDMin),
146 fProdTrackTPCNclsRatioMin(source.fProdTrackTPCNclsRatioMin),
147 fProdUseAODFilterBit(source.fProdUseAODFilterBit),
148 fProdAODFilterBit(source.fProdAODFilterBit),
149 fProdRejectTrackWithShared(source.fProdRejectTrackWithShared),
150 fProdV0MassTolK0s(source.fProdV0MassTolK0s),
151 fProdV0MassRejLambda(source.fProdV0MassRejLambda),
152 fProdV0MassRejPhoton(source.fProdV0MassRejPhoton),
153 fProdV0PtMin(source.fProdV0PtMin),
154 fProdV0CosPointingAngleToPrimVtxMin(source.fProdV0CosPointingAngleToPrimVtxMin),
155 fProdV0DcaDaughtersMax(source.fProdV0DcaDaughtersMax),
156 fProdV0DaughterEtaRange(source.fProdV0DaughterEtaRange),
157 fProdV0DaughterPtMin(source.fProdV0DaughterPtMin),
158 fProdV0DaughterTPCClusterMin(source.fProdV0DaughterTPCClusterMin),
159 fProdV0EtaMin(source.fProdV0EtaMin),
160 fProdV0EtaMax(source.fProdV0EtaMax),
161 fProdV0RapMin(source.fProdV0RapMin),
162 fProdV0RapMax(source.fProdV0RapMax),
163 fProdRoughMassTol(source.fProdRoughMassTol),
164 fProdRoughPtMin(source.fProdRoughPtMin),
165 fNWeightingProtonBinLimits(source.fNWeightingProtonBinLimits),
166 fWeightingProtonBins(NULL),
167 fNWeightingK0sBinLimits(source.fNWeightingK0sBinLimits),
168 fWeightingK0sBins(NULL),
169 fNWeightingBins(source.fNWeightingBins),
174 fTagV0MassTol(source.fTagV0MassTol)
179 for(
Int_t i=0;i<3;i++){
208 if (
this != &source) {
241 for(
Int_t i=0;i<3;i++){
289 if (pdgdaughters[0]==-9999)
return;
293 AliError(
"No AliAODRecoCascadeHF object found\n");
298 AliError(
"Cut object seems to have the wrong number of variables\n");
308 Double_t mlcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
313 vars[iter]= dd->Pt();
326 AliFatal(
"Cut matrix not inizialized. Exit...");
332 AliDebug(2,
"AliAODRecoCascadeHF null");
351 Int_t returnvalueCuts=1;
358 Double_t mlcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
359 Double_t mprPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
360 Double_t mk0PDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
367 Double_t cosoa = (v0px*epx+v0py*epy+v0pz*epz)/sqrt(v0px*v0px+v0py*v0py+v0pz*v0pz)/sqrt(epx*epx+epy*epy+epz*epz);
369 TLorentzVector vpr, vk0s,vlc;
370 vpr.SetXYZM(epx,epy,epz,mprPDG);
371 vk0s.SetXYZM(v0px,v0py,v0pz,mk0PDG);
373 TVector3 vboost = vlc.BoostVector();
375 Double_t bachcosthe = cos(vpr.Angle(vlc.Vect()));
406 if(!okcand)
return 0;
410 Int_t returnvaluePID=1;
415 AliAODTrack *part = (AliAODTrack*)d->GetSecondaryVtx()->GetDaughter(0);
429 Int_t returnvalue = 0;
430 if(returnvalueCuts==1 && returnvaluePID==1) returnvalue=1;
442 AliFatal(
"Cut matrix not inizialized. Exit...");
461 Int_t returnvalueCuts=1;
468 Double_t mlcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
469 Double_t mprPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
470 Double_t mk0PDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
477 Double_t cosoa = (v0px*epx+v0py*epy+v0pz*epz)/sqrt(v0px*v0px+v0py*v0py+v0pz*v0pz)/sqrt(epx*epx+epy*epy+epz*epz);
479 TLorentzVector vpr, vk0s,vlc;
480 vpr.SetXYZM(epx,epy,epz,mprPDG);
481 vk0s.SetXYZM(v0px,v0py,v0pz,mk0PDG);
483 TVector3 vboost = vlc.BoostVector();
485 Double_t bachcosthe = cos(vpr.Angle(vlc.Vect()));
516 if(!okcand)
return 0;
520 Int_t returnvaluePID=1;
537 Int_t returnvalue = 0;
538 if(returnvalueCuts==1 && returnvaluePID==1) returnvalue=1;
559 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
560 AliPIDResponse *pidResp=inputHandler->GetPIDResponse();
565 if(isProton<1) returnvalue = 0;
579 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
580 AliPIDResponse *pidResp=inputHandler->GetPIDResponse();
591 if(fabs(nSigmaTPCpr)<nsigmatpc_proton && fabs(nSigmaTOFpr)<nsigmatof_proton){
606 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
607 AliPIDResponse *pidResp=inputHandler->GetPIDResponse();
618 if(fabs(nSigmaTPCka)<nsigmatpc_kaon && fabs(nSigmaTOFka)<nsigmatof_kaon){
631 if(!
fUsePID || !obj) {
return 1;}
677 if(trk->Pt()<ptmin || trk->Pt()>
ptmax)
return kFALSE;
678 if(trk->Eta()<etamin || trk->Eta()>
etamax)
return kFALSE;
680 Double_t pos[3]; primVert->GetXYZ(pos);
681 Double_t cov[6]; primVert->GetCovarianceMatrix(cov);
682 const AliESDVertex vESD(pos,cov,100.,100);
688 if(trk->GetTPCNclsF()>0){
697 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
698 AliPIDResponse *pidResp=inputHandler->GetPIDResponse();
710 const TBits sharedMap = trk->GetTPCSharedMap();
711 if((sharedMap.CountBits()) >= 1){
725 if(trk->GetStatus()&AliESDtrack::kITSpureSA)
return kFALSE;
726 if(!(trk->GetStatus()&AliESDtrack::kITSin))
return kFALSE;
728 Double_t pos[3]; primVert->GetXYZ(pos);
729 Double_t cov[6]; primVert->GetCovarianceMatrix(cov);
730 const AliESDVertex vESD(pos,cov,100.,100);
734 if(trk->GetTPCNclsF()>0){
743 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
744 AliPIDResponse *pidResp=inputHandler->GetPIDResponse();
762 AliError(
"No AliAODRecoCascadeHF object found\n");
769 Double_t inner = px*dvertx + py*dverty;
770 if(inner<0.)
return -1.;
780 Bool_t onFlyV0 = v0->GetOnFlyStatus();
783 AliAODTrack *cptrack = (AliAODTrack*)(v0->GetDaughter(0));
784 AliAODTrack *cntrack = (AliAODTrack*)(v0->GetDaughter(1));
785 if(!cptrack || !cntrack)
return kFALSE;
786 if ( cptrack->Charge() == cntrack->Charge() )
return kFALSE;
787 if(!(cptrack->GetStatus() & AliESDtrack::kTPCrefit) ||
788 !(cntrack->GetStatus() & AliESDtrack::kTPCrefit))
return kFALSE;
789 AliAODVertex *maybeKinkPos = (AliAODVertex*)cptrack->GetProdVertex();
790 AliAODVertex *maybeKinkNeg = (AliAODVertex*)cntrack->GetProdVertex();
791 if (maybeKinkPos->GetType()==AliAODVertex::kKink || maybeKinkNeg->GetType()==AliAODVertex::kKink)
797 Double_t massK0S = v0->MassK0Short();
798 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
801 Double_t massLambda = v0->MassLambda();
802 Double_t massAntiLambda = v0->MassAntiLambda();
803 Double_t mlamPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
809 Double_t Ee1 = sqrt(pxe1*pxe1+pye1*pye1+pze1*pze1+0.000511*0.000511);
813 Double_t Ee2 = sqrt(pxe2*pxe2+pye2*pye2+pze2*pze2+0.000511*0.000511);
814 Double_t mphoton = sqrt(pow(Ee1+Ee2,2)-pow(pxe1+pxe2,2)-pow(pye1+pye2,2)-pow(pze1+pze2,2));
820 primVert->GetXYZ(posVtx);
821 Double_t cospav0 = v0->CosPointingAngle(posVtx);
830 if(RapK0s<fProdV0RapMin || RapK0s>
fProdV0RapMax)
return kFALSE;
832 Double_t EtaK0s = v0->PseudoRapV0();
833 if(EtaK0s<fProdV0EtaMin || EtaK0s>
fProdV0EtaMax)
return kFALSE;
837 const TBits sharedMap1 = cptrack->GetTPCSharedMap();
838 const TBits sharedMap2 = cntrack->GetTPCSharedMap();
839 if((sharedMap1.CountBits() >= 1) || (sharedMap2.CountBits() >= 1))
856 Double_t mprPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
857 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
862 Double_t Epr_init = sqrt(pxpr_init*pxpr_init+pypr_init*pypr_init+pzpr_init*pzpr_init+mprPDG*mprPDG);
867 Double_t massv0_init = v0->MassK0Short();
868 Double_t Ev0_init = sqrt(pxv0_init*pxv0_init+pyv0_init*pyv0_init+pzv0_init*pzv0_init+massv0_init*massv0_init);
870 Double_t pxlc_init = pxpr_init+pxv0_init;
871 Double_t pylc_init = pypr_init+pyv0_init;
872 Double_t pzlc_init = pzpr_init+pzv0_init;
873 Double_t Elc_init = Epr_init+Ev0_init;
874 Double_t lcmass_init = sqrt(Elc_init*Elc_init-pxlc_init*pxlc_init-pylc_init*pylc_init-pzlc_init*pzlc_init);
876 if(lcmass_init<mLcPDG-fProdRoughMassTol || lcmass_init>mLcPDG+
fProdRoughMassTol)
return kFALSE;
877 if(sqrt(pxlc_init*pxlc_init+pylc_init*pylc_init)<
fProdRoughPtMin)
return kFALSE;
888 Double_t mprPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
889 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
894 Double_t Epr_init = sqrt(pxpr_init*pxpr_init+pypr_init*pypr_init+pzpr_init*pzpr_init+mprPDG*mprPDG);
900 Double_t Ev0_init = sqrt(pxv0_init*pxv0_init+pyv0_init*pyv0_init+pzv0_init*pzv0_init+massv0_init*massv0_init);
902 Double_t pxlc_init = pxpr_init+pxv0_init;
903 Double_t pylc_init = pypr_init+pyv0_init;
904 Double_t pzlc_init = pzpr_init+pzv0_init;
905 Double_t Elc_init = Epr_init+Ev0_init;
906 Double_t lcmass_init = sqrt(Elc_init*Elc_init-pxlc_init*pxlc_init-pylc_init*pylc_init-pzlc_init*pzlc_init);
908 if(lcmass_init<mLcPDG-fProdRoughMassTol || lcmass_init>mLcPDG+
fProdRoughMassTol)
return kFALSE;
909 if(sqrt(pxlc_init*pxlc_init+pylc_init*pylc_init)<
fProdRoughPtMin)
return kFALSE;
920 Double_t mprPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
921 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
926 Double_t Epr_init = sqrt(pxpr_init*pxpr_init+pypr_init*pypr_init+pzpr_init*pzpr_init+mprPDG*mprPDG);
932 Double_t Ev0_init = sqrt(pxv0_init*pxv0_init+pyv0_init*pyv0_init+pzv0_init*pzv0_init+massv0_init*massv0_init);
934 Double_t pxlc_init = pxpr_init+pxv0_init;
935 Double_t pylc_init = pypr_init+pyv0_init;
936 Double_t pzlc_init = pzpr_init+pzv0_init;
937 Double_t Elc_init = Epr_init+Ev0_init;
938 Double_t lcmass_init = sqrt(Elc_init*Elc_init-pxlc_init*pxlc_init-pylc_init*pylc_init-pzlc_init*pzlc_init);
940 if(lcmass_init<mLcPDG-fProdRoughMassTol || lcmass_init>mLcPDG+
fProdRoughMassTol)
return kFALSE;
941 if(sqrt(pxlc_init*pxlc_init+pylc_init*pylc_init)<
fProdRoughPtMin)
return kFALSE;
952 Double_t mprPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
953 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
958 Double_t Epr_init = sqrt(pxpr_init*pxpr_init+pypr_init*pypr_init+pzpr_init*pzpr_init+mprPDG*mprPDG);
964 Double_t Ev0_init = sqrt(pxv0_init*pxv0_init+pyv0_init*pyv0_init+pzv0_init*pzv0_init+massv0_init*massv0_init);
966 Double_t pxlc_init = pxpr_init+pxv0_init;
967 Double_t pylc_init = pypr_init+pyv0_init;
968 Double_t pzlc_init = pzpr_init+pzv0_init;
969 Double_t Elc_init = Epr_init+Ev0_init;
970 Double_t lcmass_init = sqrt(Elc_init*Elc_init-pxlc_init*pxlc_init-pylc_init*pylc_init-pzlc_init*pzlc_init);
972 if(lcmass_init<mLcPDG-fProdRoughMassTol || lcmass_init>mLcPDG+
fProdRoughMassTol)
return kFALSE;
973 if(sqrt(pxlc_init*pxlc_init+pylc_init*pylc_init)<
fProdRoughPtMin)
return kFALSE;
1015 if(dphi>M_PI/2.)
return 1.;
1017 Int_t ibin_pr = -9999;
1024 Int_t ibin_k0s = -9999;
1031 if(ibin_pr<0 || ibin_pr > fNWeightingProtonBinLimits-1)
return 1.;
1032 if(ibin_k0s<0 || ibin_k0s > fNWeightingK0sBinLimits-1)
return 1.;
1034 Int_t ibin_comb = ibin_pr*(fNWeightingK0sBinLimits-1)+ibin_k0s;
1040 Double_t weight = p0 + p1 *TMath::Gaus(dphi,0.,p2)*TMath::Gaus(deta,0.,p3);
1052 Double_t mprPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
1053 Double_t mpiPDG = TDatabasePDG::Instance()->GetParticle(211)->Mass();
1054 Double_t mlamPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
1060 Int_t trkid = ptrk->GetID();
1064 Double_t Epr1 = sqrt(px1*px1+py1*py1+pz1*pz1+mprPDG*mprPDG);
1066 for(
Int_t it=0;it<ntrk;it++){
1067 AliAODTrack *trk2 = (AliAODTrack*) evt->GetTrack(it);
1069 Int_t trkid2 = trk2->GetID();
1070 if(trkid==trkid2)
continue;
1071 if(ptrk->Charge()*trk2->Charge()>0)
continue;
1072 if(!ptrk->TestFilterMask(BIT(4)))
continue;
1077 Double_t E2 = sqrt(px2*px2+py2*py2+pz2*pz2+mpiPDG*mpiPDG);
1079 Double_t mass_lam = sqrt(pow(Epr1+E2,2)-pow(px1+px2,2)-pow(py1+py2,2)-pow(pz1+pz2,2));
1081 if(fabs(dlam)<fabs(minmass)){
1089 if(islam) minmass += mlamPDG;
1102 Double_t mprPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
1103 Double_t mpiPDG = TDatabasePDG::Instance()->GetParticle(211)->Mass();
1104 Double_t mlamPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
1110 Int_t trkid = ptrk->GetID();
1114 Double_t Epr1 = sqrt(px1*px1+py1*py1+pz1*pz1+mprPDG*mprPDG);
1116 for(
Int_t it=0;it<ntrk;it++){
1117 AliAODTrack *trk2 = (AliAODTrack*) evt->GetTrack(it);
1119 Int_t trkid2 = trk2->GetID();
1120 if(trkid==trkid2)
continue;
1121 if(ptrk->Charge()*trk2->Charge()<0)
continue;
1122 if(!ptrk->TestFilterMask(BIT(4)))
continue;
1127 Double_t E2 = sqrt(px2*px2+py2*py2+pz2*pz2+mpiPDG*mpiPDG);
1129 Double_t mass_lam = sqrt(pow(Epr1+E2,2)-pow(px1+px2,2)-pow(py1+py2,2)-pow(pz1+pz2,2));
1131 if(fabs(dlam)<fabs(minmass)){
1139 if(islam) minmass += mlamPDG;
Double_t fCombinedPIDThreshold
PID strategy.
Double_t * fWeight_p0
Number of bins for mixing weight should be proton x k0s.
Bool_t SingleTrkCuts(AliAODTrack *trk, AliAODTrack *trkpid, AliAODVertex *vtx)
Double_t fProdV0MassRejLambda
K0s mass selection used before object creation.
Double_t fProdV0EtaMin
V0 daughter Minimum TPC cluster pT used before object creation.
Double_t GetMixingWeight(Double_t dphi, Double_t deta, Double_t pt_pr, Double_t pt_k0s)
Bool_t IsSelectedKaonID(AliAODTrack *trk)
Bool_t IsSelectedProtonID(AliAODTrack *trk)
Double_t GetSigma(Int_t idet) const
Double_t fProdV0DaughterTPCClusterMin
V0 Daughter pT min used before object creation.
Double_t fProdTrackTPCNclsRatioMin
Min. Number of TPC PID cluster.
Int_t fProdTrackTPCNclsPIDMin
Primary vertex.
Double_t fBzkG
Flag to check if we use on-the-fly v0.
void SetNVars(Int_t nVars)
AliRDHFCutsLctopK0sfromAODtracks & operator=(const AliRDHFCutsLctopK0sfromAODtracks &source)
Double_t fProdRoughPtMin
Mass cut for Lc used before object creation.
Double_t fProdV0RapMax
Minimum rapidity of cascade.
AliRDHFCuts & operator=(const AliRDHFCuts &source)
Int_t fNWeightingK0sBinLimits
Double_t * fWeightingK0sBins
Number of bins for k0s.
virtual ~AliRDHFCutsLctopK0sfromAODtracks()
Double_t fProdV0DaughterEtaRange
Max DCA between V0 daughters used before object creation.
Double_t fProdV0MassTolK0s
Flag to Reject tracks with shared clusters.
Bool_t SingleV0Cuts(AliAODv0 *v0, AliAODVertex *vert)
Double_t InvMassLctoK0sP() const
Double_t GetProtonProbabilityTPCTOF(AliAODTrack *trk)
Double_t fProdV0CosPointingAngleToPrimVtxMin
Minimum K0s pT used before object creation.
Double_t fProdRoughMassTol
Maximum rapidity of cascade.
Double_t fProdV0PtMin
photon mass rejection used before object creation
AliPIDCombined * GetPidCombined() const
Double_t fPrimVert[3]
B field.
Double_t fMaxPtCand
minimum pt of the candidate
Double_t CalculateLcCosPAXY(AliAODRecoDecayHF *obj)
AliESDtrackCuts * fTrackCuts
quality cuts on the daughter tracks
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
Bool_t fUseOnTheFlyV0
Threshold used in IsSelectedCombinedPID.
AliAODTrack * GetBachelor() const
AliAODVertex * GetOwnPrimaryVtx() const
Double_t fProdV0DcaDaughtersMax
V0 pointing angle used before object creation.
Double_t fProdV0RapMin
Maximum eta of cascade.
virtual Int_t IsSelectedPID(AliAODRecoDecayHF *obj)
Int_t MakeRawPid(AliAODTrack *track, Int_t specie)
AliPIDResponse * GetPidResponse() const
Bool_t SelectWithRoughCutsWS(AliAODTrack *vka, AliAODTrack *trk1)
Float_t * fCutsRD
fnVars*fnPtBins
Bool_t fProdUseAODFilterBit
Min. Number of TPC PID cluster.
Double_t fProdV0DaughterPtMin
V0Daughter eta range used before object creation.
void SetVarsForOpt(Int_t nVars, Bool_t *forOpt)
Double_t DecayLengthXY() const
void SetVarNames(Int_t nVars, TString *varNames, Bool_t *isUpperCut)
Bool_t * fVarsForOpt
number of cut vars to be optimized for candidates
Double_t fProdV0EtaMax
Minimum eta of cascade.
Double_t * fWeightingProtonBins
Number of bins for proton.
Bool_t SingleKaonCuts(AliAODTrack *trk, AliAODVertex *vtx)
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d, Float_t *vars, Int_t nvars, Int_t *pdgdaughters)
AliRDHFCutsLctopK0sfromAODtracks(const char *name="CutsLctopK0s")
Int_t fNWeightingProtonBinLimits
pT cut for Lc used before object creation
Bool_t TagV0(AliAODTrack *etrk, AliAODEvent *evt, Int_t ntrk, Double_t &minmass)
void SetPtBins(Int_t nPtBinLimits, Float_t *ptBinLimits)
void SetMixingWeights(Int_t nbinpr, Double_t *bins_pr, Int_t nbink0s, Double_t *bins_k0s, Double_t *p0val, Double_t *p1val, Double_t *p2val, Double_t *p3val)
Bool_t SelectWithRoughCuts(AliAODv0 *v0, AliAODTrack *trk1)
Bool_t TagV0SameSign(AliAODTrack *etrk, AliAODEvent *evt, Int_t ntrk, Double_t &minmass)
EPIDStrategy fPIDStrategy
Int_t IsSelectedCombinedPID(AliAODRecoDecayHF *obj)
AliAODPidHF * fPidHF
enable AOD049 centrality cleanup
Int_t PtBin(Double_t pt) const
Int_t GetGlobalIndex(Int_t iVar, Int_t iPtBin) const
Bool_t fProdRejectTrackWithShared
AOD filter Bit used before object creation.
Double_t fMinPtCand
outcome of PID selection
Bool_t IsDaughterSelected(AliAODTrack *track, const AliESDVertex *primary, AliESDtrackCuts *cuts, const AliAODEvent *aod=0x0) const
void SetPidResponse(AliPIDResponse *pidResp)
Double_t fProdV0MassRejPhoton
lambda mass rejection used before object creation
Int_t fProdAODFilterBit
Flag for AOD filter Bit used before object creation.