1 |
//--------------------------------------------------------------------------------------------------
|
2 |
// $Id: FakeLeptonExampleAnaMod.h,v 1.4 2009/08/10 16:07:26 phedex Exp $
|
3 |
//
|
4 |
// FakeLeptonExampleAnaMod
|
5 |
//
|
6 |
// This is an example analysis module which makes use of the FakeEventHeader objects in order to
|
7 |
// loop over all possible fake lepton combinations. This module is meant to illustrate how
|
8 |
// the FakeEventHeader objects are to be used for analysis involving fake leptons.
|
9 |
//
|
10 |
// Authors: S.Xie
|
11 |
//--------------------------------------------------------------------------------------------------
|
12 |
|
13 |
#ifndef MITHIGGS_HWWMODS_FAKELEPTONEXAMPLEANAMOD_H
|
14 |
#define MITHIGGS_HWWMODS_FAKELEPTONEXAMPLEANAMOD_H
|
15 |
|
16 |
#include "MitAna/TreeMod/interface/BaseMod.h"
|
17 |
#include "MitAna/DataTree/interface/CollectionsFwd.h"
|
18 |
|
19 |
class TH1D;
|
20 |
class TH2D;
|
21 |
|
22 |
namespace mithep
|
23 |
{
|
24 |
class FakeLeptonExampleAnaMod : public BaseMod
|
25 |
{
|
26 |
public:
|
27 |
FakeLeptonExampleAnaMod(const char *name="FakeLeptonExampleAnaMod",
|
28 |
const char *title="Example analysis module with all branches");
|
29 |
|
30 |
Bool_t GetUseMCFake() { return fUseMCFake; }
|
31 |
Bool_t GetPerformFakeMuonMetCorrection() { return fPerformFakeMuonMetCorrection; }
|
32 |
const char *GetSampleName() const { return fSampleName; }
|
33 |
const char *GetFakeEventHeaderName() const { return fFakeEventHeaderName; }
|
34 |
const char *GetElectronFakeableObjectsName() const { return fElectronFakeableObjectsName; }
|
35 |
const char *GetMuonFakeableObjectsName() const { return fMuonFakeableObjectsName; }
|
36 |
const char *GetMCPartBranchName() const { return fMCPartBranchName; }
|
37 |
const char *GetGenJetBranchName() const { return fGenJetBranchName; }
|
38 |
const char *GetTrackBranchName() const { return fTrackBranchName; }
|
39 |
const char *GetMuonBranchName() const { return fMuonBranchName; }
|
40 |
const char *GetMetName() const { return fMetName; }
|
41 |
const char *GetTriggerObjectsName() const { return fTriggerObjectsName; }
|
42 |
|
43 |
void SetUseMCFake(Bool_t b) { fUseMCFake = b; }
|
44 |
void SetPerformFakeMuonMetCorrection(Bool_t b) { fPerformFakeMuonMetCorrection = b; }
|
45 |
void SetSampleName(const char *s) { fSampleName = s; }
|
46 |
void SetFakeEventHeaderName (const char *s) { fFakeEventHeaderName = s; }
|
47 |
void SetElectronFakeableObjectsName(const char *s) { fElectronFakeableObjectsName = s; }
|
48 |
void SetMuonFakeableObjectsName(const char *s) { fMuonFakeableObjectsName = s; }
|
49 |
void SetCleanJetsName (TString s) { fCleanJetsName = s; }
|
50 |
void SetMCPartBranchName (TString s) { fMCPartBranchName = s; }
|
51 |
void SetGenJetBranchName (TString s) { fGenJetBranchName = s; }
|
52 |
void SetTrackBranchName (TString s) { fTrackBranchName = s; }
|
53 |
void SetMuonBranchName (TString s) { fMuonBranchName = s; }
|
54 |
void SetMetName (TString s) { fMetName = s; }
|
55 |
void SetTriggerObjectsName(const char *n) { fTriggerObjectsName = n; }
|
56 |
|
57 |
protected:
|
58 |
void Process();
|
59 |
void SlaveBegin();
|
60 |
|
61 |
Bool_t fUseMCFake; //whether to use MC simulation fakes
|
62 |
Bool_t fPerformFakeMuonMetCorrection; //whether to do fake muon met correction
|
63 |
TString fSampleName; //name of Sample
|
64 |
TString fFakeEventHeaderName; //name of fake event header (input)
|
65 |
TString fElectronFakeableObjectsName; //name of electron denominators (input)
|
66 |
TString fMuonFakeableObjectsName; //name of muon denominators (input)
|
67 |
TString fMCPartBranchName; //name of particle collection (input)
|
68 |
TString fGenJetBranchName; //name of genjet collection (input)
|
69 |
TString fTrackBranchName; //name of track collection (input)
|
70 |
TString fMuonBranchName; //name of muon collection (input)
|
71 |
TString fMetName; //name of met collection (input)
|
72 |
TString fCleanJetsName; //name of clean central jets collection
|
73 |
TString fTriggerObjectsName; //name of trigger objects
|
74 |
const MCParticleCol *fParticles; //!GenParticle branch
|
75 |
const GenJetCol *fGenJets; //!GenJet branch
|
76 |
const TrackCol *fTracks; //!Track branch
|
77 |
const MuonCol *fMuons; //!Muon branch
|
78 |
const MetCol *fMet; //!Missing Et
|
79 |
TH1D *fDileptonCharge; //!Dilepton Charge Histogram
|
80 |
TH1D *fLeptonPtMax; //!Lepton1 Pt Histogram
|
81 |
TH1D *fLeptonPtMin; //!Lepton2 Pt Histogram
|
82 |
TH1D *fMetPtHist; //!Met Histogram
|
83 |
TH1D *fDeltaPhiLeptons; //!DeltaPhi Histogram
|
84 |
TH1D *fDeltaEtaLeptons; //!DeltaEta Histogram
|
85 |
TH1D *fDileptonMass; //!Dilepton Mass Histogram
|
86 |
TH1D *fLeptonEta_NMinusOne; //!Lepton Eta Histogram
|
87 |
TH1D *fLeptonPtMax_NMinusOne; //!Lepton1 Pt Histogram
|
88 |
TH1D *fLeptonPtMin_NMinusOne; //!Lepton2 Pt Histogram
|
89 |
TH1D *fMetPtHist_NMinusOne; //!Met Histogram
|
90 |
TH1D *fMetPhiHist_NMinusOne; //!Met Phi Histogram
|
91 |
TH1D *fMETdeltaPhilEtHist_NMinusOne; //!METdeltaPhilEtHist Histogram
|
92 |
TH1D *fNCentralJets_NMinusOne; //!# of Central Jets Histogram
|
93 |
TH1D *fNDirtyMuonsHist_NMinusOne; //!# of Dirty Muons Histogram
|
94 |
TH1D *fNCleanExtraTracksHist_NMinusOne; //!# of Extra Tracks Histogram
|
95 |
TH1D *fDeltaPhiLeptons_NMinusOne; //!DeltaPhi Histogram
|
96 |
TH1D *fDeltaEtaLeptons_NMinusOne; //!DeltaEta Histogram
|
97 |
TH1D *fDileptonMass_NMinusOne; //!Dilepton Mass Histogram
|
98 |
TH1D *fMinDeltaPhiLeptonMet_NMinusOne; //!MinDeltaPhiLeptonMet Histogram
|
99 |
TH1D *fMinDeltaPhiLeptonMet_afterCuts; //!MinDeltaPhiLeptonMet Histogram
|
100 |
TH1D *fMtLepton1_afterCuts; //!M_t1 Histogram Histogram
|
101 |
TH1D *fMtLepton2_afterCuts; //!M_t2 Histogram Histogram
|
102 |
TH1D *fMtHiggs_afterCuts; //!M_t Higgs Histogram
|
103 |
|
104 |
ClassDef(FakeLeptonExampleAnaMod,1) // Fake lepton analysis example
|
105 |
};
|
106 |
}
|
107 |
#endif
|