]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/AliAnalysisTaskSECharmFraction.h
Updates D* cuts for peripheral PbPb events
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSECharmFraction.h
index e44bb520a917ac1298af96f672f2260e1997a4a7..b5bcb90d767bff07a040b8cd6c49c1129604d112 100644 (file)
@@ -10,7 +10,7 @@
 // using the charm hadron impact parameter to the primary vertex
 //
 //
-// Author: Andrea Rossi andrea.rossi@ts.infn.it
+// Author: Andrea Rossi andrea.rossi@pd.infn.it
 //*************************************************************************
 
 class TH1F;
@@ -22,6 +22,8 @@ class AliAODRecoDecayHF;
 class AliAODMCParticle;
 class AliAnalysisVertexingHF;
 class AliRDHFCutsD0toKpi;
+class AliNormalizationCounter;
+
 #include "AliAnalysisTaskSE.h"
 
 class AliAnalysisTaskSECharmFraction : public AliAnalysisTaskSE {
@@ -59,10 +61,15 @@ class AliAnalysisTaskSECharmFraction : public AliAnalysisTaskSE {
   Int_t SetStandardCuts(Double_t pt,Double_t invMassCut);
   Int_t SetStandardCuts(Float_t *&ptbinlimits);
   void CheckInvMassD0(AliAODRecoDecayHF2Prong *d,Double_t &invMassD0,Double_t &invMassD0bar,Bool_t &isPeakD0,Bool_t &isPeakD0bar,Bool_t &isSideBandD0,Bool_t &isSideBandD0bar);
+  void SetAnalysisLevel(Int_t level){fFastAnalysis=level;}
+  Int_t GetAnalysisLevel(){return fFastAnalysis;}
   AliAODRecoDecayHF *GetD0toKPiSignalType(const AliAODRecoDecayHF2Prong *d,TClonesArray *arrayMC,Int_t &signaltype,Double_t &massMumTrue,Double_t *primaryVtx);
   AliAODRecoDecayHF* ConstructFakeTrueSecVtx(const AliAODMCParticle *b1,const AliAODMCParticle *b2,const AliAODMCParticle *mum,Double_t *primaryVtxTrue);
   void SetUseMC(Bool_t useMC){fUseMC=useMC;}
   Bool_t SpecialSelD0(AliAODRecoDecayHF2Prong *d,Int_t &nusedforVtx);
+  Bool_t FillAziList(AliAODEvent *aod,Double_t azilist[30000],Int_t trkIDlist[30000],Int_t &nprim)const;
+  void FillAziHistos(AliAODRecoDecayHF2Prong *d,TList *&list,Int_t ptbin,Double_t azilist[30000],Int_t trkIDlist[30000],Int_t nprim,Int_t okD0,Int_t okD0bar,Bool_t isPeakD0,Bool_t isPeakD0bar,Bool_t isSideBandD0,Bool_t isSideBandD0bar)const;
+
   AliAODVertex* GetPrimaryVtxSkipped(AliAODEvent *aodev,AliAODRecoDecayHF2Prong *d);
  
   /* ######### THE FOLLOWING IS FOR FURTHER IMPLEMENATION ############
@@ -95,11 +102,12 @@ class AliAnalysisTaskSECharmFraction : public AliAnalysisTaskSE {
   //  Int_t SetCuts(AliAnalysisTaskSECharmFraction *alchfr,Double_t pt,Double_t invMassCut);
   
  private:
-  Bool_t FillHistos(AliAODRecoDecayHF2Prong *d,TList *&list,Int_t ptbin,Int_t okD0,Int_t okD0bar,Double_t invMassD0,Double_t invMassD0bar,Bool_t isPeakD0,Bool_t isPeakD0bar,Bool_t isSideBand,Double_t massmumtrue,AliAODRecoDecayHF *aodDMC,Double_t *vtxTrue);
+  Bool_t FillHistos(AliAODRecoDecayHF2Prong *d,TList *&list,Int_t ptbin,Int_t okD0,Int_t okD0bar,Double_t invMassD0,Double_t invMassD0bar,Bool_t isPeakD0,Bool_t isPeakD0bar,Bool_t isSideBandD0,Bool_t isSideBandD0bar,Double_t massmumtrue,AliAODRecoDecayHF *aodDMC,Double_t *vtxTrue);
   void FillHistoMCproperties(TClonesArray *arrayMC);
 
   AliRDHFCutsD0toKpi *fCutsLoose;        // Loose cuts object
   AliRDHFCutsD0toKpi *fCutsTight;      // Vertexer heavy flavour
+  Int_t fFastAnalysis;                  // Level of analysis speed: default is 1, switch it to 2 to fill the THnSparse
   Bool_t  fReadMC;                          // Flag To switch on/off access to MC 
   Bool_t  fsplitMassD0D0bar;                // Flag to use two shistos for D0 and D0bar invariant masses
   Bool_t  fLikeSign;                        // Flag to analyse Like Sign array
@@ -117,10 +125,12 @@ class AliAnalysisTaskSECharmFraction : public AliAnalysisTaskSE {
   Double_t fsidebandInvMassCut;             // invariant mass cut to define side band region lower limit
   Double_t fsidebandInvMassWindow;          // invariant mass cut to define side band region width
   Bool_t fUseMC;                            // flag to use or not MC info
+  Bool_t fCleanCandOwnVtx;                  // flag to switch on/off cleaning of the candidate own vtx
   TH1F *fNentries;                          //!histo for #AOD analysed, container 1
   TH1F *fSignalType;                        //!histo for the type of MC signal , container 2
   TH1F *fSignalTypeLsCuts;                 //!histo for the type of MC signal with loose cuts , container 3
   TH1F *fSignalTypeTghCuts;                //!histo for the type of MC signal with tight cuts, container 4
+  AliNormalizationCounter *fCounter;        //!counter for the normalization 
   TList *flistMCproperties;               //!TLists for MC properties of D0 w.r.t. B mesons and c quarks cntainer 5
   TList *flistNoCutsSignal;               //!TList for signal (D prompt) with nocuts, container 6
   TList *flistNoCutsBack;               //!TList for background with nocuts, container 7
@@ -151,7 +161,7 @@ class AliAnalysisTaskSECharmFraction : public AliAnalysisTaskSE {
   AliAnalysisTaskSECharmFraction(const AliAnalysisTaskSECharmFraction&); // not implemented
   AliAnalysisTaskSECharmFraction& operator=(const AliAnalysisTaskSECharmFraction&); // not implemented
   
-  ClassDef(AliAnalysisTaskSECharmFraction,1); // analysis task for prompt charm fraction
+  ClassDef(AliAnalysisTaskSECharmFraction,3); // analysis task for prompt charm fraction
 };
 
 #endif