ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: ALICE Offline.                                                 *
 * 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.                  *
 **************************************************************************/

//=========================================================================//
//             AliEbyE Analysis for Particle Ratio Fluctuation             //
//                   Deepika Rathee  | Satyajit Jena                       //
//                   drathee@cern.ch | sjena@cern.ch                       //
//                  Date: Wed Jul  9 18:38:30 CEST 2014                    //
//          New approch to find particle ratio to reduce memory            //
//                             (Test Only)                                 //
//        Copied from NetParticle Classes
//        Origin: Authors: Jochen Thaeder <jochen@thaeder.de>
//                         Michael Weber <m.weber@cern.ch>
//=========================================================================//

#include "TMath.h"
#include "TAxis.h"

#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliESDtrackCuts.h"


#include "AliAODEvent.h"
#include "AliAODInputHandler.h"
#include "AliAODMCParticle.h"
#include "AliEbyEPidRatioBase.h"

using namespace std;
ClassImp(AliEbyEPidRatioBase)
//________________________________________________________________________
AliEbyEPidRatioBase::AliEbyEPidRatioBase() :
  TNamed(),
  fHelper(NULL),
  
  fESD(NULL), 
  fESDTrackCuts(NULL),
  fAOD(NULL),
  fArrayMC(NULL),
  fAODtrackCutBit(1024),
  fIsMC(kFALSE),
  fMCEvent(NULL),
  fStack(NULL),
  
  fCentralityBin(-1.),
  fNTracks(0), fIsRatio(kFALSE), fIsPtBin(kFALSE), fIsDetectorWise(kFALSE) {
  // Constructor   

  AliLog::SetClassDebugLevel("AliEbyEPidRatioBase",10);
}

//________________________________________________________________________
AliEbyEPidRatioBase::AliEbyEPidRatioBase(const Char_t* name, const Char_t* title) :
  TNamed(name, title),
  fHelper(NULL),
 
  fESD(NULL), 
  fESDTrackCuts(NULL),
  fAOD(NULL),
  fArrayMC(NULL),
  fAODtrackCutBit(1024),
  fIsMC(kFALSE),
  
  
  fMCEvent(NULL),
  fStack(NULL),
  
  fCentralityBin(-1.),
  fNTracks(0), fIsRatio(kFALSE),fIsPtBin(kFALSE), fIsDetectorWise(kFALSE){
  // Constructor   

  AliLog::SetClassDebugLevel("AliEbyEPidRatioBase",10);
}

//________________________________________________________________________
AliEbyEPidRatioBase::~AliEbyEPidRatioBase() {
  // Destructor
}

//________________________________________________________________________
void AliEbyEPidRatioBase::Initialize(AliEbyEPidRatioHelper* helper, AliESDtrackCuts* cuts) {
  fHelper           = helper;
  fESDTrackCuts     = (cuts) ? cuts : helper->GetESDTrackCuts();
  fIsMC             = helper->GetIsMC();
  fIsRatio          = helper->GetIsRatio();
  fIsPtBin          = helper->GetIsPtBin();
  fIsDetectorWise   = helper->GetDetWise();
  fAODtrackCutBit   = helper->GetAODtrackCutBit();
  Init();
  CreateHistograms();
 
  Float_t ptRange[2];
  fESDTrackCuts->GetPtRange(ptRange[0],ptRange[1]);
  Printf(">>>> Pt Initialisation:  [%f,%f]",ptRange[0],ptRange[1]);
  fESDTrackCuts->GetEtaRange(ptRange[0],ptRange[1]);
  Printf(">>>> Eta Initialisation: [%f,%f]",ptRange[0],ptRange[1]);
 
  return;
}

//________________________________________________________________________
Int_t AliEbyEPidRatioBase::SetupEvent() {
  // -- Setup event


  ResetEvent();

  // -- Get ESD objects
  if (dynamic_cast<AliESDInputHandler*>(fHelper->GetInputEventHandler())) {
    fESD         = dynamic_cast<AliESDEvent*>(fHelper->GetInputEventHandler()->GetEvent());
    fNTracks     = fESD->GetNumberOfTracks();
  }

  // -- Get AOD objects
  else if (dynamic_cast<AliAODInputHandler*>(fHelper->GetInputEventHandler())) {
    fAOD         = dynamic_cast<AliAODEvent*>(fHelper->GetInputEventHandler()->GetEvent());
    fNTracks     = fAOD->GetNumberOfTracks();
    
    if (fIsMC) {
      fArrayMC = dynamic_cast<TClonesArray*>(fAOD->FindListObject(AliAODMCParticle::StdBranchName()));
      if (!fArrayMC)
	AliFatal("No array of MC particles found !!!"); // MW  no AliFatal use return values
    }
  }

  if (fIsMC) {
    fMCEvent     = fHelper->GetMCEvent();
    if (fMCEvent)
      fStack     = fMCEvent->Stack();
  }

  fCentralityBin = fHelper->GetCentralityBin();

  return Setup();
}

