]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaClusterPileUp.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaClusterPileUp.h
1 #ifndef ALIANACLUSTERPILEUP_H
2 #define ALIANACLUSTERPILEUP_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5
6 //_________________________________________________________________________
7 //
8 // Class for the study of Pile-up effect on
9 // Calorimeter clusters.
10 // Open time cuts in reader.
11 //
12 //-- Author: Gustavo Conesa (CNRS-LPSC-Grenoble)
13
14 // --- ROOT system ---
15 class TH2F ;
16 class TH1F;
17 class TObjString;
18 class TList ;
19
20 // --- ANALYSIS system ---
21 #include "AliAnaCaloTrackCorrBaseClass.h"
22
23 class AliAnaClusterPileUp : public AliAnaCaloTrackCorrBaseClass {
24
25  public: 
26            AliAnaClusterPileUp() ;     // default ctor
27   virtual ~AliAnaClusterPileUp() { ; } // virtual dtor
28         
29   //---------------------------------------
30   // General analysis frame methods
31   //---------------------------------------
32   
33   TObjString * GetAnalysisCuts();
34   
35   TList      * GetCreateOutputObjects();
36   
37   void         Init();
38
39   void         InitParameters();
40
41   void         MakeAnalysisFillHistograms() ; 
42   
43   void         Print(const Option_t * opt)const;
44
45   // Analysis parameters setters getters
46   
47   void         SetNCellCut(Int_t n)                   { fNCellsCut = n             ; }
48   Double_t     GetNCellCut()                    const { return fNCellsCut          ; }
49   
50 private:
51  
52   Int_t   fNCellsCut ;                              // Accept for the analysis clusters with more than fNCellsCut cells
53
54   TLorentzVector fMomentum;                         //! Cluster momentum
55   
56   //Histograms
57   
58   TH1F * fhPtPileUp[7];                             //! pT distribution of clusters before any selection
59   TH1F * fhPtNeutralPileUp[7];                      //! pT distribution of track matched clusters
60   TH2F * fhLambda0PileUp[7];                        //! E vs M02 distribution of clusters, before any selection
61   TH2F * fhLambda0NeutralPileUp[7];                 //! E vs M02 distribution of clusters, track matched clusters
62   TH2F * fhClusterCellTimePileUp[7];                //! E vs Time inside cluster, before any selection, not max cell
63   TH2F * fhClusterTimeDiffPileUp[7];                //! E vs Time difference inside cluster, before any selection
64   TH2F * fhClusterTimeDiffNeutralPileUp[7];         //! E vs Time difference inside cluster for track matched clusters
65   TH2F * fhClusterEFracLongTimePileUp[7];           //! E vs fraction of cluster energy from cells with large time
66   TH2F * fhTimePtNoCut;                             //! time of cluster vs Pt, no cut
67   TH2F * fhTimePtSPD;                               //! time of cluster vs Pt, IsSPDPileUp
68   TH2F * fhTimeNPileUpVertSPD;                      //! time of cluster vs n pile-up vertices from SPD
69   TH2F * fhTimeNPileUpVertTrack;                    //! time of cluster vs n pile-up vertices from Tracks
70   TH2F * fhTimeNPileUpVertContributors;             //! time of cluster vs n pile-up vertex from SPD contributors
71   TH2F * fhTimePileUpMainVertexZDistance;           //! time of cluster vs difference of z main vertex and pile-up vertex
72   TH2F * fhTimePileUpMainVertexZDiamond;            //! time of cluster vs difference of z diamond and pile-up vertex
73   TH2F * fhClusterMultSPDPileUp[4];                 //! E max cluster vs event cluster multiplicity, for tmax-tdiff cuts, pile up event
74   TH2F * fhClusterMultNoPileUp[4];                  //! E max cluster vs event cluster multiplicity, for tmax-tdiff cuts, not pile up event
75   TH2F * fhEtaPhiBC0;                               //! eta/phi of clusters in BC=0
76   TH2F * fhEtaPhiBCPlus;                            //! eta/phi of clusters in BC>0
77   TH2F * fhEtaPhiBCMinus;                           //! eta/phi of clusters in BC<0
78   TH2F * fhEtaPhiBC0PileUpSPD;                      //! eta/phi of clusters in BC=0, SPD pile-up
79   TH2F * fhEtaPhiBCPlusPileUpSPD;                   //! eta/phi of clusters in BC>0, SPD pile-up
80   TH2F * fhEtaPhiBCMinusPileUpSPD;                  //! eta/phi of clusters in BC<0, SPD pile-up
81
82   TH2F * fhPtNPileUpSPDVtx;                             //! cluster pt vs number of spd pile-up vertices
83   TH2F * fhPtNPileUpTrkVtx;                         //! cluster pt vs number of track pile-up vertices
84   TH2F * fhPtNPileUpSPDVtxTimeCut;                      //! cluster pt vs number of spd pile-up vertices, time cut +-25 ns
85   TH2F * fhPtNPileUpTrkVtxTimeCut;                  //! cluster pt vs number of track pile-up vertices, time cut +- 25 ns
86   TH2F * fhPtNPileUpSPDVtxTimeCut2;                     //! cluster pt vs number of spd pile-up vertices, time cut +-75 ns
87   TH2F * fhPtNPileUpTrkVtxTimeCut2;                 //! cluster pt vs number of track pile-up vertices, time cut +- 75 ns
88          
89   AliAnaClusterPileUp(              const AliAnaClusterPileUp & pu) ; // cpy ctor
90   AliAnaClusterPileUp & operator = (const AliAnaClusterPileUp & pu) ; // cpy assignment
91   
92   ClassDef(AliAnaClusterPileUp,2)
93
94 } ;
95  
96 #endif//ALIANACLUSTERPILEUP_H
97
98
99