]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/AliAnalysisTaskSEJPSItoEle.h
Added method Misalign() to smear impact parameters and vertex position (Andrea R)
[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 #include "AliPID.h" //************\r
25 #include "AliAODPid.h"\r
26 #include "AliExternalTrackParam.h"//***************\r
27 \r
28 class AliAnalysisTaskSEJPSItoEle : public AliAnalysisTaskSE\r
29 {\r
30  public:\r
31 \r
32   AliAnalysisTaskSEJPSItoEle();\r
33   AliAnalysisTaskSEJPSItoEle(const char *name);\r
34   virtual ~AliAnalysisTaskSEJPSItoEle();\r
35 \r
36   virtual void UserCreateOutputObjects();\r
37   virtual void Init();\r
38   virtual void LocalInit() {Init();}\r
39   virtual void UserExec(Option_t *option);\r
40   virtual void Terminate(Option_t *option);\r
41 \r
42   void SetCutsJPSI(const Double_t cutsJPSI[9]);\r
43   void SetPtCuts(const Double_t ptcuts[2]);\r
44   void SetAODMCInfo(Bool_t OkMCInfo) { fOkAODMC = OkMCInfo;}\r
45   void ReadAODMCInfo(AliAODEvent* aodEv, const TClonesArray* inArray);\r
46   //\r
47   //\r
48   //\r
49   Double_t GetExpectedSignal(const Float_t mom,\r
50                      AliPID::EParticleType n=AliPID::kKaon) const {\r
51 \r
52     Double_t mass=AliPID::ParticleMass(n);\r
53     Double_t betaGamma = mom/mass;\r
54     Double_t bb = AliExternalTrackParam::BetheBlochAleph(betaGamma,0.0283086,2.63394e+01,5.04114e-11,2.12543,4.88663);\r
55     return bb*50.; //bb*fMIP;\r
56   }\r
57 \r
58   Double_t GetExpectedSigma(const Float_t mom, const Int_t nPoints,\r
59                      AliPID::EParticleType n=AliPID::kKaon) const {\r
60     if (nPoints != 0) \r
61       return GetExpectedSignal(mom,n)*0.07*sqrt(1. + 0./nPoints);\r
62     else\r
63       return GetExpectedSignal(mom,n)*0.07;\r
64   }\r
65 \r
66   Float_t  GetNumberOfSigmas(const Float_t mom, const Float_t dEdx, \r
67                              const Int_t nPoints,\r
68                      AliPID::EParticleType n=AliPID::kKaon) const {\r
69 \r
70     Double_t bethe=GetExpectedSignal(mom,n);\r
71     Double_t sigma=GetExpectedSigma(mom,nPoints,n);\r
72     return (dEdx-bethe)/sigma;\r
73   }\r
74   //\r
75   //\r
76   //\r
77  private:\r
78 \r
79   AliAnalysisTaskSEJPSItoEle(const AliAnalysisTaskSEJPSItoEle &source);\r
80   AliAnalysisTaskSEJPSItoEle& operator=(const AliAnalysisTaskSEJPSItoEle& source); \r
81   \r
82   TList *fOutput;                            //! list send on output slot 0\r
83 \r
84   //output histograms\r
85   TH1F *fhDecayTimeMCjpsifromB;              //! Pseudo-proper decay time distribution used as template for JPSIs from B\r
86   TH1F *fhDecayTime;                         //! Pseudo-proper decay time distribution\r
87   TH1F *fhDecayTimeOut;                      //! Pseudo-proper decay time distribution (stand-alone AOD)\r
88   TH1F *fhInvMass;                           //! Invariant mass distribution\r
89   TH2F *fhdEdxTPC;\r
90   TH1F *fhD0;                                //! Impact parameter distribution\r
91   TH1F *fhD0D0;                              //! Product of impact parameters distributions\r
92   TH1F *fhCosThetaStar;                      //! Cosine of decay angle distribution\r
93   TH1F *fhCosThetaPointing;                  //! Cosine of pointing angle distribution\r
94   TH1F *fhDCA;                               //! Distance of closest approach\r
95   TH2F *fhCtsVsD0D0;                         //! Cos theta star Vs. D0D0 distribution\r
96 \r
97   //like sign pairs histograms \r
98   TH1F *fHistMassLS;                         //! Invariant mass distribution\r
99   TH1F *fHistCtsLS;                          //! Cosine of decay angle distribution\r
100   TH1F *fHistCtsLSpos;                       //! Cosine of decay angle distribution (++ pairs)\r
101   TH1F *fHistCtsLSneg;                       //! Cosine of decay angle distribution (-- pairs)\r
102   TH1F *fHistCPtaLS;                         //! Cosine of pointing angle distribution\r
103   TH1F *fHistd0d0LS;                         //! Product of impact parameters distributions\r
104   TH1F *fHistDCALS;                          //! Distance of closest approach\r
105   AliAnalysisVertexingHF *fVHF;              //! Vertexer heavy flavour (used to pass the cuts)\r
106 \r
107   //Int_t totJPSIin;\r
108   //Int_t totJPSIout;\r
109 \r
110   //like sign spectrum normalization\r
111   Int_t fTotPosPairs;                        //\r
112   Int_t fTotNegPairs;                        //\r
113   Double_t fLsNormalization;                 // Like sign normalization factor\r
114 \r
115   //flags for analysis\r
116   Bool_t fOkAODMC;                           // Flag to read AOD monte carlo information\r
117   Bool_t fOkLikeSign;                        // Flag to select like sign candidates analysis\r
118 \r
119   //momentum cuts   \r
120   Double_t fCuts[9];                         // cuts for N-tuple values selection\r
121   Double_t fPtCuts[2];                       // Max and min pt of the candidates\r
122 \r
123   TClonesArray    *fVerticesHFTClArr;        // Array of heavy flavor vertices to be replicated in stand-alone AOD\r
124   TClonesArray    *fJpsiToEleTClArr;         // Array of J/psi->e+e- candidates to be replicated in stand-alone AOD\r
125   TClonesArray    *fLikeSignTClArr;          // Array of like sign candidates to be replicated in stand-alone AOD\r
126   TClonesArray    *fTracksTClArr;            // Array of tracks belonging to J/psi->e+e- candidates to be replicated in stand-alone AOD \r
127   AliAODEvent     *fOrigAOD;                 // original AOD event\r
128   AliAODEvent     *fNewAOD;                  // new AOD event with only JPSItoEle candidates stored\r
129 \r
130   ClassDef(AliAnalysisTaskSEJPSItoEle,1); // AliAnalysisTaskSE for the reconstruction of heavy-flavour decay candidates\r
131 };\r
132 \r
133 \r
134 #endif\r