ROOT logo
#ifndef ALIDNDPTEFFICIENCY_H
#define ALIDNDPTEFFICIENCY_H

//------------------------------------------------------------------------------
// AlidNdPtEfficiency class to determine 
// efficiency TPC->ITS, ITS->TPC for dNdPt analysis. 
//
// Author: J.Otwinowski 18/11/2010 
//------------------------------------------------------------------------------

class iostream;
class TFile;
class TCint;
class TProfile;
class TFolder;
class TObjArray;
class TString;
class THnSparse;

class AliESDtrackCuts;
class AliVertexerTracks;
class AliESD;
class AliESDfriend;
class AliESDfriendTrack;

#include "AlidNdPt.h"

class AlidNdPtEfficiency : public AlidNdPt {
public :
  AlidNdPtEfficiency(); 
  AlidNdPtEfficiency(Char_t* name, Char_t* title);
  ~AlidNdPtEfficiency();

  // Init data members
  virtual void Init();

  // Process events
  virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0);

  // Merge output objects (needed by PROOF) 
  virtual Long64_t Merge(TCollection* const list);

  // Analyse output histograms 
  virtual void Analyse();

  // Export objects to folder
  virtual TFolder *ExportToFolder(TObjArray * const array=0);

  // Get analysis folder
  TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}

  // Create folder for analysed histograms
  TFolder *CreateFolder(TString folder = "folderdNdPtAnalysis",TString title = "Analysed dNdPt histograms");

  // Fill histograms
  void FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Bool_t isMatch, const Bool_t isTPC,const Bool_t isITSTPC) const;

  // Getters
  THnSparseF *GetRecMCTrackHistTPCITS() const {return fRecMCTrackHistTPCITS;}
  THnSparseF *GetRecMCTrackHistITSTPC() const {return fRecMCTrackHistITSTPC;}
  
private:

  // analysis folder 
  TFolder *fAnalysisFolder; // folder for analysed histograms

  //
  // THnSparse event histograms
  //

  //TPC -> ITS matching efficiency
  THnSparseF *fRecMCTrackHistTPCITS; //-> eta:phi:pt:isPrim:charge:isMatch:isTPC

  //ITS -> TPC matching efficiency
  THnSparseF *fRecMCTrackHistITSTPC; //-> eta:phi:pt:isPrim:charge:isMatch

  AlidNdPtEfficiency(const AlidNdPtEfficiency&); // not implemented
  AlidNdPtEfficiency& operator=(const AlidNdPtEfficiency&); // not implemented

  ClassDef(AlidNdPtEfficiency,2);
};

#endif
 AlidNdPtEfficiency.h:1
 AlidNdPtEfficiency.h:2
 AlidNdPtEfficiency.h:3
 AlidNdPtEfficiency.h:4
 AlidNdPtEfficiency.h:5
 AlidNdPtEfficiency.h:6
 AlidNdPtEfficiency.h:7
 AlidNdPtEfficiency.h:8
 AlidNdPtEfficiency.h:9
 AlidNdPtEfficiency.h:10
 AlidNdPtEfficiency.h:11
 AlidNdPtEfficiency.h:12
 AlidNdPtEfficiency.h:13
 AlidNdPtEfficiency.h:14
 AlidNdPtEfficiency.h:15
 AlidNdPtEfficiency.h:16
 AlidNdPtEfficiency.h:17
 AlidNdPtEfficiency.h:18
 AlidNdPtEfficiency.h:19
 AlidNdPtEfficiency.h:20
 AlidNdPtEfficiency.h:21
 AlidNdPtEfficiency.h:22
 AlidNdPtEfficiency.h:23
 AlidNdPtEfficiency.h:24
 AlidNdPtEfficiency.h:25
 AlidNdPtEfficiency.h:26
 AlidNdPtEfficiency.h:27
 AlidNdPtEfficiency.h:28
 AlidNdPtEfficiency.h:29
 AlidNdPtEfficiency.h:30
 AlidNdPtEfficiency.h:31
 AlidNdPtEfficiency.h:32
 AlidNdPtEfficiency.h:33
 AlidNdPtEfficiency.h:34
 AlidNdPtEfficiency.h:35
 AlidNdPtEfficiency.h:36
 AlidNdPtEfficiency.h:37
 AlidNdPtEfficiency.h:38
 AlidNdPtEfficiency.h:39
 AlidNdPtEfficiency.h:40
 AlidNdPtEfficiency.h:41
 AlidNdPtEfficiency.h:42
 AlidNdPtEfficiency.h:43
 AlidNdPtEfficiency.h:44
 AlidNdPtEfficiency.h:45
 AlidNdPtEfficiency.h:46
 AlidNdPtEfficiency.h:47
 AlidNdPtEfficiency.h:48
 AlidNdPtEfficiency.h:49
 AlidNdPtEfficiency.h:50
 AlidNdPtEfficiency.h:51
 AlidNdPtEfficiency.h:52
 AlidNdPtEfficiency.h:53
 AlidNdPtEfficiency.h:54
 AlidNdPtEfficiency.h:55
 AlidNdPtEfficiency.h:56
 AlidNdPtEfficiency.h:57
 AlidNdPtEfficiency.h:58
 AlidNdPtEfficiency.h:59
 AlidNdPtEfficiency.h:60
 AlidNdPtEfficiency.h:61
 AlidNdPtEfficiency.h:62
 AlidNdPtEfficiency.h:63
 AlidNdPtEfficiency.h:64
 AlidNdPtEfficiency.h:65
 AlidNdPtEfficiency.h:66
 AlidNdPtEfficiency.h:67
 AlidNdPtEfficiency.h:68
 AlidNdPtEfficiency.h:69
 AlidNdPtEfficiency.h:70
 AlidNdPtEfficiency.h:71
 AlidNdPtEfficiency.h:72
 AlidNdPtEfficiency.h:73
 AlidNdPtEfficiency.h:74
 AlidNdPtEfficiency.h:75
 AlidNdPtEfficiency.h:76
 AlidNdPtEfficiency.h:77
 AlidNdPtEfficiency.h:78
 AlidNdPtEfficiency.h:79
 AlidNdPtEfficiency.h:80
 AlidNdPtEfficiency.h:81
 AlidNdPtEfficiency.h:82
 AlidNdPtEfficiency.h:83