ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/MuonQuality.h
Revision: 1.1
Committed: Fri Mar 26 21:40:11 2010 UTC (15 years, 1 month ago) by sixie
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_032, Mit_031, Mit_025c_branch2, Mit_025c_branch1, Mit_030, Mit_029c, Mit_029b, Mit_030_pre1, Mit_029a, Mit_029, Mit_029_pre1, Mit_028a, Mit_025c_branch0, Mit_028, Mit_027a, Mit_027, Mit_026, Mit_025e, Mit_025d, Mit_025c, Mit_025b, Mit_025a, Mit_025, Mit_025pre2, Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_020d, TMit_020d, Mit_020c, Mit_021, Mit_021pre2, Mit_021pre1, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, Mit_018, Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, Mit_016, Mit_015b, Mit_015a, Mit_015, Mit_014e, Mit_014d, Mit_014c, Mit_014b, Mit_014a, Mit_014, Mit_014pre3, Mit_014pre2, Mit_014pre1, Mit_013d, Mit_013c, Mit_013b, Mit_013a, HEAD
Branch point for: Mit_025c_branch
Log Message:
Add Muon Quality variables

File Contents

# User Rev Content
1 sixie 1.1 //--------------------------------------------------------------------------------------------------
2     // $Id $
3     //
4     // MuonQuality
5     //
6     // Wrapper for BitMask storing the Muon Quality flags. We save information on exactly which
7     // of the official muon ID cuts are passed.
8     //
9     // Authors: S.Xie
10     //--------------------------------------------------------------------------------------------------
11    
12     #ifndef MITANA_DATATREE_MUONQUALITY_H
13     #define MITANA_DATATREE_MUONQUALITY_H
14    
15     #include "MitAna/DataCont/interface/BitMask.h"
16     #include "MitAna/DataCont/interface/Types.h"
17    
18     namespace mithep
19     {
20     class MuonQuality
21     {
22     public:
23     enum MuonSelectionType { //taken from DataFormats/MuonReco/interface/MuonSelectors.h
24     All = 0, //dummy options - always true
25     AllGlobalMuons = 1, //checks isGlobalMuon flag
26     AllStandAloneMuons = 2, //checks isStandAloneMuon flag
27     AllTrackerMuons = 3, //checks isTrackerMuon flag
28     TrackerMuonArbitrated = 4, //resolve ambiguity of sharing segments
29     AllArbitrated = 5, //all muons with the tracker muon arbitrated
30     GlobalMuonPromptTight = 6, //global muons with tighter fit requirements
31     TMLastStationLoose = 7, //penetration depth loose selector
32     TMLastStationTight = 8, //penetration depth tight selector
33     TM2DCompatibilityLoose = 9, //likelihood based loose selector
34     TM2DCompatibilityTight = 10, //likelihood based tight selector
35     TMOneStationLoose = 11, //require one well matched segment
36     TMOneStationTight = 12, //require one well matched segment
37     TMLastStationOptimizedLowPtLoose = 13, //combination of TMLastStation and TMOneStation
38     TMLastStationOptimizedLowPtTight = 14, //combination of TMLastStation and TMOneStation
39     GMTkChiCompatibility = 15, //require tk stub have good chi2 relative to glb track
40     GMStaChiCompatibility = 16, //require sta stub have good chi2 compatibility
41     //relative to glb track
42     GMTkKinkTight = 17, //require a small kink value in the tracker stub
43     TMLastStationAngLoose = 18, //TMLastStationLoose with additional angular cuts
44     TMLastStationAngTight = 19, //TMLastStationTight with additional angular cuts
45     TMOneStationAngLoose = 20, //TMOneStationLoose with additional angular cuts
46     TMOneStationAngTight = 21, //TMOneStationTight with additional angular cuts
47     //The two algorithms that follow are identical to what were known as
48     //TMLastStationOptimizedLowPt* (sans the Barrel) as late as revision
49     //1.7 of this file. The names were changed because indeed the low pt
50     //optimization applies only to the barrel region, whereas the sel-
51     //ectors above are more efficient at low pt in the endcaps, which is
52     //what we feel is more suggestive of the algorithm name. This will be
53     //less confusing for future generations of CMS members, I hope...
54     TMLastStationOptimizedBarrelLowPtLoose = 22, //combination of TMLastStation and TMOneStation
55     //but with low pT optimization in barrel only
56     TMLastStationOptimizedBarrelLowPtTight = 23 //combination of TMLastStation and TMOneStation
57     //but with low pT optimization in barrel only
58     };
59    
60     MuonQuality() {}
61     virtual ~MuonQuality() {}
62    
63     void ClearQuality(MuonSelectionType q) { fQualityMask.ClearBit(q); }
64     Bool_t Quality(MuonSelectionType q) const { return fQualityMask.TestBit(q); }
65     const BitMask32 &QualityMask() const { return fQualityMask; }
66     UInt_t NQuality() const { return fQualityMask.NBitsSet(); }
67     void SetQuality(MuonSelectionType q) { fQualityMask.SetBit(q); }
68     void SetQualityMask(const BitMask32 &q) { fQualityMask = q; }
69    
70     protected:
71     BitMask32 fQualityMask; //track quality bitmask
72    
73     ClassDef(MuonQuality, 1)
74     };
75     }
76     #endif