main.tex 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. \documentclass[english,aspectratio=43,8pt]{beamer}
  2. \usepackage{graphicx}
  3. \usepackage{amssymb}
  4. \usepackage{booktabs}
  5. \usepackage{siunitx}
  6. \usepackage{subcaption}
  7. \usepackage{marvosym}
  8. \usepackage{verbatim}
  9. \usepackage[normalem]{ulem} % Needed for /sout
  10. \newcommand{\pb}{\si{\pico\barn}}%
  11. \newcommand{\fb}{\si{\femto\barn}}%
  12. \newcommand{\invfb}{\si{\per\femto\barn}}
  13. \newcommand{\GeV}{\si{\giga\electronvolt}}
  14. \hypersetup{colorlinks=true,urlcolor=blue}
  15. \usetheme[]{bjeldbak}
  16. %%% For wider frames
  17. \newcommand\Wider[2][3em]{%
  18. \makebox[\linewidth][c]{%
  19. \begin{minipage}{\dimexpr\textwidth+#1\relax}
  20. \raggedright#2
  21. \end{minipage}%
  22. }%
  23. }
  24. %%% For wider frames end
  25. \newcommand{\backupbegin}{%
  26. \newcounter{finalframe}
  27. \setcounter{finalframe}{\value{framenumber}}
  28. }
  29. \newcommand{\backupend}{%
  30. \setcounter{framenumber}{\value{finalframe}}
  31. }
  32. \newcommand\blfootnote[1]{%
  33. \begingroup
  34. \renewcommand\thefootnote{}\footnote{#1}%
  35. \addtocounter{footnote}{-1}%
  36. \endgroup
  37. }
  38. \begin{document}
  39. \title[$e$ Seeding Validation]{Offline Electron Seeding Validation \-- Update}
  40. \author[C. Fangmeier]{\textbf{Caleb Fangmeier} \\ Ilya Kravchenko, Greg Snow}
  41. \institute[UNL]{University of Nebraska \-- Lincoln}
  42. \date{EGM General Meeting | November 19, 2018}
  43. \titlegraphic{%
  44. \begin{figure}
  45. \includegraphics[width=1in]{CMSlogo.png}\hspace{0.75in}\includegraphics[width=1in]{nebraska-n.png}
  46. \end{figure}
  47. }
  48. \begin{frame}[plain]
  49. \titlepage%
  50. \end{frame}
  51. \begin{frame}{Introduction}
  52. \begin{itemize}
  53. \item Our goal is to study \textbf{seeding} for the \textbf{offline} GSF tracking with the \textbf{Phase I pixel detector}.
  54. \item Specifically, we want to optimize the new pixel-matching scheme from HLT for use in off-line reconstruction.
  55. \item Previous presentation\footnotemark showed efficiency/purity/fake-rate for proposed offline electron seeding working points.
  56. \item This Talk:
  57. \begin{itemize}
  58. \item Explain ``Hit Skipping'' and demonstrate effects on seeding performance
  59. \item Examine effects of adding pileup on seeding performance.
  60. \end{itemize}
  61. \end{itemize}
  62. \footnotetext[1]{\tiny \url{https://indico.cern.ch/event/697084/#2-update-on-offline-electron-s}}
  63. \end{frame}
  64. \begin{frame}{N-Hit Electron Seeding}
  65. \begin{columns}
  66. \begin{column}{0.5\textwidth}
  67. {\small
  68. \begin{enumerate}
  69. \item Using the beam spot, the SC position, and SC energy, propagate a path through the pixels.
  70. \item Require the first hit to be within a $\delta\phi$ and $\delta z$ window. ($\delta\phi$ and $\delta R$ for FPIX)
  71. \item $\delta z$ window for first hit is huge as SC and beam spot positions give very little information about $z$.
  72. \item Forget the SC position, and propagate a new track based on the vertex and first hit positions, and the SC energy.
  73. \item Progress one-by-one through the remaining hits in the seed and require each one fit within a specified window around the track.
  74. \item Quit when all hits are matched, or a hit falls outside the window. \textbf{No skipping is allowed.}
  75. \end{enumerate}
  76. }
  77. \end{column}
  78. \begin{column}{0.5\textwidth}
  79. \begin{figure}
  80. \includegraphics[width=0.9\textwidth]{../common/diagrams/seeding_step2.png}
  81. \end{figure}
  82. \begin{figure}
  83. \includegraphics[width=0.9\textwidth]{../common/diagrams/seeding_step3.png}
  84. \end{figure}
  85. \end{column}
  86. \end{columns}
  87. \end{frame}
  88. \begin{frame}{Hit-Skipping}
  89. \begin{itemize}
  90. \item Normally, general tracking seeds are made with an iterative procedure
  91. \item Each iteration masks hits from use in subsequent steps
  92. \item Reduces combinatorics for CKF tracking
  93. % \end{itemize}
  94. \begin{figure}
  95. \includegraphics[width=0.7\textwidth]{figures/seeding_steps.png}
  96. \end{figure}
  97. % \begin{itemize}
  98. \item Each iteration works on a specific set of combinations of layers. eg. \texttt{initialStep} uses:
  99. \end{itemize}
  100. \begin{columns}[t]
  101. \begin{column}{0.5\textwidth}
  102. \texttt{BPix1+BPix2+BPix3+BPix4} \\
  103. \texttt{BPix1+BPix2+BPix3+FPix1\_pos} \\
  104. \texttt{BPix1+BPix2+BPix3+FPix1\_neg} \\
  105. \texttt{BPix1+BPix2+FPix1\_pos+FPix2\_pos}
  106. \end{column}
  107. \begin{column}{0.5\textwidth}
  108. \texttt{BPix1+BPix2+FPix1\_neg+FPix2\_neg} \\
  109. \texttt{BPix1+FPix1\_pos+FPix2\_pos+FPix3\_pos} \\
  110. \texttt{BPix1+FPix1\_neg+FPix2\_neg+FPix3\_neg} \\
  111. \end{column}
  112. \end{columns}
  113. \end{frame}
  114. \begin{frame}{Hit-Skipping}
  115. \begin{columns}[t]
  116. \begin{column}{0.6\textwidth}
  117. \begin{itemize}
  118. \item When \texttt{NHitElectronSeedProducer} was implemented for HLT, hit skipping was not added.
  119. \item Consider an example configuration where we are generating first quadruplet, then triplet, and then finally doublet seeds, masking hits along the way.
  120. \item If we require at least 3 matched hits, the old method \emph{with} hit skipping would create a seed of hits \texttt{BPIX1, BPIX2, BPIX4}.
  121. \item But new method \emph{without} hit skipping wouldn't make any seed from these hits.
  122. \item The ``hack'' is to create seeds using only steps \texttt{tripletElectronSeeds}, and \texttt{pixelPairElectronSeeds} with \textbf{no masking}.
  123. \item Adding skipping and removing the hack would reduce cpu time from redundant seeds.
  124. \end{itemize}
  125. \end{column}
  126. \begin{column}{0.4\textwidth}
  127. \begin{figure}
  128. \includegraphics[width=\textwidth]{figures/seeds_available.png}
  129. \end{figure}
  130. \end{column}
  131. \end{columns}
  132. % \begin{figure}
  133. % \includegraphics[width=\textwidth]{figures/hacked_seeding_steps.png}
  134. % \end{figure}
  135. \end{frame}
  136. \begin{frame}{Hit-Skipping - Performance}
  137. \begin{columns}[t]
  138. \begin{column}{0.5\textwidth}
  139. \begin{itemize}
  140. \item Enabling hit skipping and removing hack reduces number of seeds by 36\% to 51\%.
  141. \item 3-5x fewer seeds with respect to old seeding
  142. \item Efficiency reduced by between 4\% and 6\% to align more with old seeding performance.
  143. \item Purity improved by about 1\%.
  144. \item (table in backup)
  145. \end{itemize}
  146. \end{column}
  147. \begin{column}{0.5\textwidth}
  148. \begin{figure}
  149. \includegraphics[width=\textwidth]{figures/tracking_roc_curve_dR.png}
  150. \end{figure}
  151. \end{column}
  152. \end{columns}
  153. {\footnotesize
  154. \begin{table}[]
  155. \begin{tabular}{l|cccc}
  156. \hline
  157. Process & Seeding Method & $<N_{seeds}>$(no-skip) & $<N_{seeds}>$(with-skip) & Percent Reduction \\ \hline
  158. $t\bar{t}$ & Old - default settings & - & 12.69 & - \\
  159. & New - HLT settings & 4.40 & 2.56 & 41\% \\
  160. & New - ``wide'' settings & 7.28 & 4.65 & 36\% \\ \hline
  161. Drell-Yan & Old - default settings & - & 11.40 & - \\
  162. & New - HLT settings & 4.70 & 2.32 & 51\% \\
  163. & New - ``wide'' settings & 5.38 & 2.65 & 51\%
  164. \end{tabular}
  165. \end{table}
  166. }
  167. \end{frame}
  168. \begin{frame}{Adding Pileup}
  169. \begin{itemize}
  170. \item The simhit-rechit linkage that was previously used in efficiency/purity measurements is not saved in \texttt{GEN-SIM-RAW}.
  171. \item Therefore, the \texttt{DIGI} step was re-run, but \emph{only for the signal event} because \texttt{GEN-SIM-RAW} does not contain \texttt{SIM} information for pileup events.
  172. \item However, running this instead of the \texttt{RAW2DIGI} step discarded the previously mixed pileup in the \texttt{RAW}.
  173. \item So even though there is a \texttt{PileupInfo} collection with reasonable values, there's no actual pileup hits being used for tracking (caused quite some confusion for me).
  174. \item In the end, abandon simhit-rechit linkage and just use $\Delta R$ matching for efficiency/purity.
  175. \item Some technical details in backup.
  176. \end{itemize}
  177. \begin{columns}[t]
  178. \begin{column}{0.5\textwidth}
  179. \end{column}
  180. \begin{column}{0.5\textwidth}
  181. \end{column}
  182. \end{columns}
  183. \end{frame}
  184. \begin{frame}{Adding Pileup - Issues}
  185. \begin{itemize}
  186. % \item All previous results are \emph{without} pileup.
  187. \item Creating kinematic distributions raises some apparent issues with how the new seeding handles pileup.
  188. \item Next three slides show pt/eta/phi distributions of GSF tracks resulting from ECAL-Driven seeds
  189. \end{itemize}
  190. % \begin{figure}
  191. % \includegraphics[width=0.32\textwidth]{figures/gsf_track_kinem_dy_skip.png}
  192. % \includegraphics[width=0.32\textwidth]{figures/gsf_track_kinem_dy_skip-pileup.png}
  193. % \end{figure}
  194. \end{frame}
  195. \begin{frame}{Adding Pileup - Issues - No Skipping, No Pileup}
  196. \Wider{
  197. \begin{figure}
  198. \includegraphics[width=0.49\textwidth]{figures/gsf_track_kinem_dy_noskip.png}
  199. \includegraphics[width=0.49\textwidth]{figures/gsf_track_kinem2d_dy_noskip.png}
  200. \end{figure}
  201. \begin{itemize}
  202. \item Looks basically ok, use this as a baseline for comparison.
  203. \end{itemize}
  204. }
  205. \end{frame}
  206. \begin{frame}{Adding Pileup - Issues - With Skipping, No Pileup}
  207. \Wider{
  208. \begin{figure}
  209. \includegraphics[width=0.49\textwidth]{figures/gsf_track_kinem_dy_skip.png}
  210. \includegraphics[width=0.49\textwidth]{figures/gsf_track_kinem2d_dy_skip.png}
  211. \end{figure}
  212. \begin{itemize}
  213. \item Concerning dip around $\phi=3$ coming from $\eta \in (0.5, 1.5)$.
  214. \end{itemize}
  215. }
  216. \end{frame}
  217. \begin{frame}{Adding Pileup - Issues - With Skipping, With Pileup}
  218. \Wider{
  219. \begin{figure}
  220. \includegraphics[width=0.49\textwidth]{figures/gsf_track_kinem_dy_skip-pileup.png}
  221. \includegraphics[width=0.49\textwidth]{figures/gsf_track_kinem2d_dy_skip-pileup.png}
  222. \end{figure}
  223. \begin{itemize}
  224. \item Strangely non-flat $\phi$ distribution, manifests differently in both old and new seeding, but rather more pronounced in new.
  225. \item Features seem to be somewhat localized in $\phi-\eta$, possibly some kind of detector effect?
  226. \end{itemize}
  227. }
  228. \end{frame}
  229. \begin{frame}{Adding Pileup - More Issues}
  230. \Wider{
  231. \begin{figure}
  232. \includegraphics[width=0.49\textwidth]{figures/number_of_good_seeds_dy_skip.png}
  233. \includegraphics[width=0.49\textwidth]{figures/number_of_good_seeds_dy_skip-pileup.png}
  234. \end{figure}
  235. \begin{itemize}
  236. \item Relative reduction of number of seeds gone. In fact, with pileup there is a 2.3 to 5 times increase in the number of seeds relative to old seeding method.
  237. \end{itemize}
  238. }
  239. \end{frame}
  240. \begin{frame}{Conclusions \& Outlook}
  241. \begin{itemize}
  242. \item Reintroducing hit skipping in new seeding is implemented and has expected results.
  243. \item Analyzing MC with pileup mixed highlights potential issues with using new seeding for offline reconstruction.
  244. \item Further investigation is necessary to determine the source of the issues.
  245. \item Any ideas for checks or fixes are welcome!
  246. \end{itemize}
  247. \blfootnote{\tiny Analysis and ploting code is available at \url{https://git.fangmeier.tech/caleb/EGamma\_ElectronTrackingValidation}}
  248. \blfootnote{\tiny Additional plots are available at \url{http://t3.unl.edu/~cfangmeier/eg/seeding\_studies\_2018\_11\_18\_19/hists.html}}
  249. \end{frame}
  250. \appendix
  251. \backupbegin%
  252. \begin{frame}
  253. \begin{center}
  254. {\Huge BACKUP}
  255. \end{center}
  256. \end{frame}
  257. \begin{frame}{Definitions}
  258. \begin{itemize}
  259. \item \textbf{Sim-Track \--} A track from a simulated electron both originating from the luminous region of CMS (beam-spot +- 5$\sigma$) and having $|\eta|<3.0$.
  260. \item \textbf{ECAL-Driven Seed \--} A seed created via a matching procedure between Super-Clusters and General Tracking Seeds (Either from \texttt{ElectronSeedProducer} or \texttt{ElectronNHitSeedProducer}). Must have $HOE<0.15$.
  261. \item \textbf{GSF Track \--} A track from GSF-Tracking resulting from an \textbf{ECAL-Driven Seed}
  262. % \item \textbf{Seeding Efficiency \--} The fraction of \textbf{Sim-Tracks} that have a matching \textbf{ECAL-Driven Seed} (based on simhit-rechit linkage or $\Delta R$ matching)
  263. \item \textbf{GSF Tracking Efficiency \--} The fraction of \textbf{Sim-Tracks} that have a matching \textbf{GSF Track} (based on $\Delta R$ matching)
  264. % \item \textbf{ECAL-Driven Seed Purity \--} The fraction of \textbf{ECAL-Driven Seeds} that have a matching \textbf{Sim-Track}
  265. \item \textbf{GSF Tracking Purity \--} The fraction of \textbf{GSF Tracks} that have a matching \textbf{Sim-Track}
  266. \item \textbf{GSF Tracking Fake Rate \--} The fraction of nontruth-matched Super-Clusters which result in at least one \textbf{GSF Track}.
  267. \end{itemize}
  268. \end{frame}
  269. \begin{frame}{Seeding Performance}
  270. \begin{figure}
  271. \includegraphics[height=0.945\textheight]{figures/seeding_performance.png}
  272. \end{figure}
  273. \end{frame}
  274. \begin{frame}{Matching Window Parameters}
  275. \begin{table}[]
  276. \centering
  277. \begin{tabular}{@{}llrrrr@{}}
  278. \toprule
  279. & & \textbf{narrow} & \textbf{default (HLT)} & \textbf{wide} & \textbf{extra-wide} \\ \midrule
  280. Hit 1 & dPhiMaxHighEt & \textbf{0.025} & \textbf{0.05} & \textbf{0.1} & \textbf{0.15} \\
  281. & dPhiMaxHighEtThres & 20.0 & 20.0 & 20.0 & 20.0 \\
  282. & dPhiMaxLowEtGrad & -0.002 & -0.002 & -0.002 & -0.002 \\
  283. & dRzMaxHighEt & 9999.0 & 9999.0 & 9999.0 & 9999.0 \\
  284. & dRzMaxHighEtThres & 0.0 & 0.0 & 0.0 & 0.0 \\
  285. & dRzMaxLowEtGrad & 0.0 & 0.0 & 0.0 & 0.0 \\ \midrule
  286. Hit 2 & dPhiMaxHighEt & \textbf{0.0015} & \textbf{0.003} & \textbf{0.006} & \textbf{0.009} \\
  287. & dPhiMaxHighEtThres & 0.0 & 0.0 & 0.0 & 0.0 \\
  288. & dPhiMaxLowEtGrad & 0.0 & 0.0 & 0.0 & 0.0 \\
  289. & dRzMaxHighEt & \textbf{0.025} & \textbf{0.05} & \textbf{0.1} & \textbf{0.15} \\
  290. & dRzMaxHighEtThres & 30.0 & 30.0 & 30.0 & 30.0 \\
  291. & dRzMaxLowEtGrad & -0.002 & -0.002 & -0.002 & -0.002 \\ \midrule
  292. Hit 3+ & dPhiMaxHighEt & \textbf{0.0015} & \textbf{0.003} & \textbf{0.006} & \textbf{0.009} \\
  293. & dPhiMaxHighEtThres & 0.0 & 0.0 & 0.0 & 0.0 \\
  294. & dPhiMaxLowEtGrad & 0.0 & 0.0 & 0.0 & 0.0 \\
  295. & dRzMaxHighEt & \textbf{0.025} & \textbf{0.05} & \textbf{0.1} & \textbf{0.15} \\
  296. & dRzMaxHighEtThres & 30.0 & 30.0 & 30.0 & 30.0 \\
  297. & dRzMaxLowEtGrad & -0.002 & -0.002 & -0.002 & -0.002 \\ \bottomrule
  298. \end{tabular}
  299. \end{table}
  300. \centering
  301. \texttt{NHit} Seeding window parameters. Bold designates modified values.
  302. \end{frame}
  303. \begin{frame}{Samples}
  304. \begin{itemize}
  305. \item {\tiny /ZToEE\_NNPDF30\_13TeV-powheg\_M\_120\_200/RunIISummer17DRStdmix-NZSFlatPU28to62\_92X\_upgrade2017\_realistic\_v10-v1}
  306. \item {\tiny /TT\_TuneCUETP8M2T4\_13TeV-powheg-pythia8/RunIISummer17DRStdmix-NZSFlatPU28to62\_92X\_upgrade2017\_realistic\_v10-v2}
  307. \end{itemize}
  308. \end{frame}
  309. \begin{frame}[fragile]{cmsDriver invocations}
  310. \begin{columns}[t]
  311. \begin{column}{0.5\textwidth}
  312. {\Large \texttt{RAW}$\rightarrow$Step2 (old) }
  313. {\footnotesize
  314. \begin{verbatim}
  315. cmsDriver.py RAW2Step2 \
  316. --mc \
  317. --conditions 92X_upgrade2017_realistic_v10 \
  318. --era Run2_2017 \
  319. --eventcontent FEVTDEBUG \
  320. --datatier GEN-SIM-DIGI-RAW \
  321. --step DIGI:pdigi_valid,L1,DIGI2RAW \
  322. --geometry DB:Extended \
  323. --filein file:input.root \
  324. --fileout file:step2.root \
  325. --runUnscheduled
  326. \end{verbatim}
  327. }
  328. {\Large Step2$\rightarrow$TrackingNtuple (old) }
  329. {\footnotesize
  330. \begin{verbatim}
  331. cmsDriver.py Step2ToTrackingNtuple \
  332. --mc \
  333. --conditions 92X_upgrade2017_realistic_v10 \
  334. --era Run2_2017 \
  335. --eventcontent RECOSIM,MINIAODSIM,DQM \
  336. --datatier GEN-SIM-RECO,MINIAODSIM,DQMIO \
  337. --step RAW2DIGI,L1Reco,RECO,EI,PAT,VALIDATION:@standardValidation+@miniAODValidation \
  338. --filein file:step2.root \
  339. --fileout file:trackingNtuple.root \
  340. --customise Validation/RecoTrack/customiseTrackingNtuple.customiseTrackingNtuple \
  341. --runUnscheduled
  342. \end{verbatim}
  343. }
  344. \end{column}
  345. \begin{column}{0.5\textwidth}
  346. {\large \texttt{RAW}$\rightarrow$TrackingNtuple (new) }
  347. {\footnotesize
  348. \begin{verbatim}
  349. cmsDriver.py RAW2TrackingNtuple \
  350. --mc \
  351. --conditions 92X_upgrade2017_realistic_v10 \
  352. --era Run2_2017 \
  353. --eventcontent FEVTDEBUG \
  354. --datatier GEN-SIM-RECO \
  355. --step RAW2DIGI,RECO,EI,PAT,VALIDATION \
  356. --customise Validation/RecoTrack/customiseTrackingNtuple
  357. .customiseTrackingNtuple \
  358. --filein file:input.root \
  359. --fileout file:trackingNtuple.root \
  360. --runUnscheduled
  361. \end{verbatim}
  362. Additionally, hacks to remove hit truth dependencies from \texttt{TrackingNtuple}
  363. }
  364. \end{column}
  365. \end{columns}
  366. \end{frame}
  367. \backupend%
  368. \end{document}