]>
Commit | Line | Data |
---|---|---|
2949a2ec | 1 | #ifndef ALIJETRESPONSEMAKER_H |
2 | #define ALIJETRESPONSEMAKER_H | |
3 | ||
7549c451 | 4 | // $Id$ |
2949a2ec | 5 | |
1ee1b5b8 | 6 | class AliGenPythiaEventHeader; |
2949a2ec | 7 | class TClonesArray; |
b16bb001 | 8 | class TH1; |
9 | class TH2; | |
10 | class TH3; | |
2949a2ec | 11 | |
6fd5039f | 12 | #include "AliAnalysisTaskEmcalJet.h" |
2949a2ec | 13 | |
6fd5039f | 14 | class AliJetResponseMaker : public AliAnalysisTaskEmcalJet { |
2949a2ec | 15 | public: |
16 | AliJetResponseMaker(); | |
17 | AliJetResponseMaker(const char *name); | |
18 | virtual ~AliJetResponseMaker(); | |
19 | ||
cd6431de | 20 | enum MatchingType{ |
21 | kNoMatching = 0, | |
22 | kGeometrical = 1, | |
23 | kMCLabel = 2 | |
24 | }; | |
25 | ||
a7ab01d5 | 26 | void UserCreateOutputObjects(); |
a7ab01d5 | 27 | |
cd6431de | 28 | void SetJets2Name(const char *n) { fJets2Name = n ; } |
29 | void SetTracks2Name(const char *n) { fTracks2Name = n ; } | |
30 | void SetClus2Name(const char *n) { fCalo2Name = n ; } | |
31 | void SetJet2EtaLimits(Float_t min=-999, Float_t max=-999) { fJet2MinEta = min, fJet2MaxEta = max ; } | |
32 | void SetJet2PhiLimits(Float_t min=-999, Float_t max=-999) { fJet2MinPhi = min, fJet2MaxPhi = max ; } | |
33 | void SetRho2Name(const char *n) { fRho2Name = n ; } | |
34 | void SetPtBiasJet2Clus(Float_t b) { fPtBiasJet2Clus = b ; } | |
35 | void SetPtBiasJet2Track(Float_t b) { fPtBiasJet2Track = b ; } | |
36 | void SetMatching(MatchingType t, Double_t p=1) { fMatching = t; fMatchingPar = p; } | |
37 | void SetPtHardBin(Int_t b) { fSelectPtHardBin = b ; } | |
38 | void SetMCflag1(Bool_t f) { fAreCollections1MC = f ; } | |
39 | void SetMCflag2(Bool_t f) { fAreCollections2MC = f ; } | |
2949a2ec | 40 | |
41 | protected: | |
4643d2e8 | 42 | Bool_t IsEventSelected(); |
cd6431de | 43 | Bool_t AcceptJet(AliEmcalJet* jet) const; |
44 | Bool_t AcceptBiasJet2(AliEmcalJet *jet) const; | |
1ee1b5b8 | 45 | void ExecOnce(); |
99c67c1b | 46 | void DoJetLoop(TClonesArray *jets1, TClonesArray *jets2, Bool_t mc); |
6fd5039f | 47 | Bool_t FillHistograms(); |
48 | Bool_t RetrieveEventObjects(); | |
1ee1b5b8 | 49 | Bool_t Run(); |
cd6431de | 50 | Double_t GetMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2) const; |
2949a2ec | 51 | |
cd6431de | 52 | TString fTracks2Name; // name of second track collection |
53 | TString fCalo2Name; // name of second cluster collection | |
54 | TString fJets2Name; // name of second jet collection | |
55 | TString fRho2Name; // name of second jet collection | |
56 | Float_t fPtBiasJet2Track; // select jets 2 with a minimum pt track | |
57 | Float_t fPtBiasJet2Clus; // select jets 2 with a minimum pt cluster | |
58 | Bool_t fAreCollections1MC; // collections 1 MC | |
59 | Bool_t fAreCollections2MC; // collections 1 MC | |
60 | MatchingType fMatching; // matching type | |
61 | Double_t fMatchingPar; // maximum distance between matched particle and detector level jets | |
62 | Float_t fJet2MinEta; // minimum eta jet 2 acceptance | |
63 | Float_t fJet2MaxEta; // maximum eta jet 2 acceptance | |
64 | Float_t fJet2MinPhi; // minimum phi jet 2 acceptance | |
65 | Float_t fJet2MaxPhi; // maximum phi jet 2 acceptance | |
b16bb001 | 66 | Int_t fSelectPtHardBin; // select one pt hard bin for analysis |
1ee1b5b8 | 67 | |
b16bb001 | 68 | AliGenPythiaEventHeader *fPythiaHeader; //!event Pythia header |
b16bb001 | 69 | Int_t fPtHardBin; //!event pt hard bin |
70 | Int_t fNTrials; //!event trials | |
cd6431de | 71 | TClonesArray *fTracks2; //!Tracks 2 |
72 | TClonesArray *fCaloClusters2; //!Clusters 2 | |
73 | TClonesArray *fJets2; //!Jets 2 | |
74 | AliRhoParameter *fRho2; //!Event rho 2 | |
75 | Double_t fRho2Val; //!Event rho 2 value | |
1ee1b5b8 | 76 | // General histograms |
b16bb001 | 77 | TH1 *fHistNTrials; //!total number of trials per pt hard bin |
78 | TH1 *fHistEvents; //!total number of events per pt hard bin | |
cd6431de | 79 | // Jets 1 |
80 | TH2 *fHistJets1PhiEta; //!phi-eta distribution of jets 1 | |
81 | TH2 *fHistJets1PtArea; //!inclusive jet pt vs area histogram 1 | |
82 | TH2 *fHistJets1CorrPtArea; //!inclusive jet pt vs. area histogram 1 | |
83 | // Jets 2 | |
84 | TH2 *fHistJets2PhiEta; //!phi-eta distribution of jets 2 | |
85 | TH2 *fHistJets2PtArea; //!inclusive jet pt vs. area histogram 2 | |
86 | TH2 *fHistJets2CorrPtArea; //!inclusive jet pt vs. area histogram 2 | |
87 | // Jet1-Jet2 matching | |
88 | TH2 *fHistMatchingLevelvsJet2Pt; //!matching level vs jet 2 pt | |
89 | TH3 *fHistClosestDeltaEtaPhivsJet2Pt; //!delta eta-phi between matched jets vs jet 2 pt | |
90 | TH2 *fHistClosestDeltaPtvsJet2Pt; //!delta pt between matched jets vs jet 2 pt | |
91 | TH2 *fHistClosestDeltaCorrPtvsJet2Pt; //!delta pt corr between matched jets vs jet 2 pt | |
92 | TH2 *fHistNonMatchedJets1PtArea; //!non-matched jet 1 pt distribution | |
93 | TH2 *fHistNonMatchedJets2PtArea; //!non-matched jet 2 pt distribution | |
94 | TH2 *fHistNonMatchedJets1CorrPtArea; //!non-matched jet pt distribution | |
95 | TH2 *fHistNonMatchedJets2CorrPtArea; //!non-matched jet pt distribution | |
96 | TH2 *fHistJet1PtvsJet2Pt; //!correlation jet 1 pt vs jet 2 pt | |
97 | TH2 *fHistJet1CorrPtvsJet2CorrPt; //!correlation jet 1 corr pt vs jet 2 corr pt | |
98 | TH2 *fHistMissedJets2PtArea; //!jets 2 not found in jet 1 collection | |
2949a2ec | 99 | |
100 | private: | |
101 | AliJetResponseMaker(const AliJetResponseMaker&); // not implemented | |
102 | AliJetResponseMaker &operator=(const AliJetResponseMaker&); // not implemented | |
103 | ||
cd6431de | 104 | ClassDef(AliJetResponseMaker, 10) // Jet response matrix producing task |
2949a2ec | 105 | }; |
106 | #endif |