]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/vertexingHF/AliCFTaskVertexingHF.h
merge from trunk (small, after 2 days period from last one)
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliCFTaskVertexingHF.h
index 6db81eb296731ecd4ec26ced2936ea418a9ca373..c81d9b3d2b2be84f02e7972bde2c231faa5cafe9 100644 (file)
@@ -28,7 +28,9 @@
 #include "AliAnalysisTaskSE.h"
 #include "AliCFVertexingHF2Prong.h"
 #include "AliCFVertexingHF3Prong.h"
+#include "AliCFVertexingHFLctoV0bachelor.h"
 #include "AliCFVertexingHF.h"
+#include <TH1F.h>
 
 class TH1I;
 class TParticle ;
@@ -64,6 +66,16 @@ public:
                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);
@@ -104,7 +116,22 @@ public:
        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;}
@@ -139,7 +166,28 @@ public:
        
        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
@@ -163,7 +211,9 @@ protected:
        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)
@@ -175,8 +225,18 @@ protected:
        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