ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/interface/ElectronIDMod.h
Revision: 1.7
Committed: Wed Dec 10 11:44:32 2008 UTC (16 years, 4 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.6: +5 -5 lines
Log Message:
Added sort.

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 loizides 1.7 // $Id: ElectronIDMod.h,v 1.6 2008/12/04 13:53:33 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.7 void Process();
56     void SlaveBegin();
57    
58 loizides 1.6 TString fElectronBranchName; //branch name of electron collection
59     TString fGoodElectronsName; //name of exported "good electrons" collection
60     TString fElectronIDType; //type of electron ID we impose
61     TString fElectronIsoType; //type of electron Isolation we impose
62     Double_t fElectronPtMin; //min pt cut
63     Double_t fIDLikelihoodCut; //cut value for ID likelihood
64     Double_t fTrackIsolationCut; //cut value for track isolation
65     Double_t fCaloIsolationCut; //cut value for calo isolation
66     Double_t fEcalJuraIsoCut; //cut value for ecal jurassic isolation
67     Double_t fHcalIsolationCut; //cut value for hcal isolation
68     const ElectronCol *fElectrons; //!electron branch
69     EElIdType fElIdType; //!identification scheme
70     EElIsoType fElIsoType; //!isolation scheme
71 loizides 1.1
72 loizides 1.7 ClassDef(ElectronIDMod,1) // Electron identification module
73 loizides 1.1 };
74     }
75     #endif