New task for filtering of AODs with Jpsi candidates (Carmelo)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSEJPSItoEle.h
1 #ifndef ALIANALYSISTASKSEJPSITOELE_H\r
2 #define ALIANALYSISTASKSEJPSITOELE_H\r
3 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *\r
4  * See cxx source for full Copyright notice                               */\r
5 \r
6 //*************************************************************************\r
7 //                     Class AliAnalysisTaskSEJPSItoEle\r
8 //                     AliAnalysisTaskSE class to select \r
9 //              J/psi -> e+e- candidates only and save them \r
10 //                    into a specific stand-alone AOD file \r
11 //              Author: C.Di Giglio, carmelo.digiglio@ba.infn.it\r
12 //*************************************************************************\r
13 \r
14 #include "TClonesArray.h"\r
15 #include "TH1F.h" \r
16 #include "TH2F.h"\r
17 #include "TList.h"\r
18 #include "TChain.h"\r
19 \r
20 #include "AliAnalysisTaskSE.h"\r
21 #include "AliAODEvent.h"\r
22 #include "AliAnalysisManager.h"\r
23 #include "AliAnalysisVertexingHF.h"\r
24 \r
25 class AliAnalysisTaskSEJPSItoEle : public AliAnalysisTaskSE\r
26 {\r
27  public:\r
28 \r
29   AliAnalysisTaskSEJPSItoEle();\r
30   AliAnalysisTaskSEJPSItoEle(const char *name);\r
31   virtual ~AliAnalysisTaskSEJPSItoEle();\r
32 \r
33   virtual void UserCreateOutputObjects();\r
34   virtual void Init();\r
35   virtual void LocalInit() {Init();}\r
36   virtual void UserExec(Option_t *option);\r
37   virtual void Terminate(Option_t *option);\r
38 \r
39   void SetCutsJPSI(const Double_t cutsJPSI[9]);\r
40   void SetPtCuts(const Double_t ptcuts[2]);\r
41   void SetAODMCInfo(Bool_t okMCInfo) { fOkAODMC = okMCInfo;}\r
42   void ReadAODMCInfo(AliAODEvent* aodEv, const TClonesArray* inArray);\r
43 \r
44  private:\r
45 \r
46   AliAnalysisTaskSEJPSItoEle(const AliAnalysisTaskSEJPSItoEle &source);\r
47   AliAnalysisTaskSEJPSItoEle& operator=(const AliAnalysisTaskSEJPSItoEle& source); \r
48   \r
49   TList *fOutput;                            //! list send on output slot 0\r
50 \r
51   //output histograms\r
52   TH1F *fhDecayTimeMCjpsifromB;              //! Pseudo-proper decay time distribution used as template for JPSIs from B\r
53   TH1F *fhDecayTime;                         //! Pseudo-proper decay time distribution\r
54   TH1F *fhDecayTimeOut;                      //! Pseudo-proper decay time distribution (stand-alone AOD)\r
55   TH1F *fhInvMass;                           //! Invariant mass distribution\r
56   TH1F *fhD0;                                //! Impact parameter distribution\r
57   TH1F *fhD0D0;                              //! Product of impact parameters distributions\r
58   TH1F *fhCosThetaStar;                      //! Cosine of decay angle distribution\r
59   TH1F *fhCosThetaPointing;                  //! Cosine of pointing angle distribution\r
60   TH1F *fhDCA;                               //! Distance of closest approach\r
61   TH2F *fhCtsVsD0D0;                         //! Cos theta star Vs. D0D0 distribution\r
62 \r
63   //like sign pairs histograms \r
64   TH1F *fHistMassLS;                         //! Invariant mass distribution\r
65   TH1F *fHistCtsLS;                          //! Cosine of decay angle distribution\r
66   TH1F *fHistCtsLSpos;                       //! Cosine of decay angle distribution (++ pairs)\r
67   TH1F *fHistCtsLSneg;                       //! Cosine of decay angle distribution (-- pairs)\r
68   TH1F *fHistCPtaLS;                         //! Cosine of pointing angle distribution\r
69   TH1F *fHistd0d0LS;                         //! Product of impact parameters distributions\r
70   TH1F *fHistDCALS;                          //! Distance of closest approach\r
71   AliAnalysisVertexingHF *fVHF;              //! Vertexer heavy flavour (used to pass the cuts)\r
72 \r
73   //Int_t totJPSIin;\r
74   //Int_t totJPSIout;\r
75 \r
76   //like sign spectrum normalization\r
77   Int_t fTotPosPairs;                        //\r
78   Int_t fTotNegPairs;                        //\r
79   Double_t fLsNormalization;                 // Like sign normalization factor\r
80 \r
81   //flags for analysis\r
82   Bool_t fOkAODMC;                           // Flag to read AOD monte carlo information\r
83   Bool_t fOkLikeSign;                        // Flag to select like sign candidates analysis\r
84 \r
85   //momentum cuts   \r
86   Double_t fCuts[9];                         // cuts for N-tuple values selection\r
87   Double_t fPtCuts[2];                       // Max and min pt of the candidates\r
88 \r
89   TClonesArray    *fVerticesHFTClArr;        // Array of heavy flavor vertices to be replicated in stand-alone AOD\r
90   TClonesArray    *fJpsiToEleTClArr;         // Array of J/psi->e+e- candidates to be replicated in stand-alone AOD\r
91   TClonesArray    *fLikeSignTClArr;          // Array of like sign candidates to be replicated in stand-alone AOD\r
92   TClonesArray    *fTracksTClArr;            // Array of tracks belonging to J/psi->e+e- candidates to be replicated in stand-alone AOD \r
93   TChain          *fChain; \r
94   AliAODEvent     *fOrigAOD;                 // original AOD event\r
95   AliAODEvent     *fNewAOD;                  // new AOD event with only JPSItoEle candidates stored\r
96 \r
97   ClassDef(AliAnalysisTaskSEJPSItoEle,1); // AliAnalysisTaskSE for the reconstruction of heavy-flavour decay candidates\r
98 };\r
99 #endif\r