@@ -95,6 +95,7 @@ class SiPixelCompareTrackSoA : public DQMEDAnalyzer {
9595 MonitorElement* hChi2VsPhi_;
9696 MonitorElement* hChi2VsEta_;
9797 MonitorElement* hpt_;
98+ MonitorElement* hCurvature_;
9899 MonitorElement* hptLogLog_;
99100 MonitorElement* heta_;
100101 MonitorElement* hphi_;
@@ -110,10 +111,10 @@ class SiPixelCompareTrackSoA : public DQMEDAnalyzer {
110111 MonitorElement* htipdiffMatched_;
111112
112113 // for matching eff vs region: derive the ratio at harvesting
113- MonitorElement* hpt_eta_tkAllCPU_ ;
114- MonitorElement* hpt_eta_tkAllCPUMatched_ ;
115- MonitorElement* hphi_z_tkAllCPU_ ;
116- MonitorElement* hphi_z_tkAllCPUMatched_ ;
114+ MonitorElement* hpt_eta_tkAllRef_ ;
115+ MonitorElement* hpt_eta_tkAllRefMatched_ ;
116+ MonitorElement* hphi_z_tkAllRef_ ;
117+ MonitorElement* hphi_z_tkAllRefMatched_ ;
117118};
118119
119120//
@@ -187,6 +188,7 @@ void SiPixelCompareTrackSoA<T>::analyze(const edm::Event& iEvent, const edm::Eve
187188 float phiCPU = helper::phi (tsoaCPU.view (), it);
188189 float zipCPU = helper::zip (tsoaCPU.view (), it);
189190 float tipCPU = helper::tip (tsoaCPU.view (), it);
191+ auto qCPU = helper::charge (tsoaCPU.view (), it);
190192
191193 if (!(ptCPU > 0 .))
192194 continue ;
@@ -211,17 +213,18 @@ void SiPixelCompareTrackSoA<T>::analyze(const edm::Event& iEvent, const edm::Eve
211213 }
212214 }
213215
214- hpt_eta_tkAllCPU_ ->Fill (etaCPU, ptCPU); // all CPU tk
215- hphi_z_tkAllCPU_ ->Fill (phiCPU, zipCPU);
216+ hpt_eta_tkAllRef_ ->Fill (etaCPU, ptCPU); // all CPU tk
217+ hphi_z_tkAllRef_ ->Fill (phiCPU, zipCPU);
216218 if (closestTkidx == notFound)
217219 continue ;
218220 nLooseAndAboveTracksCPU_matchedGPU++;
219221
220222 hchi2_->Fill (tsoaCPU.view ()[it].chi2 (), tsoaGPU.view ()[closestTkidx].chi2 ());
221- hCharge_->Fill (helper::charge (tsoaCPU. view (), it) , helper::charge (tsoaGPU.view (), closestTkidx));
223+ hCharge_->Fill (qCPU , helper::charge (tsoaGPU.view (), closestTkidx));
222224 hnHits_->Fill (helper::nHits (tsoaCPU.view (), it), helper::nHits (tsoaGPU.view (), closestTkidx));
223225 hnLayers_->Fill (tsoaCPU.view ()[it].nLayers (), tsoaGPU.view ()[closestTkidx].nLayers ());
224226 hpt_->Fill (ptCPU, tsoaGPU.view ()[closestTkidx].pt ());
227+ hCurvature_->Fill (qCPU / ptCPU, helper::charge (tsoaGPU.view (), closestTkidx) / tsoaGPU.view ()[closestTkidx].pt ());
225228 hptLogLog_->Fill (ptCPU, tsoaGPU.view ()[closestTkidx].pt ());
226229 heta_->Fill (etaCPU, tsoaGPU.view ()[closestTkidx].eta ());
227230 hphi_->Fill (phiCPU, helper::phi (tsoaGPU.view (), closestTkidx));
@@ -234,8 +237,8 @@ void SiPixelCompareTrackSoA<T>::analyze(const edm::Event& iEvent, const edm::Eve
234237 hphidiffMatched_->Fill (reco::deltaPhi (phiCPU, helper::phi (tsoaGPU.view (), closestTkidx)));
235238 hzdiffMatched_->Fill (zipCPU - helper::zip (tsoaGPU.view (), closestTkidx));
236239 htipdiffMatched_->Fill (tipCPU - helper::tip (tsoaGPU.view (), closestTkidx));
237- hpt_eta_tkAllCPUMatched_ ->Fill (etaCPU, tsoaCPU.view ()[it].pt ()); // matched to gpu
238- hphi_z_tkAllCPUMatched_ ->Fill (etaCPU, zipCPU);
240+ hpt_eta_tkAllRefMatched_ ->Fill (etaCPU, tsoaCPU.view ()[it].pt ()); // matched to gpu
241+ hphi_z_tkAllRefMatched_ ->Fill (etaCPU, zipCPU);
239242 }
240243 hnTracks_->Fill (nTracksCPU, nTracksGPU);
241244 hnLooseAndAboveTracks_->Fill (nLooseAndAboveTracksCPU, nLooseAndAboveTracksGPU);
@@ -273,24 +276,25 @@ void SiPixelCompareTrackSoA<T>::bookHistograms(DQMStore::IBooker& iBook,
273276 hCharge_ = iBook.book2I (" charge" ,fmt::sprintf (" %s;CPU;GPU" ,toRep),3 , -1.5 , 1.5 , 3 , -1.5 , 1.5 );
274277
275278 hpt_ = iBook.book2I (" pt" , " Track (quality #geq loose) p_{T} [GeV];CPU;GPU" , 200 , 0 ., 200 ., 200 , 0 ., 200 .);
279+ hCurvature_ = iBook.book2I (" curvature" , " Track (quality #geq loose) q/p_{T} [GeV^{-1}];CPU;GPU" , 60 ,- 3 ., 3 ., 60 , -3 ., 3 . );
276280 hptLogLog_ = make2DIfLog (iBook, true , true , " ptLogLog" , " Track (quality #geq loose) p_{T} [GeV];CPU;GPU" , 200 , log10 (0.5 ), log10 (200 .), 200 , log10 (0.5 ), log10 (200 .));
277281 heta_ = iBook.book2I (" eta" , " Track (quality #geq loose) #eta;CPU;GPU" , 30 , -3 ., 3 ., 30 , -3 ., 3 .);
278282 hphi_ = iBook.book2I (" phi" , " Track (quality #geq loose) #phi;CPU;GPU" , 30 , -M_PI, M_PI, 30 , -M_PI, M_PI);
279283 hz_ = iBook.book2I (" z" , " Track (quality #geq loose) z [cm];CPU;GPU" , 30 , -30 ., 30 ., 30 , -30 ., 30 .);
280284 htip_ = iBook.book2I (" tip" , " Track (quality #geq loose) TIP [cm];CPU;GPU" , 100 , -0.5 , 0.5 , 100 , -0.5 , 0.5 );
281285 // 1D difference plots
282- hptdiffMatched_ = iBook.book1D (" ptdiffmatched" , " p_{T} diff [GeV] between matched tracks; #Delta p_{T} [GeV]" , 60 , -30 ., 30 .);
283- hCurvdiffMatched_ = iBook.book1D (" curvdiffmatched" , " q/p_{T} diff [GeV] between matched tracks; #Delta q/p_{T} [GeV]" , 60 , -30 ., 30 . );
284- hetadiffMatched_ = iBook.book1D (" etadiffmatched" , " #eta diff between matched tracks; #Delta #eta" , 160 , -0.04 ,0.04 );
285- hphidiffMatched_ = iBook.book1D (" phidiffmatched" , " #phi diff between matched tracks; #Delta #phi" , 160 , -0.04 ,0.04 );
286- hzdiffMatched_ = iBook.book1D (" zdiffmatched" , " z diff between matched tracks; #Delta z [cm]" , 300 , -1.5 , 1.5 );
287- htipdiffMatched_ = iBook.book1D (" tipdiffmatched" , " TIP diff between matched tracks; #Delta TIP [cm]" , 300 , -1.5 , 1.5 );
286+ hptdiffMatched_ = iBook.book1D (" ptdiffmatched" , " p_{T} diff [GeV] between matched tracks; #Delta p_{T} [GeV]" , 61 , -30.5 , 30.5 );
287+ hCurvdiffMatched_ = iBook.book1D (" curvdiffmatched" , " q/p_{T} diff [GeV^{-1} ] between matched tracks; #Delta q/p_{T} [GeV^{-1} ]" , 61 , -3.05 , 3.05 );
288+ hetadiffMatched_ = iBook.book1D (" etadiffmatched" , " #eta diff between matched tracks; #Delta #eta" , 161 , -0.045 ,0.045 );
289+ hphidiffMatched_ = iBook.book1D (" phidiffmatched" , " #phi diff between matched tracks; #Delta #phi" , 161 , -0.045 ,0.045 );
290+ hzdiffMatched_ = iBook.book1D (" zdiffmatched" , " z diff between matched tracks; #Delta z [cm]" , 301 , -1.55 , 1.55 );
291+ htipdiffMatched_ = iBook.book1D (" tipdiffmatched" , " TIP diff between matched tracks; #Delta TIP [cm]" , 301 , -1.55 , 1.55 );
288292 // 2D plots for eff
289- hpt_eta_tkAllCPU_ = iBook.book2I (" ptetatrkAllCPU " , " Track (quality #geq loose) on CPU; #eta; p_{T} [GeV];" , 30 , -M_PI, M_PI, 200 , 0 ., 200 .);
290- hpt_eta_tkAllCPUMatched_ = iBook.book2I (" ptetatrkAllCPUmatched " , " Track (quality #geq loose) on CPU matched to GPU track; #eta; p_{T} [GeV];" , 30 , -M_PI, M_PI, 200 , 0 ., 200 .);
293+ hpt_eta_tkAllRef_ = iBook.book2I (" ptetatrkAllReference " , " Track (quality #geq loose) on CPU; #eta; p_{T} [GeV];" , 30 , -M_PI, M_PI, 200 , 0 ., 200 .);
294+ hpt_eta_tkAllRefMatched_ = iBook.book2I (" ptetatrkAllReferencematched " , " Track (quality #geq loose) on CPU matched to GPU track; #eta; p_{T} [GeV];" , 30 , -M_PI, M_PI, 200 , 0 ., 200 .);
291295
292- hphi_z_tkAllCPU_ = iBook.book2I (" phiztrkAllCPU " , " Track (quality #geq loose) on CPU; #phi; z [cm];" , 30 , -M_PI, M_PI, 30 , -30 ., 30 .);
293- hphi_z_tkAllCPUMatched_ = iBook.book2I (" phiztrkAllCPUmatched " , " Track (quality #geq loose) on CPU; #phi; z [cm];" , 30 , -M_PI, M_PI, 30 , -30 ., 30 .);
296+ hphi_z_tkAllRef_ = iBook.book2I (" phiztrkAllReference " , " Track (quality #geq loose) on CPU; #phi; z [cm];" , 30 , -M_PI, M_PI, 30 , -30 ., 30 .);
297+ hphi_z_tkAllRefMatched_ = iBook.book2I (" phiztrkAllReferencematched " , " Track (quality #geq loose) on CPU; #phi; z [cm];" , 30 , -M_PI, M_PI, 30 , -30 ., 30 .);
294298
295299}
296300
@@ -303,7 +307,7 @@ void SiPixelCompareTrackSoA<T>::fillDescriptions(edm::ConfigurationDescriptions&
303307 desc.add <std::string>(" topFolderName" , " SiPixelHeterogeneous/PixelTrackCompareGPUvsCPU" );
304308 desc.add <bool >(" useQualityCut" , true );
305309 desc.add <std::string>(" minQuality" , " loose" );
306- desc.add <double >(" deltaR2cut" , 0.04 );
310+ desc.add <double >(" deltaR2cut" , 0.02 * 0.02 )-> setComment ( " deltaR2 cut between track on CPU and GPU " );
307311 descriptions.addWithDefaultLabel (desc);
308312}
309313
0 commit comments