50 |
|
const PileupEnergyDensityCol *PileupEnergyDensity) const; |
51 |
|
Bool_t PassMuonIsoRingsV0_BDTG_Iso(const Muon *mu, const Vertex *vertex, |
52 |
|
const PileupEnergyDensityCol *PileupEnergyDensity) const; |
53 |
+ |
Bool_t PassMuonIsoDeltaR(const Muon *mu, const Vertex *vertex, |
54 |
+ |
const PileupEnergyDensityCol *PileupEnergyDensity) const; |
55 |
|
void SetPrintMVADebugInfo(Bool_t b) { fPrintMVADebugInfo = b; } |
56 |
|
void SetApplyD0Cut(Bool_t b) { fApplyD0Cut = b; } |
57 |
|
void SetApplyDZCut(Bool_t b) { fApplyDZCut = b; } |
75 |
|
void SetPtMin(Double_t pt) { fMuonPtMin = pt; } |
76 |
|
void SetTrackIsoCut(Double_t cut) { fTrackIsolationCut = cut; } |
77 |
|
void SetIntRadius(Double_t dr) { fIntRadius = dr; } |
78 |
< |
void SetMuonMVAWeightsSubdet0Pt10To14p5(TString s) |
79 |
< |
{ fMuonMVAWeights_Subdet0Pt10To14p5 = s; } |
78 |
< |
void SetMuonMVAWeightsSubdet1Pt10To14p5(TString s) |
79 |
< |
{ fMuonMVAWeights_Subdet1Pt10To14p5 = s; } |
80 |
< |
void SetMuonMVAWeightsSubdet0Pt14p5To20(TString s) |
81 |
< |
{ fMuonMVAWeights_Subdet0Pt14p5To20 = s; } |
82 |
< |
void SetMuonMVAWeightsSubdet1Pt14p5To20(TString s) |
83 |
< |
{ fMuonMVAWeights_Subdet1Pt14p5To20 = s; } |
84 |
< |
void SetMuonMVAWeightsSubdet0Pt20ToInf(TString s) |
85 |
< |
{ fMuonMVAWeights_Subdet0Pt20ToInf = s; } |
86 |
< |
void SetMuonMVAWeightsSubdet1Pt20ToInf(TString s) |
87 |
< |
{ fMuonMVAWeights_Subdet1Pt20ToInf = s; } |
88 |
< |
|
78 |
> |
void SetPFNoPileUpName(const char *n) { fPFNoPileUpName = n; } |
79 |
> |
void SetPFPileUpName(const char *n) { fPFPileUpName = n; } |
80 |
|
void SetRhoType(RhoUtilities::RhoType type) |
81 |
|
{ fTheRhoType = type; }; |
82 |
|
|
83 |
|
void SetVertexName(const char* name) { fVertexName = name; } |
84 |
< |
|
84 |
> |
void SetPVName(const char *n) { fPVName = n; } |
85 |
> |
|
86 |
|
enum EMuIdType { |
87 |
|
kIdUndef = 0, //not defined |
88 |
|
kWMuId, //"WMuId" |
92 |
|
kWWMuIdV1, //"WWMuIdV1" |
93 |
|
kWWMuIdV2, //"WWMuIdV2" |
94 |
|
kWWMuIdV3, //"WWMuIdV3" |
95 |
+ |
kWWMuIdV4, //"WWMuIdV4" |
96 |
|
kNoId, //"NoId" |
97 |
|
kCustomId, //"Custom" |
98 |
|
kMVAID_BDTG_IDIso //"BDTG ID + Iso03, Iso04 Combined" |
103 |
|
kTrackCaloCombined, //"TrackCaloCombined" |
104 |
|
kTrackCaloSliding, //"TrackCaloSliding" |
105 |
|
kTrackCaloSlidingNoCorrection, //"TrackCaloSlidingNoCorrection" |
106 |
< |
kCombinedRelativeConeAreaCorrected, //"CombinedRelativeConeAreaCorrected" |
107 |
< |
kCombinedRelativeEffectiveAreaCorrected, |
106 |
> |
kCombinedRelativeConeAreaCorrected, //"CombinedRelativeConeAreaCorrected" |
107 |
> |
kCombinedRelativeEffectiveAreaCorrected, |
108 |
|
kCustomIso, //"Custom" |
109 |
|
kPFIso, //"PFIso" |
110 |
|
kPFRadialIso, //"PFRadialIso" |
111 |
< |
kPFIsoEffectiveAreaCorrected, //"PFIso with EffectiveArea Pileup Correction" |
111 |
> |
kPFIsoBetaPUCorrected, //"PFISo with PUcorrection using delta Beta |
112 |
> |
kPFIsoEffectiveAreaCorrected, //"PFIso with EffectiveArea Pileup Correction" |
113 |
|
kPFIsoNoL, //"PFIsoNoL" |
114 |
|
kNoIso, //"NoIso" |
115 |
|
kMVAIso_BDTG_IDIso, //"BDTG ID + Iso03, Iso04 Combined" |
116 |
< |
kIsoRingsV0_BDTG_Iso //"BDTG Iso Rings" |
116 |
> |
kIsoRingsV0_BDTG_Iso, //"BDTG Iso Rings" |
117 |
> |
kIsoDeltaR //"BGDT Iso dR" |
118 |
|
}; |
119 |
|
enum EMuClassType { |
120 |
|
kClassUndef = 0, //not defined |
124 |
|
kSta, //"Standalone" |
125 |
|
kTrackerMuon, //"TrackerMuon" |
126 |
|
kCaloMuon, //"CaloMuon" |
127 |
< |
kTrackerBased //"TrackerMuon or CaloMuon" |
128 |
< |
|
127 |
> |
kTrackerBased, //"TrackerMuon or CaloMuon" |
128 |
> |
kGlobalOnly //"GlobalOnly" |
129 |
|
}; |
130 |
|
|
131 |
|
protected: |
132 |
|
void Process(); |
133 |
|
void SlaveBegin(); |
134 |
+ |
void Terminate(); |
135 |
|
|
136 |
|
Bool_t fPrintMVADebugInfo; //print MVA debug information |
137 |
|
TString fMuonBranchName; //name of muon collection (input) |
142 |
|
TString fBeamSpotName; //name of beamspot collection |
143 |
|
TString fTrackName; //name of track collection |
144 |
|
TString fPFCandidatesName; //name of pfcandidates collection |
145 |
+ |
TString fPFNoPileUpName; //name of pfnpu collection |
146 |
+ |
TString fPFPileUpName; //name of pfpu collection |
147 |
|
TString fMuonIDType; //type of muon id scheme we impose |
148 |
|
TString fMuonIsoType; //type of muon isolations scheme we impose |
149 |
|
TString fMuonClassType; //type of muon class we impose |
168 |
|
const TrackCol *fTracks; //!track branch |
169 |
|
const PFCandidateCol *fPFCandidates; //!pfcandidate branch |
170 |
|
const PFCandidateCol *fPFNoPileUpCands; //!pfnpu collection |
171 |
+ |
const PFCandidateCol *fPFPileUpCands; //!pfpu collection |
172 |
|
Double_t fIntRadius; //!min IntRadius cut in pf isolation |
173 |
|
MuonCol *fNonIsolatedMuons; //!pointer to old muon collection |
174 |
|
ElectronCol *fNonIsolatedElectrons;//!pointer to old electron collection |
176 |
|
const PileupEnergyDensityCol *fPileupEnergyDensity; |
177 |
|
MuonTools *fMuonTools; // interface to tools for muon ID |
178 |
|
MuonIDMVA *fMuonIDMVA; // helper class for MuonMVA |
179 |
< |
TString fMuonMVAWeights_Subdet0Pt10To14p5; |
181 |
< |
TString fMuonMVAWeights_Subdet1Pt10To14p5; |
182 |
< |
TString fMuonMVAWeights_Subdet0Pt14p5To20; |
183 |
< |
TString fMuonMVAWeights_Subdet1Pt14p5To20; |
184 |
< |
TString fMuonMVAWeights_Subdet0Pt20ToInf; |
185 |
< |
TString fMuonMVAWeights_Subdet1Pt20ToInf; |
179 |
> |
TString fPVName; |
180 |
|
|
181 |
|
RhoUtilities::RhoType fTheRhoType; |
182 |
|
|