1 /**************************************************************************
\r
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
\r
4 * Author: The ALICE Off-line Project. *
\r
5 * Contributors are mentioned in the code where appropriate. *
\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
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
24 using namespace std;
\r
28 //_____________________________________________________________________________
\r
29 AlidNdPt::AlidNdPt(): TNamed()
\r
30 , fdNdPtEventCuts(0)
\r
31 , fdNdPtAcceptanceCuts(0)
\r
32 , fdNdPtRecAcceptanceCuts(0)
\r
33 , fMultAcceptanceCuts(0)
\r
36 , fUseMCInfo(kFALSE)
\r
37 , fAnalysisMode(AlidNdPtHelper::kTPC)
\r
38 , fTrigger(AliTriggerAnalysis::kMB1)
\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
47 // default constructor
\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
58 , fUseMCInfo(kFALSE)
\r
59 , fAnalysisMode(AlidNdPtHelper::kTPC)
\r
60 , fTrigger(AliTriggerAnalysis::kMB1)
\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
72 AlidNdPt::AlidNdPt(const AlidNdPt&): TNamed()
\r
73 , fdNdPtEventCuts(0)
\r
74 , fdNdPtAcceptanceCuts(0)
\r
75 , fdNdPtRecAcceptanceCuts(0)
\r
76 , fMultAcceptanceCuts(0)
\r
79 , fUseMCInfo(kFALSE)
\r
80 , fAnalysisMode(AlidNdPtHelper::kTPC)
\r
81 , fTrigger(AliTriggerAnalysis::kMB1)
\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
93 AlidNdPt& AlidNdPt::operator=(const AlidNdPt&)
\r
99 //_____________________________________________________________________________
\r
100 AlidNdPt::~AlidNdPt() {
\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
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
117 Double_t logxmin = TMath::Log10(xmin);
\r
118 Double_t logxmax = TMath::Log10(xmax);
\r
119 Double_t binwidth = (logxmax-logxmin)/nbins;
\r
121 Double_t *xbins = new Double_t[nbins+1];
\r
124 for (Int_t i=1;i<=nbins;i++) {
\r
125 xbins[i] = xmin + TMath::Power(10,logxmin+i*binwidth);
\r
130 //_____________________________________________________________________________
\r
132 Double_t* AlidNdPt::CloneArray(Int_t n, Double_t* source)
\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