ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/interface/ElectronIDMod.h
Revision: 1.4
Committed: Thu Nov 27 16:30:26 2008 UTC (16 years, 5 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.3: +52 -43 lines
Log Message:
Cleaning up. Not finished yet.

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 loizides 1.4 // $Id: ElectronIDMod.h,v 1.3 2008/11/05 14:06:06 ceballos 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     // of "good electrons" according to the specified identification scheme. TODO: Pointer to a talk
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     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    
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.4 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     ElectronCol *fElectrons; //!electron branch
66     EElIdType fElIdType; //!identification scheme
67     EElIsoType fElIsoType; //!isolation scheme
68    
69     void Process();
70     void SlaveBegin();
71 loizides 1.1
72 loizides 1.4 ClassDef(ElectronIDMod,1) // TAM module for electron id
73 loizides 1.1 };
74     }
75     #endif