histogram title fix and jetjt update from beomkyu
[u/mrichter/AliRoot.git] / PWGCF / Correlations / JCORRAN / AliJJetJtAnalysis.h
1 /* Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice */
3
4 // Short comment describing what this class does needed!
5
6 //===========================================================
7 // Dummy comment, should be replaced by a real one
8 //===========================================================
9
10 #ifndef ALIJJETJTANALYSIS_H
11 #define ALIJJETJTANALYSIS_H
12
13 #include <vector>
14 #include <TObjArray.h>
15 #include <TVector.h>
16 #include "AliJCard.h"
17 #include "AliJJet.h"
18 #include "AliJHistManager.h"
19 #include "AliJJetAnalysis.h"
20
21 class AliJEfficiency;
22 class TString;
23
24 class AliJJetJtAnalysis{
25     public:
26
27
28         AliJJetJtAnalysis();
29         AliJJetJtAnalysis( AliJCard * card );
30         AliJJetJtAnalysis(const AliJJetJtAnalysis& ap);
31         AliJJetJtAnalysis& operator = (const AliJJetJtAnalysis& ap);
32         ~AliJJetJtAnalysis();
33
34         //type = charged jet or full jet, js = cone size 
35
36         void FillHistosJets();
37
38         void AddJets(TObjArray * jets ){ 
39           if( !jets ) {
40             //return;
41           }
42           fJetListOfList.Add( (TObject*)jets ); 
43           //if( !jets ) return;
44           for( int i=0;i<jets->GetEntriesFast();i++ ){
45               //((AliJJet*)jets->At(i))->ReSum();
46           }
47         } // TODO clean before event
48
49         void SetJTracks(TClonesArray *tracks ){fTracks = tracks ;}
50
51
52         int GetNJets(){ return GetJetList()->GetEntriesFast(); }
53         TObjArray* GetJetList(){ return fJetList; }
54         //Double_t GetJetEtaRange(){ return fJetEtaRange; }
55         //void SetJetEtaRange(double eta){ fJetEtaRange=eta; }
56         void SetJetList(TObjArray* jetlist){ fJetList=jetlist; }
57         void SetInputList(TObjArray * ilist){ fInputList = ilist;}
58         //void SetTrackJetMap(std::vector<int> * v){ fTrackJetMap=v;}
59         //void SetJetPtBin( TVector * b){ fJetPtBins=b; }
60         void SetCard(AliJCard * card) {fCard = card;}
61
62         AliJJet & Jet( int i ){ return *(AliJJet*) fJetList->At(i); }
63
64         void UserCreateOutputObjects();
65         void UserExec();
66
67         void ClearBeforeEvent();
68         void FillJtHistogram( TObjArray *Jets, int iContainer );
69         void WriteHistograms();
70         
71         int GetBin(TVector *array, double val){
72
73             int iBin=-1;
74             for(int i=1; i< array->GetNoElements(); i++){
75                 if((*array)[i] <= val && val<(*array)[i+1]){
76                     iBin=i-1;
77                     break;
78                 }
79             }
80
81             return iBin;
82         }
83         void SetJetFinderName(vector<TString> JetFinderName){ fJetFinderName = JetFinderName; }
84
85                 // Need for event loop
86         void SetCentralityBin( int cbin) { cBin = cbin;}
87         void SetCentrality( float cent) { fcent = cent;}
88         void SetZVertex( float zvtx) { zVert = zvtx;}
89         void SetZVertexBin( int zbin) { zBin = zbin;}
90                 void SetNumberOfJetFinders( int njfinder ) { nJetContainer = njfinder;}
91         AliJEfficiency* GetAliJEfficiency() { return fEfficiency;}
92
93
94
95     private:
96         TObjArray * fInputList; // comment needed
97         TObjArray * fJetList; // comment needed
98         TObjArray fJetListOfList; // !comment needed
99         //TObjArray * fJetBgList; // comment needed
100         //TObjArray fJetBgListOfList; // !comment needed
101         vector<TClonesArray>      fJetBgListOfList;
102
103         TVector  *fJetTriggPtBorders;
104         TVector  *fJetConstPtLowLimits;
105         TVector  *fJetAssocPtBorders;
106         TVector  *fDeltaRBorders;
107                 int nJetContainer;
108
109         AliJCard * fCard; // comment needed
110         AliJJetAnalysis *fJJetAnalysis;
111                 vector<TString> fJetFinderName;
112         vector<double>  fConeSizes;
113                 // Need for events
114                 AliJEfficiency *fEfficiency;
115                 int cBin;
116                 float fcent;
117                 int zBin;
118                 float zVert;
119         TClonesArray *fTracks;
120
121         //Histograms
122         AliJHistManager * fHMG;
123
124         AliJBin fJetFinderBin; 
125         AliJBin fJetTriggerBin; 
126         AliJBin fTrkPtBin; 
127         AliJBin fTrkLimPtBin; 
128         AliJBin fdRBin;
129         AliJTH1D fhNumber;
130         AliJTH1D fhKNumber;
131         AliJTH1D fhJetPt ;
132         AliJTH1D fhJetPtBin;
133         AliJTH1D fhZ ;
134         AliJTH1D fhZBin;
135         AliJTH1D fhJt ;
136         AliJTH1D fhJtBin;
137         AliJTH1D fhJtWeightBin;
138         AliJTH1D fhLogJtWeightBin;
139         AliJTH1D fhJtWithPtCutWeightBinBin;
140         AliJTH1D fhLogJtWithPtCutWeightBinBin;
141         AliJTH1D fhJtBinLimBin;
142         AliJTH1D fhJtWeightBinLimBin;
143         AliJTH1D fhLogJtWeightBinLimBin;
144         
145         
146         AliJTH1D fhJetBgPt ;
147         AliJTH1D fhJetBgPtBin;
148         AliJTH1D fhBgZ ;
149         AliJTH1D fhBgZBin;
150         AliJTH1D fhBgJt ;
151         AliJTH1D fhBgJtBin;
152         AliJTH1D fhBgJtWeightBin;
153         AliJTH1D fhBgLogJtWeightBin;
154         AliJTH1D fhBgJtWithPtCutWeightBinBin;
155         AliJTH1D fhBgLogJtWithPtCutWeightBinBin;
156         
157         AliJTH1D fhdeltaE;
158         AliJTH1D fhdeltaN;
159         AliJTH1D fhFullJetEChJetBin;
160         AliJTH1D fhFullChdRChJetBin;
161         AliJTH2D fh2DFullEvsChEdN0;
162         AliJTH2D fh2DFullEvsChEdNnot0;
163
164
165                 //double   fJetPtMinCut;
166 };
167
168 #endif
169