]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/JCORRAN/AliJDiJetAnalysis.h
Install macros and scripts needed for QA
[u/mrichter/AliRoot.git] / PWGCF / Correlations / JCORRAN / AliJDiJetAnalysis.h
CommitLineData
a5c83ba9 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 ALIJDIJETANALYSIS_H
11#define ALIJDIJETANALYSIS_H
12
13#include <vector>
14#include <TObjArray.h>
15#include "AliJBaseCard.h"
16#include "AliJConst.h"
17#include "AliJJet.h"
18//#include "AliJHistosDiJetAnalysis.h"
19#include "AliJHistManager.h"
20
21class AliJDiJet {
22 public:
23 AliJDiJet():fJet(){ ; }
24 AliJDiJet(AliJJet*i,AliJJet*j):fJet(){SetJets(i,j);}
25 void SetJet( int i, AliJJet* j ){ Safe(i);fJet[i]=j; }
26 void SetJets( AliJJet* i, AliJJet*j){ Safe(2);fJet[0]=i;fJet[1]=j; }
27 double DPt( AliJDiJet & dijet, int i, int j );
28 double PtPair(){ return (jet(0)+jet(1)).Pt(); }
29 double kTA(){ return LeadingPt()*TMath::Sin( DPhi() ); }
30 double DPhi(){ return jet(0).DeltaPhi(jet(1)); }
31 double DR(){ return jet(0).DeltaR(jet(1)); }
32 double DEta(){ return jet(0).Eta() - jet(1).Eta(); }
33 double DPt(){ return jet(0).Pt() - jet(1).Pt();}
34 double PtAsymm(){ return (jet(0).Pt() -jet(1).Pt())/(jet(0).Pt()+jet(1).Pt()); }
35 double EAsymm(){ return (jet(0).E() -jet(1).E())/(jet(0).E()+jet(1).E()); }
36 double InvM(){ return (jet(0)+jet(1)).M(); }
37 void Clear(){ fJet.clear(); }
38 void Add(AliJJet*j){ fJet.push_back(j); }
39 int GetEntries(){ return fJet.size(); }
40 void Safe( UInt_t x ){ if( fJet.size()<x) fJet.resize(x); }
41 double LeadingPt(){ double pt0=jet(0).Pt();double pt1=jet(1).Pt();return pt0>pt1?pt0:pt1;}
42
43 AliJJet& jet(int i){ Safe(i);return (*this)(i); }
44 AliJJet& operator()(int i ){
45 if( i > 1 || i< 0) { cout<<"wrong index"<<endl;exit(2); }
46 if( !fJet[i] ){ cout<<"Empty jet"<<endl;exit(3); }
47 return* fJet[i];
48 }
49
50 vector<AliJJet*> fJet;
51};
52
53
54class AliJDiJetAnalysis{
55 public:
56 enum {
57 kJDiJetLeadingSubLeading,
58 kLeadingSubLeadingOpposite,
59 kJDiJetMarta,
60 //kJDiJetAtlas,
61 kJNDiJetSelection
62 };
63 enum {
64 kJIncomingJet, kJOutgoingJet,
65 kJFullJet, kJFullJet08,
66 kJChargedJet, kJChargedJet08,
67 //kJIdealJet,
68 kJMultiPartonAll,
69 kJNJetType
70 };
71 enum{ kJEtaAll, kJEtaAlice, kJNJetSelection};
72
73 AliJDiJetAnalysis();
74 AliJDiJetAnalysis( AliJBaseCard * card );
75 AliJDiJetAnalysis( const AliJDiJetAnalysis & obj );
76 AliJDiJetAnalysis& operator=(const AliJDiJetAnalysis & obj);
77
78 AliJDiJet * GetDiJets(int type, int js, int djs);
79 TObjArray * GetJets(int type, int js);
80
81 void FillHistosJets();
82 void FillHistosDiJet();
83 void CreateHistos();
84
85
86 void AddJets(TObjArray * jets ){
87 if( !jets ) {
88 cout<<"JWARN_C1 in AddJets jets="<<jets<<endl;
89 //return;
90 }
91 fJetListOfList.Add( (TObject*)jets );
92 if( !jets ) return;
93 for( int i=0;i<jets->GetEntriesFast();i++ ){
94 //((AliJJet*)jets->At(i))->ReSum();
95 }
96 } // TODO clean before event
97
98
99 int GetNJets(){ return GetJetList()->GetEntriesFast(); }
100 TObjArray* GetJetList(){ return fJetList; }
101 Double_t GetJetEtaRange(){ return fJetEtaRange; }
102 void SetJetEtaRange(double eta){ fJetEtaRange=eta; }
103 void SetJetList(TObjArray* jetlist){ fJetList=jetlist; }
104 void SetInputList(TObjArray * ilist){ fInputList = ilist;}
105 void SetTrackJetMap(std::vector<int> * v){ fTrackJetMap=v;}
106 void SetJetPtBin( TVector * b){ fJetPtBins=b; }
107
108 AliJJet & Jet( int i ){ return *(AliJJet*) fJetList->At(i); }
109 TObjArray * GetDiJetList( int i ){ return (TObjArray*)fJetListOfList[i]; }
110 void FillJetPythiaComperisonHistos(int ref, int typ, int js);
111
112 void UserCreateOutputObjects();
113 void UserExec();
114 void Terminate() const;
115
116 void ClearBeforeEvent();
117
118 void FillPythiaDiJet(int js );
119
120 private:
121 TObjArray * fInputList; // comment needed
122 TObjArray * fJetList; // comment needed
123 TObjArray fJetListOfList; // !comment needed
124 AliJDiJet *fDiJets[kJNJetType][kJNJetSelection][kJNDiJetSelection]; // comment needed
125 TObjArray *fJets[kJNJetType][kJNJetSelection]; // comment needed
126 bool fIsFullAcceptance; // comment needed
127 double fJetEtaRange; // comment needed
128 int fIsMartasDiJet; // comment needed
129 std::vector<int> *fTrackJetMap; // comment needed
130
131 TVector *fJetPtBins;
132 TVector *fJetPtPairBins;
133 double fJetPtMinCut;
134
135
136
137 double fMeanDiJetPt;
138
139 // PYTHIA8
140 double fParton23Pt;
141
142 AliJBaseCard * fCard; // comment needed
143
144
145 //== Histogram
146 AliJHistManager * fHMG;
147 AliJBin fJetPtBin;
148 AliJBin fJetPtPairBin;
149 AliJBin fInvMBin;
150 AliJBin fJetTypeBin;
151 AliJBin fJetSelectionBin;
152 AliJBin fDiJetSelectionBin;
153 AliJBin fJetRBin;
154 AliJBin fJetDRBin;
155 AliJBin fDiJetBinTypeBin;
156 AliJBin fPYJetTypeBin;
157 AliJBin fBin2;
158
159 //== Jets
160 AliJTH1D fhJetPt ;
161 AliJTH1D fhJetPhi;
162 AliJTH1D fhJetEta;
163 AliJTH1D fhJetNConst;
164 AliJTH1D fhJetEnergy;
165
166 AliJTProfile fhJetEnergyComp;
167 AliJTProfile fhJetPtComp;
168 AliJTH1D fhJetDRToRef;
169 AliJTH1D fhJetDPhiToRef;
170 //== DiJets;
171 AliJTH1D fhDiJetPtPair;
172 AliJTH1D fhDiJetInvM;
173 AliJTH1D fhDiJetKtA;
174 AliJTH1D fhDiJetDeltaR; //!
175 AliJTH1D fhDiJetDeltaPhi;
176 AliJTH1D fhDiJetDeltaEta;
177 AliJTH1D fhDiJetPtAsymm;
178 AliJTH1D fhDiJetEAsymm;
179 AliJTH1D fhDiJetMultiplicity;
180
181 //== PYTHIA
182 AliJTH1D fhPythiaJetPtPair;
183 AliJTH1D fhPythiaJetSum;
184
185 int fDiJetBin[kJNJetType][kJNJetSelection][kJNDiJetSelection][10];
186};
187
188#endif
189