//________________________________________________________________________
void AliEbyEPidRatioBase::ResetEvent() {
  // -- Reset ESD Event
  fESD       = NULL;
  // -- Reset AOD Event
  fAOD       = NULL;
  // -- Reset MC Event
  if (fIsMC)
    fMCEvent = NULL;
  // -- Reset in class
  Reset();
  return;
}


 AliEbyEPidRatioBase.cxx:1
 AliEbyEPidRatioBase.cxx:2
 AliEbyEPidRatioBase.cxx:3
 AliEbyEPidRatioBase.cxx:4
 AliEbyEPidRatioBase.cxx:5
 AliEbyEPidRatioBase.cxx:6
 AliEbyEPidRatioBase.cxx:7
 AliEbyEPidRatioBase.cxx:8
 AliEbyEPidRatioBase.cxx:9
 AliEbyEPidRatioBase.cxx:10
 AliEbyEPidRatioBase.cxx:11
 AliEbyEPidRatioBase.cxx:12
 AliEbyEPidRatioBase.cxx:13
 AliEbyEPidRatioBase.cxx:14
 AliEbyEPidRatioBase.cxx:15
 AliEbyEPidRatioBase.cxx:16
 AliEbyEPidRatioBase.cxx:17
 AliEbyEPidRatioBase.cxx:18
 AliEbyEPidRatioBase.cxx:19
 AliEbyEPidRatioBase.cxx:20
 AliEbyEPidRatioBase.cxx:21
 AliEbyEPidRatioBase.cxx:22
 AliEbyEPidRatioBase.cxx:23
 AliEbyEPidRatioBase.cxx:24
 AliEbyEPidRatioBase.cxx:25
 AliEbyEPidRatioBase.cxx:26
 AliEbyEPidRatioBase.cxx:27
 AliEbyEPidRatioBase.cxx:28
 AliEbyEPidRatioBase.cxx:29
 AliEbyEPidRatioBase.cxx:30
 AliEbyEPidRatioBase.cxx:31
 AliEbyEPidRatioBase.cxx:32
 AliEbyEPidRatioBase.cxx:33
 AliEbyEPidRatioBase.cxx:34
 AliEbyEPidRatioBase.cxx:35
 AliEbyEPidRatioBase.cxx:36
 AliEbyEPidRatioBase.cxx:37
 AliEbyEPidRatioBase.cxx:38
 AliEbyEPidRatioBase.cxx:39
 AliEbyEPidRatioBase.cxx:40
 AliEbyEPidRatioBase.cxx:41
 AliEbyEPidRatioBase.cxx:42
 AliEbyEPidRatioBase.cxx:43
 AliEbyEPidRatioBase.cxx:44
 AliEbyEPidRatioBase.cxx:45
 AliEbyEPidRatioBase.cxx:46
 AliEbyEPidRatioBase.cxx:47
 AliEbyEPidRatioBase.cxx:48
 AliEbyEPidRatioBase.cxx:49
 AliEbyEPidRatioBase.cxx:50
 AliEbyEPidRatioBase.cxx:51
 AliEbyEPidRatioBase.cxx:52
 AliEbyEPidRatioBase.cxx:53
 AliEbyEPidRatioBase.cxx:54
 AliEbyEPidRatioBase.cxx:55
 AliEbyEPidRatioBase.cxx:56
 AliEbyEPidRatioBase.cxx:57
 AliEbyEPidRatioBase.cxx:58
 AliEbyEPidRatioBase.cxx:59
 AliEbyEPidRatioBase.cxx:60
 AliEbyEPidRatioBase.cxx:61
 AliEbyEPidRatioBase.cxx:62
 AliEbyEPidRatioBase.cxx:63
 AliEbyEPidRatioBase.cxx:64
 AliEbyEPidRatioBase.cxx:65
 AliEbyEPidRatioBase.cxx:66
 AliEbyEPidRatioBase.cxx:67
 AliEbyEPidRatioBase.cxx:68
 AliEbyEPidRatioBase.cxx:69
 AliEbyEPidRatioBase.cxx:70
 AliEbyEPidRatioBase.cxx:71
 AliEbyEPidRatioBase.cxx:72
 AliEbyEPidRatioBase.cxx:73
 AliEbyEPidRatioBase.cxx:74
 AliEbyEPidRatioBase.cxx:75
 AliEbyEPidRatioBase.cxx:76
 AliEbyEPidRatioBase.cxx:77
 AliEbyEPidRatioBase.cxx:78
 AliEbyEPidRatioBase.cxx:79
 AliEbyEPidRatioBase.cxx:80
 AliEbyEPidRatioBase.cxx:81
 AliEbyEPidRatioBase.cxx:82
 AliEbyEPidRatioBase.cxx:83
 AliEbyEPidRatioBase.cxx:84
 AliEbyEPidRatioBase.cxx:85
 AliEbyEPidRatioBase.cxx:86
 AliEbyEPidRatioBase.cxx:87
 AliEbyEPidRatioBase.cxx:88
 AliEbyEPidRatioBase.cxx:89
 AliEbyEPidRatioBase.cxx:90
 AliEbyEPidRatioBase.cxx:91
 AliEbyEPidRatioBase.cxx:92
 AliEbyEPidRatioBase.cxx:93
 AliEbyEPidRatioBase.cxx:94
 AliEbyEPidRatioBase.cxx:95
 AliEbyEPidRatioBase.cxx:96
 AliEbyEPidRatioBase.cxx:97
 AliEbyEPidRatioBase.cxx:98
 AliEbyEPidRatioBase.cxx:99
 AliEbyEPidRatioBase.cxx:100
 AliEbyEPidRatioBase.cxx:101
 AliEbyEPidRatioBase.cxx:102
 AliEbyEPidRatioBase.cxx:103
 AliEbyEPidRatioBase.cxx:104
 AliEbyEPidRatioBase.cxx:105
 AliEbyEPidRatioBase.cxx:106
 AliEbyEPidRatioBase.cxx:107
 AliEbyEPidRatioBase.cxx:108
 AliEbyEPidRatioBase.cxx:109
 AliEbyEPidRatioBase.cxx:110
 AliEbyEPidRatioBase.cxx:111
 AliEbyEPidRatioBase.cxx:112
 AliEbyEPidRatioBase.cxx:113
 AliEbyEPidRatioBase.cxx:114
 AliEbyEPidRatioBase.cxx:115
 AliEbyEPidRatioBase.cxx:116
 AliEbyEPidRatioBase.cxx:117
 AliEbyEPidRatioBase.cxx:118
 AliEbyEPidRatioBase.cxx:119
 AliEbyEPidRatioBase.cxx:120
 AliEbyEPidRatioBase.cxx:121
 AliEbyEPidRatioBase.cxx:122
 AliEbyEPidRatioBase.cxx:123
 AliEbyEPidRatioBase.cxx:124
 AliEbyEPidRatioBase.cxx:125
 AliEbyEPidRatioBase.cxx:126
 AliEbyEPidRatioBase.cxx:127
 AliEbyEPidRatioBase.cxx:128
 AliEbyEPidRatioBase.cxx:129
 AliEbyEPidRatioBase.cxx:130
 AliEbyEPidRatioBase.cxx:131
 AliEbyEPidRatioBase.cxx:132
 AliEbyEPidRatioBase.cxx:133
 AliEbyEPidRatioBase.cxx:134
 AliEbyEPidRatioBase.cxx:135
 AliEbyEPidRatioBase.cxx:136
 AliEbyEPidRatioBase.cxx:137
 AliEbyEPidRatioBase.cxx:138
 AliEbyEPidRatioBase.cxx:139
 AliEbyEPidRatioBase.cxx:140
 AliEbyEPidRatioBase.cxx:141
 AliEbyEPidRatioBase.cxx:142
 AliEbyEPidRatioBase.cxx:143
 AliEbyEPidRatioBase.cxx:144
 AliEbyEPidRatioBase.cxx:145
 AliEbyEPidRatioBase.cxx:146
 AliEbyEPidRatioBase.cxx:147
 AliEbyEPidRatioBase.cxx:148
 AliEbyEPidRatioBase.cxx:149
 AliEbyEPidRatioBase.cxx:150
 AliEbyEPidRatioBase.cxx:151
 AliEbyEPidRatioBase.cxx:152
 AliEbyEPidRatioBase.cxx:153
 AliEbyEPidRatioBase.cxx:154
 AliEbyEPidRatioBase.cxx:155
 AliEbyEPidRatioBase.cxx:156
 AliEbyEPidRatioBase.cxx:157
 AliEbyEPidRatioBase.cxx:158
 AliEbyEPidRatioBase.cxx:159
 AliEbyEPidRatioBase.cxx:160
 AliEbyEPidRatioBase.cxx:161
 AliEbyEPidRatioBase.cxx:162
 AliEbyEPidRatioBase.cxx:163
 AliEbyEPidRatioBase.cxx:164
 AliEbyEPidRatioBase.cxx:165