Skip to content

Instr met and more analysis

A lot happened since my last MR. Let me write a summary of the important features.

In a nutshell:

  • implementing the InstrMET analysis
  • machinery to submit analysis easily

With details:

  1. Change the structure to be able to run on different analyses easily. The idea is the following:
  • a new file: HZZ2l2nu/Sources/LooperMain.cc containing the path to the AnalysisLooper.cc file
  • and now the EventTree.h is called LooperMain.h and contains different Loop functions. In the actual case, there are two loops function:
    • Loop() defined in HZZ2l2nu/Sources/HZZ2l2nuLooper.cc
    • Loop_InstrMET() defined in HZZ2l2nu/Sources/InstrMETLooper.cc
  • the choice of analysis is done in HZZ2l2nu/runHZZ2l2nu.cc

Therefore, if you want to add a new analysis, you have to do:

  • create HZZ2l2nu/Sources/MY_ANALYSISLooper.cc (get inspiration from the other analyses)
  • add your new loop function Loop_MY_ANALYSIS() in HZZ2l2nu/Includes/LooperMain.h
  • add the option to run on your analysis in HZZ2l2nu/runHZZ2l2nu.cc (get inspiration from other analyses)

Unfortunately this has a disadvantage. If you do a make, change a Looper and then redo a make, the code won't understand that a change was made. You need to do a make clean (or delete the MainLooper.o file). If you use blindly my submission code (see below) you won't notice this.

  1. Implementation of the InstrMET Looper
  • dirty for the moment but you can already see how I've implemented some things you saw during last meetings. I will make it nice and smooth to read once we are a bit further in development.
  1. New functions:
  • update of the EventTree.h (adding prescales and stuff)
  • PU reweighting (see MainLooper.h and InstrMETLooper.cc for an example of implementation)
  • add trigger and prescales function (see Utils.cc and InstrMETLooper.cc)
  • add MET filters function (see Utils.cc and InstrMETLooper.cc)
  • adding photon SF from old code (quick and dirty, but it's working: HZZ2l2nu/Includes/PhotonEfficiencySF.h)
  • moving the evt structure to HZZ2l2nu/Includes/SmartSelectionMonitor_hzz.h to make the latter independant of a looper.
  1. Small update of the README's
  • I've updated them quickly
  • but need to update more of it for the Analysis README
  • and I think I will add a file "documentation" to explain how the scripts work, how to add a new analysis,etc. But this still has to be done.
  1. Update of the submission
  • update the string matching to allow complex names as inputs in the catalog
  • add options to run on: express queue, InstrMET analysis and local copy (as a default option actually) on running node when submitting
  • update of the dataMCComparison to be able to run on different analysis. Now has to be launched like this: root -l -q -b dataMCcomparison.C("HZZanalysis", "aTest")
  1. Addition of the launchAnalysis.sh script
  • easy way to launch analysis. Just run sh launchAnalysis.sh to get the help.
  • but in short, for HZZAnalysis, just do sh launchAnalysis.sh 0; then 1; then 2; then 3 :)
  • the only think you would want to change in this script are the following lines:
#####################
### Configuration ###
#####################
#HZZanalysis
listDataset="listSamplesToRun.txt"
suffix="firstTest"

I think the the name of the variables is straightforward ;)

  1. A "Super Script" that will launch the full analysis (all steps above), publish them on your website and send you an email when done.
  • It can be annoying to wait for jobs to be sent, then to wait for jobs to be done before goign to the next step. Now you can launch the complete analysis just with one command. This will also put the final plots on your website and will send you an email when done.
  • just do ./doFullAnalysis.sh and that's it, you can even disconnect from m-machines!
  • for help, do ./doFullAnalysis.sh -h

All those new features have been tested again and again! However they are still new so if you see issues, please contact me. Furthermore, the emails are blocked for the moment, IT's don't know why, we are investigating. Also, if one wants to add more analysis, they will need to update this code also. This is easy if you follow what was done for the InstrMET analysis.

Well well, this is very nice but how should I launch the HZZAnalysis now? Two ways to do: 1)

sh launchAnalysis.sh 1 #then wait for jobs to be done (qstat...)
sh launchAnalysis.sh 2 #then wait for harvesting to be done
sh launchAnalysis.sh 3 #and wait for final plots to be produced```

2)
```./doFullAnalysis.sh #and wait for everything to be done (ps...)```
Edited by Hugo Delannoy

Merge request reports