EricDIM
This page describes some work I am doing on error-checking the CMS HCAL data.
I have a CMSSW job which makes a set of plots I call "EricDIM" (Eric's Data Integrity
Monitor). It also produces useful text output as standard output to cmsRun.
EricDIMRunSummary proposal to modify operation to collect data from
a few events in each file of a run.
See
EricFindingCMSData page for some help to locate data.
Installation
The current version of EricDIM is known to work with CMSSW version 3_4_1 (3_5_x does not work). Other versions are likely to work too.
(Get from
Web subversion interface
if you don't have the
svn
command.)
NOTE: svn repository for this software is down; eventually code will be moved to another. Meanwhile, you can get a tarball here:
Eric_2014-07-14.tar.gz
.
scramv1 project CMSSW CMSSW_x_x_x
mkdir CMSSW_x_x_x/cfg (optional, but I usually work from this directory)
cd CMSSW_x_x_x/src
eval `scramv1 runtime -sh` (or -csh)
mkdir Eric
cd Eric
svn co svn://cms1.bu.edu/Eric/EricDIM
cd EricDIM
scramv1 b
It is also recommended to check out the
EricRender tool to make PDF file of the plots at the same time.
I usually put it at the CMSSW_x_x_x/src level, like so:
cd ...CMSSW_x_x_x/src
svn co svn://cms1.bu.edu/Eric/EricRender
Configuration
Script below needs some work. Some arguments to
PoolSource must be deleted (all but file name). Also, when invoking it, start with "/store/data...".
I have written an ugly perl script available here:
make_castor_python.pl
.
Invoke it as:
./make_castor_python.pl /castor/cern.ch/cms/store/data/Commissioning09/RandomTriggers/RAW/v3/000/118/878 -r 118878
This script creates a python CMSSW configuration file, plus two shell scripts
do_it.sh and
do_render.sh which
will run the CMSSW
EricDIM job and render the plots. Please edit the
make_castor_python.pl script first
to fit your environment.
Configuration parameters for
EricDIM module:
Parameter |
Description |
Default |
vint32 feds |
List of FEDs to process (700..731) |
all FEDs found (is this right?) |
int32 dumpLevel |
Debug data dump level (0=no dump, 1=FED headers, 2=HTR headers) |
0 |
bool debug |
Turn on code debug output |
false |
uint32 dccVersion |
DCC firmware revision (required for < 0x2c18) |
0 |
bool doCRC |
Check CRC on every event (slow!) |
false |
string RootFileName |
Output file name for plots |
"EricDIMnnnn.root" (from run number) |
bool dumpBinary |
Dump binary data (disables normal histogramming) |
false |
string BinaryFileName |
File for binary dump (0xdeadbeef format) |
"EricDIMnnnn_raw.dat" (from run number) |
int32 first_eventnumber |
First event number to process |
1 |
int32 last_eventnumber |
Last event number to process |
0xffffff |
int32 abort_count |
Force abort of CMSSW after this number of events [1] |
|
bool CheckQIEData |
Check front-end data for capID rotation, link errors [2] |
false |
bool SuppressQIEOK |
Suppress filling Digi 'AOK' and 'ZS' histogram bins |
false |
bool ForceWriteHistos |
Force explicit writing of histograms to root file[3] |
false |
int32 check_evn_count |
Number of EvN mismatch to print |
0 |
int32 check_bcn_count |
Number of BcN mismatch to print |
0 |
int32 check_orn_count |
Number of OrN mismatch to print |
0 |
Notes:
- This helps overcome a bug where CMSSW hangs or crashes if a data file was not closed correctly. When this event count is reached, the endJob() method is called to write out the root file and text reports, then abort().
- Currently this produces text-only output
- Bug/feature in CMSSW_2_1_6 at least with RAFF data causes duplicate histograms in root file if source is NewEventStreamFileReader and this param is true but results in missing histograms if source is PoolSource and this param is false. Sigh.
More Documenation
Sample Plots --
EricDIM_run166429.pdf
Plot Documentation --
EricDimPlotDescriptions
Text Output --
EricDimTextOutput
Older Releases
Releases for CMSSW_2_0_5 (can read data from 4/29/08 test run):
Preliminary releases (known to work with CMSSW_1_8_0)
Accessories
I've written a Root script to render the resulting plots as a PS file.
It is available at my
subversion repository
(web)
or command line:
cd ...CMSSW_x_x_x/src
svn co http://cms1.bu.edu/Eric/EricRender
It produces a PS file as a fixed file name "Eric_Plots.ps" or something
like that. Convert to PDF with 'ps2pdf'. Run it like this from the CMSSW_x_x_x/cfg directory:
root -b -q '../src/EricRender/EricRender.cc("EricDIM_run040922.root")'
Here is a
perl script
which will automatically
make the config files... feed it a list or root or dat file names as arguments. It creates as output a .cfg file,
and two shell scripts called
do_it.sh which runs CMSSW and captures the output,
and another called
do_render.sh which runs the
EricRender.cc root script to make
a PDF file, and finally copies it somewhere.
Note: this script may need some editing
to work for you... it has some assumptions about my setup in it.
Here is a set of tools I call "AutoDIM" which can automatically query DBS, determine which
run(s) have HCAL FEDs, and run
EricDIM on them.
--
EricHazen - 24-Feb-2010