1313#include " TMath.h"
1414#include " RecoParticleFlow/PFClusterTools/interface/LinkByRecHit.h"
1515#include " TMVA/MethodBDT.h"
16+ #include " DataFormats/Math/interface/deltaPhi.h"
1617
1718using namespace edm ;
1819using namespace std ;
@@ -42,13 +43,19 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
4243 const reco::PFClusterCollection& theEClus,
4344 const reco::GsfPFRecTrack& gsfpfrectk) {
4445 found_ = false ;
45- bool debug = false ;
46- bool debugRef = false ;
4746
48- if (debug)
49- cout << " runConvBremFinder:: Entering " << endl;
47+ LogDebug (" ConvBremPFTrackFinder" ) << " runConvBremFinder:: Entering " ;
5048
5149 const reco::GsfTrackRef& refGsf = gsfpfrectk.gsfTrackRef ();
50+ float refGsfEta = refGsf->eta ();
51+ float refGsfPt = refGsf->pt ();
52+ float refGsfPhi = refGsf->phi ();
53+ float gsfR = sqrt (refGsf->innerPosition ().x () * refGsf->innerPosition ().x () +
54+ refGsf->innerPosition ().y () * refGsf->innerPosition ().y ());
55+ // direction of the Gsf track
56+ GlobalVector direction (refGsf->innerMomentum ().x (), refGsf->innerMomentum ().y (), refGsf->innerMomentum ().z ());
57+ float refGsfPtMode = refGsf->ptMode ();
58+
5259 const reco::PFRecTrackRef& pfTrackRef = gsfpfrectk.kfPFRecTrackRef ();
5360 vector<PFBrem> primPFBrem = gsfpfrectk.PFRecBrem ();
5461
@@ -70,10 +77,10 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
7077 TrackRef trackRef = pfRecTrRef->trackRef ();
7178 reco::TrackBaseRef selTrackBaseRef (trackRef);
7279
73- if (debug )
74- cout << " runConvBremFinder:: pushing_back High Purity " << pft->trackRef ()->pt () << " eta,phi "
75- << pft-> trackRef ()-> eta () << " , " << pft-> trackRef ()-> phi () << " Memory Address Ref " << &*trackRef
76- << " Memory Address BaseRef " << &*selTrackBaseRef << endl ;
80+ LogDebug ( " ConvBremPFTrackFinder " ) << " runConvBremFinder:: pushing_back High Purity " << pft-> trackRef ()-> pt ( )
81+ << " eta,phi " << pft->trackRef ()->eta () << " , " << pft-> trackRef ()-> phi ()
82+ << " Memory Address Ref " << &*trackRef << " Memory Address BaseRef "
83+ << &*selTrackBaseRef;
7784 AllPFRecTracks.push_back (pfRecTrRef);
7885 }
7986
@@ -98,26 +105,25 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
98105 for (unsigned iPF = 0 ; iPF < AllPFRecTracks.size (); iPF++) {
99106 reco::TrackBaseRef selTrackBaseRef (AllPFRecTracks[iPF]->trackRef ());
100107
101- if (debugRef )
102- cout << " ## Track 1 HP pt " << AllPFRecTracks[iPF]->trackRef ()->pt () << " eta, phi "
103- << AllPFRecTracks[iPF]->trackRef ()->eta () << " , " << AllPFRecTracks[iPF]->trackRef ()->phi ()
104- << " Memory Address Ref " << &(*AllPFRecTracks[iPF]->trackRef ()) << " Memory Address BaseRef "
105- << &*selTrackBaseRef << endl ;
106- if (debugRef )
107- cout << " ** Track 2 CONV pt " << compPFTkRef->trackRef ()->pt () << " eta, phi "
108- << compPFTkRef->trackRef ()->eta () << " , " << compPFTkRef->trackRef ()->phi () << " Memory Address Ref "
109- << &*compPFTkRef->trackRef () << " Memory Address BaseRef " << &*newTrackBaseRef << endl ;
108+ LogDebug ( " ConvBremPFTrackFinder " )
109+ << " ## Track 1 HP pt " << AllPFRecTracks[iPF]->trackRef ()->pt () << " eta, phi "
110+ << AllPFRecTracks[iPF]->trackRef ()->eta () << " , " << AllPFRecTracks[iPF]->trackRef ()->phi ()
111+ << " Memory Address Ref " << &(*AllPFRecTracks[iPF]->trackRef ()) << " Memory Address BaseRef "
112+ << &*selTrackBaseRef;
113+ LogDebug ( " ConvBremPFTrackFinder " )
114+ << " ** Track 2 CONV pt " << compPFTkRef->trackRef ()->pt () << " eta, phi "
115+ << compPFTkRef->trackRef ()->eta () << " , " << compPFTkRef->trackRef ()->phi () << " Memory Address Ref "
116+ << &*compPFTkRef->trackRef () << " Memory Address BaseRef " << &*newTrackBaseRef;
110117 // if(selTrackBaseRef == newTrackBaseRef || AllPFRecTracks[iPF]->trackRef()== compPFTkRef->trackRef()) {
111118 if (AllPFRecTracks[iPF]->trackRef () == compPFTkRef->trackRef ()) {
112- if (debugRef)
113- cout << " SAME BREM REF " << endl;
119+ LogDebug (" ConvBremPFTrackFinder" ) << " SAME BREM REF " << endl;
114120 notFound = false ;
115121 }
116122 }
117123 if (notFound) {
118- if (debug )
119- cout << " runConvBremFinder:: pushing_back Conversions " << compPFTkRef->trackRef ()->pt () << " eta,phi "
120- << compPFTkRef->trackRef ()->eta () << " phi " << compPFTkRef->trackRef ()->phi () << endl ;
124+ LogDebug ( " ConvBremPFTrackFinder " )
125+ << " runConvBremFinder:: pushing_back Conversions " << compPFTkRef->trackRef ()->pt () << " eta,phi "
126+ << compPFTkRef->trackRef ()->eta () << " phi " << compPFTkRef->trackRef ()->phi ();
121127 AllPFRecTracks.push_back (compPFTkRef);
122128 }
123129 }
@@ -145,10 +151,9 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
145151 notFound = false ;
146152 }
147153 if (notFound) {
148- if (debug)
149- cout << " runConvBremFinder:: pushing_back displaced Vertex pt " << newPFRecTrackRef->trackRef ()->pt ()
150- << " eta,phi " << newPFRecTrackRef->trackRef ()->eta () << " , " << newPFRecTrackRef->trackRef ()->phi ()
151- << endl;
154+ LogDebug (" ConvBremPFTrackFinder" )
155+ << " runConvBremFinder:: pushing_back displaced Vertex pt " << newPFRecTrackRef->trackRef ()->pt ()
156+ << " eta,phi " << newPFRecTrackRef->trackRef ()->eta () << " , " << newPFRecTrackRef->trackRef ()->phi ();
152157 AllPFRecTracks.push_back (newPFRecTrackRef);
153158 }
154159 }
@@ -176,9 +181,9 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
176181 notFound = false ;
177182 }
178183 if (notFound) {
179- if (debug )
180- cout << " runConvBremFinder:: pushing_back V0 " << newPFRecTrackRef->trackRef ()->pt () << " eta,phi "
181- << newPFRecTrackRef->trackRef ()->eta () << " , " << newPFRecTrackRef->trackRef ()->phi () << endl ;
184+ LogDebug ( " ConvBremPFTrackFinder " )
185+ << " runConvBremFinder:: pushing_back V0 " << newPFRecTrackRef->trackRef ()->pt () << " eta,phi "
186+ << newPFRecTrackRef->trackRef ()->eta () << " , " << newPFRecTrackRef->trackRef ()->phi ();
182187 AllPFRecTracks.push_back (newPFRecTrackRef);
183188 }
184189 }
@@ -188,26 +193,27 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
188193 pfRecTrRef_vec_.clear ();
189194
190195 for (unsigned iPF = 0 ; iPF < AllPFRecTracks.size (); iPF++) {
191- double dphi = fabs (AllPFRecTracks[iPF]->trackRef ()->phi () - refGsf->phi ());
192- if (dphi > TMath::Pi ())
193- dphi -= TMath::TwoPi ();
194- double deta = fabs (AllPFRecTracks[iPF]->trackRef ()->eta () - refGsf->eta ());
196+ double dphi = std::abs (::deltaPhi (AllPFRecTracks[iPF]->trackRef ()->phi (), refGsfPhi));
197+ double deta = std::abs (AllPFRecTracks[iPF]->trackRef ()->eta () - refGsfEta);
195198
196199 // limiting the phase space (just for saving cpu-time)
197- if (fabs (dphi) > 1.0 || fabs (deta) > 0.4 )
200+ if (std::abs (dphi) > 1.0 || std::abs (deta) > 0.4 )
198201 continue ;
199202
200- double minDEtaBremKF = 1000 . ;
201- double minDPhiBremKF = 1000 . ;
202- double minDRBremKF = 1000 . ;
203- double minDEtaBremKFPos = 1000 . ;
204- double minDPhiBremKFPos = 1000 . ;
205- double minDRBremKFPos = 1000 . ;
203+ double minDEtaBremKF = std::numeric_limits< double >:: max () ;
204+ double minDPhiBremKF = std::numeric_limits< double >:: max () ;
205+ double minDRBremKF2 = std::numeric_limits< double >:: max () ;
206+ double minDEtaBremKFPos = std::numeric_limits< double >:: max () ;
207+ double minDPhiBremKFPos = std::numeric_limits< double >:: max () ;
208+ double minDRBremKFPos2 = std::numeric_limits< double >:: max () ;
206209 reco::TrackRef trkRef = AllPFRecTracks[iPF]->trackRef ();
207210
208211 double secEta = trkRef->innerMomentum ().eta ();
209212 double secPhi = trkRef->innerMomentum ().phi ();
210213
214+ double posEta = trkRef->innerPosition ().eta ();
215+ double posPhi = trkRef->innerPosition ().phi ();
216+
211217 for (unsigned ipbrem = 0 ; ipbrem < primPFBrem.size (); ipbrem++) {
212218 if (primPFBrem[ipbrem].indTrajPoint () == 99 )
213219 continue ;
@@ -218,36 +224,28 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
218224 double bremEta = atPrimECAL.momentum ().Eta ();
219225 double bremPhi = atPrimECAL.momentum ().Phi ();
220226
221- double deta = fabs (bremEta - secEta);
222- double dphi = fabs (bremPhi - secPhi);
223- if (dphi > TMath::Pi ())
224- dphi -= TMath::TwoPi ();
225- double DR = sqrt (deta * deta + dphi * dphi);
227+ double deta = std::abs (bremEta - secEta);
228+ double dphi = std::abs (::deltaPhi (bremPhi, secPhi));
229+ double DR2 = deta * deta + dphi * dphi;
226230
227- double detaPos = fabs (bremEta - trkRef->innerPosition ().eta ());
228- double dphiPos = fabs (bremPhi - trkRef->innerPosition ().phi ());
229- if (dphiPos > TMath::Pi ())
230- dphiPos -= TMath::TwoPi ();
231- double DRPos = sqrt (detaPos * detaPos + dphiPos * dphiPos);
231+ double detaPos = std::abs (bremEta - posEta);
232+ double dphiPos = std::abs (::deltaPhi (bremPhi, posPhi));
233+ double DRPos2 = detaPos * detaPos + dphiPos * dphiPos;
232234
233235 // find the closest track tangent
234- if (DR < minDRBremKF ) {
235- minDRBremKF = DR ;
236+ if (DR2 < minDRBremKF2 ) {
237+ minDRBremKF2 = DR2 ;
236238 minDEtaBremKF = deta;
237- minDPhiBremKF = fabs (dphi);
239+ minDPhiBremKF = std::abs (dphi);
238240 }
239241
240- if (DRPos < minDRBremKFPos ) {
241- minDRBremKFPos = DR ;
242+ if (DRPos2 < minDRBremKFPos2 ) {
243+ minDRBremKFPos2 = DRPos2 ;
242244 minDEtaBremKFPos = detaPos;
243- minDPhiBremKFPos = fabs (dphiPos);
245+ minDPhiBremKFPos = std::abs (dphiPos);
244246 }
245247 }
246248
247- // gsfR
248- float gsfR = sqrt (refGsf->innerPosition ().x () * refGsf->innerPosition ().x () +
249- refGsf->innerPosition ().y () * refGsf->innerPosition ().y ());
250-
251249 // secR
252250 secR = sqrt (trkRef->innerPosition ().x () * trkRef->innerPosition ().x () +
253251 trkRef->innerPosition ().y () * trkRef->innerPosition ().y ());
@@ -256,11 +254,10 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
256254 // Moreover if the secR is internal with respect to the GSF track by two pixel layers discard it.
257255 if ((minDPhiBremKF < 0.1 || minDPhiBremKFPos < 0.1 ) && (minDEtaBremKF < 0.02 || minDEtaBremKFPos < 0.02 ) &&
258256 secR > (gsfR - 8 )) {
259- if (debug)
260- cout << " runConvBremFinder:: OK Find track and BREM close "
261- << " MinDphi " << minDPhiBremKF << " MinDeta " << minDEtaBremKF << endl;
257+ LogDebug (" ConvBremPFTrackFinder" ) << " runConvBremFinder:: OK Find track and BREM close "
258+ << " MinDphi " << minDPhiBremKF << " MinDeta " << minDEtaBremKF;
262259
263- float MinDist = 100000 . ;
260+ float MinDist = std::numeric_limits< float >:: max () ;
264261 float EE_calib = 0 .;
265262 PFRecTrack pfrectrack = *AllPFRecTracks[iPF];
266263 // Find and ECAL associated cluster
@@ -291,7 +288,7 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
291288 trkRef->innerMomentum ().z () * trkRef->innerMomentum ().z ());
292289
293290 // maybe put innter momentum pt?
294- ptRatioGsfKF = trkRef->pt () / (refGsf-> ptMode ()) ;
291+ ptRatioGsfKF = trkRef->pt () / refGsfPtMode ;
295292
296293 Vertex dummy;
297294 const Vertex* pv = &dummy;
@@ -309,9 +306,6 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
309306 dummy = Vertex (p, e, 0 , 0 , 0 );
310307 }
311308
312- // direction of the Gsf track
313- GlobalVector direction (refGsf->innerMomentum ().x (), refGsf->innerMomentum ().y (), refGsf->innerMomentum ().z ());
314-
315309 TransientTrack transientTrack = builder_.build (*trkRef);
316310 sTIP = IPTools::signedTransverseImpactParameter (transientTrack, direction, *pv).second .significance ();
317311
@@ -341,45 +335,38 @@ void ConvBremPFTrackFinder::runConvBremFinder(const Handle<PFRecTrackCollection>
341335
342336 nHITS1 = tmpSh;
343337
344- TString weightfilepath = " " ;
345338 double mvaValue = -10 ;
346339 double cutvalue = -10 ;
347340
348341 float vars[6 ] = {secR, sTIP , nHITS1, Epout, detaBremKF, ptRatioGsfKF};
349- if (refGsf-> pt () < 20 && fabs (refGsf-> eta () ) < 1.479 ) {
342+ if (refGsfPt < 20 && std::abs (refGsfEta ) < 1.479 ) {
350343 mvaValue = cache->gbrBarrelLowPt_ ->GetClassifier (vars);
351344 cutvalue = mvaBremConvCutBarrelLowPt_;
352345 }
353- if (refGsf-> pt () > 20 && fabs (refGsf-> eta () ) < 1.479 ) {
346+ if (refGsfPt > 20 && std::abs (refGsfEta ) < 1.479 ) {
354347 mvaValue = cache->gbrBarrelHighPt_ ->GetClassifier (vars);
355348 cutvalue = mvaBremConvCutBarrelHighPt_;
356349 }
357- if (refGsf-> pt () < 20 && fabs (refGsf-> eta () ) > 1.479 ) {
350+ if (refGsfPt < 20 && std::abs (refGsfEta ) > 1.479 ) {
358351 mvaValue = cache->gbrEndcapsLowPt_ ->GetClassifier (vars);
359352 cutvalue = mvaBremConvCutEndcapsLowPt_;
360353 }
361- if (refGsf-> pt () > 20 && fabs (refGsf-> eta () ) > 1.479 ) {
354+ if (refGsfPt > 20 && std::abs (refGsfEta ) > 1.479 ) {
362355 mvaValue = cache->gbrEndcapsHighPt_ ->GetClassifier (vars);
363356 cutvalue = mvaBremConvCutEndcapsHighPt_;
364357 }
365358
366- if (debug)
367- cout << " Gsf track Pt, Eta " << refGsf->pt () << " " << refGsf->eta () << endl;
368- if (debug)
369- cout << " Cutvalue " << cutvalue << endl;
359+ LogDebug (" ConvBremPFTrackFinder" ) << " Gsf track Pt, Eta " << refGsfPt << " " << refGsfEta;
360+ LogDebug (" ConvBremPFTrackFinder" ) << " Cutvalue " << cutvalue;
370361
371362 if ((kfhitcounter - nHITS1) <= 3 && nHITS1 > 3 )
372363 mvaValue = 2 ; // this means duplicates tracks, very likely not physical
373364
374- if (debug)
375- cout << " The input variables for conv brem tracks identification " << endl
376- << " secR " << secR << " gsfR " << gsfR << endl
377- << " N shared hits " << nHITS1 << endl
378- << " sTIP " << sTIP << endl
379- << " detaBremKF " << detaBremKF << endl
380- << " E/pout " << Epout << endl
381- << " ptRatioKFGsf " << ptRatioGsfKF << endl
382- << " ***** MVA ***** " << mvaValue << endl;
365+ LogDebug (" ConvBremPFTrackFinder" )
366+ << " The input variables for conv brem tracks identification "
367+ << " secR " << secR << " gsfR " << gsfR << " N shared hits " << nHITS1 << " sTIP " << sTIP
368+ << " detaBremKF " << detaBremKF << " E/pout " << Epout << " ptRatioKFGsf " << ptRatioGsfKF
369+ << " ***** MVA ***** " << mvaValue;
383370
384371 if (mvaValue > cutvalue) {
385372 found_ = true ;
0 commit comments