ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
 // last change: 2013-06-13 by M.Knichel

#include "AliESDtrackCuts.h"  
#include "AlidNdPtEventCuts.h"
#include "AlidNdPtAcceptanceCuts.h"
#include "AliPhysicsSelection.h"
#include "AlidNdPtBackgroundCuts.h"
#include "AlidNdPt.h"

using namespace std;

ClassImp(AlidNdPt)

//_____________________________________________________________________________
AlidNdPt::AlidNdPt(): TNamed()
, fdNdPtEventCuts(0)
, fdNdPtAcceptanceCuts(0)
, fdNdPtRecAcceptanceCuts(0)
, fMultAcceptanceCuts(0)
, fEsdTrackCuts(0)
, fMultTrackCuts(0)
, fUseMCInfo(kFALSE)
, fAnalysisMode(AlidNdPtHelper::kTPC) 
, fTrigger(AliTriggerAnalysis::kMB1) 
, fTriggerClass(0) 
, fParticleMode(AlidNdPtHelper::kAllPart) 
, fPhysicsSelection(0)
, fdNdPtBackgroundCuts(0)
, fAnalyseOutput(kFALSE)
, fMergeTHnSparse(kTRUE)
, fTriggerMask(AliVEvent::kMB)
{
  // default constructor
}

//_____________________________________________________________________________
AlidNdPt::AlidNdPt(Char_t* name, Char_t* title): TNamed(name,title)
, fdNdPtEventCuts(0)
, fdNdPtAcceptanceCuts(0)
, fdNdPtRecAcceptanceCuts(0)
, fMultAcceptanceCuts(0)
, fEsdTrackCuts(0)
, fMultTrackCuts(0)
, fUseMCInfo(kFALSE)
, fAnalysisMode(AlidNdPtHelper::kTPC) 
, fTrigger(AliTriggerAnalysis::kMB1) 
, fTriggerClass(0) 
, fParticleMode(AlidNdPtHelper::kAllPart) 
, fPhysicsSelection(0)
, fdNdPtBackgroundCuts(0)
, fAnalyseOutput(kFALSE)
, fMergeTHnSparse(kTRUE)
, fTriggerMask(AliVEvent::kMB)
{
  // constructor
}

AlidNdPt::AlidNdPt(const AlidNdPt&): TNamed()
, fdNdPtEventCuts(0)
, fdNdPtAcceptanceCuts(0)
, fdNdPtRecAcceptanceCuts(0)
, fMultAcceptanceCuts(0)
, fEsdTrackCuts(0)
, fMultTrackCuts(0)
, fUseMCInfo(kFALSE)
, fAnalysisMode(AlidNdPtHelper::kTPC) 
, fTrigger(AliTriggerAnalysis::kMB1) 
, fTriggerClass(0) 
, fParticleMode(AlidNdPtHelper::kAllPart) 
, fPhysicsSelection(0)
, fdNdPtBackgroundCuts(0)
, fAnalyseOutput(kFALSE)
, fMergeTHnSparse(kTRUE)
, fTriggerMask(AliVEvent::kMB)
{
  // not implemented
}

AlidNdPt& AlidNdPt::operator=(const AlidNdPt&)
{
  // not implemented
  return *this;
}

//_____________________________________________________________________________
AlidNdPt::~AlidNdPt() {
  // destructor
  if(fdNdPtEventCuts) delete fdNdPtEventCuts; fdNdPtEventCuts=NULL; 
  if(fdNdPtAcceptanceCuts) delete fdNdPtAcceptanceCuts; fdNdPtAcceptanceCuts=NULL;
  if(fMultAcceptanceCuts) delete fMultAcceptanceCuts; fMultAcceptanceCuts=NULL;
  if(fdNdPtRecAcceptanceCuts) delete fdNdPtRecAcceptanceCuts; fdNdPtRecAcceptanceCuts=NULL;  
  if(fEsdTrackCuts) delete fEsdTrackCuts; fEsdTrackCuts=NULL;
  if(fMultTrackCuts) delete fMultTrackCuts; fMultTrackCuts=NULL;
  if(fPhysicsSelection) delete fPhysicsSelection; fPhysicsSelection=NULL;
  if(fdNdPtBackgroundCuts) delete fdNdPtBackgroundCuts; fdNdPtBackgroundCuts=NULL;
}

//_____________________________________________________________________________
Double_t * AlidNdPt::CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax) {
  // retun pointer to the array with log axis
  // it is user responsibility to delete the array
 
  Double_t logxmin = TMath::Log10(xmin);
  Double_t logxmax = TMath::Log10(xmax);
  Double_t binwidth = (logxmax-logxmin)/nbins;
  
  Double_t *xbins =  new Double_t[nbins+1];

  xbins[0] = xmin;
  for (Int_t i=1;i<=nbins;i++) {
    xbins[i] = xmin + TMath::Power(10,logxmin+i*binwidth);
  }

return xbins;
}
//_____________________________________________________________________________

