ROOT logo
#ifndef AliPHOSHijingEfficiency_cxx
#define AliPHOSHijingEfficiency_cxx

// example of an analysis task creating a p_t spectrum
// Authors: Panos Cristakoglou, Jan Fiete Grosse-Oetringhaus, Christian Klein-Boesing

class TObjArray;
class THashList ;
class TH1F;
class TH1D ;
class TH2I;
class TH2F;
class TH3F;
class TF1 ;
class TParticle;
class AliStack ;
class AliESDtrackCuts;
class AliPHOSGeometry;
class AliESDEvent ;
class AliPHOSCalibData;
class AliESDtrack ;
class AliESDCaloCluster ;
class AliCaloPhoton ;

#include "AliAnalysisTaskSE.h"

class AliPHOSHijingEfficiency : public AliAnalysisTaskSE {
public:
  AliPHOSHijingEfficiency(const char *name = "AliPHOSHijingEfficiency");
  virtual ~AliPHOSHijingEfficiency() {}
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);
  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:
  AliPHOSHijingEfficiency(const AliPHOSHijingEfficiency&); // not implemented
  AliPHOSHijingEfficiency& operator=(const AliPHOSHijingEfficiency&); // not implemented
  Bool_t IsGoodChannel(const char * det, Int_t mod,Int_t ix, Int_t iz); //Use addisional bad map for PHOS

  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
  void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z, Double_t w) const ; //Fill 3D histogram witn name key
  void FillAllHistograms(const char * key,AliCaloPhoton * ph)const ; //Fill all possible PID combinations for a given photon

  Bool_t TestLambda(Double_t pt,Double_t l1,Double_t l2) ;  //Evaluate Dispersion cuts for photons
  Bool_t TestLambda2(Double_t pt,Double_t l1,Double_t l2) ;  //Evaluate Dispersion cuts for photons
  Double_t TestCPV(Double_t dx, Double_t dz, Double_t pt, Int_t charge);
  Bool_t TestTOF(Double_t t, Double_t e) ;
  Int_t ConvertRunNumber(Int_t run) ; 
  void ProcessMC() ;
  Int_t FindPrimary(AliESDCaloCluster* clu, Bool_t& sure) ;

  void  EvalLambdas(AliESDCaloCluster * clu, Int_t iR,Double_t &m02, Double_t &m20);
  Double_t CoreEnergy(AliESDCaloCluster * clu); 
  void    Reclusterize(AliESDCaloCluster * clu) ;
  Bool_t  AreNeibors(Int_t id1,Int_t id2) ;
  Double_t PrimaryWeight(Int_t primary);
  Double_t PrimaryParticleWeight(TParticle * particle);
  void FillSecondaries() ;
  Int_t FindCommonParent(Int_t iPart, Int_t jPart) ;
  Bool_t HaveParent(Int_t iPart, Int_t pdgParent);
  Bool_t InPi0mass(Double_t m, Double_t pt);
  
private:
  AliStack * fStack ;             //
  THashList * fOutputContainer;   //final histogram container
  TList * fPHOSEvents[1][10][11] ; //Containers for events with PHOS photons
  TClonesArray * fPHOSEvent ;      //PHOS photons in current event
  AliPHOSCalibData *fPHOSCalibData; // PHOS calibration object
 
  //Reaction plain for v2
  Float_t fRP ;       //Reaction plane calculated with full TPC 
  Float_t fRPV0A ;    //Reaction plain calculated with A-side TPC: eta>0.15 
  Float_t fRPV0C ;    //Reaction plain calculated with C-side TPC: eta<-0.15
  Bool_t fHaveTPCRP ; // Is TPC RP defined?
  
  Int_t fRunNumber ;    //Current run number
  Float_t fCentrality ; //Centrality of the currecnt event

  Int_t fCenBin ;       // Current centrality bin

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

  AliPHOSGeometry  *fPHOSGeo;  // PHOS geometry
  Int_t fEventCounter;         // number of analyzed events

  ClassDef(AliPHOSHijingEfficiency, 1); // PHOS analysis task
};

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