ROOT logo
#ifndef ALIANALYSISTASKPARTICLEEFFICIENCY
#define ALIANALYSISTASKPARTICLEEFFICIENCY

#define MULTBINS 1
#define PARTTYPES 4

#include "AliAnalysisTaskSE.h"

class AliESDtrackCuts;
class TList;
class TH2F;
class TH1F;
class AliESDEvent;
class AliMCEvent;
class AliStack;
class TParticle;
class AliESDtrackCuts;
class AliCentrality;
class TObjArray;
class AliEventPoolManager;
class AliInputEventHandler;
class AliESDtrack;
class AliESDVertex;
class AliAODEvent;
class AliAODTrack;
class AliAODMCParticle;
class AliAODHandler;
class AliAODInputHandler;
class AliPIDResponse;

class AliAnalysisTaskParticleEfficiency :public AliAnalysisTaskSE{
 public:
 AliAnalysisTaskParticleEfficiency() : AliAnalysisTaskSE(),centrality(0), fHistoList(0),  fHistEv(0), fpidResponse(0)
    {

      for(Int_t i = 0; i < MULTBINS*PARTTYPES; i++)  {
    
	fGeneratedMCPrimaries[i] = NULL;
	fMCPrimariesThatAreReconstructed[i] = NULL;
	fReconstructedAfterCuts[i] = NULL;
	fReconstructedNotPrimaries[i] = NULL;
	fReconstructedPrimaries[i] = NULL;
	fContamination[i] = NULL;
      }
  
      for ( Int_t i = 0; i < 11; i++) { 
	fHistQA[i] = NULL;
	if(i<3) fHistQA2D[i] = NULL;
      }
    }

  AliAnalysisTaskParticleEfficiency(const Char_t *partName); // default constructor
  virtual ~AliAnalysisTaskParticleEfficiency(); // default destructor
  virtual void UserCreateOutputObjects(); // user create output objects
  virtual void UserExec(Option_t *option); // user exec
  //void Terminate(Option_t *option);
  
 private:
  AliAnalysisTaskParticleEfficiency(const AliAnalysisTaskParticleEfficiency &); // copy constructor
  AliAnalysisTaskParticleEfficiency &operator=(const AliAnalysisTaskParticleEfficiency &); // operator=
  //AliAODEvent *aodEvent;
  AliCentrality *centrality;
  //AliAODTrack *fTpcTracks;
  //AliAODVertex    *vertex;
  //AliAODVertex    *vtxSPD;
  //AliAODMCParticle *MCtrk;
  //AliESDtrackCuts *fTrackCuts; // ESD track cuts
  TList *fHistoList; // histo list
  //TClonesArray *arrayMC;
  TH1F *fHistEv;
  AliPIDResponse *fpidResponse;

  TH1F *fHistQA[11];
  TH2F *fHistQA2D[3];
  TH2F *fHistQAPID[5][PARTTYPES];
  TH1F* fHistEvCuts[MULTBINS];
  //TObjArray *recoParticleArray;
  TH2F *fGeneratedMCPrimaries[MULTBINS*PARTTYPES];
  TH2F *fMCPrimariesThatAreReconstructed[MULTBINS*PARTTYPES];
  TH2F *fReconstructedAfterCuts[MULTBINS*PARTTYPES];
  TH2F *fReconstructedNotPrimaries[MULTBINS*PARTTYPES];
  TH2F *fReconstructedPrimaries[MULTBINS*PARTTYPES];
  TH2F *fContamination[MULTBINS*PARTTYPES];
  TH2F *fMisidentification[MULTBINS*PARTTYPES];

  ClassDef(AliAnalysisTaskParticleEfficiency, 1);

};

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