fMaxCentrality(100.),
fFixRefs(kFALSE),
fIsSelectedCuts(0),
-fIsSelectedPID(0)
+fIsSelectedPID(0),
+fMinPtCand(-1.),
+fMaxPtCand(100000.)
{
//
// Default Constructor
fMaxCentrality(source.fMaxCentrality),
fFixRefs(source.fFixRefs),
fIsSelectedCuts(source.fIsSelectedCuts),
- fIsSelectedPID(source.fIsSelectedPID)
+ fIsSelectedPID(source.fIsSelectedPID),
+ fMinPtCand(source.fMinPtCand),
+ fMaxPtCand(source.fMaxPtCand)
{
//
// Copy constructor
fFixRefs=source.fFixRefs;
fIsSelectedCuts=source.fIsSelectedCuts;
fIsSelectedPID=source.fIsSelectedPID;
+ fMinPtCand=source.fMinPtCand;
+ fMaxPtCand=source.fMaxPtCand;
if(source.GetTrackCuts()) AddTrackCuts(source.GetTrackCuts());
if(source.fPtBinLimits) SetPtBins(source.fnPtBinLimits,source.fPtBinLimits);
fPidHF=new AliAODPidHF(*pidObj);
}
void SetRemoveDaughtersFromPrim(Bool_t removeDaughtersPrim) {fRemoveDaughtersFromPrimary=removeDaughtersPrim;}
+ void SetMinPtCandidate(Double_t ptCand=-1.) {fMinPtCand=ptCand; return;}
+ void SetMaxPtCandidate(Double_t ptCand=1000.) {fMaxPtCand=ptCand; return;}
void SetOptPileup(Int_t opt=0){
// see enum below
fOptPileup=opt;
Int_t GetUseCentrality() const {return fUseCentrality;}
Float_t GetMinCentrality() const {return fMinCentrality;}
Float_t GetMaxCentrality() const {return fMaxCentrality;}
+ Double_t GetMinPtCandidate() const {return fMinPtCand;}
+ Double_t GetMaxPtCandidate() const {return fMaxPtCand;}
Bool_t IsSelected(TObject *obj) {return IsSelected(obj,AliRDHFCuts::kAll);}
Bool_t IsSelected(TList *list) {if(!list) return kTRUE; return kFALSE;}
Int_t IsEventSelectedInCentrality(AliVEvent *event);
Bool_t fFixRefs; // fix the daughter track references
Int_t fIsSelectedCuts; // outcome of cuts selection
Int_t fIsSelectedPID; // outcome of PID selection
+ Double_t fMinPtCand; // minimum pt of the candidate
+ Double_t fMaxPtCand; // minimum pt of the candidate
- ClassDef(AliRDHFCuts,10); // base class for cuts on AOD reconstructed heavy-flavour decays
+ ClassDef(AliRDHFCuts,11); // base class for cuts on AOD reconstructed heavy-flavour decays
};
#endif
//
// Apply selection
//
-
+
+
fIsSelectedCuts=0;
fIsSelectedPID=0;
return 0;
}
+ Double_t ptD=d->Pt();
+ if(ptD<fMinPtCand) return 0;
+ if(ptD>fMaxPtCand) return 0;
// returnvalue: 0 not sel, 1 only D0, 2 only D0bar, 3 both
Int_t returnvaluePID=3;
Int_t returnvalue=3;
Int_t returnvaluePID=3;
+ if(d->Pt()<fMinPtCand) return 0;
+ if(d->Pt()>fMaxPtCand) return 0;
// selection on candidate
if(selectionLevel==AliRDHFCuts::kAll ||
iskaon1=kTRUE;
if(fPidHF->MakeRawPid(track,2)>=1) iskaon1=kFALSE;
}
+ if(!iskaon1) return 0;
}else{
//pion or proton
if(isProton>=1) isproton0=kTRUE;
}
+ if(!ispion0 && !isproton0) return 0;
if(i==2) {
if(isPion<0) ispion2=kFALSE;
if(isProton>=1) isproton2=kTRUE;
if(stdcuts) prodcuts->SetStandardCutsPP2010();
else prodcuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiProdCuts");
prodcuts->SetName("LctopKpiProdCuts");
+ prodcuts->SetMinPtCandidate(-1.);
+ prodcuts->SetMaxPtCandidate(10000.);
AliRDHFCutsLctopKpi *analysiscuts = new AliRDHFCutsLctopKpi();
if(stdcuts) analysiscuts->SetStandardCutsPP2010();
else analysiscuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiAnalysisCuts");
analysiscuts->SetName("LctopKpiAnalysisCuts");
+ analysiscuts->SetMinPtCandidate(-1.);
+ analysiscuts->SetMaxPtCandidate(10000.);
// Aanalysis task
AliAnalysisTaskSELambdac *lambdacTask = new AliAnalysisTaskSELambdac("LambdacAnalysis",storeNtuple,analysiscuts,prodcuts);
if(pidflag) cout<<"PID is used"<<endl;
else cout<<"PID is not used"<<endl;
+ RDHFLctopKpiProd->SetMinPtCandidate(-1.);
+ RDHFLctopKpiAn->SetMinPtCandidate(-1.);
+ RDHFLctopKpiProd->SetMaxPtCandidate(10000.);
+ RDHFLctopKpiAn->SetMaxPtCandidate(10000.);
cout<<"This is the object I'm going to save:"<<endl;
RDHFLctopKpiProd->PrintAll();
RDHFLctopKpiAn->PrintAll();