Double_t* AlidNdPt::CloneArray(Int_t n, Double_t* source)
{
    if (!source || n==0) return 0;
    Double_t* dest = new Double_t[n];
    for (Int_t i=0; i<n ; i++) { dest[i] = source[i]; }
    return dest;
}
 AlidNdPt.cxx:1
 AlidNdPt.cxx:2
 AlidNdPt.cxx:3
 AlidNdPt.cxx:4
 AlidNdPt.cxx:5
 AlidNdPt.cxx:6
 AlidNdPt.cxx:7
 AlidNdPt.cxx:8
 AlidNdPt.cxx:9
 AlidNdPt.cxx:10
 AlidNdPt.cxx:11
 AlidNdPt.cxx:12
 AlidNdPt.cxx:13
 AlidNdPt.cxx:14
 AlidNdPt.cxx:15
 AlidNdPt.cxx:16
 AlidNdPt.cxx:17
 AlidNdPt.cxx:18
 AlidNdPt.cxx:19
 AlidNdPt.cxx:20
 AlidNdPt.cxx:21
 AlidNdPt.cxx:22
 AlidNdPt.cxx:23
 AlidNdPt.cxx:24
 AlidNdPt.cxx:25
 AlidNdPt.cxx:26
 AlidNdPt.cxx:27
 AlidNdPt.cxx:28
 AlidNdPt.cxx:29
 AlidNdPt.cxx:30
 AlidNdPt.cxx:31
 AlidNdPt.cxx:32
 AlidNdPt.cxx:33
 AlidNdPt.cxx:34
 AlidNdPt.cxx:35
 AlidNdPt.cxx:36
 AlidNdPt.cxx:37
 AlidNdPt.cxx:38
 AlidNdPt.cxx:39
 AlidNdPt.cxx:40
 AlidNdPt.cxx:41
 AlidNdPt.cxx:42
 AlidNdPt.cxx:43
 AlidNdPt.cxx:44
 AlidNdPt.cxx:45
 AlidNdPt.cxx:46
 AlidNdPt.cxx:47
 AlidNdPt.cxx:48
 AlidNdPt.cxx:49
 AlidNdPt.cxx:50
 AlidNdPt.cxx:51
 AlidNdPt.cxx:52
 AlidNdPt.cxx:53
 AlidNdPt.cxx:54
 AlidNdPt.cxx:55
 AlidNdPt.cxx:56
 AlidNdPt.cxx:57
 AlidNdPt.cxx:58
 AlidNdPt.cxx:59
 AlidNdPt.cxx:60
 AlidNdPt.cxx:61
 AlidNdPt.cxx:62
 AlidNdPt.cxx:63
 AlidNdPt.cxx:64
 AlidNdPt.cxx:65
 AlidNdPt.cxx:66
 AlidNdPt.cxx:67
 AlidNdPt.cxx:68
 AlidNdPt.cxx:69
 AlidNdPt.cxx:70
 AlidNdPt.cxx:71
 AlidNdPt.cxx:72
 AlidNdPt.cxx:73
 AlidNdPt.cxx:74
 AlidNdPt.cxx:75
 AlidNdPt.cxx:76
 AlidNdPt.cxx:77
 AlidNdPt.cxx:78
 AlidNdPt.cxx:79
 AlidNdPt.cxx:80
 AlidNdPt.cxx:81
 AlidNdPt.cxx:82
 AlidNdPt.cxx:83
 AlidNdPt.cxx:84
 AlidNdPt.cxx:85
 AlidNdPt.cxx:86
 AlidNdPt.cxx:87
 AlidNdPt.cxx:88
 AlidNdPt.cxx:89
 AlidNdPt.cxx:90
 AlidNdPt.cxx:91
 AlidNdPt.cxx:92
 AlidNdPt.cxx:93
 AlidNdPt.cxx:94
 AlidNdPt.cxx:95
 AlidNdPt.cxx:96
 AlidNdPt.cxx:97
 AlidNdPt.cxx:98
 AlidNdPt.cxx:99
 AlidNdPt.cxx:100
 AlidNdPt.cxx:101
 AlidNdPt.cxx:102
 AlidNdPt.cxx:103
 AlidNdPt.cxx:104
 AlidNdPt.cxx:105
 AlidNdPt.cxx:106
 AlidNdPt.cxx:107
 AlidNdPt.cxx:108
 AlidNdPt.cxx:109
 AlidNdPt.cxx:110
 AlidNdPt.cxx:111
 AlidNdPt.cxx:112
 AlidNdPt.cxx:113
 AlidNdPt.cxx:114
 AlidNdPt.cxx:115
 AlidNdPt.cxx:116
 AlidNdPt.cxx:117
 AlidNdPt.cxx:118
 AlidNdPt.cxx:119
 AlidNdPt.cxx:120
 AlidNdPt.cxx:121
 AlidNdPt.cxx:122
 AlidNdPt.cxx:123
 AlidNdPt.cxx:124
 AlidNdPt.cxx:125
 AlidNdPt.cxx:126
 AlidNdPt.cxx:127
 AlidNdPt.cxx:128
 AlidNdPt.cxx:129
 AlidNdPt.cxx:130
 AlidNdPt.cxx:131
 AlidNdPt.cxx:132
 AlidNdPt.cxx:133
 AlidNdPt.cxx:134
 AlidNdPt.cxx:135
 AlidNdPt.cxx:136
 AlidNdPt.cxx:137
 AlidNdPt.cxx:138