]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/ChargedHadrons/dNdPt/AlidNdPt.cxx
modifications to run in centrality and multilicity bins (M.Knichel and J.Gronefeld)
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / dNdPt / AlidNdPt.cxx
1 /**************************************************************************\r
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
3  *                                                                        *\r
4  * Author: The ALICE Off-line Project.                                    *\r
5  * Contributors are mentioned in the code where appropriate.              *\r
6  *                                                                        *\r
7  * Permission to use, copy, modify and distribute this software and its   *\r
8  * documentation strictly for non-commercial purposes is hereby granted   *\r
9  * without fee, provided that the above copyright notice appears in all   *\r
10  * copies and that both the copyright notice and this permission notice   *\r
11  * appear in the supporting documentation. The authors make no claims     *\r
12  * about the suitability of this software for any purpose. It is          *\r
13  * provided "as is" without express or implied warranty.                  *\r
14  **************************************************************************/\r
15  // last change: 2013-06-13 by M.Knichel\r
16 \r
17 #include "AliESDtrackCuts.h"  \r
18 #include "AlidNdPtEventCuts.h"\r
19 #include "AlidNdPtAcceptanceCuts.h"\r
20 #include "AliPhysicsSelection.h"\r
21 #include "AlidNdPtBackgroundCuts.h"\r
22 #include "AlidNdPt.h"\r
23 \r
24 using namespace std;\r
25 \r
26 ClassImp(AlidNdPt)\r
27 \r
28 //_____________________________________________________________________________\r
29 AlidNdPt::AlidNdPt(): TNamed()\r
30 , fdNdPtEventCuts(0)\r
31 , fdNdPtAcceptanceCuts(0)\r
32 , fdNdPtRecAcceptanceCuts(0)\r
33 , fMultAcceptanceCuts(0)\r
34 , fEsdTrackCuts(0)\r
35 , fMultTrackCuts(0)\r
36 , fUseMCInfo(kFALSE)\r
37 , fAnalysisMode(AlidNdPtHelper::kTPC) \r
38 , fTrigger(AliTriggerAnalysis::kMB1) \r
39 , fTriggerClass(0) \r
40 , fParticleMode(AlidNdPtHelper::kAllPart) \r
41 , fPhysicsSelection(0)\r
42 , fdNdPtBackgroundCuts(0)\r
43 , fAnalyseOutput(kFALSE)\r
44 , fMergeTHnSparse(kTRUE)\r
45 , fTriggerMask(AliVEvent::kMB)\r
46 {\r
47   // default constructor\r
48 }\r
49 \r
50 //_____________________________________________________________________________\r
51 AlidNdPt::AlidNdPt(Char_t* name, Char_t* title): TNamed(name,title)\r
52 , fdNdPtEventCuts(0)\r
53 , fdNdPtAcceptanceCuts(0)\r
54 , fdNdPtRecAcceptanceCuts(0)\r
55 , fMultAcceptanceCuts(0)\r
56 , fEsdTrackCuts(0)\r
57 , fMultTrackCuts(0)\r
58 , fUseMCInfo(kFALSE)\r
59 , fAnalysisMode(AlidNdPtHelper::kTPC) \r
60 , fTrigger(AliTriggerAnalysis::kMB1) \r
61 , fTriggerClass(0) \r
62 , fParticleMode(AlidNdPtHelper::kAllPart) \r
63 , fPhysicsSelection(0)\r
64 , fdNdPtBackgroundCuts(0)\r
65 , fAnalyseOutput(kFALSE)\r
66 , fMergeTHnSparse(kTRUE)\r
67 , fTriggerMask(AliVEvent::kMB)\r
68 {\r
69   // constructor\r
70 }\r
71 \r
72 AlidNdPt::AlidNdPt(const AlidNdPt&): TNamed()\r
73 , fdNdPtEventCuts(0)\r
74 , fdNdPtAcceptanceCuts(0)\r
75 , fdNdPtRecAcceptanceCuts(0)\r
76 , fMultAcceptanceCuts(0)\r
77 , fEsdTrackCuts(0)\r
78 , fMultTrackCuts(0)\r
79 , fUseMCInfo(kFALSE)\r
80 , fAnalysisMode(AlidNdPtHelper::kTPC) \r
81 , fTrigger(AliTriggerAnalysis::kMB1) \r
82 , fTriggerClass(0) \r
83 , fParticleMode(AlidNdPtHelper::kAllPart) \r
84 , fPhysicsSelection(0)\r
85 , fdNdPtBackgroundCuts(0)\r
86 , fAnalyseOutput(kFALSE)\r
87 , fMergeTHnSparse(kTRUE)\r
88 , fTriggerMask(AliVEvent::kMB)\r
89 {\r
90   // not implemented\r
91 }\r
92 \r
93 AlidNdPt& AlidNdPt::operator=(const AlidNdPt&)\r
94 {\r
95   // not implemented\r
96   return *this;\r
97 }\r
98 \r
99 //_____________________________________________________________________________\r
100 AlidNdPt::~AlidNdPt() {\r
101   // destructor\r
102   if(fdNdPtEventCuts) delete fdNdPtEventCuts; fdNdPtEventCuts=NULL; \r
103   if(fdNdPtAcceptanceCuts) delete fdNdPtAcceptanceCuts; fdNdPtAcceptanceCuts=NULL;\r
104   if(fMultAcceptanceCuts) delete fMultAcceptanceCuts; fMultAcceptanceCuts=NULL;\r
105   if(fdNdPtRecAcceptanceCuts) delete fdNdPtRecAcceptanceCuts; fdNdPtRecAcceptanceCuts=NULL;  \r
106   if(fEsdTrackCuts) delete fEsdTrackCuts; fEsdTrackCuts=NULL;\r
107   if(fMultTrackCuts) delete fMultTrackCuts; fMultTrackCuts=NULL;\r
108   if(fPhysicsSelection) delete fPhysicsSelection; fPhysicsSelection=NULL;\r
109   if(fdNdPtBackgroundCuts) delete fdNdPtBackgroundCuts; fdNdPtBackgroundCuts=NULL;\r
110 }\r
111 \r
112 //_____________________________________________________________________________\r
113 Double_t * AlidNdPt::CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax) {\r
114   // retun pointer to the array with log axis\r
115   // it is user responsibility to delete the array\r
116  \r
117   Double_t logxmin = TMath::Log10(xmin);\r
118   Double_t logxmax = TMath::Log10(xmax);\r
119   Double_t binwidth = (logxmax-logxmin)/nbins;\r
120   \r
121   Double_t *xbins =  new Double_t[nbins+1];\r
122 \r
123   xbins[0] = xmin;\r
124   for (Int_t i=1;i<=nbins;i++) {\r
125     xbins[i] = xmin + TMath::Power(10,logxmin+i*binwidth);\r
126   }\r
127 \r
128 return xbins;\r
129 }\r
130 //_____________________________________________________________________________\r
131 \r
132 Double_t* AlidNdPt::CloneArray(Int_t n, Double_t* source)\r
133 {\r
134     if (!source || n==0) return 0;\r
135     Double_t* dest = new Double_t[n];\r
136     for (Int_t i=0; i<n ; i++) { dest[i] = source[i]; }\r
137     return dest;\r
138 }\r