25 |
|
#include "MitPhysics/Utils/interface/IsolationTools.h" |
26 |
|
#include "MitAna/DataTree/interface/PileupEnergyDensityCol.h" |
27 |
|
|
28 |
+ |
#include "MitPhysics/Utils/interface/RhoUtilities.h" |
29 |
+ |
|
30 |
|
namespace mithep |
31 |
|
{ |
32 |
|
class MuonIDMod : public BaseMod |
48 |
|
Double_t GetTrackIsoCut() const { return fTrackIsolationCut; } |
49 |
|
Bool_t PassMuonMVA_BDTG_IdIso(const Muon *mu, const Vertex *vertex, |
50 |
|
const PileupEnergyDensityCol *PileupEnergyDensity) const; |
51 |
+ |
Bool_t PassMuonIsoRingsV0_BDTG_Iso(const Muon *mu, const Vertex *vertex, |
52 |
+ |
const PileupEnergyDensityCol *PileupEnergyDensity) const; |
53 |
+ |
void SetPrintMVADebugInfo(Bool_t b) { fPrintMVADebugInfo = b; } |
54 |
|
void SetApplyD0Cut(Bool_t b) { fApplyD0Cut = b; } |
55 |
|
void SetApplyDZCut(Bool_t b) { fApplyDZCut = b; } |
56 |
|
void SetCaloIsoCut(Double_t cut) { fCaloIsolationCut = cut; } |
86 |
|
void SetMuonMVAWeightsSubdet1Pt20ToInf(TString s) |
87 |
|
{ fMuonMVAWeights_Subdet1Pt20ToInf = s; } |
88 |
|
|
89 |
+ |
void SetRhoType(RhoUtilities::RhoType type) |
90 |
+ |
{ fTheRhoType = type; }; |
91 |
+ |
|
92 |
+ |
void SetVertexName(const char* name) { fVertexName = name; } |
93 |
+ |
|
94 |
|
enum EMuIdType { |
95 |
|
kIdUndef = 0, //not defined |
96 |
|
kWMuId, //"WMuId" |
114 |
|
kCombinedRelativeEffectiveAreaCorrected, |
115 |
|
kCustomIso, //"Custom" |
116 |
|
kPFIso, //"PFIso" |
117 |
+ |
kPFRadialIso, //"PFRadialIso" |
118 |
|
kPFIsoEffectiveAreaCorrected, //"PFIso with EffectiveArea Pileup Correction" |
119 |
|
kPFIsoNoL, //"PFIsoNoL" |
120 |
|
kNoIso, //"NoIso" |
121 |
< |
kMVAIso_BDTG_IDIso //"BDTG ID + Iso03, Iso04 Combined" |
121 |
> |
kMVAIso_BDTG_IDIso, //"BDTG ID + Iso03, Iso04 Combined" |
122 |
> |
kIsoRingsV0_BDTG_Iso //"BDTG Iso Rings" |
123 |
|
}; |
124 |
|
enum EMuClassType { |
125 |
|
kClassUndef = 0, //not defined |
137 |
|
void Process(); |
138 |
|
void SlaveBegin(); |
139 |
|
|
140 |
+ |
Bool_t fPrintMVADebugInfo; //print MVA debug information |
141 |
|
TString fMuonBranchName; //name of muon collection (input) |
142 |
|
TString fCleanMuonsName; //name of exported "good muon" collection |
143 |
|
TString fNonIsolatedMuonsName; //name of imported "old muon" collection |
169 |
|
const BeamSpotCol *fBeamSpot; //!beamspot branch |
170 |
|
const TrackCol *fTracks; //!track branch |
171 |
|
const PFCandidateCol *fPFCandidates; //!pfcandidate branch |
172 |
+ |
const PFCandidateCol *fPFNoPileUpCands; //!pfnpu collection |
173 |
|
Double_t fIntRadius; //!min IntRadius cut in pf isolation |
174 |
|
MuonCol *fNonIsolatedMuons; //!pointer to old muon collection |
175 |
|
ElectronCol *fNonIsolatedElectrons;//!pointer to old electron collection |
184 |
|
TString fMuonMVAWeights_Subdet0Pt20ToInf; |
185 |
|
TString fMuonMVAWeights_Subdet1Pt20ToInf; |
186 |
|
|
187 |
+ |
RhoUtilities::RhoType fTheRhoType; |
188 |
+ |
|
189 |
|
ClassDef(MuonIDMod, 1) // Muon identification module |
190 |
|
}; |
191 |
|
} |