]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/AliAnalysisTaskSEJPSItoEle.h
Added IsInFiducualAcceptance() (Alessandro)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSEJPSItoEle.h
CommitLineData
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
28class 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