CMS.FourVector
Complete:
Goal of the page
This page is intended to familiarize you with the
FourVector HLT Source and Client and histograms they produce.
Contacts
Introduction
Usage of the algorithm
Explain what a user needs to know when using the algorithm:
- This package is primarily intended for centralized DQM for Offline, Online, and CMS.RelVal. However, it is a very useful starting point for any HLT analysis.
- Code that runs at in RECO+DQM step at T0 resides in the package DQMOffline/Trigger. Smaller version of the code residing DQM/HLTEvF. There is also code in HLTriggerOffline/Common that runs in
- Default parameters are available in DQMOffline/Trigger/python/FourVectorHLTOffline_cfi.py
- how (and why) to change the default parameters (need to complete)
- products (need to complete)
Algorithm documentation or Implementation details
Explaination of the design of the algorithm to ensure that the software can be maintained
once the existing authors have left:
- design arguments - rely on Provenance, HLTConfigProvider, TriggerEvent, TriggerResults. For monitoring RECOed data, need RECO objects in the event. For monitioring MC data, need genParticles and genJets.
- description of algorithm - This is a generic tool that monitors any path found in the HLT Menu.
- The source module makes plots of the following distributions
- Et,
- Eta,
- Phi
at the following stages L1, HLT, RECO, (and MC in case of CMS.RelVal),
- dR,
which is the delta R (eta-phi) of the best matched object b/w different stages (L1, HLT, RECO, MC).
- maxEta and minEt cuts were applied when filling these histos. For details see the python config file used such as
DQMOffline/Trigger/python/FourVectorHLTOffline_cfi.py, or in case of CMS.RelVal in
HLTriggerOffline/Common/python/FourVectorHLTriggerOffline_cfi.py
- From the "source" distribuotion, the "client" module derives turn on curves, showing efficiences:
- L1 to RECO
- L1 to MC
- HLT to L1
- HLT to RECO
- HLT to MC
- RECO to MC
- There are two types of turn-on curves that we calculate. One that requires matching in R-space (eta-phi) b/w objects at different stages, and one that requires no matching. The later are labeled in the histogram name by the suffix UM , for UnMatched.
Histograms (31X ) and the GUI
- Histograms are located in the folder "HLT/CMS.FourVector" or "HLT/CMS.FourVector_Val" in the case of DQM and CMS.RelVal, respectively. In these directories there are two folders "client" and "source". The former directory holds plots of turn-on curves made by the client, and the later contains histograms made by the "source". In each of them there are folder for each HLT path found in the Menu used in the run.
- Here are shifter instructions and navigations through DQM GUI Offline
.
source histograms
- located in "HLT/CMS.FourVector/paths/HLT_PATH_NAME"
- Example 1: FV source plots for HLT_Mu9 are in FourVector/paths/HLT_Mu9/
- histogram HLT_Mu9_wrt__l1EtL1 shows the distribution of Et of the L1 extra object in the seed of the HLT path HLT_L1Mu9, for events that came on any HLT path trigger.
- Example 2: FV source plots for HLT_Jet50 are in FourVector/paths/HLT_Jet50/
- histogram HLT_Jet50__wrt__OnEtaOnPhiOn shows the 2D distribuions of Eta vs Phi of ONLINE (HLT) object for the HLT path HLT_Jet50, for events that came on any HLT path trigger.
client histograms
These histograms are efficiency turn-on curves. They are always done in the coordinates of the denominator. They are located in "HLT/CMS.FourVector/paths/HLT_PATH_NAME/custom-eff". With the example of HLT_Mu9 path, we describe how various efficiencies are derived.
- Example: some FV client plots for HLT_Mu9 are in FourVector/paths/HLT_Mu9/custom-eff/
- histogram HLT_Mu9_wrt__l1Et_Eff_OnToL1 = turn-on curve On to L1 (Online to L1 i.e. HLT to L1) in the L1 coordinates in the HLT path HLT_Mu9, for events that came on any HLT path trigger, meaning that there was no preselection of events. In this case, denominator is Et of all L1 objects that passed L1 requirement (this case L1_SingleMu7). Numerator is Et of all the L1 objects that passed L1_SingleMu7 requirement and were matched (in eta-phi) to an object of HLT_Mu9. Two L1 objects cannot be matched to the same HLT object.
- histogram HLT_Mu9_wrt__l1Et_Eff_OnToL1UM = turn-on curve On to L1 (Online to L1 i.e. HLT to L1) in the L1 coordinates in the HLT path HLT_Mu9, for events that came on any HLT path trigger, meaning that there was no preselection of events. In this case, denominator is Et of all L1 objects that passed L1 requirement (this case L1_SingleMu7). Numerator is Et of all the L1 objects that passed L1_SingleMu7 requirement given that at least one objects of HLT_Mu9 is found in the event. No matching is required between L1 objects and the HLT object(s).
- histogram HLT_Mu9_wrt__offEtaoffPhi_Eff_OnToOff = turn-on curve On to Off (Online to Offline i.e. HLT to RECO) in the Offline (RECO) coordinates eta-phi for events that came on any HLT path trigger, meaning that there was no preselection of events. In this case, denomintor is eta,phi of all reconstructed objects (in the case of muons it is recoMuon_muons_). Numerator is eta,phi of all the reconstucted muons that were matched (in eta-phi) to an object of HLT_mu9. Two reco objects cannot be matched to the same HLT object.
- histogram HLT_Mu9_wrt__offEtaoffPhi_Eff_OnToOffUM = turn-on curve On to Off (Online to Offline i.e. HLT to RECO) in the Offline (RECO) coordinates eta-phi for events that came on any HLT path trigger, meaning that there was no preselection of events. In this case, denomintor is eta,phi of all reconstructed objects (in the case of muons it is recoMuon_muons_). Numerator is eta,phi of all the reconstucted muons given that at least one objec of HLT_Mu9 is found in the event. No matching is required between reco objects and the HLT object(s).
For the matching required see the input in the config files
DQMOffline/Trigger/python/FourVectorHLTOffline_cfi.py, or in case of
RelVal in
HLTriggerOffline/Common/python/FourVectorHLTriggerOffline_cfi.py
- to look for turn on curves of
- - L1 to RECO , look for histogram names in "client" directory that contain in the name "Eff_L1ToOff" or "Eff_L1ToOffUM"
- - L1 to MC , look for histogram names in "client" directory that contain in the name "Eff_L1ToMc" or "Eff_L1ToMcUM"
- - HLT to L1 , look for histogram names in "client" directory that contain in the name "Eff_OnToL1" or "Eff_OnToL1UM"
- - HLT to RECO , look for histogram names in "client" directory that contain in the name "Eff_OnToOff" or "Eff_OnToOffUM"
- - HLT to MC , look for histogram names in "client" directory that contain in the name "Eff_OnToMc" or "Eff_OnToMcUM"
- - RECO to MC , look for histogram names in "client" directory that contain in the name "Eff_OffToMc" or "Eff_OffToMcUM"
Instructions to run FV on 2010B data using CRAB
cmsrel CMSW_3_8_3
cd CMSSW_3_8_3/src
cmsenv
cvs co -r V06-05-23 DQMOffline/Trigger
scramv1 b DQMOffline/Trigger
cp /afs/cern.ch/user/r/rekovic/public/DQMOffline-Trigger/step2_DT1_1_DQM.py .
cp /afs/cern.ch/user/r/rekovic/public/DQMOffline-Trigger/step3_DT1_1_HARVESTING.py .
Submit jobs for one run using crab
# Copy my crabFV.cfg file and edit it to use the run number you want (or dataset you want either Mu or Jet)
cp /afs/cern.ch/user/r/rekovic/public/crabFV.cfg .
# Setup the environment for CRAB
source /afs/cern.ch/cms/ccs/wm/scripts/Crab/crab.sh
# Submit CRAB job
crab -cfg crabFV.cfg -create -submit
# check the status of your jobs
crab -status
# get output once the jobs done
crab -getoutput all
# change the input files to be output root files you just retrieved from CRAB in the previous step
# Run the Harversting
cmsRun step3_DT1_1_HARVESTING.py
Submit crab jobs for multiple runs and multiple PDs (Mu and Jet) using multicrab
# copy files adjusted for automated multi-run usage
cp /afs/cern.ch/user/r/rekovic/public/step3_DT1_1_HARVESTING.py .
cp /afs/cern.ch/user/r/rekovic/public/makeHarvesting.sh .
cp /afs/cern.ch/user/r/rekovic/public/myRuns.txt .
cp /afs/cern.ch/user/r/rekovic/public/curRun_files_cfi.py DQMOffline/Trigger/python
scramv1 b DQMOffline/Trigger/python
# Setup the environment for CRAB (if you have not done it already)
source /afs/cern.ch/cms/ccs/wm/scripts/Crab/crab.sh
# Copy my bash script to your local directory
cp /afs/cern.ch/user/r/rekovic/public/makeMulticrabCfg.sh .
# create a text file with a list of runs you want to process
# vi myRuns.txt
# make a multicrab cfg file by passing the runlist.txt file to the script
# and streaming the output
./makeMulticrabCfg.sh myRuns.txt > multicrab.cfg
# Submit multiCRAB job
multicrab -create -submit
# check the status of your jobe
multicrab -status
# get output once the jobs done
multicrab -getoutput all
# Run the automated harversting locally using the original runlist.txt file
./makeHarvesting.sh myRuns.txt
- Upload the DQM root files on some GUI server if possible.
Efficiency curves from the output of FourVector
Copy an example ROOT script.
cp /afs/cern.ch/user/r/rekovic/public/TriggerPerformanceGroup/FV_STA/fvEffPlots.C .
This script overlays the turn on curves from two different runs. It reads histograms from a folder of DQM root files and stores them in "data" and "mc" folders. Edit the script and change the input file(s) and the respective folders.
For example, if the output of the previous step was for the run XXXXXX, in the script change from
readHistDir("DQM_V0001_R000136100__MinimumBiasPD__Menu_All__FV.root","data","DQMData/Run 136100/HLT/Run summary/CMS.FourVector/paths/");
to
readHistDir("DQM_V0001_R000XXXXXX__MinimumBiasPD__Menu_All__FV.root","data","DQMData/Run XXXXXX/HLT/Run summary/CMS.FourVector/paths/");
do the same thing for the reference root file. For example, if your reference DQM file was for the run YYYYYY, in the script change from
readHistDir("DQM_V0001_R000136100__MinimumBiasPD__Menu_All__FV.root","mc","DQMData/Run 136100/HLT/Run summary/CMS.FourVector/paths/");
to
readHistDir("DQM_V0001_R000YYYYYY__MinimumBiasPD__Menu_All__FV.root","mc","DQMData/Run YYYYYY/HLT/Run summary/CMS.FourVector/paths/");
Run the root script
root -l fvEffPlots.C
Review status
Responsible: Vladimir Rekovic
Last reviewed by: Vladimir Rekovic, Aug 31, 2009