]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/AliJetResponseMaker.h
up from salvatore
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetResponseMaker.h
CommitLineData
2949a2ec 1#ifndef ALIJETRESPONSEMAKER_H
2#define ALIJETRESPONSEMAKER_H
3
7549c451 4// $Id$
2949a2ec 5
1ee1b5b8 6class AliGenPythiaEventHeader;
2949a2ec 7class TClonesArray;
b16bb001 8class TH1;
9class TH2;
10class TH3;
2949a2ec 11
cfc2ac24 12#include "AliEmcalJet.h"
6fd5039f 13#include "AliAnalysisTaskEmcalJet.h"
2949a2ec 14
6fd5039f 15class AliJetResponseMaker : public AliAnalysisTaskEmcalJet {
2949a2ec 16 public:
17 AliJetResponseMaker();
18 AliJetResponseMaker(const char *name);
19 virtual ~AliJetResponseMaker();
20
cd6431de 21 enum MatchingType{
22 kNoMatching = 0,
23 kGeometrical = 1,
7f76e479 24 kMCLabel = 2,
25 kSameCollections = 3
cd6431de 26 };
27
a7ab01d5 28 void UserCreateOutputObjects();
a7ab01d5 29
7f76e479 30 void SetJets2Name(const char *n) { fJets2Name = n ; }
31 void SetTracks2Name(const char *n) { fTracks2Name = n ; }
32 void SetClus2Name(const char *n) { fCalo2Name = n ; }
33 void SetJet2EtaLimits(Float_t min=-999, Float_t max=-999) { fJet2MinEta = min, fJet2MaxEta = max ; }
34 void SetJet2PhiLimits(Float_t min=-999, Float_t max=-999) { fJet2MinPhi = min, fJet2MaxPhi = max ; }
35 void SetRho2Name(const char *n) { fRho2Name = n ; }
36 void SetPtBiasJet2Clus(Float_t b) { fPtBiasJet2Clus = b ; }
37 void SetPtBiasJet2Track(Float_t b) { fPtBiasJet2Track = b ; }
38 void SetMatching(MatchingType t, Double_t p1=1, Double_t p2=1) { fMatching = t; fMatchingPar1 = p1; fMatchingPar2 = p2; }
39 void SetPtHardBin(Int_t b) { fSelectPtHardBin = b ; }
40 void SetAreMCCollections(Bool_t f1, Bool_t f2) { fAreCollections1MC = f1; fAreCollections2MC = f2; }
2949a2ec 41
42 protected:
4643d2e8 43 Bool_t IsEventSelected();
cd6431de 44 Bool_t AcceptJet(AliEmcalJet* jet) const;
45 Bool_t AcceptBiasJet2(AliEmcalJet *jet) const;
1ee1b5b8 46 void ExecOnce();
cfc2ac24 47 void DoJetLoop(Bool_t order);
6fd5039f 48 Bool_t FillHistograms();
49 Bool_t RetrieveEventObjects();
1ee1b5b8 50 Bool_t Run();
f660c2d6 51 Bool_t DoJetMatching();
7f76e479 52 void SetMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, MatchingType matching);
53 void GetGeometricalMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d) const;
54 void GetMCLabelMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const;
55 void GetSameCollectionsMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const;
2949a2ec 56
cd6431de 57 TString fTracks2Name; // name of second track collection
58 TString fCalo2Name; // name of second cluster collection
59 TString fJets2Name; // name of second jet collection
60 TString fRho2Name; // name of second jet collection
61 Float_t fPtBiasJet2Track; // select jets 2 with a minimum pt track
62 Float_t fPtBiasJet2Clus; // select jets 2 with a minimum pt cluster
63 Bool_t fAreCollections1MC; // collections 1 MC
64 Bool_t fAreCollections2MC; // collections 1 MC
65 MatchingType fMatching; // matching type
7f76e479 66 Double_t fMatchingPar1; // matching parameter for generated-reconstructed matching
67 Double_t fMatchingPar2; // matching parameter for reconstructed-generated matching
cd6431de 68 Float_t fJet2MinEta; // minimum eta jet 2 acceptance
69 Float_t fJet2MaxEta; // maximum eta jet 2 acceptance
70 Float_t fJet2MinPhi; // minimum phi jet 2 acceptance
71 Float_t fJet2MaxPhi; // maximum phi jet 2 acceptance
b16bb001 72 Int_t fSelectPtHardBin; // select one pt hard bin for analysis
1ee1b5b8 73
b16bb001 74 AliGenPythiaEventHeader *fPythiaHeader; //!event Pythia header
b16bb001 75 Int_t fPtHardBin; //!event pt hard bin
76 Int_t fNTrials; //!event trials
cd6431de 77 TClonesArray *fTracks2; //!Tracks 2
78 TClonesArray *fCaloClusters2; //!Clusters 2
cfc2ac24 79 TClonesArray *fJets2; //!Jets 2
cd6431de 80 AliRhoParameter *fRho2; //!Event rho 2
81 Double_t fRho2Val; //!Event rho 2 value
cfc2ac24 82 TH1 *fTracks2Map; //!MC particle map
1ee1b5b8 83 // General histograms
b16bb001 84 TH1 *fHistNTrials; //!total number of trials per pt hard bin
85 TH1 *fHistEvents; //!total number of events per pt hard bin
cd6431de 86 // Jets 1
87 TH2 *fHistJets1PhiEta; //!phi-eta distribution of jets 1
88 TH2 *fHistJets1PtArea; //!inclusive jet pt vs area histogram 1
89 TH2 *fHistJets1CorrPtArea; //!inclusive jet pt vs. area histogram 1
90 // Jets 2
91 TH2 *fHistJets2PhiEta; //!phi-eta distribution of jets 2
92 TH2 *fHistJets2PtArea; //!inclusive jet pt vs. area histogram 2
93 TH2 *fHistJets2CorrPtArea; //!inclusive jet pt vs. area histogram 2
cfc2ac24 94 TH2 *fHistJets2PhiEtaAcceptance; //!phi-eta distribution of jets 2 using jet 1 cuts (acceptance, leading hadron bias, ...)
95 TH2 *fHistJets2PtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...)
96 TH2 *fHistJets2CorrPtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...)
cd6431de 97 // Jet1-Jet2 matching
98 TH2 *fHistMatchingLevelvsJet2Pt; //!matching level vs jet 2 pt
6a20534a 99 TH2 *fHistDistancevsCommonEnergy1; //!distance vs common energy 1 (%)
100 TH2 *fHistDistancevsCommonEnergy2; //!distance vs common energy 2 (%)
c560b734 101 TH2 *fHistJet2PtOverJet1PtvsJet2Pt; //!jet 2 pt over jet 1 pt vs jet 2 pt
7030f36f 102 TH2 *fHistJet1PtOverJet2PtvsJet1Pt; //!jet 1 pt over jet 2 pt vs jet 1 pt
cfc2ac24 103 TH3 *fHistDeltaEtaPhivsJet2Pt; //!delta eta-phi between matched jets vs jet 2 pt
7030f36f 104 TH2 *fHistDeltaPtvsJet1Pt; //!delta pt between matched jets vs jet 1 pt
cfc2ac24 105 TH2 *fHistDeltaPtvsJet2Pt; //!delta pt between matched jets vs jet 2 pt
106 TH2 *fHistDeltaPtvsMatchingLevel; //!delta pt between matched jets vs matching level
7030f36f 107 TH2 *fHistDeltaCorrPtvsJet1Pt; //!delta pt corr between matched jets vs jet 1 pt
cfc2ac24 108 TH2 *fHistDeltaCorrPtvsJet2Pt; //!delta pt corr between matched jets vs jet 2 pt
109 TH2 *fHistDeltaCorrPtvsMatchingLevel; //!delta pt corr between matched jets vs matching level
cd6431de 110 TH2 *fHistNonMatchedJets1PtArea; //!non-matched jet 1 pt distribution
111 TH2 *fHistNonMatchedJets2PtArea; //!non-matched jet 2 pt distribution
112 TH2 *fHistNonMatchedJets1CorrPtArea; //!non-matched jet pt distribution
113 TH2 *fHistNonMatchedJets2CorrPtArea; //!non-matched jet pt distribution
114 TH2 *fHistJet1PtvsJet2Pt; //!correlation jet 1 pt vs jet 2 pt
115 TH2 *fHistJet1CorrPtvsJet2CorrPt; //!correlation jet 1 corr pt vs jet 2 corr pt
116 TH2 *fHistMissedJets2PtArea; //!jets 2 not found in jet 1 collection
2949a2ec 117
118 private:
119 AliJetResponseMaker(const AliJetResponseMaker&); // not implemented
120 AliJetResponseMaker &operator=(const AliJetResponseMaker&); // not implemented
121
7f76e479 122 ClassDef(AliJetResponseMaker, 11) // Jet response matrix producing task
2949a2ec 123};
124#endif