ROOT logo
#ifndef AliAnalysisTaskPi0_cxx
#define AliAnalysisTaskPi0_cxx

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice     */
/* $Id$ */

// Analysis task for pi0 and eta meson analysis in pp collisions
// Authors: Yuri Kharlov, Dmitri Peressounko

class TObjArray;
class TH1F;
class TH2I;
class TH2F;
class TH3F;
class AliESDtrackCuts;
class AliPHOSGeometry;
class AliTriggerAnalysis;

#include "TH2I.h"
#include "AliAnalysisTaskSE.h"
#include "AliLog.h"

class AliAnalysisTaskPi0 : public AliAnalysisTaskSE {
public:
  AliAnalysisTaskPi0(const char *name = "AliAnalysisTaskPi0");
  virtual ~AliAnalysisTaskPi0() {}
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);
  void SetBCgap(Double_t bcgap) {fBCgap = bcgap;}
  void SetRecalib(Int_t mod, Double_t recalib)
  {
    if (mod<1 || mod>5) AliFatal(Form("Wrong module number: %d",mod));
    else fRecalib[mod-1] = recalib;
  }
  void SetPHOSBadMap(Int_t mod,TH2I * h)
  {
    if(fPHOSBadMap[mod]) delete fPHOSBadMap[mod] ;
    fPHOSBadMap[mod]=new TH2I(*h) ;
    printf("Set %s \n",fPHOSBadMap[mod]->GetName());
  }
  
private:
  AliAnalysisTaskPi0(const AliAnalysisTaskPi0&); // not implemented
  AliAnalysisTaskPi0& operator=(const AliAnalysisTaskPi0&); // not implemented
  Bool_t IsGoodChannel(const char * det, Int_t mod,Int_t ix, Int_t iz);
  void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key
  void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key
  void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key
  Bool_t TestLambda(Double_t l1,Double_t l2) ;
  Int_t  TestBC(Double_t tof) ;
 
private:
  AliESDtrackCuts *fESDtrackCuts; // Track cut
  TList * fOutputContainer;       //final histogram container
  TList * fPHOSEvents[10][2] ;    //Container for PHOS photons
  TClonesArray * fPHOSEvent ;     //PHOS photons in current event
 
  Int_t fnCINT1B;           // Number of CINT1B triggers
  Int_t fnCINT1A;           // Number of CINT1A triggers
  Int_t fnCINT1C;           // Number of CINT1C triggers
  Int_t fnCINT1E;           // Number of CINT1E triggers

  Double_t fBCgap;          // time gap between BC in seconds
  Double_t fRecalib[5];     // Correction for abs.calibration per module

  TH2I *fPHOSBadMap[6] ;    //Container for PHOS bad channels map

  AliPHOSGeometry  *fPHOSGeo;  // PHOS geometry
  Int_t fEventCounter;         // number of analyzed events
  AliTriggerAnalysis *fTriggerAnalysis; //! Trigger Analysis for Normalisation

  ClassDef(AliAnalysisTaskPi0, 3); // PHOS analysis task
};

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