1-New correlation analysis for particle and jet-JETAN correlation; 2-Change GetEntrie...
[u/mrichter/AliRoot.git] / PWG4 / AliAnalysisTaskUE.h
1 #ifndef ALIANALYSISTASKUE_H
2 #define ALIANALYSISTASKUE_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6  
7 #include "AliAnalysisTaskSE.h"
8
9 class AliESDEvent;
10 class AliAODEvent;
11 class TH1F;
12 class TH2F;
13 class TH1I;
14 class TVector3;
15        
16 class  AliAnalysisTaskUE : public AliAnalysisTask
17 {
18  public:
19                      AliAnalysisTaskUE(const char* name="AliAnalysisTaskUE");
20   virtual           ~AliAnalysisTaskUE() {;}
21   
22   // Implementation of interface methods
23   virtual     void   ConnectInputData(Option_t *);
24   virtual     void   CreateOutputObjects();
25   virtual     void   Exec(Option_t *option);
26   virtual     void   Terminate(Option_t *);
27   
28   //  Setters
29   virtual     void   SetDebugLevel(Int_t level)      { fDebug = level; }
30               void   SetPtRangeInHist(Int_t bin, Double_t min, Double_t max) { 
31                                           fBinsPtInHist = bin; 
32                                           fMinJetPtInHist = min; 
33                                           fMaxJetPtInHist = max; 
34                                        }
35   
36               void   SetAnaTopology(Int_t val)    { fAnaType = val;    }          
37               void   SetRegionType(Int_t val)     { fRegionType = val; }
38               void   SetConeRadius(Double_t val)  { fConeRadius = val; }
39               void   SetPtSumOrdering(Int_t val)  { fOrdering = val;   }
40       // Jet cuts    
41               void   SetJet1EtaCut(Double_t val)      { fJet1EtaCut = val; }
42               void   SetJet2DeltaPhiCut(Double_t val) { fJet2DeltaPhiCut = val; }
43               void   SetJet2RatioPtCut(Double_t val)  { fJet2RatioPtCut = val; }
44               void   SetJet3PtCut(Double_t val)       { fJet3PtCut = val; }
45       // track cuts
46               void   SetTrackPtCut(Double_t val)  { fTrackPtCut = val; }
47               void   SetTrackEtaCut(Double_t val) { fTrackEtaCut = val; }
48
49 private:
50                      AliAnalysisTaskUE(const  AliAnalysisTaskUE &det);
51 AliAnalysisTaskUE&   operator=(const  AliAnalysisTaskUE &det);
52
53               void   AnalyseUE();
54              Int_t   IsTrackInsideRegion(TVector3 *jetVect, TVector3 *partVect);
55               void   CreateHistos();
56               void   FillSumPtRegion( Double_t leadingE, Double_t ptMax, Double_t ptMin );
57               void   FillAvePartPtRegion( Double_t leadingE, Double_t ptMax, Double_t ptMin );
58               void   FillMultRegion( Double_t leadingE, Double_t nTrackPtmax, Double_t nTrackPtmin, Double_t ptMin );
59     
60        
61              Int_t   fDebug;           //  Debug flag
62        AliAODEvent*  fAOD;             //! AOD Event 
63              TList*  fListOfHistos;    //  Output list of histograms
64       
65       // Config     
66              Int_t   fBinsPtInHist;     //  # bins for Pt histos range
67           Double_t   fMinJetPtInHist;   //  min Jet Pt value for histo range
68           Double_t   fMaxJetPtInHist;   //  max Jet Pt value for histo range
69       
70       // Cuts 
71              Int_t   fAnaType;          // Analysis type on jet topology: 
72                                         //     1=inclusive  (default) 
73                                         //     2=back to back inclusive
74                                         //     3=back to back exclusive
75                                         //     4=gama jet (back to back) ???
76                                         //  Minimum bias
77                                         //     31 = Semi jet (charged leading particle jets)
78                                         //     32 = Random jetcone  ?
79                                         //     33 = Swiss chees   ?
80
81              Int_t   fRegionType;       // 1 = transverse regions (default)
82                                         // 2 = cone regions   
83                                         
84              Double_t   fConeRadius;    // if selected Cone-like region type set Radius (=0.7 default)
85                                         
86              Int_t   fOrdering;         //  Pt and multiplicity summation ordering:
87                                         //     1=CDF-like -independent sorting according quantity to be scored: Double sorting- (default)
88                                         //       if Pt summation will be scored take Pt minimum between both zones and 
89                                         //          fill Pt Max. and Min. histog. accordingly
90                                         //       if Multiplicity summation will be scored take Mult. minimum between both zones and 
91                                         //          fill Mult Max and Min histog. accordingly
92                                         //     2=Marchesini-like (Only Pt sorting: Single sorting)
93                                         //          sort only according Pt summation scored, find minimum between both zones and
94                                         //          fill Pt and Multiplicity Max and Min summation histog. following only this criterium
95                                         //     3=User Selection sorting (NOTE: USER must implement it within cxx)
96                                         
97       // Jet cuts    
98           Double_t   fJet1EtaCut;        // |jet1 eta| < fJet1EtaCut   (fAnaType = 1,2,3)
99           Double_t   fJet2DeltaPhiCut;   // |Jet1.Phi - Jet2.Phi| < fJet2DeltaPhiCut (fAnaType = 2,3)
100           Double_t   fJet2RatioPtCut;    // Jet2.Pt/Jet1Pt > fJet2RatioPtCut  (fAnaType = 2,3)
101           Double_t   fJet3PtCut;         // Jet3.Pt < fJet3PtCut  (fAnaType = 3)
102       // track cuts
103           Double_t   fTrackPtCut;        // Pt cut of tracks in the regions
104           Double_t   fTrackEtaCut;       // Eta cut on tracks in the regions (fRegionType=1)
105
106       // Histograms    ( are owner by fListOfHistos TList )
107               TH1F*  fhNJets;                  //!
108               TH1F*  fhEleadingPt;             //!
109               
110               TH1F*  fhMinRegPtDist;
111               TH1F*  fhRegionMultMin;
112               TH1F*  fhMinRegAvePt; 
113               TH1F*  fhMinRegSumPt;            
114               TH1F*  fhMinRegMaxPtPart;
115               TH1F*  fhMinRegSumPtvsMult;
116               
117               TH1F*  fhdNdEta_PhiDist;         //!
118               TH2F*  fhFullRegPartPtDistVsEt;  //!
119               TH2F*  fhTransRegPartPtDistVsEt; //!
120               
121               TH1F*  fhRegionSumPtMaxVsEt;     //!
122               TH1I*  fhRegionMultMax;          //!
123               TH1F*  fhRegionMultMaxVsEt;      //!
124               TH1F*  fhRegionSumPtMinVsEt;     //!
125               TH1F*  fhRegionMultMinVsEt;      //!
126               TH1F*  fhRegionAveSumPtVsEt;     //!
127               TH1F*  fhRegionDiffSumPtVsEt;    //!
128                      
129               TH1F*  fhRegionAvePartPtMaxVsEt; //!
130               TH1F*  fhRegionAvePartPtMinVsEt; //!
131               TH1F*  fhRegionMaxPartPtMaxVsEt; //!
132               
133       //        TH2F*  fhValidRegion; //! test to be canceled
134          
135     ClassDef( AliAnalysisTaskUE, 1) // Analysis task for Underlying Event analysis
136 };
137  
138 #endif