ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/FakeMods/interface/GenFakeableObjsMod.h
Revision: 1.5
Committed: Mon Aug 10 16:07:26 2009 UTC (15 years, 8 months ago) by phedex
Content type: text/plain
Branch: MAIN
Changes since 1.4: +7 -7 lines
Log Message:
Use TH2DAsymError class to store asymmetric statistical and systematic errors. Do comment and style cleanup.

File Contents

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