ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/FakeMods/interface/GenFakeableObjsMod.h
Revision: 1.1
Committed: Tue Jun 30 10:47:17 2009 UTC (15 years, 10 months ago) by loizides
Content type: text/plain
Branch: MAIN
Log Message:
Added FakeMods.

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2     // $Id: $
3     //
4     // GenFakeableObjsMod
5     //
6     // This Module generates a collection of FakeEventHeaders containing information
7     // about possible fakes and their weight. The collection generated takes into account all possible
8     // faking combinatorics from the given set of fakable objects.
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/Collections.h"
18    
19     namespace mithep
20     {
21     class GenFakeableObjsMod : public BaseMod
22     {
23     public:
24     GenFakeableObjsMod(const char *name="GenFakeableObjsMod",
25     const char *title="Fake Object Generation Module");
26     ~GenFakeableObjsMod() {}
27    
28     Bool_t GetVetoTriggerJet() const { return fVetoTriggerJet; }
29     Bool_t GetVetoGenLeptons() const { return fVetoGenLeptons; }
30     Bool_t GetVetoCleanLeptons() const { return fVetoCleanLeptons; }
31     const char *GetElectronsName() const { return fElectronBranchName; }
32     const char *GetMuonsName() const { return fMuonBranchName; }
33     const char *GetElectronFOType() const { return fElectronFOType; }
34     const char *GetMuonFOType() const { return fMuonFOType; }
35     const char *GetTriggerName() const { return fTriggerName; }
36     const char *GetTriggerObjectsName() const { return fTriggerObjectsName; }
37     const char *GetTrackName() const { return fTrackBranchName; }
38     const char *GetGsfTrackBranchName() const { return fGsfTrackBranchName; }
39     const char *GetBarrelSuperClustersName() const { return fBarrelSuperClusterBranchName; }
40     const char *GetEndcapSuperClustersName() const { return fEndcapSuperClusterBranchName; }
41     const char *GetJetBranchName() const { return fJetBranchName; }
42     const char *GetVertexBranchName() const { return fVertexBranchName; }
43     const char *GetConversionBranchName() const { return fConversionBranchName; }
44     const char *GetGoodJetsName() const { return fGoodJetsName; }
45     const char *GetCleanElectronsName() const { return fCleanElectronsName; }
46     const char *GetCleanMuonsName() const { return fCleanMuonsName; }
47     const char *GetCleanPhotonsName() const { return fCleanPhotonsName; }
48     const char *GetCleanJetsName() const { return fCleanJetsName; }
49     const char *GetElectronFakeableObjectsName() const { return fElectronFakeableObjectsName; }
50     const char *GetMuonFakeableObjectsName() const { return fMuonFakeableObjectsName; }
51     const char *GetMCLeptonsName() const { return fMCLeptonsName; }
52     const char *GetMCTausName() const { return fMCTausName; }
53    
54     void SetVetoTriggerJet(Bool_t b) { fVetoTriggerJet = b; }
55     void SetVetoGenLeptons(Bool_t b) { fVetoGenLeptons = b; }
56     void SetVetoCleanLeptons(Bool_t b) { fVetoCleanLeptons = b; }
57     void SetElectronFOType(const char *name) { fElectronFOType = name; }
58     void SetMuonFOType(const char *name) { fMuonFOType = name; }
59     void SetTriggerName(const char *name) { fTriggerName = name; }
60     void SetTriggerObjectsName(const char *name) { fTriggerObjectsName = name; }
61     void SetElectronBranchName(const char *name) { fElectronBranchName = name; }
62     void SetMuonBranchName(const char *name) { fMuonBranchName = name; }
63     void SetTrackBranchName(const char *name) { fTrackBranchName = name; }
64     void SetGsfTrackBranchName(const char *name) { fGsfTrackBranchName = name; }
65     void SetBarrelSuperClusterBranchName(const char *name) { fBarrelSuperClusterBranchName=name; }
66     void SetEndcapSuperClusterBranchName(const char *name) { fEndcapSuperClusterBranchName=name; }
67     void SetJetBranchName(const char *name) { fJetBranchName = name; }
68     void SetVertexBranchName(const char *name) { fVertexBranchName = name; }
69     void SetConversionBranchName(const char *name) { fConversionBranchName = name; }
70     void SetGoodJetsName(const char *name) { fGoodJetsName = name; }
71     void SetCleanElectronsName(const char *name) { fCleanElectronsName = name; }
72     void SetCleanMuonsName(const char *name) { fCleanMuonsName = name; }
73     void SetCleanPhotonsName(const char *name) { fCleanPhotonsName = name; }
74     void SetCleanJetsName(const char *name) { fCleanJetsName = name; }
75     void SetElectronFakeableObjectsName(const char *name) { fElectronFakeableObjectsName= name; }
76     void SetMuonFakeableObjectsName(const char *name) { fMuonFakeableObjectsName = name; }
77     void SetMCLeptonsName(const char *name) { fMCLeptonsName = name; }
78     void SetMCTausName(const char *name) { fMCTausName = name; }
79    
80     enum ElectronFOType {
81     kElFOUndef = 0, //not defined
82     kElFOGsfPlusSC, //"Gsf Track matched to Super Cluster"
83     kElFOReco, //"Reco Electron with loose isolation"
84     kElFOLoose //"Loose Electron with loose isolation"
85     };
86     enum MuonFOType {
87     kMuFOUndef = 0, //not defined
88     kMuFOIsoTrack, //"Loosely Isolated Track"
89     kMuFOGlobal, //"GlobalMuon with loose isolation"
90     kMuFOTrackerMuon //"TrackerMuon with loose isolation"
91     };
92    
93     protected:
94     void Process();
95     void SlaveBegin();
96    
97     Bool_t fVetoTriggerJet; //whether to veto on the leading jet
98     Bool_t fVetoGenLeptons; //whether we exclude gen leptons
99     Bool_t fVetoCleanLeptons; //whether we exclude clean leptons
100     TString fElectronFOType; //type of electron Fakeable object
101     TString fMuonFOType; //type of muon Fakeable object
102     TString fTriggerName; //name of trigger
103     TString fTriggerObjectsName; //name of trigger objects
104     TString fElectronBranchName; //name of electron brach (input)
105     TString fMuonBranchName; //name of muon brach (input)
106     TString fTrackBranchName; //name of track brach (input)
107     TString fGsfTrackBranchName; //name of track collection (input)
108     TString fBarrelSuperClusterBranchName; //name of barrel supercluster branch (input)
109     TString fEndcapSuperClusterBranchName; //name of endcap supercluster branch (input)
110     TString fJetBranchName; //name of jet branch (input)
111     TString fVertexBranchName; //name of vertex branch (input)
112     TString fConversionBranchName; //name of conversion collection (input)
113     TString fGoodJetsName; //name of Good jets collection (input)
114     TString fCleanElectronsName; //name of clean electrons (input)
115     TString fCleanMuonsName; //name of clean muons (input)
116     TString fCleanPhotonsName; //name of clean photons (input)
117     TString fCleanJetsName; //name of clean jets (input)
118     TString fMCLeptonsName; //name of MC leptons (input)
119     TString fMCTausName; //name of MC taus (input)
120     TString fElectronFakeableObjectsName; //name of fakeable objects (output)
121     TString fMuonFakeableObjectsName; //name of fakeable objects (output)
122     ElectronFOType fElFOType; //!FO type
123     MuonFOType fMuFOType; //!FO type
124    
125     const ElectronCol *fElectrons; //!Electron branch
126     const MuonCol *fMuons; //!Muon branch
127     const SuperClusterCol *fBarrelSuperClusters; //!Barrel Supercluster branch
128     const SuperClusterCol *fEndcapSuperClusters; //!Endcap Supercluster branch
129     const TrackCol *fTracks; //!Track branch
130     const TrackCol *fGsfTracks; //!GsfTrack branch
131     const JetCol *fJets; //!Jet branch
132     const VertexCol *fVertices; //!Vertex branch
133     const DecayParticleCol *fConversions; //!conversion collection
134    
135     ClassDef(GenFakeableObjsMod, 1) // Jet cleaning module
136     };
137     }
138     #endif