#ifndef ALIANALYSISTASKHJETEMBED_H
#define ALIANALYSISTASKHJETEMBED_H
#include <vector>
class TH2F;
class TH1F;
class TF1;
class TH3F;
class THnSparse;
class TClonesArray;
class TObject;
class TString;
class AliNamedString;
class AliAODEvent;
class AliESDEvent;
class AliMCEvent;
class AliRhoParameter;
class TRandom3;
class AliEmcalJet;
class AliVTrack;
template<class T> class TParameter;
#include "AliAnalysisTaskSE.h"
class AliAnalysisTaskHJetEmbed : public AliAnalysisTaskSE {
public:
AliAnalysisTaskHJetEmbed();
AliAnalysisTaskHJetEmbed(const char *name);
virtual ~AliAnalysisTaskHJetEmbed();
void UserCreateOutputObjects();
void UserExec(Option_t *option);
void Terminate(Option_t *);
void PrintConfig();
void SetMaxVtxZ(Double_t z) { fMaxVtxZ=z; }
void SetCollisionSystem(char *s) { fCollisionSystem=s; }
void SetRunPeriod(char *p) { fPeriod=p; }
void SetMCParticleArrName(char *s) { fMCParticleArrName=s; }
void SetTrackArrName(char *s) { fTrackArrName=s; }
void SetTrkPtRange(Double_t min, Double_t max) { fMinTrkPt=min; fMaxTrkPt=max; }
void SetTrkPhiRange(Double_t min, Double_t max) { fMinTrkPhi=min; fMaxTrkPhi=max; }
void SetTrkEtaRange(Double_t min, Double_t max) { fMinTrkEta=min; fMaxTrkEta=max; }
void SetTTtype(Int_t type) { fTTtype=type; }
void SetRadius(Double_t rad) { fRadius=rad; }
void SetPLJetArrName(char *s) { fPLJetArrName=s; }
void SetDLJetArrName(char *s) { fDLJetArrName=s; }
void SetJetArrName(char *s) { fJetArrName=s; }
void SetRhoName(char *s) { fRhoName=s; }
void SetRunQA(Bool_t run) { fRunQA=run; }
void SetRunPL(Bool_t run) { fRunPL=run; }
void SetRunDL(Bool_t run) { fRunDL=run; }
void SetRunHJet(Bool_t run) { fRunHJet=run; }
void SetRunMatch(Bool_t run) { fRunMatch=run; }
void SetTTRanges(Double_t *min, Double_t *max)
{
for(Int_t i=0; i<kNTT; i++)
{
fMinTTPt[i] = min[i];
fMaxTTPt[i] = max[i];
}
}
protected:
void RunQA();
void RunHJet(const Double_t minPt, const Double_t maxPt);
void RunMatch(const TClonesArray *tracks, const Int_t leadingIndex);
void FillHJetCor(const TClonesArray *tracks, const Int_t leadingIndex, const TClonesArray *jetArray, THnSparse *hTT, THnSparse *hn, Bool_t isBkg = kFALSE);
Int_t FindGeoMatchedJet(const AliEmcalJet* jet, const TClonesArray *jetArray, Double_t &dR);
Int_t FindEnergyMatchedJet(const AliEmcalJet* jet, const TClonesArray *jetArray, Double_t &dR, Double_t &fraction);
Bool_t AcceptTrack(const AliVParticle *track);
Bool_t IsGoodJet(const AliEmcalJet* jet);
Double_t GetZ(const Double_t trkPx, const Double_t trkPy, const Double_t trkPz, const Double_t jetPx, const Double_t jetPy, const Double_t jetPz);
Double_t GetDPhi(const Double_t phi1, const Double_t phi2);
Double_t CalculateDPhi(const Double_t phi1, const Double_t phi2);
Double_t GetJetDistance(const AliEmcalJet *jet1, const AliEmcalJet* jet2);
enum { kNTrig = 3 };
enum { kNTT = 4 };
private:
Int_t fVerbosity;
Int_t fAnaType;
TString fPeriod;
TString fCollisionSystem;
AliVEvent *fEvent;
Int_t fTriggerType;
Double_t fCentrality;
Double_t fMaxVtxZ;
TString fMCParticleArrName;
TClonesArray *fMCParticleArray;
TString fTrackArrName;
TClonesArray *fTrackArray;
Int_t fTriggerTrkIndex;
Double_t fMinTrkPt;
Double_t fMaxTrkPt;
Double_t fMinTrkEta;
Double_t fMaxTrkEta;
Double_t fMinTrkPhi;
Double_t fMaxTrkPhi;
Int_t fTTtype;
Double_t fMinTTPt[kNTT];
Double_t fMaxTTPt[kNTT];
Double_t fRadius;
TString fJetArrName;
TString fPLJetArrName;
TString fDLJetArrName;
TClonesArray *fJetArray;
TClonesArray *fPLJetArray;
TClonesArray *fDLJetArray;
TString fRhoName;
AliRhoParameter *fRho;
Double_t fRhoValue;
AliNamedString *fPtHardBinName;
Int_t fPtHardBin;
TRandom3 *fRandom;
Bool_t fRunQA;
Bool_t fRunHJet;
Bool_t fRunMatch;
Bool_t fRunPL;
Bool_t fRunDL;
TList *fOutputList;
TH1F *fhEventStat;
TH1F *fhPtHardBins;
TH1F *fhVtxZ[kNTrig];
TH1F *fhCentrality[kNTrig];
TH2F *fhRhoVsCent[kNTrig];
THnSparse *fhPLJetPtVsCent[kNTrig];
THnSparse *fhDLJetPtVsCent[kNTrig];
THnSparse *fhPLTT[kNTrig];
THnSparse *fhDLTT[kNTrig];
THnSparse *fhPLHJet[kNTrig];
THnSparse *fhDLHJet[kNTrig];
THnSparse *fhTTPtQA[kNTrig];
THnSparse *fhTTPt[kNTrig];
THnSparse *fhHJet[kNTrig];
THnSparse *fhJetPtGeoMatch[kNTrig];
THnSparse *fhJetPtEnMatch[kNTrig];
THnSparse *fhJetPhiGeoMatch[kNTrig];
THnSparse *fhJetPhiEnMatch[kNTrig];
AliAnalysisTaskHJetEmbed(const AliAnalysisTaskHJetEmbed&);
AliAnalysisTaskHJetEmbed &operator=(const AliAnalysisTaskHJetEmbed&);
ClassDef(AliAnalysisTaskHJetEmbed, 3);
};
#endif
AliAnalysisTaskHJetEmbed.h:1 AliAnalysisTaskHJetEmbed.h:2 AliAnalysisTaskHJetEmbed.h:3 AliAnalysisTaskHJetEmbed.h:4 AliAnalysisTaskHJetEmbed.h:5 AliAnalysisTaskHJetEmbed.h:6 AliAnalysisTaskHJetEmbed.h:7 AliAnalysisTaskHJetEmbed.h:8 AliAnalysisTaskHJetEmbed.h:9 AliAnalysisTaskHJetEmbed.h:10 AliAnalysisTaskHJetEmbed.h:11 AliAnalysisTaskHJetEmbed.h:12 AliAnalysisTaskHJetEmbed.h:13 AliAnalysisTaskHJetEmbed.h:14 AliAnalysisTaskHJetEmbed.h:15 AliAnalysisTaskHJetEmbed.h:16 AliAnalysisTaskHJetEmbed.h:17 AliAnalysisTaskHJetEmbed.h:18 AliAnalysisTaskHJetEmbed.h:19 AliAnalysisTaskHJetEmbed.h:20 AliAnalysisTaskHJetEmbed.h:21 AliAnalysisTaskHJetEmbed.h:22 AliAnalysisTaskHJetEmbed.h:23 AliAnalysisTaskHJetEmbed.h:24 AliAnalysisTaskHJetEmbed.h:25 AliAnalysisTaskHJetEmbed.h:26 AliAnalysisTaskHJetEmbed.h:27 AliAnalysisTaskHJetEmbed.h:28 AliAnalysisTaskHJetEmbed.h:29 AliAnalysisTaskHJetEmbed.h:30 AliAnalysisTaskHJetEmbed.h:31 AliAnalysisTaskHJetEmbed.h:32 AliAnalysisTaskHJetEmbed.h:33 AliAnalysisTaskHJetEmbed.h:34 AliAnalysisTaskHJetEmbed.h:35 AliAnalysisTaskHJetEmbed.h:36 AliAnalysisTaskHJetEmbed.h:37 AliAnalysisTaskHJetEmbed.h:38 AliAnalysisTaskHJetEmbed.h:39 AliAnalysisTaskHJetEmbed.h:40 AliAnalysisTaskHJetEmbed.h:41 AliAnalysisTaskHJetEmbed.h:42 AliAnalysisTaskHJetEmbed.h:43 AliAnalysisTaskHJetEmbed.h:44 AliAnalysisTaskHJetEmbed.h:45 AliAnalysisTaskHJetEmbed.h:46 AliAnalysisTaskHJetEmbed.h:47 AliAnalysisTaskHJetEmbed.h:48 AliAnalysisTaskHJetEmbed.h:49 AliAnalysisTaskHJetEmbed.h:50 AliAnalysisTaskHJetEmbed.h:51 AliAnalysisTaskHJetEmbed.h:52 AliAnalysisTaskHJetEmbed.h:53 AliAnalysisTaskHJetEmbed.h:54 AliAnalysisTaskHJetEmbed.h:55 AliAnalysisTaskHJetEmbed.h:56 AliAnalysisTaskHJetEmbed.h:57 AliAnalysisTaskHJetEmbed.h:58 AliAnalysisTaskHJetEmbed.h:59 AliAnalysisTaskHJetEmbed.h:60 AliAnalysisTaskHJetEmbed.h:61 AliAnalysisTaskHJetEmbed.h:62 AliAnalysisTaskHJetEmbed.h:63 AliAnalysisTaskHJetEmbed.h:64 AliAnalysisTaskHJetEmbed.h:65 AliAnalysisTaskHJetEmbed.h:66 AliAnalysisTaskHJetEmbed.h:67 AliAnalysisTaskHJetEmbed.h:68 AliAnalysisTaskHJetEmbed.h:69 AliAnalysisTaskHJetEmbed.h:70 AliAnalysisTaskHJetEmbed.h:71 AliAnalysisTaskHJetEmbed.h:72 AliAnalysisTaskHJetEmbed.h:73 AliAnalysisTaskHJetEmbed.h:74 AliAnalysisTaskHJetEmbed.h:75 AliAnalysisTaskHJetEmbed.h:76 AliAnalysisTaskHJetEmbed.h:77 AliAnalysisTaskHJetEmbed.h:78 AliAnalysisTaskHJetEmbed.h:79 AliAnalysisTaskHJetEmbed.h:80 AliAnalysisTaskHJetEmbed.h:81 AliAnalysisTaskHJetEmbed.h:82 AliAnalysisTaskHJetEmbed.h:83 AliAnalysisTaskHJetEmbed.h:84 AliAnalysisTaskHJetEmbed.h:85 AliAnalysisTaskHJetEmbed.h:86 AliAnalysisTaskHJetEmbed.h:87 AliAnalysisTaskHJetEmbed.h:88 AliAnalysisTaskHJetEmbed.h:89 AliAnalysisTaskHJetEmbed.h:90 AliAnalysisTaskHJetEmbed.h:91 AliAnalysisTaskHJetEmbed.h:92 AliAnalysisTaskHJetEmbed.h:93 AliAnalysisTaskHJetEmbed.h:94 AliAnalysisTaskHJetEmbed.h:95 AliAnalysisTaskHJetEmbed.h:96 AliAnalysisTaskHJetEmbed.h:97 AliAnalysisTaskHJetEmbed.h:98 AliAnalysisTaskHJetEmbed.h:99 AliAnalysisTaskHJetEmbed.h:100 AliAnalysisTaskHJetEmbed.h:101 AliAnalysisTaskHJetEmbed.h:102 AliAnalysisTaskHJetEmbed.h:103 AliAnalysisTaskHJetEmbed.h:104 AliAnalysisTaskHJetEmbed.h:105 AliAnalysisTaskHJetEmbed.h:106 AliAnalysisTaskHJetEmbed.h:107 AliAnalysisTaskHJetEmbed.h:108 AliAnalysisTaskHJetEmbed.h:109 AliAnalysisTaskHJetEmbed.h:110 AliAnalysisTaskHJetEmbed.h:111 AliAnalysisTaskHJetEmbed.h:112 AliAnalysisTaskHJetEmbed.h:113 AliAnalysisTaskHJetEmbed.h:114 AliAnalysisTaskHJetEmbed.h:115 AliAnalysisTaskHJetEmbed.h:116 AliAnalysisTaskHJetEmbed.h:117 AliAnalysisTaskHJetEmbed.h:118 AliAnalysisTaskHJetEmbed.h:119 AliAnalysisTaskHJetEmbed.h:120 AliAnalysisTaskHJetEmbed.h:121 AliAnalysisTaskHJetEmbed.h:122 AliAnalysisTaskHJetEmbed.h:123 AliAnalysisTaskHJetEmbed.h:124 AliAnalysisTaskHJetEmbed.h:125 AliAnalysisTaskHJetEmbed.h:126 AliAnalysisTaskHJetEmbed.h:127 AliAnalysisTaskHJetEmbed.h:128 AliAnalysisTaskHJetEmbed.h:129 AliAnalysisTaskHJetEmbed.h:130 AliAnalysisTaskHJetEmbed.h:131 AliAnalysisTaskHJetEmbed.h:132 AliAnalysisTaskHJetEmbed.h:133 AliAnalysisTaskHJetEmbed.h:134 AliAnalysisTaskHJetEmbed.h:135 AliAnalysisTaskHJetEmbed.h:136 AliAnalysisTaskHJetEmbed.h:137 AliAnalysisTaskHJetEmbed.h:138 AliAnalysisTaskHJetEmbed.h:139 AliAnalysisTaskHJetEmbed.h:140 AliAnalysisTaskHJetEmbed.h:141 AliAnalysisTaskHJetEmbed.h:142 AliAnalysisTaskHJetEmbed.h:143 AliAnalysisTaskHJetEmbed.h:144 AliAnalysisTaskHJetEmbed.h:145 AliAnalysisTaskHJetEmbed.h:146 AliAnalysisTaskHJetEmbed.h:147 AliAnalysisTaskHJetEmbed.h:148 AliAnalysisTaskHJetEmbed.h:149 AliAnalysisTaskHJetEmbed.h:150 AliAnalysisTaskHJetEmbed.h:151 AliAnalysisTaskHJetEmbed.h:152 AliAnalysisTaskHJetEmbed.h:153 AliAnalysisTaskHJetEmbed.h:154 AliAnalysisTaskHJetEmbed.h:155 AliAnalysisTaskHJetEmbed.h:156 AliAnalysisTaskHJetEmbed.h:157 AliAnalysisTaskHJetEmbed.h:158 AliAnalysisTaskHJetEmbed.h:159 AliAnalysisTaskHJetEmbed.h:160 AliAnalysisTaskHJetEmbed.h:161 AliAnalysisTaskHJetEmbed.h:162 AliAnalysisTaskHJetEmbed.h:163 AliAnalysisTaskHJetEmbed.h:164 AliAnalysisTaskHJetEmbed.h:165