Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions _episodes/05-MET101.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,8 @@ keypoints:
> ## After following the instructions in the jets exercise setup, make sure you have the CMS environment and create the symbolic link to MET analyzer:
>
> ~~~
> cd $CMSSW_BASE/src
> cd $CMSSW_BASE/src/Analysis
> cmsenv
> cd Analysis
> ln -s JMEDAS/MET_Analysis MET
> scram b
> ~~~
> {: .language-bash}
{: .callout}
Expand Down Expand Up @@ -99,7 +96,7 @@ $$\textrm{PUPPI}~\vec{p}_{T}^{~miss} = - \sum_{i \in all~PF~Cands} w_i~\vec{p}_{

The figure below presents the MET distribution for both PF MET and PUPPI MET in events with leptonically decaying W bosons, demonstrating the improved performance achieved with PUPPI MET.

<img src="../fig/episode5/CMS-JME-17-001_Figure_003.pdf" alt="" style="width:70%">
<img src="../fig/episode5/PF_vs_PUPPI.pdf" alt="" style="width:70%">

> ## Remember
> PUPPI MET is the default MET algorithm in Run~3.
Expand Down
15 changes: 7 additions & 8 deletions _episodes/06-METcalibration.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,8 @@ $$\vec{p}_{T}^{~miss,~Type-1} = - \sum_{i}^{nJets} \vec{p}_{T, jet}^{~corr} - \s


<figure>
<img src="../fig/episode6/CMS-JME-17-001_Figure_009.pdf" alt="" style="width:40%">
<img src="../fig/episode6/CMS-JME-17-001_Figure_013.pdf" alt="" style="width:40%">
<center><figcaption>We will revisit this in MET performance, but this figure shows a comarison between the MET scale for raw PF MET vs Type-1 PF MET.</figcaption></center>
<img src="../fig/episode6/Response-2.pdf" alt="" style="width:40%">
<center><figcaption>We will revisit this in MET performance, but this figure shows a comparison between the MET scale for raw and Type-1 corrected MET.</figcaption></center>
</figure>

### Type-1 Smear MET (For MC only)
Expand Down Expand Up @@ -147,7 +146,7 @@ We will use the same file as in the previous exercise [Exercise 1.1](https://cms
Execute the following commands inside the CMSSW environment created during setup:

~~~
cd $CMSSW_BASE/src/Analysis/MET
cd $CMSSW_BASE/src/Analysis/JMEDAS
cmsRun test/run_CMSDAS_MET_Exercise2_cfg.py
~~~
{: .language-bash}
Expand All @@ -158,7 +157,7 @@ This script will:
- Print the values of various sources of systematic uncertainties
Additionally, the script demonstrates how to access MET with different levels of corrections applied. By default, Type-1 MET is selected.

The analyzer being run using is command is `CMSDAS_MET_Analysis/plugins/CMSDAS_MET_AnalysisExercise2.cc`. The printout looks like the following:
The analyzer being run using is command is `JMEDAS/plugins/CMSDAS_MET_AnalysisExercise2.cc`. The printout looks like the following:
```
Begin processing the 1st record. Run 1, Event 138728702, LumiSection 513811 on stream 0 at 05-Jan-2025 14:40:03.942 CST
MET :
Expand All @@ -185,7 +184,7 @@ Begin processing the 1st record. Run 1, Event 138728702, LumiSection 513811 on s
{: .solution}

## Exercise 2.2
Now we make the following modifications to the configuration script `CMSDAS_MET_Analysis/test/run_CMSDAS_MET_Exercise2_cfg.py`:
Now we make the following modifications to the configuration script `JMEDAS/test/run_CMSDAS_MET_Exercise2_cfg.py`:
- Prevent printouts by setting `doprints` to `False`.
- Reduce the frequency of the report from "every" event to "every 10000" events by `modifying process.MessageLogger.cerr.FwkReport.reportEvery`.
- Run over all events in the file by updating `process.maxEvent`s from 10 to -1.
Expand All @@ -200,7 +199,7 @@ Once the process completes (it will take a few seconds), it will produce a ROOT
To generate the plot, run the following commands:

~~~
cd $CMSSW_BASE/src/Analysis/MET/scripts
cd $CMSSW_BASE/src/Analysis/JMEDAS/scripts
root -l -q 'cmsdasmetplotsexercise2.C("step2a")'
~~~
{: .language-bash}
Expand All @@ -218,7 +217,7 @@ Next, we will focus on Type-1 PF MET and study the impact of various uncertainti
To generate the corresponding plot, use the following command:

~~~
cd $CMSSW_BASE/src/Analysis/MET/scripts
cd $CMSSW_BASE/src/Analysis/JMEDAS/scripts
root -l -q 'cmsdasmetplotsexercise2.C("step2b")'
~~~
{: .language-bash}
Expand Down
8 changes: 4 additions & 4 deletions _episodes/07-METperformance.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ In this exercise, we will measure the scale of the "uncorrected" (raw) PF MET as

To start, run the following commands:
~~~
cd $CMSSW_BASE/src/Analysis/MET/scripts
cd $CMSSW_BASE/src/Analysis/JMEDAS/scripts
root -l -q 'cmsdasmetplotsexercise3.C("step3_scale_pfraw")'
~~~
{: .language-bash}
Expand All @@ -75,7 +75,7 @@ root -l -q 'cmsdasmetplotsexercise3.C("step3_scale_pfraw")'

Next, measure the MET scale using the Type-1 calibrated MET. Run the following commands:
~~~
cd $CMSSW_BASE/src/Analysis/MET/scripts
cd $CMSSW_BASE/src/Analysis/JMEDAS/scripts
root -l -q 'cmsdasmetplotsexercise3.C("step3_scale_pftype1")'
~~~
{: .language-bash}
Expand All @@ -94,7 +94,7 @@ root -l -q 'cmsdasmetplotsexercise3.C("step3_scale_pftype1")'

Now, let’s analyze the resolution of MET as a function of pT(Z) and the number of pileup vertices. To do this, run:
~~~
cd $CMSSW_BASE/src/Analysis/MET/scripts
cd $CMSSW_BASE/src/Analysis/JMEDAS/scripts
root -l -q 'cmsdasmetplotsexercise3.C("step3_resolution_pftype1")'
~~~
{: .language-bash}
Expand Down Expand Up @@ -131,7 +131,7 @@ Equipped with the ability to evaluate MET performance through scale and resoluti

To generate the corresponding plots, use the following command:
~~~
cd $CMSSW_BASE/src/Analysis/MET/scripts
cd $CMSSW_BASE/src/Analysis/JMEDAS/scripts
root -l -q 'cmsdasmetplotsexercise4.C'
~~~
{: .language-bash}
Expand Down
15 changes: 10 additions & 5 deletions _episodes/08-AnomalousMET.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ These anomalous MET events can arise from:

In such events, the MET value may be much higher than expected and does not reflect true missing energy from invisible particles (like neutrinos or dark matter candidates).

<figure>
<img src="../fig/episode8/met_scanning_fig.pdf" alt="" style="width:70%">
<center><figcaption> An example of identifying the source of anomalous MET.</figcaption></center>
</figure>

## Noisy event filters

To identify false MET, several algorithms have been developed that analyze factors such as timing, pulse shape, and signal topology.
Expand All @@ -41,7 +46,7 @@ These cleaning algorithms, or filters, run in separate processing paths, and the
Analyzers can use this decision bit to filter out noisy events. These filters are specifically designed to reject events with unusually large MET values caused by spurious signals.

<figure>
<img src="../fig/episode8/CMS-JME-17-001_Figure_004.pdf" alt="" style="width:80%">
<img src="../fig/episode8/CMS-JME-17-001_Figure_004.pdf" alt="" style="width:70%">
<center><figcaption> MET $p_T$ and leading jet $\phi$ distributions, with and without the application of event filters.</figcaption></center>
</figure>

Expand All @@ -52,12 +57,12 @@ Noisy event filters (previously called MET Filters) are stored as trigger result

In this exercise, we will show how to access the MET Filters in miniAOD. Please run the following commands:
~~~
cd $CMSSW_BASE/src/Analysis
cmsRun MET/test/run_CMSDAS_MET_Exercise4_cfg.py
cd $CMSSW_BASE/src/Analysis/JMEDAS
cmsRun test/run_CMSDAS_MET_Exercise4_cfg.py
~~~
{: .language-bash}

This example accesses the decision bits for the following MET Filters: `Beam Halo`, `HBHE`, `HBHE (Iso)`, `Ecal Trigger Primitives`, `EE SuperCluster`, `Bad Charged Hadron`, and `Bad PF Muon`. A "true" decision means the event was not rejected by the filter. The analyzer used in this example is `Analysis/MET/plugins/CMSDAS_MET_AnalysisExercise5.cc`. The printed result will look like this:
This example accesses the decision bits for the following MET Filters: `Beam Halo`, `HBHE`, `HBHE (Iso)`, `Ecal Trigger Primitives`, `EE SuperCluster`, `Bad Charged Hadron`, and `Bad PF Muon`. A "true" decision means the event was not rejected by the filter. The analyzer used in this example is `JMEDAS/plugins/CMSDAS_MET_AnalysisExercise5.cc`. The printed result will look like this:

```
Begin processing the 1st record. Run 317626, Event 178458435, LumiSection 134 on stream 0 at 28-Jun-2020 10:39:20.656 CDT
Expand All @@ -74,7 +79,7 @@ MET Filters decision:
```

> ## Question 4
> To see the output for a bad event, modify the input file in `Analysis/MET/test/run_CMSDAS_MET_Exercise4_cfg.py`.
> To see the output for a bad event, modify the input file in `JMEDAS/test/run_CMSDAS_MET_Exercise4_cfg.py`.
> Comment out the line for the first input file `cmsdas_met_METFilters1.root` and uncomment the line for the second input file `cmsdas_met_METFilters2.root`.
> Then run the code again. What changes do you notice?
{: .challenge}
Expand Down
Binary file removed fig/episode5/CMS-JME-17-001_Figure_003.pdf
Binary file not shown.
Binary file added fig/episode5/PF_vs_PUPPI.pdf
Binary file not shown.
Binary file removed fig/episode6/CMS-JME-17-001_Figure_009.pdf
Binary file not shown.
Binary file not shown.
Binary file added fig/episode8/met_scanning_fig.pdf
Binary file not shown.