Explorar el Código

Updates to Jan 25 presentation

Caleb Fangmeier hace 6 años
padre
commit
38cf6c7c13

BIN
docs/presentation_2018_01_25/figures/Tau_Efficiency.png


BIN
docs/presentation_2018_01_25/figures/Tau_Purity.png


BIN
docs/presentation_2018_01_25/figures/Truth_Matching.png


BIN
docs/presentation_2018_01_25/main.pdf


+ 46 - 5
docs/presentation_2018_01_25/main.tex

@@ -17,6 +17,8 @@
 
 \usetheme[]{bjeldbak}
 
+% Note: Z-veto wouldn't really work for Z->tautau
+
 \begin{document}
 
     \title[]{Adding Tau Leptons to TTTT X-Section Measurement}
@@ -40,7 +42,6 @@
             \item \textbf{Goal:} Investigate how the TTTT cross-section measurement could be improved by adding taus to the lepton selection.
             \item To avoid the work of modifying the existing analysis looper to include taus, a simple ``mock''\footnote{\url{https://github.com/cfangmeier/FTAnalysis/tree/tau_studies/studies/tau}} analysis was implemented from scratch which attempts to replicate the main features of the real analysis.
             \item Runs on same \texttt{CMS4} nTuples as existing analysis.
-            \item some text
         \end{itemize}
     \end{frame}
 
@@ -49,8 +50,9 @@
             \begin{column}{0.4\textwidth}
                 \begin{itemize}
                     \item Attempt to replicate AN yields with mock analysis using only electrons and muons
-                    \item Generally overestimate yield (wrt analysis note)by 30-50\%
+                    \item Generally overestimate yield (wrt analysis note)by 10-30\%. (However this doesn't include any scale factors)
                     \item But shapes tend to match, so go ahead and add taus to make a comparison.
+                    \item All data normalized to 35.9 $\mathrm{fb}^{-1}$.
                 \end{itemize}
             \end{column}
             \begin{column}{0.59\textwidth}
@@ -88,8 +90,10 @@
             \end{column}
         \end{columns}
         \begin{itemize}
-            \item Above figures show yields when when there are zero selected taus(left) or one selected tau(right).
+            \item Above figures show yields when there are zero selected taus(left) or one selected tau(right).
             \item Orange Lines show yields when the tau is required to be truth-matched.
+            \item About 60\% of taus are fakes!
+            \item Adding taus is clearly not helpful at all in SS regions(1-6), but maybe helpful in multi-lepton regions(7-8)
         \end{itemize}
     \end{frame}
 
@@ -97,7 +101,7 @@
         \begin{columns}
             \begin{column}{0.4\textwidth}
                 \begin{itemize}
-                    \item Previous slide indicates $\approx30-40$\% of taus are fakes.
+                    \item Previous slide indicates $\approx60-70$\% of taus are fakes.
                     \item Figure shows the yields for events in any SR broken down by \# of generator-level taus and \# of selected taus.
                     \item The figure on the right corroborates the previous slide; In TTTT, for example, only about 40\% of events with 1 selected tau have 1 or more real taus.
                 \end{itemize}
@@ -119,11 +123,48 @@
         \end{columns}
         \begin{itemize}
             \item Ongoing investigation of more fine binning\footnote{\url{https://github.com/cfangmeier/FTAnalysis/blob/tau\_studies/studies/tau/Yield.C#L261}}.
+            \item Same conclusions: SS show no gain, and multilepton may give marginal improvements
         \end{itemize}
     \end{frame}
 
     \begin{frame}{Conclusions}
-        some text
+        \begin{itemize}
+            \item Investigated any benefit to including taus in measurement.
+            \item With current tau selection no gain in SS
+            \item Possibly very small (few percent) gain in multilepton categories
+            \item Large amount of work needed to create data-driven estimate of fake-tau background
+            \item Propose to document this and shelve it for now
+        \end{itemize}
+    \end{frame}
+
+    \begin{frame}{Backup - Tau Reco Performance}
+        \begin{columns}
+            \begin{column}{0.5\textwidth}
+                \begin{figure}
+                    \includegraphics[width=\textwidth]{figures/Tau_Efficiency.png}
+                \end{figure}
+                \centering
+                Tau Selection Efficiency (reco + id + $P_T>20\mathrm{GeV}$)
+            \end{column}
+            \begin{column}{0.5\textwidth}
+                \begin{figure}
+                    \includegraphics[width=\textwidth]{figures/Tau_Purity.png}
+                \end{figure}
+                \centering
+                Tau Purity (matched w/ generator-level tau at $\delta R<0.3$)
+            \end{column}
+        \end{columns}
+    \end{frame}
+
+    \begin{frame}{Backup - Truth Matching Identity}
+        \begin{figure}
+            \includegraphics[width=\textwidth]{figures/Truth_Matching.png}
+        \end{figure}
+        \centering
+        Tau Selection Efficiency (reco + id + $P_T>20\mathrm{GeV}$)
+        \begin{itemize}
+            \item \textbf{Note: } The flag for picking generator final state particles doesn't actually include the hadronic particles so it's likely that many of the ``Nothing'' taus really belong in the ``Hadron'' category. (Will be fixed in future)
+        \end{itemize}
     \end{frame}
 
 \end{document}

+ 1 - 1
filval-python

@@ -1 +1 @@
-Subproject commit 46d3f728cea11d244fad940b4d5c1760906d58c6
+Subproject commit 111a2f24eb792dc40db991a810bcf6bf90a60fa3

+ 31 - 6
yields.py

@@ -310,6 +310,26 @@ def plot_event_obs_stack(rss, in_signal_region=True):
 #     ttw, ttz, tth = [get_sr(rs) for rs in rss]
 #     pass
 
+@decl_plot
+def plot_tau_efficiency(rss):
+    _, ((ax_tttt, ax_ttw), (ax_ttz, ax_tth)) = plt.subplots(2, 2)
+    tttt, ttw, ttz, tth = list(map(lambda rs: hist(rs.tau_efficiency_v_pt), rss))
+
+    def _plot(ax, dataset):
+        plt.sca(ax)
+        h = {'TTTT': tttt,
+             'TTW': ttw,
+             'TTZ': ttz,
+             'TTH': tth}[dataset]
+        hist_plot(h, stats=False, label=dataset, include_errors=True)
+        plt.text(200, 0.05, dataset)
+        plt.xlabel(r"$P_T$(GeV)")
+
+    _plot(ax_tttt, 'TTTT')
+    _plot(ax_ttw, 'TTW')
+    _plot(ax_ttz, 'TTZ')
+    _plot(ax_tth, 'TTH')
+
 @decl_plot
 def plot_tau_purity(rss):
     _, ((ax_tttt, ax_ttw), (ax_ttz, ax_tth)) = plt.subplots(2, 2)
@@ -321,7 +341,7 @@ def plot_tau_purity(rss):
              'TTW': ttw,
              'TTZ': ttz,
              'TTH': tth}[dataset]
-        hist_plot(h, stats=False, label=dataset)
+        hist_plot(h, stats=False, label=dataset, include_errors=True)
         plt.text(200, 0.05, dataset)
         plt.xlabel(r"$P_T$(GeV)")
 
@@ -332,8 +352,8 @@ def plot_tau_purity(rss):
 
 
 if __name__ == '__main__':
-    data_path = 'data/output_new_sr_new_id_binning/'
-    save_plots = True
+    data_path = 'data/output_testing/'
+    save_plots = False
     # First create a ResultSet object which loads all of the objects from root file
     # into memory and makes them available as attributes
     rss = (ResultSet("tttt", data_path+'yield_tttt.root'),
@@ -366,9 +386,11 @@ if __name__ == '__main__':
     yield_v_gen_0tm = plot_yield_v_gen, (rss, 0)
     yield_v_gen_1tm = plot_yield_v_gen, (rss, 1)
     yield_v_gen_2tm = plot_yield_v_gen, (rss, 2)
-    # tau_purity = plot_tau_purity, (rss)
     nGen_v_nSel = plot_nGen_v_nSel, (rss,)
 
+    tau_efficiency = plot_tau_efficiency, (rss, )
+    tau_purity = plot_tau_purity, (rss, )
+
     # Now assemble the plots into figures.
     plots = [
         Plot([[yield_tau_ignore_tau]],
@@ -405,6 +427,11 @@ if __name__ == '__main__':
              'TTZ - Event Observables (In SR)'),
         Plot([[tth_event_obs_in_sr]],
              'TTH - Event Observables (In SR)'),
+
+        Plot([[tau_efficiency]],
+             'Tau Efficiency'),
+        Plot([[tau_purity]],
+             'Tau Purity'),
         # Plot([[tttt_event_obs]],
         #      'TTTT - Event Observables (All Events)'),
         # Plot([[ttw_event_obs]],
@@ -428,8 +455,6 @@ if __name__ == '__main__':
         #      'Signal Strength'),
         # Plot([[event_obs_stack]],
         #      'Event Observables'),
-        # Plot([[tau_purity]],
-        #      'Tau Purity'),
     ]
 
     # Finally, render and save the plots and generate the html+bootstrap