Update and addition of LS analysis (Renu, Giacomo, Francesco)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSEDplus.h
1 #ifndef ALIANALYSISTASKDPLUS_H
2 #define ALIANALYSISTASKDPLUS_H
3
4 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //*************************************************************************
8 // Class AliAnalysisTaskSEDplus
9 // AliAnalysisTaskSE for the D+ candidates Invariant Mass Histogram and 
10 //comparison of heavy-flavour decay candidates
11 // to MC truth (kinematics stored in the AOD)
12 // Renu Bala, bala@to.infn.it
13 //*************************************************************************
14
15 #include <TROOT.h>
16 #include <TSystem.h>
17 #include <TNtuple.h>
18 #include <TH1F.h>
19
20 #include "AliAnalysisTaskSE.h"
21 #include "AliAnalysisVertexingHF.h"
22
23 class AliAnalysisTaskSEDplus : public AliAnalysisTaskSE
24 {
25  public:
26
27   AliAnalysisTaskSEDplus();
28   AliAnalysisTaskSEDplus(const char *name, Bool_t fillNtuple=kFALSE);
29   virtual ~AliAnalysisTaskSEDplus();
30   void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
31   void SetDoLikeSign(Bool_t dols=kTRUE){fDoLS=dols;}
32   // Implementation of interface methods
33   virtual void UserCreateOutputObjects();
34   virtual void Init();
35   virtual void LocalInit() {Init();}
36   virtual void UserExec(Option_t *option);
37   virtual void Terminate(Option_t *option);
38   void LSAnalysis(TClonesArray *arrayOppositeSign,TClonesArray *arrayLikeSign,AliAODEvent *aod,AliAODVertex *vtx1, Int_t nDplusOS);
39     
40  private:
41
42   AliAnalysisTaskSEDplus(const AliAnalysisTaskSEDplus &source);
43   AliAnalysisTaskSEDplus& operator=(const AliAnalysisTaskSEDplus& source); 
44   TList   *fOutput; //! list send on output slot 0
45   TH1F    *fHistNEvents; //!hist. for No. of events
46   TNtuple *fNtupleDplus; //! output ntuple
47   TH1F *fHistLS;     //! LS tripl normalized using all charged tracks in the event
48   TH1F *fHistLStrip; //! LS tripl normalized using OS vs LS number of triplets ratio
49   TH1F *fHistLStripcut;//! LS tripl normalized using OS vs LS number of triplets passing dplus cuts ratio
50   TH1F *fHistOS; //! OS triplets
51   TH1F *fHistOSbkg;//! only Background (need MC truth)
52   TH1F *fHistLSnoweight;//! LS triplets wo normalization
53   TH1F *fHistLSsinglecut;//! LS tripl normalized using tracks with Pt>0.4GeV
54   
55   Bool_t fFillNtuple;   // flag for filling ntuple
56   Bool_t fReadMC;       //flag for access to MC
57   Bool_t fDoLS;        //flag for switching on/off Like Sign analysis
58   AliAnalysisVertexingHF *fVHF;  // Vertexer heavy flavour (used to pass the cuts)
59   
60   ClassDef(AliAnalysisTaskSEDplus,4); // AliAnalysisTaskSE for the MC association of heavy-flavour decay candidates
61 };
62
63 #endif
64