]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/AliJetResponseMaker.h
Updates from Salvatore for Embedding
[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
6fd5039f 12#include "AliAnalysisTaskEmcalJet.h"
2949a2ec 13
6fd5039f 14class 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