ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/interface/MuonIDMod.h
Revision: 1.8
Committed: Fri Nov 28 20:12:09 2008 UTC (16 years, 5 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.7: +18 -7 lines
Log Message:
Added getters/setters.

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: MuonIDMod.h,v 1.7 2008/11/28 09:13:50 loizides Exp $
3 //
4 // MuonIDMod
5 //
6 // This module applies muon identification criteria and exports a pointer to a collection
7 // of "good muons" according to the specified ID scheme.
8 //
9 // Authors: S.Xie
10 //--------------------------------------------------------------------------------------------------
11
12 #ifndef MITPHYSICS_MODS_MUONIDMOD_H
13 #define MITPHYSICS_MODS_MUONIDMOD_H
14
15 #include "MitAna/TreeMod/interface/BaseMod.h"
16 #include "MitAna/DataTree/interface/Collections.h"
17 #include "MitPhysics/Utils/interface/MuonTools.h"
18
19 namespace mithep
20 {
21 class MuonIDMod : public BaseMod
22 {
23 public:
24 MuonIDMod(const char *name="MuonIDMod",
25 const char *title="Muon identification module");
26 ~MuonIDMod() {}
27
28 const char *GetMuonBranchName(const char *name) const { return fMuonBranchName; }
29 const char *GetCleanMuonsName(const char *name) const { return fCleanMuonsName; }
30 const char *GetMuonIDType(const char *type) const { return fMuonIDType; }
31 const char *GetMuonIsoType(const char *type) const { return fMuonIsoType; }
32 const char *GetMuonClassType(const char *type) const { return fMuonClassType; }
33 Double_t GetTrackIsolationCut(Double_t cut) const { return fTrackIsolationCut; }
34 Double_t GetCaloIsolationCut(Double_t cut) const { return fCaloIsolationCut; }
35 Double_t GetCombIsolationCut(Double_t cut) const { return fCombIsolationCut; }
36 Double_t GetMuonPtMin(Double_t pt) const { return fMuonPtMin; }
37 void SetMuonBranchName(const char *name) { fMuonBranchName = name; }
38 void SetCleanMuonsName(const char *name) { fCleanMuonsName = name; }
39 void SetMuonIDType(const char *type) { fMuonIDType = type; }
40 void SetMuonIsoType(const char *type) { fMuonIsoType = type; }
41 void SetMuonClassType(const char *type) { fMuonClassType = type; }
42 void SetTrackIsolationCut(Double_t cut) { fTrackIsolationCut = cut; }
43 void SetCaloIsolationCut(Double_t cut) { fCaloIsolationCut = cut; }
44 void SetCombIsolationCut(Double_t cut) { fCombIsolationCut = cut; }
45 void SetMuonPtMin(Double_t pt) { fMuonPtMin = pt; }
46
47 enum EMuIdType {
48 kIdUndef = 0, //not defined
49 kTight, //"Tight"
50 kLoose, //"Loose"
51 kCustomId //"Custom"
52 };
53 enum EMuIsoType {
54 kIsoUndef = 0, //not defined
55 kTrackCalo, //"TrackCalo"
56 kTrackCaloCombined, //"TrackCaloCombined"
57 kTrackCaloSliding, //"TrackCaloSliding"
58 kCustomIso, //"Custom"
59 kNoIso //"NoIso"
60 };
61 enum EMuClassType {
62 kClassUndef = 0, //not defined
63 kAll, //"All"
64 kGlobal, //"Global"
65 kSta, //"Standalone"
66 kTrackerOnly //"TrackerOnly"
67 };
68
69 protected:
70 TString fMuonBranchName; //name of muon collection (in branch)
71 TString fCleanMuonsName; //name of exported "good muon" collection
72 TString fMuonIDType; //type of muon id scheme we impose
73 TString fMuonIsoType; //type of muon isolations scheme we impose
74 TString fMuonClassType; //type of muon class we impose
75 Double_t fTrackIsolationCut; //cut value for track isolation
76 Double_t fCaloIsolationCut; //cut value for calo isolation
77 Double_t fCombIsolationCut; //cut value for combined isolation
78 Double_t fMuonPtMin; //min muon pt
79 MuonCol *fMuons; //!muon branch
80 MuonTools *fMuonTools; //!muon tool
81 EMuIdType fMuIDType; //!muon id type (imposed)
82 EMuIsoType fMuIsoType; //!muon iso type (imposed)
83 EMuClassType fMuClassType; //!muon class type (imposed)
84
85 void Process();
86 void SlaveBegin();
87
88 ClassDef(MuonIDMod,1) // Muon identification module
89 };
90 }
91 #endif