ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/FakeMods/interface/GenFakeableObjsMod.h
Revision: 1.12
Committed: Thu Feb 17 13:44:54 2011 UTC (14 years, 2 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_029c, Mit_029b, Mit_029a, Mit_028a, Mit_028, Mit_027, Mit_027a, Mit_025e, Mit_025d, Mit_025c, Mit_025b, Mit_025a, Mit_025, Mit_025pre2, Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_020d, TMit_020d, Mit_020c, Mit_021, Mit_021pre2, Mit_021pre1, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, HEAD
Changes since 1.11: +4 -4 lines
Log Message:
Updated conversion cuts for vertexing-based removal

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: GenFakeableObjsMod.h,v 1.11 2011/01/23 19:00:09 sixie Exp $
3 //
4 // GenFakeableObjsMod
5 //
6 // This Module generates a collection of Electron and Muon Fakeable Objects. The exact definition
7 // of the electron and muon fakeable objects can be specified according to the ElectronFOType
8 // and MuonFOType enum types.
9 //
10 // Authors: S.Xie
11 //--------------------------------------------------------------------------------------------------
12
13 #ifndef MITPHYSICS_FAKEMODS_GENFAKEABLEOBJSMOD_H
14 #define MITPHYSICS_FAKEMODS_GENFAKEABLEOBJSMOD_H
15
16 #include "MitAna/TreeMod/interface/BaseMod.h"
17 #include "MitAna/DataTree/interface/CollectionsFwd.h"
18 #include "MitPhysics/Mods/interface/ElectronIDMod.h"
19
20 namespace mithep
21 {
22 class GenFakeableObjsMod : public BaseMod
23 {
24 public:
25 GenFakeableObjsMod(const char *name="GenFakeableObjsMod",
26 const char *title="Fake Object Generation Module");
27
28 Bool_t GetApplyConversionFilter() const { return fApplyConvFilter; }
29 Bool_t GetApplyD0Cut() const { return fApplyD0Cut; }
30 Bool_t GetChargeFilter() const { return fChargeFilter; }
31 Bool_t GetNWrongHitsMax() const { return fNWrongHitsMax; }
32 Double_t GetD0Cut() const { return fD0Cut; }
33 Double_t GetCombIsolationCut() const { return fCombIsolationCut; }
34 Double_t GetTrackIsolationCut() const { return fTrackIsolationCut; }
35 Double_t GetEcalIsolationCut() const { return fEcalIsolationCut; }
36 Double_t GetHcalIsolationCut() const { return fHcalIsolationCut; }
37 Bool_t GetVetoTriggerJet() const { return fVetoTriggerJet; }
38 Bool_t GetVetoGenLeptons() const { return fVetoGenLeptons; }
39 Bool_t GetVetoCleanLeptons() const { return fVetoCleanLeptons; }
40 const char *GetElectronsName() const { return fElectronBranchName; }
41 const char *GetMuonsName() const { return fMuonBranchName; }
42 const char *GetElectronFOType() const { return fElectronFOType; }
43 const char *GetMuonFOType() const { return fMuonFOType; }
44 const char *GetTriggerName() const { return fTriggerName; }
45 const char *GetTriggerObjectsName() const { return fTriggerObjectsName; }
46 const char *GetTrackName() const { return fTrackBranchName; }
47 const char *GetGsfTrackBranchName() const { return fGsfTrackBranchName; }
48 const char *GetBarrelSuperClustersName() const { return fBarrelSuperClusterBranchName; }
49 const char *GetEndcapSuperClustersName() const { return fEndcapSuperClusterBranchName; }
50 const char *GetJetBranchName() const { return fJetBranchName; }
51 const char *GetVertexName() const { return fVertexName; }
52 const char *GetConversionBranchName() const { return fConversionBranchName; }
53 const char *GetGoodJetsName() const { return fGoodJetsName; }
54 const char *GetCleanElectronsName() const { return fCleanElectronsName; }
55 const char *GetCleanMuonsName() const { return fCleanMuonsName; }
56 const char *GetCleanPhotonsName() const { return fCleanPhotonsName; }
57 const char *GetCleanJetsName() const { return fCleanJetsName; }
58 const char *GetElFakeableObjsName() const { return fElFakeableObjsName; }
59 const char *GetMuFakeableObjsName() const { return fMuFakeableObjsName; }
60 const char *GetMCLeptonsName() const { return fMCLeptonsName; }
61 const char *GetMCTausName() const { return fMCTausName; }
62
63 void SetApplyConversionFilter(Bool_t b) { fApplyConvFilter = b; }
64 void SetApplyD0Cut(Bool_t b) { fApplyD0Cut = b; }
65 void SetD0Cut(Double_t cut) { fD0Cut = cut; }
66 void SetCombIsolationCut(Double_t cut) { fCombIsolationCut = cut; }
67 void SetTrackIsolationCut(Double_t cut) { fTrackIsolationCut = cut; }
68 void SetEcalIsolationCut(Double_t cut) { fEcalIsolationCut = cut; }
69 void SetHcalIsolationCut(Double_t cut) { fHcalIsolationCut = cut; }
70 void SetChargeFilter(Bool_t b) { fChargeFilter = b; }
71 void SetNWrongHitsMax(UInt_t n) { fNWrongHitsMax = n; }
72 void SetVetoTriggerJet(Bool_t b) { fVetoTriggerJet = b; }
73 void SetVetoGenLeptons(Bool_t b) { fVetoGenLeptons = b; }
74 void SetVetoCleanLeptons(Bool_t b) { fVetoCleanLeptons = b; }
75 void SetElectronFOType(const char *name) { fElectronFOType = name; }
76 void SetMuonFOType(const char *name) { fMuonFOType = name; }
77 void SetTriggerName(const char *name) { fTriggerName = name; }
78 void SetTriggerObjectsName(const char *name) { fTriggerObjectsName = name; }
79 void SetElectronBranchName(const char *name) { fElectronBranchName = name; }
80 void SetMuonBranchName(const char *name) { fMuonBranchName = name; }
81 void SetTrackBranchName(const char *name) { fTrackBranchName = name; }
82 void SetGsfTrackBranchName(const char *name) { fGsfTrackBranchName = name; }
83 void SetBarrelSuperClusterBranchName(const char *name) { fBarrelSuperClusterBranchName=name; }
84 void SetEndcapSuperClusterBranchName(const char *name) { fEndcapSuperClusterBranchName=name; }
85 void SetJetBranchName(const char *name) { fJetBranchName = name; }
86 void SetVertexName(const char *name) { fVertexName = name; }
87 void SetConversionBranchName(const char *name) { fConversionBranchName = name; }
88 void SetGoodJetsName(const char *name) { fGoodJetsName = name; }
89 void SetCleanElectronsName(const char *name) { fCleanElectronsName = name; }
90 void SetCleanMuonsName(const char *name) { fCleanMuonsName = name; }
91 void SetCleanPhotonsName(const char *name) { fCleanPhotonsName = name; }
92 void SetCleanJetsName(const char *name) { fCleanJetsName = name; }
93 void SetElFakeableObjsName(const char *name) { fElFakeableObjsName = name; }
94 void SetMuFakeableObjsName(const char *name) { fMuFakeableObjsName = name; }
95 void SetMCLeptonsName(const char *name) { fMCLeptonsName = name; }
96 void SetMCTausName(const char *name) { fMCTausName = name; }
97
98 enum ElectronFOType {
99 kElFOUndef = 0, //not defined
100 kElFOIso, //"Reco Electron with full isolation"
101 kElFOLooseIdLooseIso //"Reco Electron with loose id and isolation
102 };
103 enum MuonFOType {
104 kMuFOUndef = 0, //not defined
105 kMuFOIsoTrack, //"Loosely Isolated Track"
106 kMuFOGlobal, //"GlobalMuon with loose isolation"
107 kMuFOTrackerMuon //"TrackerMuon with loose isolation"
108 };
109
110 protected:
111 void Process();
112 void SlaveBegin();
113
114 Bool_t fApplyConvFilter; //whether remove conversions
115 UInt_t fNWrongHitsMax; //whether to use wrong hits req for conversion removal
116 Bool_t fApplyD0Cut; //whether apply d0 cut
117 Bool_t fChargeFilter; //whether apply GSF and CFT equal requirement
118 Double_t fD0Cut; //max d0
119 Double_t fCombIsolationCut; //max isolation
120 Double_t fTrackIsolationCut; //max isolation
121 Double_t fEcalIsolationCut; //max isolation
122 Double_t fHcalIsolationCut; //max isolation
123 Bool_t fVetoTriggerJet; //whether to veto on the leading jet
124 Bool_t fVetoGenLeptons; //whether we exclude gen leptons
125 Bool_t fVetoCleanLeptons; //whether we exclude clean leptons
126 TString fElectronFOType; //type of electron Fakeable object
127 TString fMuonFOType; //type of muon Fakeable object
128 TString fTriggerName; //name of trigger
129 TString fTriggerObjectsName; //name of trigger objects
130 TString fElectronBranchName; //name of electron brach (input)
131 TString fMuonBranchName; //name of muon brach (input)
132 TString fTrackBranchName; //name of track brach (input)
133 TString fGsfTrackBranchName; //name of track collection (input)
134 TString fBarrelSuperClusterBranchName; //name of barrel supercluster branch (input)
135 TString fEndcapSuperClusterBranchName; //name of endcap supercluster branch (input)
136 TString fJetBranchName; //name of jet branch (input)
137 TString fVertexName; //name of vertex branch (input)
138 TString fConversionBranchName; //name of conversion collection (input)
139 TString fGoodJetsName; //name of Good jets collection (input)
140 TString fCleanElectronsName; //name of clean electrons (input)
141 TString fCleanMuonsName; //name of clean muons (input)
142 TString fCleanPhotonsName; //name of clean photons (input)
143 TString fCleanJetsName; //name of clean jets (input)
144 TString fMCLeptonsName; //name of MC leptons (input)
145 TString fMCTausName; //name of MC taus (input)
146 TString fElFakeableObjsName; //name of fakeable objects (output)
147 TString fMuFakeableObjsName; //name of fakeable objects (output)
148 ElectronFOType fElFOType; //Electron Fakeable Object type
149 MuonFOType fMuFOType; //Muon Fakeable Object type
150 const ElectronCol *fElectrons; //!Electron branch
151 const MuonCol *fMuons; //!Muon branch
152 const SuperClusterCol *fBarrelSuperClusters; //!Barrel Supercluster branch
153 const SuperClusterCol *fEndcapSuperClusters; //!Endcap Supercluster branch
154 const TrackCol *fTracks; //!Track branch
155 const TrackCol *fGsfTracks; //!GsfTrack branch
156 const JetCol *fJets; //!Jet branch
157 const VertexCol *fVertices; //!Vertex branch
158 const DecayParticleCol *fConversions; //!conversion collection
159 ElectronIDMod *electronID; //!electron ID object
160
161 ClassDef(GenFakeableObjsMod, 1) // Fakeable objects generation module
162 };
163 }
164 #endif