21 |
|
#include "MitAna/DataTree/interface/TrackFwd.h" |
22 |
|
#include "MitAna/DataTree/interface/PFCandidateFwd.h" |
23 |
|
#include "MitPhysics/Utils/interface/MuonTools.h" |
24 |
+ |
#include "MitPhysics/Utils/interface/MuonIDMVA.h" |
25 |
|
#include "MitPhysics/Utils/interface/IsolationTools.h" |
26 |
|
#include "MitAna/DataTree/interface/PileupEnergyDensityCol.h" |
27 |
|
|
44 |
|
const char *GetOutputName() const { return GetCleanMuonsName(); } |
45 |
|
Double_t GetPtMin() const { return fMuonPtMin; } |
46 |
|
Double_t GetTrackIsoCut() const { return fTrackIsolationCut; } |
47 |
+ |
Bool_t PassMuonMVA_BDTG_IdIso(const Muon *mu, const Vertex *vertex, |
48 |
+ |
Double_t Rho) const; |
49 |
|
void SetApplyD0Cut(Bool_t b) { fApplyD0Cut = b; } |
50 |
|
void SetApplyDZCut(Bool_t b) { fApplyDZCut = b; } |
51 |
|
void SetCaloIsoCut(Double_t cut) { fCaloIsolationCut = cut; } |
67 |
|
void SetOutputName(const char *name) { SetCleanMuonsName(name); } |
68 |
|
void SetPtMin(Double_t pt) { fMuonPtMin = pt; } |
69 |
|
void SetTrackIsoCut(Double_t cut) { fTrackIsolationCut = cut; } |
70 |
+ |
void SetIntRadius(Double_t dr) { fIntRadius = dr; } |
71 |
+ |
void SetMuonMVAWeightsSubdet0Pt10To14p5(TString s) |
72 |
+ |
{ fMuonMVAWeights_Subdet0Pt10To14p5 = s; } |
73 |
+ |
void SetMuonMVAWeightsSubdet1Pt10To14p5(TString s) |
74 |
+ |
{ fMuonMVAWeights_Subdet1Pt10To14p5 = s; } |
75 |
+ |
void SetMuonMVAWeightsSubdet0Pt14p5To20(TString s) |
76 |
+ |
{ fMuonMVAWeights_Subdet0Pt14p5To20 = s; } |
77 |
+ |
void SetMuonMVAWeightsSubdet1Pt14p5To20(TString s) |
78 |
+ |
{ fMuonMVAWeights_Subdet1Pt14p5To20 = s; } |
79 |
+ |
void SetMuonMVAWeightsSubdet0Pt20ToInf(TString s) |
80 |
+ |
{ fMuonMVAWeights_Subdet0Pt20ToInf = s; } |
81 |
+ |
void SetMuonMVAWeightsSubdet1Pt20ToInf(TString s) |
82 |
+ |
{ fMuonMVAWeights_Subdet1Pt20ToInf = s; } |
83 |
|
|
84 |
|
enum EMuIdType { |
85 |
|
kIdUndef = 0, //not defined |
89 |
|
kLoose, //"Loose" |
90 |
|
kWWMuIdV1, //"WWMuIdV1" |
91 |
|
kWWMuIdV2, //"WWMuIdV2" |
92 |
< |
kNoId, //"NoId" |
93 |
< |
kCustomId //"Custom" |
92 |
> |
kWWMuIdV3, //"WWMuIdV3" |
93 |
> |
kNoId, //"NoId" |
94 |
> |
kCustomId, //"Custom" |
95 |
> |
kMVAID_BDTG_IDIso //"BDTG ID + Iso03, Iso04 Combined" |
96 |
|
}; |
97 |
|
enum EMuIsoType { |
98 |
|
kIsoUndef = 0, //"not defined" |
103 |
|
kCombinedRelativeConeAreaCorrected, //"CombinedRelativeConeAreaCorrected" |
104 |
|
kCustomIso, //"Custom" |
105 |
|
kPFIso, //"PFIso" |
106 |
+ |
kPFIsoEffectiveAreaCorrected, //"PFIso with EffectiveArea Pileup Correction" |
107 |
|
kPFIsoNoL, //"PFIsoNoL" |
108 |
< |
kNoIso //"NoIso" |
108 |
> |
kNoIso, //"NoIso" |
109 |
> |
kMVAIso_BDTG_IDIso //"BDTG ID + Iso03, Iso04 Combined" |
110 |
|
}; |
111 |
|
enum EMuClassType { |
112 |
|
kClassUndef = 0, //not defined |
117 |
|
kTrackerMuon, //"TrackerMuon" |
118 |
|
kCaloMuon, //"CaloMuon" |
119 |
|
kTrackerBased //"TrackerMuon or CaloMuon" |
120 |
+ |
|
121 |
|
}; |
122 |
|
|
123 |
|
protected: |
155 |
|
const BeamSpotCol *fBeamSpot; //!beamspot branch |
156 |
|
const TrackCol *fTracks; //!track branch |
157 |
|
const PFCandidateCol *fPFCandidates; //!pfcandidate branch |
158 |
+ |
Double_t fIntRadius; //!min IntRadius cut in pf isolation |
159 |
|
MuonCol *fNonIsolatedMuons; //!pointer to old muon collection |
160 |
|
ElectronCol *fNonIsolatedElectrons;//!pointer to old electron collection |
161 |
|
TString fPileupEnergyDensityName; |
162 |
|
const PileupEnergyDensityCol *fPileupEnergyDensity; |
163 |
+ |
MuonTools *fMuonTools; // interface to tools for muon ID |
164 |
+ |
MuonIDMVA *fMuonIDMVA; // helper class for MuonMVA |
165 |
+ |
TString fMuonMVAWeights_Subdet0Pt10To14p5; |
166 |
+ |
TString fMuonMVAWeights_Subdet1Pt10To14p5; |
167 |
+ |
TString fMuonMVAWeights_Subdet0Pt14p5To20; |
168 |
+ |
TString fMuonMVAWeights_Subdet1Pt14p5To20; |
169 |
+ |
TString fMuonMVAWeights_Subdet0Pt20ToInf; |
170 |
+ |
TString fMuonMVAWeights_Subdet1Pt20ToInf; |
171 |
|
|
172 |
|
ClassDef(MuonIDMod, 1) // Muon identification module |
173 |
|
}; |