ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/FakeMods/interface/GenFakeableObjsMod.h
Revision: 1.10
Committed: Wed Oct 20 02:44:51 2010 UTC (14 years, 6 months ago) by ceballos
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, Mit_016, Mit_015b, Mit_015a
Changes since 1.9: +4 -4 lines
Log Message:
fixing vertex issues

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 ceballos 1.10 // $Id: GenFakeableObjsMod.h,v 1.9 2010/05/12 19:05:26 ceballos Exp $
3 loizides 1.1 //
4     // GenFakeableObjsMod
5     //
6 phedex 1.5 // 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 loizides 1.1 //
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 loizides 1.3 #include "MitAna/DataTree/interface/CollectionsFwd.h"
18 ceballos 1.7 #include "MitPhysics/Mods/interface/ElectronIDMod.h"
19 loizides 1.1
20     namespace mithep
21     {
22     class GenFakeableObjsMod : public BaseMod
23     {
24     public:
25     GenFakeableObjsMod(const char *name="GenFakeableObjsMod",
26 loizides 1.3 const char *title="Fake Object Generation Module");
27 loizides 1.1
28 ceballos 1.7 Bool_t GetApplyConversionFilter() const { return fApplyConvFilter; }
29     Bool_t GetApplyD0Cut() const { return fApplyD0Cut; }
30     Bool_t GetChargeFilter() const { return fChargeFilter; }
31     Bool_t GetWrongHitsRequirement() const { return fWrongHitsRequirement; }
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 loizides 1.1 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 ceballos 1.10 const char *GetVertexName() const { return fVertexName; }
52 loizides 1.1 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 phedex 1.2 const char *GetElFakeableObjsName() const { return fElFakeableObjsName; }
59     const char *GetMuFakeableObjsName() const { return fMuFakeableObjsName; }
60 loizides 1.1 const char *GetMCLeptonsName() const { return fMCLeptonsName; }
61     const char *GetMCTausName() const { return fMCTausName; }
62    
63 ceballos 1.7 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 SetWrongHitsRequirement(Bool_t b) { fWrongHitsRequirement = b; }
72 loizides 1.1 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 ceballos 1.10 void SetVertexName(const char *name) { fVertexName = name; }
87 loizides 1.1 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 phedex 1.2 void SetElFakeableObjsName(const char *name) { fElFakeableObjsName = name; }
94     void SetMuFakeableObjsName(const char *name) { fMuFakeableObjsName = name; }
95 loizides 1.1 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     kElFOGsfPlusSC, //"Gsf Track matched to Super Cluster"
101     kElFOReco, //"Reco Electron with loose isolation"
102     kElFOLoose //"Loose Electron with loose isolation"
103     };
104     enum MuonFOType {
105     kMuFOUndef = 0, //not defined
106     kMuFOIsoTrack, //"Loosely Isolated Track"
107     kMuFOGlobal, //"GlobalMuon with loose isolation"
108     kMuFOTrackerMuon //"TrackerMuon with loose isolation"
109     };
110    
111     protected:
112     void Process();
113     void SlaveBegin();
114    
115 ceballos 1.7 Bool_t fApplyConvFilter; //whether remove conversions
116     Bool_t fWrongHitsRequirement; //whether to use wrong hits req for conversion removal
117     Bool_t fApplyD0Cut; //whether apply d0 cut
118     Bool_t fChargeFilter; //whether apply GSF and CFT equal requirement
119     Double_t fD0Cut; //max d0
120     Double_t fCombIsolationCut; //max isolation
121     Double_t fTrackIsolationCut; //max isolation
122     Double_t fEcalIsolationCut; //max isolation
123     Double_t fHcalIsolationCut; //max isolation
124 loizides 1.1 Bool_t fVetoTriggerJet; //whether to veto on the leading jet
125     Bool_t fVetoGenLeptons; //whether we exclude gen leptons
126     Bool_t fVetoCleanLeptons; //whether we exclude clean leptons
127     TString fElectronFOType; //type of electron Fakeable object
128     TString fMuonFOType; //type of muon Fakeable object
129     TString fTriggerName; //name of trigger
130     TString fTriggerObjectsName; //name of trigger objects
131     TString fElectronBranchName; //name of electron brach (input)
132     TString fMuonBranchName; //name of muon brach (input)
133     TString fTrackBranchName; //name of track brach (input)
134     TString fGsfTrackBranchName; //name of track collection (input)
135     TString fBarrelSuperClusterBranchName; //name of barrel supercluster branch (input)
136     TString fEndcapSuperClusterBranchName; //name of endcap supercluster branch (input)
137     TString fJetBranchName; //name of jet branch (input)
138 ceballos 1.10 TString fVertexName; //name of vertex branch (input)
139 loizides 1.1 TString fConversionBranchName; //name of conversion collection (input)
140     TString fGoodJetsName; //name of Good jets collection (input)
141     TString fCleanElectronsName; //name of clean electrons (input)
142     TString fCleanMuonsName; //name of clean muons (input)
143     TString fCleanPhotonsName; //name of clean photons (input)
144     TString fCleanJetsName; //name of clean jets (input)
145     TString fMCLeptonsName; //name of MC leptons (input)
146     TString fMCTausName; //name of MC taus (input)
147 phedex 1.2 TString fElFakeableObjsName; //name of fakeable objects (output)
148     TString fMuFakeableObjsName; //name of fakeable objects (output)
149 phedex 1.5 ElectronFOType fElFOType; //Electron Fakeable Object type
150     MuonFOType fMuFOType; //Muon Fakeable Object type
151 loizides 1.1 const ElectronCol *fElectrons; //!Electron branch
152     const MuonCol *fMuons; //!Muon branch
153     const SuperClusterCol *fBarrelSuperClusters; //!Barrel Supercluster branch
154     const SuperClusterCol *fEndcapSuperClusters; //!Endcap Supercluster branch
155     const TrackCol *fTracks; //!Track branch
156     const TrackCol *fGsfTracks; //!GsfTrack branch
157     const JetCol *fJets; //!Jet branch
158     const VertexCol *fVertices; //!Vertex branch
159     const DecayParticleCol *fConversions; //!conversion collection
160 ceballos 1.9 ElectronIDMod *electronID; //!electron ID object
161 loizides 1.1
162 phedex 1.5 ClassDef(GenFakeableObjsMod, 1) // Fakeable objects generation module
163 loizides 1.1 };
164     }
165     #endif