f3050824 |
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 |