//
// Standrd constructor
//
- //Double_t ptlim[5]={0.,2.,3.,5,9999999.};
- //SetPtBinLimit(5, ptlim);
- SetPtBinLimit(fRDCutsAnalysis->GetNPtBins()+1,fRDCutsAnalysis->GetPtBinLimits());
+ fNPtBins=fRDCutsAnalysis->GetNPtBins();
// Default constructor
// Output slot #1 writes into a TList container
DefineOutput(1,TList::Class()); //My private output
SetBinWidth(bw);
}
}
-//________________________________________________________________________
-void AliAnalysisTaskSEDplus::SetPtBinLimit(Int_t n, Float_t* lim){
- // define pt bins for analysis
- if(n>kMaxPtBins){
- printf("Max. number of Pt bins = %d\n",kMaxPtBins);
- fNPtBins=kMaxPtBins;
- fArrayBinLimits[0]=0.;
- fArrayBinLimits[1]=2.;
- fArrayBinLimits[2]=3.;
- fArrayBinLimits[3]=5.;
- for(Int_t i=4; i<kMaxPtBins+1; i++) fArrayBinLimits[i]=99999999.;
- }else{
- fNPtBins=n-1;
- fArrayBinLimits[0]=lim[0];
- for(Int_t i=1; i<fNPtBins+1; i++)
- if(lim[i]>fArrayBinLimits[i-1]){
- fArrayBinLimits[i]=lim[i];
- }
- else {
- fArrayBinLimits[i]=fArrayBinLimits[i-1];
- }
- for(Int_t i=fNPtBins; i<kMaxPtBins+1; i++) fArrayBinLimits[i]=99999999.;
- }
- if(fDebug > 1){
- printf("Number of Pt bins = %d\n",fNPtBins);
- for(Int_t i=0; i<fNPtBins; i++) printf(" Bin%d = %8.2f-%8.2f\n",i,fArrayBinLimits[i],fArrayBinLimits[i+1]);
- }
-}
//________________________________________________________________
void AliAnalysisTaskSEDplus::SetBinWidth(Float_t w){
Float_t width=w;
fBinWidth=width;
}
//_________________________________________________________________
-Double_t AliAnalysisTaskSEDplus::GetPtBinLimit(Int_t ibin){
- // get pt bin limit
- if(ibin>fNPtBins)return -1;
- return fArrayBinLimits[ibin];
-}
-//_________________________________________________________________
Int_t AliAnalysisTaskSEDplus::GetNBinsHistos(){
return (Int_t)((fUpmasslimit-fLowmasslimit)/fBinWidth+0.5);
}
if(fRDCutsProduction->IsSelected(d,AliRDHFCuts::kCandidate,aod)) {
- Int_t iPtBin = -1;
Double_t ptCand = d->Pt();
-
- for(Int_t ibin=0;ibin<fNPtBins&&iPtBin<0&&ptCand>fArrayBinLimits[0]&&ptCand<fArrayBinLimits[fNPtBins];ibin++){
- if(ptCand<fArrayBinLimits[ibin+1])iPtBin=ibin;
- }
+ Int_t iPtBin = fRDCutsProduction->PtBin(ptCand);
Int_t passTightCuts=fRDCutsAnalysis->IsSelected(d,AliRDHFCuts::kCandidate,aod);
-
+ Bool_t recVtx=kFALSE;
+ AliAODVertex *origownvtx=0x0;
+ if(fRDCutsProduction->GetIsPrimaryWithoutDaughters()){
+ if(d->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*d->GetOwnPrimaryVtx());
+ if(fRDCutsProduction->RecalcOwnPrimaryVtx(d,aod))recVtx=kTRUE;
+ else fRDCutsProduction->CleanOwnPrimaryVtx(d,aod,origownvtx);
+ }
Int_t labDp=-1;
Float_t deltaPx=0.;
pdgCode=-1;
}
}
+
Double_t invMass=d->InvMassDplus();
Double_t rapid=d->YDplus();
fYVsPt->Fill(ptCand,rapid);
if(passTightCuts) fPtVsMassTC->Fill(invMass,ptCand);
}
Float_t tmp[24];
- if(fFillNtuple){
+ Double_t dlen=d->DecayLength();
+ Double_t cosp=d->CosPointingAngle();
+ Double_t sumD02=d->Getd0Prong(0)*d->Getd0Prong(0)+d->Getd0Prong(1)*d->Getd0Prong(1)+d->Getd0Prong(2)*d->Getd0Prong(2);
+ Double_t dca=d->GetDCA();
+ Double_t sigvert=d->GetSigmaVert();
+ Double_t ptmax=0;
+ for(Int_t i=0;i<3;i++){
+ if(d->PtProng(i)>ptmax)ptmax=d->PtProng(i);
+ }
+ if(fFillNtuple){
tmp[0]=pdgCode;
tmp[1]=deltaPx;
tmp[2]=deltaPy;
tmp[9]=d->PtProng(1);
tmp[10]=d->PtProng(2);
tmp[11]=d->Pt();
- tmp[12]=d->CosPointingAngle();
- tmp[13]=d->DecayLength();
+ tmp[12]=cosp;
+ tmp[13]=dlen;
tmp[14]=d->Xv();
tmp[15]=d->Yv();
tmp[16]=d->Zv();
tmp[17]=d->InvMassDplus();
- tmp[18]=d->GetSigmaVert();
+ tmp[18]=sigvert;
tmp[19]=d->Getd0Prong(0);
tmp[20]=d->Getd0Prong(1);
tmp[21]=d->Getd0Prong(2);
- tmp[22]=d->GetDCA();
+ tmp[22]=dca;
tmp[23]=d->Prodd0d0();
fNtupleDplus->Fill(tmp);
PostData(4,fNtupleDplus);
}
- Double_t dlen=d->DecayLength();
- Double_t cosp=d->CosPointingAngle();
- Double_t sumD02=d->Getd0Prong(0)*d->Getd0Prong(0)+d->Getd0Prong(1)*d->Getd0Prong(1)+d->Getd0Prong(2)*d->Getd0Prong(2);
- Double_t dca=d->GetDCA();
- Double_t sigvert=d->GetSigmaVert();
- Double_t ptmax=0;
- for(Int_t i=0;i<3;i++){
- if(d->PtProng(i)>ptmax)ptmax=d->PtProng(i);
- }
if(iPtBin>=0){
Float_t dlxy=d->NormalizedDecayLengthXY();
Float_t cxy=d->CosPointingAngleXY();
}
}
-
+ if(recVtx)fRDCutsProduction->CleanOwnPrimaryVtx(d,aod,origownvtx);
}
if(unsetvtx) d->UnsetOwnPrimaryVtx();
}
Int_t nVals=0;
if(fDecChannel==3) SetPDGdaughterDstoKKpi();
- fRDCuts->GetCutVarsForOpt(d,fVars,fNVars,fPDGdaughters);
+ fRDCuts->GetCutVarsForOpt(d,fVars,fNVars,fPDGdaughters,aod);
Int_t ptbin=fRDCuts->PtBin(d->Pt());
if(ptbin==-1) continue;
TString mdvname=Form("multiDimVectorPtBin%d",ptbin);
if (fDecChannel==3 && isSelected&2){
SetPDGdaughterDstopiKK();
nVals=0;
- fRDCuts->GetCutVarsForOpt(d,fVars,fNVars,fPDGdaughters);
+ fRDCuts->GetCutVarsForOpt(d,fVars,fNVars,fPDGdaughters,aod);
delete [] addresses;
addresses = muvec->GetGlobalAddressesAboveCuts(fVars,(Float_t)d->Pt(),nVals);
if(fDebug>1)printf("nvals = %d\n",nVals);
void FillLambdac(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index, Int_t isSel);
- enum {kMaxPtBins=5};
- enum {kMaxCutVar=5};
+ enum {kMaxPtBins=8};
+ enum {kMaxCutVar=10};
enum {kMaxSteps=10};
enum {kMaxNHist=500000};
enum {kDplustoKpipi,kD0toKpi,kDstartoKpipi,kDstoKKpi,kD0toKpipipi,kLambdactopKpi};
// TEMPORARY FIX FOR REFERENCES
// Fix references to daughter tracks
-// if(fFixRefs) {
-// AliAnalysisVertexingHF *fixer = new AliAnalysisVertexingHF();
-// fixer->FixReferences((AliAODEvent*)event);
-// delete fixer;
-// }
+ // if(fFixRefs) {
+ // AliAnalysisVertexingHF *fixer = new AliAnalysisVertexingHF();
+ // fixer->FixReferences((AliAODEvent*)event);
+ // delete fixer;
+ // }
//
AliESDtrackCuts *GetTrackCuts() const {return fTrackCuts;}
virtual AliESDtrackCuts *GetTrackCutsSoftPi() const {return 0;}
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters) = 0;
- //virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent * /*aod*/)
- //{return GetCutVarsForOpt(d,vars,nvars,pdgdaughters);}
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent * /*aod*/)
+ {return GetCutVarsForOpt(d,vars,nvars,pdgdaughters);}
Int_t GetGlobalIndex(Int_t iVar,Int_t iPtBin) const;
void GetVarPtIndex(Int_t iGlob, Int_t& iVar, Int_t& iPtBin) const;
Bool_t GetIsUsePID() const {return fUsePID;}
Bool_t SetMCPrimaryVtx(AliAODRecoDecayHF *d,AliAODEvent *aod) const;
void CleanOwnPrimaryVtx(AliAODRecoDecayHF *d,AliAODEvent *aod,AliAODVertex *origownvtx) const;
+ Bool_t CountEventForNormalization() const
+ { if(fWhyRejection==0) {return kTRUE;} else {return kFALSE;} }
+
protected:
void SetNPtBins(Int_t nptBins){fnPtBins=nptBins;}
//---------------------------------------------------------------------------
-void AliRDHFCutsD0toKpi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters) {
+void AliRDHFCutsD0toKpi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod) {
//
// Fills in vars the values of the variables
//
AliAODRecoDecayHF2Prong *dd = (AliAODRecoDecayHF2Prong*)d;
+ //recalculate vertex w/o daughters
+ Bool_t cleanvtx=kFALSE;
+ AliAODVertex *origownvtx=0x0;
+ if(fRemoveDaughtersFromPrimary) {
+ if(dd->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*dd->GetOwnPrimaryVtx());
+ cleanvtx=kTRUE;
+ if(!RecalcOwnPrimaryVtx(dd,aod)) {
+ CleanOwnPrimaryVtx(dd,aod,origownvtx);
+ cleanvtx=kFALSE;
+ }
+ }
+
Int_t iter=-1;
if(fVarsForOpt[0]){
iter++;
iter++;
vars[iter]=(dd->NormalizedDecayLengthXY()*(dd->P()/dd->Pt()));
}
-
+
+ if(cleanvtx)CleanOwnPrimaryVtx(dd,aod,origownvtx);
+
return;
}
//---------------------------------------------------------------------------
AliRDHFCutsD0toKpi(const AliRDHFCutsD0toKpi& source);
AliRDHFCutsD0toKpi& operator=(const AliRDHFCutsD0toKpi& source);
-
- virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
+
+ using AliRDHFCuts::GetCutVarsForOpt;
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
+ return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
+ }
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
using AliRDHFCuts::IsSelected;
virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel)
\r
\r
//---------------------------------------------------------------------------\r
-void AliRDHFCutsD0toKpipipi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters) {\r
+void AliRDHFCutsD0toKpipipi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent* aod) {\r
// \r
// Fills in vars the values of the variables \r
//\r
\r
AliAODRecoDecayHF4Prong *dd = (AliAODRecoDecayHF4Prong*)d;\r
\r
+ //recalculate vertex w/o daughters
+ Bool_t cleanvtx=kFALSE;
+ AliAODVertex *origownvtx=0x0;
+ if(fRemoveDaughtersFromPrimary) {
+ if(dd->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*dd->GetOwnPrimaryVtx());
+ cleanvtx=kTRUE;
+ if(!RecalcOwnPrimaryVtx(dd,aod)) {
+ CleanOwnPrimaryVtx(dd,aod,origownvtx);
+ cleanvtx=kFALSE;
+ }
+ }
+
Int_t iter=-1;\r
\r
if(fVarsForOpt[0]) {\r
printf("ERROR: optmization for PID cut not implemented\n");\r
}\r
\r
+ if(cleanvtx)CleanOwnPrimaryVtx(dd,aod,origownvtx);
return;\r
}\r
//---------------------------------------------------------------------------\r
AliRDHFCutsD0toKpipipi(const AliRDHFCutsD0toKpipipi& source);\r
AliRDHFCutsD0toKpipipi& operator=(const AliRDHFCutsD0toKpipipi& source); \r
\r
- virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);\r
-\r
+ using AliRDHFCuts::GetCutVarsForOpt;
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
+ return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
+ }
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent* aod);\r
+ \r
using AliRDHFCuts::IsSelected;\r
virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
virtual Int_t IsSelectedFromPID(AliAODRecoDecayHF4Prong *d, Int_t *hyp1, Int_t *hyp2, Int_t *hyp3, Int_t *hyp4);
AliRDHFCutsDStartoKpipi(const AliRDHFCutsDStartoKpipi& source);
AliRDHFCutsDStartoKpipi& operator=(const AliRDHFCutsDStartoKpipi& source);
- virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgD0daughters);
+ using AliRDHFCuts::GetCutVarsForOpt;
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
using AliRDHFCuts::IsSelected;
virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
//--------------------------------------------------------------------------
AliRDHFCutsDplustoKpipi::AliRDHFCutsDplustoKpipi(const char* name) :
AliRDHFCuts(name),
- fUseStrongPid(kFALSE),
+ fUseStrongPid(0),
+ fMaxPtStrongPid(0.),
fUseImpParProdCorrCut(kFALSE)
{
//
AliRDHFCutsDplustoKpipi::AliRDHFCutsDplustoKpipi(const AliRDHFCutsDplustoKpipi &source) :
AliRDHFCuts(source),
fUseStrongPid(source.fUseStrongPid),
+ fMaxPtStrongPid(source.fMaxPtStrongPid),
fUseImpParProdCorrCut(source.fUseImpParProdCorrCut)
{
//
//---------------------------------------------------------------------------
-void AliRDHFCutsDplustoKpipi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters) {
+void AliRDHFCutsDplustoKpipi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod) {
//
// Fills in vars the values of the variables
//
}
AliAODRecoDecayHF3Prong *dd = (AliAODRecoDecayHF3Prong*)d;
+
+ //recalculate vertex w/o daughters
+ Bool_t cleanvtx=kFALSE;
+ AliAODVertex *origownvtx=0x0;
+ if(fRemoveDaughtersFromPrimary) {
+ if(dd->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*dd->GetOwnPrimaryVtx());
+ cleanvtx=kTRUE;
+ if(!RecalcOwnPrimaryVtx(dd,aod)) {
+ CleanOwnPrimaryVtx(dd,aod,origownvtx);
+ cleanvtx=kFALSE;
+ }
+ }
Int_t iter=-1;
if(fVarsForOpt[0]){
iter++;
vars[iter]=dd->CosPointingAngleXY();
}
+
+ if(cleanvtx)CleanOwnPrimaryVtx(dd,aod,origownvtx);
+
return;
}
//---------------------------------------------------------------------------
if(isKaon<0) nNotKaons++;
if(sign==track->Charge()){//pions
if(isPion<0)return 0;
- if(rd->Pt()<2. && isPion<=0 && fUseStrongPid)return 0;
+ if(rd->Pt()<fMaxPtStrongPid && isPion<=0 && fUseStrongPid>1)return 0;
+ }
+ else{//kaons
+ if(isKaon<0)return 0;
+ if(rd->Pt()<fMaxPtStrongPid && isKaon<=0 && fUseStrongPid>0)return 0;
}
- else{//kaons
- if(isKaon<0)return 0;
- if(rd->Pt()<2. && isKaon<=0 && fUseStrongPid)return 0;
- }
-
-
}
if(nkaons>1)return 0;
virtual ~AliRDHFCutsDplustoKpipi(){};
AliRDHFCutsDplustoKpipi(const AliRDHFCutsDplustoKpipi& source);
AliRDHFCutsDplustoKpipi& operator=(const AliRDHFCutsDplustoKpipi& source);
-
- virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
+
+ using AliRDHFCuts::GetCutVarsForOpt;
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
+ return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
+ }
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
using AliRDHFCuts::IsSelected;
virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel){
Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(1,iPtBin)] : 1.e6);}
- void SetUseStrongPid(Bool_t spid){fUseStrongPid=spid;}
- Bool_t GetStrongPid() const {return fUseStrongPid;}
+ void SetUseStrongPid(Int_t spid){fUseStrongPid=spid;}
+ void SetMaxPtStrongPid(Float_t spid){fMaxPtStrongPid=spid;}
+ Int_t GetStrongPid() const {return fUseStrongPid;}
+ Float_t GetMaxPtStrongPid(){return fMaxPtStrongPid;}
void SetUseImpParProdCorrCut(Bool_t use){
fUseImpParProdCorrCut=use;
}
protected:
private:
- Bool_t fUseStrongPid; //use strong pid
+ Int_t fUseStrongPid; //use strong pid 0 no,1 only for K,2 both pi and K
+ Float_t fMaxPtStrongPid;//Maximum pt to apply strong Pid
Bool_t fUseImpParProdCorrCut; //switch for d0K*d0pi1 vs. d0K*d0pi2 cut
- ClassDef(AliRDHFCutsDplustoKpipi,3); // class for cuts on AOD reconstructed
+ ClassDef(AliRDHFCutsDplustoKpipi,4); // class for cuts on AOD reconstructed
// D+->Kpipi
};
//---------------------------------------------------------------------------
-void AliRDHFCutsDstoKKpi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters) {
+void AliRDHFCutsDstoKKpi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod) {
//
// Fills in vars the values of the variables
//
}
AliAODRecoDecayHF3Prong *dd = (AliAODRecoDecayHF3Prong*)d;
-
+
+ //recalculate vertex w/o daughters
+ Bool_t cleanvtx=kFALSE;
+ AliAODVertex *origownvtx=0x0;
+ if(fRemoveDaughtersFromPrimary) {
+ if(dd->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*dd->GetOwnPrimaryVtx());
+ cleanvtx=kTRUE;
+ if(!RecalcOwnPrimaryVtx(dd,aod)) {
+ CleanOwnPrimaryVtx(dd,aod,origownvtx);
+ cleanvtx=kFALSE;
+ }
+ }
+
Int_t iter=-1;
if(fVarsForOpt[0]){
iter++;
vars[iter]=dd->CosPiDsLabFramepiKK();
}
}
-
+
+ if(cleanvtx)CleanOwnPrimaryVtx(dd,aod,origownvtx);
return;
}
//---------------------------------------------------------------------------
AliRDHFCutsDstoKKpi(const AliRDHFCutsDstoKKpi& source);
AliRDHFCutsDstoKKpi& operator=(const AliRDHFCutsDstoKKpi& source);
- virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
+ using AliRDHFCuts::GetCutVarsForOpt;
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
+ return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
+ }
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
using AliRDHFCuts::IsSelected;
virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel){
AliRDHFCutsJpsitoee& operator=(const AliRDHFCutsJpsitoee& source);
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
using AliRDHFCuts::IsSelected;
virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
AliRDHFCutsLctoV0& operator=(const AliRDHFCutsLctoV0& source);
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
using AliRDHFCuts::IsSelected;
virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
AliRDHFCutsLctopKpi& operator=(const AliRDHFCutsLctopKpi& source);
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
+ virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
+
void SetPidpion(AliAODPidHF* pidPion) {
if(fPidObjpion) delete fPidObjpion;
fPidObjpion=new AliAODPidHF(*pidPion);