1 /* Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
4 // Short comment describing what this class does needed!
6 //===========================================================
7 // Dummy comment, should be replaced by a real one
8 //===========================================================
10 #ifndef ALIJDIJETANALYSIS_H
11 #define ALIJDIJETANALYSIS_H
14 #include <TObjArray.h>
15 #include "AliJBaseCard.h"
16 #include "AliJConst.h"
18 //#include "AliJHistosDiJetAnalysis.h"
19 #include "AliJHistManager.h"
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;}
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); }
50 vector<AliJJet*> fJet;
54 class AliJDiJetAnalysis{
57 kJDiJetLeadingSubLeading,
58 kLeadingSubLeadingOpposite,
64 kJIncomingJet, kJOutgoingJet,
65 kJFullJet, kJFullJet08,
66 kJChargedJet, kJChargedJet08,
71 enum{ kJEtaAll, kJEtaAlice, kJNJetSelection};
74 AliJDiJetAnalysis( AliJBaseCard * card );
75 AliJDiJetAnalysis( const AliJDiJetAnalysis & obj );
76 AliJDiJetAnalysis& operator=(const AliJDiJetAnalysis & obj);
78 AliJDiJet * GetDiJets(int type, int js, int djs);
79 TObjArray * GetJets(int type, int js);
81 void FillHistosJets();
82 void FillHistosDiJet();
86 void AddJets(TObjArray * jets ){
88 cout<<"JWARN_C1 in AddJets jets="<<jets<<endl;
91 fJetListOfList.Add( (TObject*)jets );
93 for( int i=0;i<jets->GetEntriesFast();i++ ){
94 //((AliJJet*)jets->At(i))->ReSum();
96 } // TODO clean before event
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; }
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);
112 void UserCreateOutputObjects();
114 void Terminate() const;
116 void ClearBeforeEvent();
118 void FillPythiaDiJet(int js );
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
132 TVector *fJetPtPairBins;
142 AliJBaseCard * fCard; // comment needed
146 AliJHistManager * fHMG;
148 AliJBin fJetPtPairBin;
151 AliJBin fJetSelectionBin;
152 AliJBin fDiJetSelectionBin;
155 AliJBin fDiJetBinTypeBin;
156 AliJBin fPYJetTypeBin;
163 AliJTH1D fhJetNConst;
164 AliJTH1D fhJetEnergy;
166 AliJTProfile fhJetEnergyComp;
167 AliJTProfile fhJetPtComp;
168 AliJTH1D fhJetDRToRef;
169 AliJTH1D fhJetDPhiToRef;
171 AliJTH1D fhDiJetPtPair;
172 AliJTH1D fhDiJetInvM;
174 AliJTH1D fhDiJetDeltaR; //!
175 AliJTH1D fhDiJetDeltaPhi;
176 AliJTH1D fhDiJetDeltaEta;
177 AliJTH1D fhDiJetPtAsymm;
178 AliJTH1D fhDiJetEAsymm;
179 AliJTH1D fhDiJetMultiplicity;
182 AliJTH1D fhPythiaJetPtPair;
183 AliJTH1D fhPythiaJetSum;
185 int fDiJetBin[kJNJetType][kJNJetSelection][kJNDiJetSelection][10];