Single diffractive dijet production software page

Code and tags

The single diffractive dijet analysis software resides in DiffractiveForwardAnalysis/SingleDiffractiveDijetsAnalysis

To use it, follow the procedure reported here, tested in CMSSW_2_2_9 on the Winter09 Fast Sim Production.

In the CMSSW_2_2_9/src directory check out and compile the following packages:

cvs co -r v02-fastsim DiffractiveForwardAnalysis/SingleDiffractiveDijetsAnalysis

cvs co -r V00-00-01 DataFormats/CMS.CastorReco
cvs co -r V00-01-00 FastSimulation/ForwardDetectors
cvs co -r V00-01-00 RecoLocalCalo/Castor
cvs co SimDataFormats/GeneratorProducts
(needed to run the FastSimulation of the CASTOR detector)

cvs co -r V01-07-02 CondFormats/JetMETObjects
cvs co -r V01-08-13 JetMETCorrections/Configuration
cvs co -r V02-09-02 JetMETCorrections/Modules
cvs co -r V01-08-00 JetMETCorrections/Algorithms
(Winter09 jet corrections in CMSSW_2_2_X)

cvs co -r CMSSW_2_2_9 PhysicsTools/HepMCCandAlgos
rm PhysicsTools/HepMCCandAlgos/plugins/
cvs co PhysicsTools/HepMCCandAlgos/plugins/
scram b

This version of the code is meant to be run on all Winter09FastSim signal and background samples and produces results for different HF and CASTOR noise threshold setting.

Analysis software

The analysis is organized in two steps:

  1. sample reduction (skimming)
  2. analysis of the skimmed samples

Skimming code

The script used for the skim process is It prepares the CMSSW configuration file ( and crab.cfg file and submits jobs to the Grid using CRAB.

The skimmed sample contains:

  • CMS.CaloTowers
  • CorrectedCaloJets (needs to include uncorrected CaloJets)
  • GenJets (sisCone5)
  • genEventKTValue (pthat for Herwig)
  • genEventScale (pthat for Pythia)
  • recoGenParticles
  • CASTORTowers
  • recoTracks
  • TriggerResults
The skimming code also applies a selection at trigger level: only events that pass the HLT_DiJetAve30 conditions are saved.

Set your configuration by editing the script (see next section) and run it:

chmod +x

How to configure skim jobs

The following parameters need to be configured by the user before running the script
  • storage_element: storage element where skimmed samples are going to be stored; UERJ (default) is a good option
  • njobs: the number of jobs to be submitted
  • correction (): the correction service to be used
  • cross_section (): the cross section relative to the analyzed sample; it is not used by the present code
  • dataset (): the dataset to be skimmed
  • uiworkingdir (): the crab working directory to be created; it will also be the base of the skimmed dataset name
  • remotedir (): the directory where skimmed samples will be stored in the chosen storage element . Note: *every time* a job is submitted, this parameter has to be changed to something never used
  • sewhitelist (): list of storage elements (SE); only jobs accessing data at SE in the chosen sewhitelist will be created and then submitted
  • generator (): the generator used for MC production
The parameters marked by () need to be configured for each sample one wants to skim. More information about CRAB settings can be found here.

For each dataset to be skimmed, set the corresponding parameters and uncomment the line

placed the end of the parameter list; when the script is run, this will create the and crag.cfg and submit the job.

Skimmed dataset publication

To publish the skimmed data on DBS type:
crab -publish -c UI_WORKING_DIR
where UI_WORKING_DIR has to be the same directory configured in the script script
By default, data will be published on dbs_ph_analysis_02. To change it, follow instructions given in the CRAB documentation page.

Data analysis code

The directory SingleDiffractiveDijetsAnalysis/src contains the following files, each dedicated to a particular step of the analysis:

The code runs on skimmed data using the script which creates the CMSSW configuration file ( and crab.cfg file and submits jobs to the Grid using CRAB.

Set your configuration by editing the script (as described below) and run it:

chmod +x

How to Configure analysis jobs

The following parameters can be configured in

  • HF and CASTOR noise thresholds. Lines like
Hf1Castor100 = {"name":"Hf1Castor100","hfnoise":"0.1","castornoise":"10.0"}
are used to set different HF and CASTOR noise thresholds. The command parametersList.append(...) creates a new path which corresponds to the chosen HF and CASTOR threshold configuration (0.1 GeV for HF and 10 GeV for CASTOR, in the example). One can add as many paths as one wants, but has to take into account the increasing size of the output file.
GenLevel CASTOR threshold are fixed to 10.0 GeV.

  • Job Configuration. Lines like
generator = 'pomwig'
dataset = '/PomWigDiJetsMinusPt80/fsilva-PomWigDiJetsMinusPt80_Skim_FastSim_v1-d9106ce61bbaa279a796fd9486526c79/USER'
#njobs = '2000'
uiworkingdir = 'PomWigDiJetsMinusPt80_Ana_UIDIR'
##options: uerj,kfki,pic
##use '' for no se_white_list
sewhitelist = 'uerj'
ConfigHandler(generator, lumi, rgsp, eff, parametersList, dataset, njobs, uiworkingdir, sewhitelist)
configure and submit jobs for different datasets. For each of them, the user has to set the following parameters:
  • generator: generator used for MC production; it makes difference on the weight
  • dataset: skimmed dataset to be analyzed
  • uiworkingdir: name of the crab working directory. It will be crated in the directory where the script is run; in its subdirectory crabCallerBackup one can find the and crab.cfg used.
As for the skimming, the script will submit jobs only for datasets for which the line
ConfigHandler(generator, lumi, rgsp, eff, parametersList, dataset, njobs, uiworkingdir, sewhitelist) 
is uncommented.


The code will dump out several root files (one for each job). They have to be merged in the following way (hadd is a good tool for this):

ALL.root: all files
PomWigDiJets.root: Signal files
QCD.root: Background files

plotProducer.C is a ROOT macro which will create multiplicity and kinematical plots. There are a few things to be configured before running the macro:

  • Lines like
define directories (inside the root files, check them) to be opened to produce kinematical plots. They need to exist inside the ROOT file and correspond to different threshold levels configured in
  • Lines like
   data_[0] = "sdDijetsPlotterInfHf2Castor100";
   data_[1] = "sdDijetsPlotterInfRandomHf2Castor100";
   //data_[2] = "N^{ max}_{ track} = Inf";
   data_[2] = "No N^{ max}_{ track} cut";

   data_[0] = "sdDijetsPlotter5Hf33Castor100";
   data_[1] = "sdDijetsPlotter5RandomHf33Castor100";
   data_[2] = "N^{ max}_{ track} = 5";
   //data_[2] = "No N^{ max}_{ track} cut";
do the same for multiplicity plots. Each block corresponds to a different HF - CASTOR threshold configuration, but with the additional parameter n_track cut. In the examples above, the first block corresponds to an HF threshold of 0.2 GeV, a CASTOR threshold of 10 GeV and no track cut (Inf); the second block corresponds to an HF threshold of 3.3 GeV, a CASTOR threshold of 10.0 GeV and an n_track cut = 5.

To execute the macro type

root -b -q plotProducer.C

In the end there will be a set of directories, each corresponding to a different type of plot (kinematical of multiplicity), HF and CASTOR threshold level and n_track cut.


Responsible: Main.Grzegorz.Brona
Last reviewed by: Never reviewed

Edit | Attach | Watch | Print version | History: r16 < r15 < r14 < r13 < r12 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r16 - 2012-01-02 - DavidDEnterria
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback