ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/interface/ElectronIDMod.h
Revision: 1.6
Committed: Thu Dec 4 13:53:33 2008 UTC (16 years, 5 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.5: +26 -26 lines
Log Message:
Updated to use const ptr to col

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 loizides 1.6 // $Id: ElectronIDMod.h,v 1.5 2008/11/28 09:13:50 loizides Exp $
3 loizides 1.1 //
4     // ElectronIDMod
5     //
6 loizides 1.4 // This module applies electron identification criteria and exports a pointer to a collection
7 loizides 1.5 // of "good electrons" according to the specified identification scheme.
8 loizides 1.1 //
9 loizides 1.4 // Authors: S.Xie, C.Loizides
10 loizides 1.1 //--------------------------------------------------------------------------------------------------
11    
12 loizides 1.4 #ifndef MITPHYSICS_MODS_ELECTRONIDMOD_H
13     #define MITPHYSICS_MODS_ELECTRONIDMOD_H
14 loizides 1.1
15     #include "MitAna/TreeMod/interface/BaseMod.h"
16     #include "MitAna/DataTree/interface/Collections.h"
17    
18     namespace mithep
19     {
20     class ElectronIDMod : public BaseMod
21     {
22     public:
23     ElectronIDMod(const char *name="ElectronIDMod",
24 loizides 1.4 const char *title="Electron identification module");
25 loizides 1.1 ~ElectronIDMod() {}
26 loizides 1.4
27 loizides 1.6 void SetElectronBranchName(const char *n) { fElectronBranchName = n; }
28     void SetGoodElectronsName(const char *n) { fGoodElectronsName = n; }
29     void SetElectronIDType(const char *type) { fElectronIDType = type; }
30     void SetElectronIsoType(const char *type) { fElectronIsoType = type; }
31     void SetElectronPtMin(Double_t pt) { fElectronPtMin = pt; }
32     void SetIDLikelihoodCut(Double_t cut) { fIDLikelihoodCut = cut; }
33     void SetTrackIsolationCut(Double_t cut) { fTrackIsolationCut = cut; }
34     void SetCaloIsolationCut(Double_t cut) { fCaloIsolationCut = cut; }
35     void SetEcalJurIsoCut(Double_t cut) { fEcalJuraIsoCut = cut; }
36     void SetHcalIsolationCut(Double_t cut) { fHcalIsolationCut = cut; }
37 loizides 1.4
38     enum EElIdType {
39     kIdUndef = 0, //not defined
40     kTight, //"Tight"
41     kLoose, //"Loose"
42     kLikelihood, //"Likelihood"
43     kCustomId //"Custom"
44     };
45     enum EElIsoType {
46     kIsoUndef = 0, //not defined
47     kTrackCalo, //"TrackCalo"
48     kTrackJura, //"TrackJura"
49     kTrackJuraSliding, //"TrackJuraSliding"
50     kNoIso, //"NoIso"
51     kCustomIso //"Custom"
52     };
53    
54 loizides 1.1 protected:
55 loizides 1.6 TString fElectronBranchName; //branch name of electron collection
56     TString fGoodElectronsName; //name of exported "good electrons" collection
57     TString fElectronIDType; //type of electron ID we impose
58     TString fElectronIsoType; //type of electron Isolation we impose
59     Double_t fElectronPtMin; //min pt cut
60     Double_t fIDLikelihoodCut; //cut value for ID likelihood
61     Double_t fTrackIsolationCut; //cut value for track isolation
62     Double_t fCaloIsolationCut; //cut value for calo isolation
63     Double_t fEcalJuraIsoCut; //cut value for ecal jurassic isolation
64     Double_t fHcalIsolationCut; //cut value for hcal isolation
65     const ElectronCol *fElectrons; //!electron branch
66     EElIdType fElIdType; //!identification scheme
67     EElIsoType fElIsoType; //!isolation scheme
68 loizides 1.4
69 loizides 1.6 void Process();
70     void SlaveBegin();
71 loizides 1.1
72 loizides 1.5 ClassDef(ElectronIDMod,1) // Electron identification module
73 loizides 1.1 };
74     }
75     #endif