]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/AliJetResponseMaker.h
updates from Salvatore
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetResponseMaker.h
1 #ifndef ALIJETRESPONSEMAKER_H
2 #define ALIJETRESPONSEMAKER_H
3
4 // $Id$
5
6 class AliGenPythiaEventHeader;
7 class TClonesArray;
8 class TH1F;
9 class TH2F;
10
11 #include "AliAnalysisTaskEmcalJet.h"
12
13 class AliJetResponseMaker : public AliAnalysisTaskEmcalJet {
14  public:
15   AliJetResponseMaker();
16   AliJetResponseMaker(const char *name);
17   virtual ~AliJetResponseMaker();
18
19   void                        UserCreateOutputObjects();
20
21   void                        SetMCJetsName(const char *n)       { fMCJetsName      = n; }
22   void                        SetMCTracksName(const char *n)     { fMCTracksName    = n; }
23   void                        SetMaxDistance(Double_t d)         { fMaxDistance     = d; }
24   void                        SetDoWeighting(Bool_t d = kTRUE)   { fDoWeighting     = d; }
25   void                        SetMCFiducial(Bool_t f = kTRUE)    { fMCFiducial      = f; }
26   void                        SetEventWeightHist(Bool_t h)       { fEventWeightHist = h; }
27   void                        SetPtHardBin(Int_t b)              { fSelectPtHardBin = b; }
28   void                        SetDoMatching(Bool_t b)            { fDoMatching      = b; }
29
30  protected:
31   Bool_t                      IsEventSelected();
32   Bool_t                      AcceptJet(AliEmcalJet* jet, Bool_t /*bias*/ = kFALSE, Bool_t /*upCut*/ = kFALSE)   const;
33   void                        ExecOnce();
34   void                        DoJetLoop(TClonesArray *jets1, TClonesArray *jets2, Bool_t mc);
35   Bool_t                      FillHistograms();
36   Bool_t                      RetrieveEventObjects();
37   Bool_t                      Run();
38
39   TString                     fMCTracksName;              // name of MC particle collection
40   TString                     fMCJetsName;                // name of MC jet collection
41   Double_t                    fMaxDistance;               // maximum distance between matched particle and detector level jets
42   Bool_t                      fDoWeighting;               // = true, weight using trials and given x section
43   Bool_t                      fEventWeightHist;           // = true create event weight histogram
44   Bool_t                      fMCFiducial;                // = true MC jets in fiducial acceptance
45   Double_t                    fMCminEta;                  // MC jets minimum eta
46   Double_t                    fMCmaxEta;                  // MC jets maximum eta
47   Double_t                    fMCminPhi;                  // MC jets minimum phi
48   Double_t                    fMCmaxPhi;                  // MC jets maximum phi
49   Int_t                       fSelectPtHardBin;           // select one pt hard bin for analysis
50   Bool_t                      fDoMatching;                // whether or not it should run the matching between MC and rec jets
51
52   AliGenPythiaEventHeader    *fPythiaHeader;              //!event Pythia header
53   Double_t                    fEventWeight;               //!event weight
54   Int_t                       fPtHardBin;                 //!event pt hard bin
55   Int_t                       fNTrials;                   //!event trials
56   TClonesArray               *fMCTracks;                  //!MC particles
57   TClonesArray               *fMCJets;                    //!MC jets
58   // General histograms
59   TH1F                       *fHistZVertex;               //!Z vertex position
60   TH1F                       *fHistNTrials;               //!total number of trials per pt hard bin
61   TH1F                       *fHistEvents;                //!total number of events per pt hard bin
62   TH1F                       *fHistEventWeight[11];       //!event weight
63   // Particle level jets
64   TH2F                       *fHistMCJetPhiEta;           //!phi-eta distribution of jets
65   TH1F                       *fHistMCJetsPt;              //!inclusive jet pt spectrum
66   TH2F                       *fHistMCJetPhiEtaFiducial;   //!phi-eta distribution of jets in fiducial acceptance (plus lead hadron bias)
67   TH1F                       *fHistMCJetsPtFiducial;      //!inclusive jet pt spectrum in fiducial acceptance (plus lead hadron bias)
68   TH2F                       *fHistMCJetsNEFvsPt;         //!jet neutral energy fraction vs. jet pt
69   TH2F                       *fHistMCJetsZvsPt;           //!constituent Pt over Jet Pt ratio vs. jet pt
70   // Detector level jets
71   TH2F                       *fHistJetPhiEta;             //!phi-eta distribution of jets
72   TH1F                       *fHistJetsPt;                //!inclusive jet pt spectrum
73   TH2F                       *fHistJetsNEFvsPt;           //!jet neutral energy fraction vs. jet pt
74   TH2F                       *fHistJetsZvsPt;             //!constituent Pt over Jet Pt ratio vs. jet pt
75   // Detector-particle level matching
76   TH1F                       *fHistClosestDistance;       //!distance between closest particle to detector level jet
77   TH1F                       *fHistClosestDeltaPhi;       //!delta phi between closest particle to detector level jet
78   TH1F                       *fHistClosestDeltaEta;       //!delta eta between closest particle to detector level jet
79   TH1F                       *fHistClosestDeltaPt;        //!delta pt between closest particle to detector level jet
80   TH1F                       *fHistNonMatchedMCJetPt;     //!non-matched mc jet pt distribution
81   TH1F                       *fHistNonMatchedJetPt;       //!non-matched jet pt distribution
82   TH2F                       *fHistPartvsDetecPt;         //!particle vs detector level jet pt
83   TH1F                       *fHistMissedMCJets;          //!mc jets not measured
84
85  private:
86   AliJetResponseMaker(const AliJetResponseMaker&);            // not implemented
87   AliJetResponseMaker &operator=(const AliJetResponseMaker&); // not implemented
88
89   ClassDef(AliJetResponseMaker, 7) // Jet response matrix producing task
90 };
91 #endif