#include "AliAnalysisTaskSE.h"
#include "AliCFVertexingHF2Prong.h"
#include "AliCFVertexingHF3Prong.h"
+#include "AliCFVertexingHFLctoV0bachelor.h"
#include "AliCFVertexingHF.h"
+#include <TH1F.h>
class TH1I;
class TParticle ;
kSnail = 0, // slow configuration, all variables
kCheetah = 1 // fast configuration, only a subset of variables
};
+
+ enum {
+ kAll = 0, // all decays (resonant + non-resonant)
+ kNonResonant = 1, // only non resonant
+ kL1520 = 2, // Lc --> L(1520) + p
+ kKstar = 3, // Lc --> K* + pi
+ kDelta = 4 // Lc --> Delta + K
+ };
+
+ enum { kNtrk10=0, kNtrk10to16=1, kVZERO=2 }; // multiplicity estimators
AliCFTaskVertexingHF();
AliCFTaskVertexingHF(const Char_t* name, AliRDHFCuts* cuts, TF1* func = 0x0);
Bool_t GetUseZWeight() const {return fUseZWeight;}
Double_t GetZWeight(Float_t z, Int_t runnumber);
Double_t DodzFit(Float_t z, Double_t* par);
-
+
+ void SetUseNchWeight(Bool_t useWeight){fUseNchWeight=useWeight;}
+ Bool_t GetUseNchWeight() const {return fUseNchWeight;}
+ void SetMCNchHisto(TH1F* h){
+ if(fHistoMCNch) delete fHistoMCNch;
+ fHistoMCNch=new TH1F(*h);
+ }
+ void CreateMeasuredNchHisto();
+ Double_t GetNchWeight(Int_t nch);
+ void SetMultiplicityEstimator(Int_t value){ fMultiplicityEstimator=value; }
+ Int_t GetMultiplicityEstimator(){ return fMultiplicityEstimator; }
+ void SetIsPPData(Bool_t flag){ fIsPPData = flag; }
+
+ void SetUseNchTrackletsWeight(Bool_t useWeight = kTRUE) { fUseNchWeight=useWeight; fUseTrackletsWeight=useWeight; }
+ Bool_t GetUseNchTrackletsWeight() const {return fUseTrackletsWeight;}
+
void SetDselection(UShort_t originDselection) {fOriginDselection=originDselection;}
UShort_t GetDselection (){return fOriginDselection;}
void SetSign(Char_t isSign) {fSign = isSign;}
void SetWeightFunction(TF1* func) {fFuncWeight = func;}
TF1* GetWeightFunction() const {return fFuncWeight;}
-
+ void SetPtWeightsFromFONLL276overLHC12a17a();
+ void SetPtWeightsFromDataPbPb276overLHC12a17a();
+ void SetPtWeightsFromFONLL276overLHC12a17b();
+ void SetPtWeightsFromFONLL276andBAMPSoverLHC12a17b();
+ void SetPtWeightsFromFONLL5overLHC13d3();
+
+ void SetResonantDecay(UInt_t resonantDecay) {fResonantDecay = resonantDecay;}
+ UInt_t GetResonantDecay() const {return fResonantDecay;}
+
+ void SetKeepLctoK0Sp() {fLctoV0bachelorOption=1;}
+ void SetKeepLctoLambdaBarpi() {fLctoV0bachelorOption=2;}
+ void SetKeepLctoLambdapi() {fLctoV0bachelorOption=4;}
+ void SetKeepLctoV0bachelor() {fLctoV0bachelorOption=7;}
+
+ void SetCountLctoK0Sp(){fGenLctoV0bachelorOption=AliCFVertexingHFLctoV0bachelor::kCountK0Sp;}
+ void SetCountLctoLambdapi(){fGenLctoV0bachelorOption=AliCFVertexingHFLctoV0bachelor::kCountLambdapi;}
+
+ void SetUseSelectionBit(Bool_t flag) { fUseSelectionBit=flag; }
+ Bool_t GetUseSelectionBit() const { return fUseSelectionBit; }
+
+ Bool_t ProcessLctoV0Bachelor(Int_t returnCodeDs) const;
+
protected:
AliCFManager *fCFManager; // pointer to the CF manager
TH1I *fHistEventsProcessed; //! simple histo for monitoring the number of events processed
Double_t fWeight; //weight used to fill the container
Bool_t fUseFlatPtWeight; // flag to decide to use a flat pt shape
Bool_t fUseZWeight; // flag to decide whether to use z-vtx weights != 1 when filling the container or not
- Int_t fNvar; // number of variables for the container
+ Bool_t fUseNchWeight; // flag to decide whether to use Ncharged weights != 1 when filling the container or not
+ Bool_t fUseTrackletsWeight; // flag to decide whether to use Ncharged weights != 1 when filling the container or not
+ Int_t fNvar; // number of variables for the container
TString fPartName; // D meson name
TString fDauNames; // daughter in fin state
Char_t fSign; // flag to decide wheter to keep D0 only (0), D0bar only (1), or both D0 and D0bar (2)
Int_t fGenDsOption; // Ds decay option (generation level)
Int_t fConfiguration; // configuration (slow / fast) of the CF --> different variables will be allocated (all / reduced number)
TF1* fFuncWeight; // user-defined function to be used to calculate weights
-
- ClassDef(AliCFTaskVertexingHF,11); // class for HF corrections as a function of many variables
+ TH1F* fHistoMeasNch; // histogram with measured Nch distribution (pp 7 TeV)
+ TH1F* fHistoMCNch; // histogram with Nch distribution from MC production
+ UInt_t fResonantDecay; // resonant deacy channel to be used if the CF should be run on resonant channels only
+ Int_t fLctoV0bachelorOption; // Lc->V0+bachelor decay option (selection level)
+ Int_t fGenLctoV0bachelorOption; // Lc->V0+bachelor decay option (generation level)
+ Bool_t fUseSelectionBit; // flag to use selection bit
+ UInt_t fPDGcode; // PDG code
+
+ Int_t fMultiplicityEstimator; // Definition of the multiplicity estimator: kNtrk10=0, kNtrk10to16=1, kVZERO=2
+ Bool_t fIsPPData; // flag for pp data (not checking centrality)
+
+ ClassDef(AliCFTaskVertexingHF,17); // class for HF corrections as a function of many variables
};
#endif