]>
Commit | Line | Data |
---|---|---|
8adb4212 | 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 | |
dd8a6852 | 24 | #include "AliPID.h" //************\r |
25 | #include "AliAODPid.h"\r | |
26 | #include "AliExternalTrackParam.h"//***************\r | |
8adb4212 | 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 | |
dd8a6852 | 44 | void SetAODMCInfo(Bool_t OkMCInfo) { fOkAODMC = OkMCInfo;}\r |
8adb4212 | 45 | void ReadAODMCInfo(AliAODEvent* aodEv, const TClonesArray* inArray);\r |
dd8a6852 | 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 | |
8adb4212 | 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 | |
dd8a6852 | 89 | TH2F *fhdEdxTPC;\r |
8adb4212 | 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 | |
8adb4212 | 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 | |
dd8a6852 | 132 | \r |
133 | \r | |
8adb4212 | 134 | #endif\r |