ROOT logo
#ifndef ALIANACLUSTERPILEUP_H
#define ALIANACLUSTERPILEUP_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice     */

//_________________________________________________________________________
//
// Class for the study of Pile-up effect on
// Calorimeter clusters.
// Open time cuts in reader.
//
//-- Author: Gustavo Conesa (CNRS-LPSC-Grenoble)

// --- ROOT system ---
class TH2F ;
class TH1F;
class TObjString;
class TList ;

// --- ANALYSIS system ---
#include "AliAnaCaloTrackCorrBaseClass.h"

class AliAnaClusterPileUp : public AliAnaCaloTrackCorrBaseClass {

 public: 
           AliAnaClusterPileUp() ;     // default ctor
  virtual ~AliAnaClusterPileUp() { ; } // virtual dtor
	
  //---------------------------------------
  // General analysis frame methods
  //---------------------------------------
  
  TObjString * GetAnalysisCuts();
  
  TList      * GetCreateOutputObjects();
  
  void         Init();

  void         InitParameters();

  void         MakeAnalysisFillHistograms() ; 
  
  void         Print(const Option_t * opt)const;

  // Analysis parameters setters getters
  
  void         SetNCellCut(Int_t n)                   { fNCellsCut = n             ; }
  Double_t     GetNCellCut()                    const { return fNCellsCut          ; }
  
private:
 
  Int_t   fNCellsCut ;                              // Accept for the analysis clusters with more than fNCellsCut cells

  TLorentzVector fMomentum;                         //! Cluster momentum
  
  //Histograms
  
  TH1F * fhPtPileUp[7];                             //! pT distribution of clusters before any selection
  TH1F * fhPtNeutralPileUp[7];                      //! pT distribution of track matched clusters
  TH2F * fhLambda0PileUp[7];                        //! E vs M02 distribution of clusters, before any selection
  TH2F * fhLambda0NeutralPileUp[7];                 //! E vs M02 distribution of clusters, track matched clusters
  TH2F * fhClusterCellTimePileUp[7];                //! E vs Time inside cluster, before any selection, not max cell
  TH2F * fhClusterTimeDiffPileUp[7];                //! E vs Time difference inside cluster, before any selection
  TH2F * fhClusterTimeDiffNeutralPileUp[7];         //! E vs Time difference inside cluster for track matched clusters
  TH2F * fhClusterEFracLongTimePileUp[7];           //! E vs fraction of cluster energy from cells with large time
  TH2F * fhTimePtNoCut;                             //! time of cluster vs Pt, no cut
  TH2F * fhTimePtSPD;                               //! time of cluster vs Pt, IsSPDPileUp
  TH2F * fhTimeNPileUpVertSPD;                      //! time of cluster vs n pile-up vertices from SPD
  TH2F * fhTimeNPileUpVertTrack;                    //! time of cluster vs n pile-up vertices from Tracks
  TH2F * fhTimeNPileUpVertContributors;             //! time of cluster vs n pile-up vertex from SPD contributors
  TH2F * fhTimePileUpMainVertexZDistance;           //! time of cluster vs difference of z main vertex and pile-up vertex
  TH2F * fhTimePileUpMainVertexZDiamond;            //! time of cluster vs difference of z diamond and pile-up vertex
  TH2F * fhClusterMultSPDPileUp[4];                 //! E max cluster vs event cluster multiplicity, for tmax-tdiff cuts, pile up event
  TH2F * fhClusterMultNoPileUp[4];                  //! E max cluster vs event cluster multiplicity, for tmax-tdiff cuts, not pile up event
  TH2F * fhEtaPhiBC0;                               //! eta/phi of clusters in BC=0
  TH2F * fhEtaPhiBCPlus;                            //! eta/phi of clusters in BC>0
  TH2F * fhEtaPhiBCMinus;                           //! eta/phi of clusters in BC<0
  TH2F * fhEtaPhiBC0PileUpSPD;                      //! eta/phi of clusters in BC=0, SPD pile-up
  TH2F * fhEtaPhiBCPlusPileUpSPD;                   //! eta/phi of clusters in BC>0, SPD pile-up
  TH2F * fhEtaPhiBCMinusPileUpSPD;                  //! eta/phi of clusters in BC<0, SPD pile-up

  TH2F * fhPtNPileUpSPDVtx;	                        //! cluster pt vs number of spd pile-up vertices
  TH2F * fhPtNPileUpTrkVtx;                         //! cluster pt vs number of track pile-up vertices
  TH2F * fhPtNPileUpSPDVtxTimeCut;	                //! cluster pt vs number of spd pile-up vertices, time cut +-25 ns
  TH2F * fhPtNPileUpTrkVtxTimeCut;                  //! cluster pt vs number of track pile-up vertices, time cut +- 25 ns
  TH2F * fhPtNPileUpSPDVtxTimeCut2;	                //! cluster pt vs number of spd pile-up vertices, time cut +-75 ns
  TH2F * fhPtNPileUpTrkVtxTimeCut2;                 //! cluster pt vs number of track pile-up vertices, time cut +- 75 ns
	 
  AliAnaClusterPileUp(              const AliAnaClusterPileUp & pu) ; // cpy ctor
  AliAnaClusterPileUp & operator = (const AliAnaClusterPileUp & pu) ; // cpy assignment
  
  ClassDef(AliAnaClusterPileUp,2)

} ;
 
#endif//ALIANACLUSTERPILEUP_H



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