IC86_2011¶
Documentation and examples for running L1 and L2 filtering on IC86_2011 data and simulation.
Environment Setup¶
First obtain a copy of the IceRec meta-project:
$ svn co http://code.icecube.wisc.edu/svn/meta-projects/icerec/releases/IC2011-L2_V12-08-00_IceSim4compat_V3 src
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ../src
$ make
Note
The IceRec version listed here is the special L2 variant for 2011, with IceSim 4 compatibility.
Hint
make -j12
on servers will run 12 threads of compiling in parallel,
building your meta-project faster.
Possible Errors¶
glshovel
A glshovel cmake error like this:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: GLUT_Xmu_LIBRARY (ADVANCED) linked by target "glshovel" in directory /scratch/dschultz/IC86_2011/src/glshovel -- Configuring incomplete, errors occurred!
The solution is to delete the glshovel project, since it is old and unsupported.
$ rm -rf ../src/glshovel
Experimental Data¶
An example of how to run L2 on a PFFilt file (not that you should ever do this yourself, as production has already done it.)
I am assuming you have a GCD and i3 file:
$ cp /data/exp/IceCube/2011/filtered/PFFilt/0608/PFFilt_PhysicsTrig_PhysicsFiltering_Run00118300_Subrun00000000_00000000.tar.bz2 .
$ cp /data/exp/IceCube/2011/filtered/level2/0608/Level2_IC86.2011_data_Run00118300_0608_GCD.i3.gz .
Next, load the environment:
$ ./env-shell.sh
************************************************************************
* *
* W E L C O M E to I C E T R A Y *
* *
* Version icerec.releases.IC2011-L2_V12-08-00_IceSim4compat r124504 *
* *
* You are welcome to visit our Web site *
* http://icecube.umd.edu *
* *
************************************************************************
Icetray environment has:
I3_SRC = /scratch/dschultz/IC86_2011/src
I3_BUILD = /scratch/dschultz/IC86_2011/build
I3_PORTS = /cvmfs/icecube.wisc.edu/py2-v1/RHEL_6_x86_64/i3ports
Python = Python 2.7.3
The level2_Master.py
script has various options:
$ python lib/icecube/std_processing/level2_Master.py -h
Logging configured from file ./log4cplus.conf
Loading daq-decode........................................ok
Loading libBadDomList.....................................ok
Module iceprod.modules not found. Will not define IceProd Class
Usage: level2_Master.py [options]
Options:
-h, --help show this help message and exit
-i INDIR, --indir=INDIR
directory where the input files are located
-o OUTDIR, --outdir=OUTDIR
write output to this directory
-t, --tar Input files are tared in the data warehouse
-m, --mc do we process MC or data?
-q, --qify Should we Qify MC? By default MC files are already in
Q format
-r RUNNUM, --runnumber=RUNNUM
run to process (for MC: dataset to process)
-f FILENUM, --filenumber=FILENUM
for data: run part number, for MC: file number of
dataset
-n NUMEVENTS, --nevents=NUMEVENTS
Number of events to process (default: all)
-d, --dogcd Use the Database to get geometry, calibration and
detector status
-g GCDFILE, --gcdfile=GCDFILE
Manually specify the GCD file to be used. For data,
you should generate a GCD first
-y MCTYPE, --mctype=MCTYPE
type of MC to be processed: corsika, corsika_icetop,
nue, numu, nutau, wimp_sun, wimp_earth
-w WIMPMASS, --mass=WIMPMASS
only for WIMP MC: mass of the simulated WIMP
-c WIMPCHANNEL, --chan=WIMPCHANNEL
only for WIMP MC: decay channel of the simulated WIMP
-a, --allrootfiles should we write a .root file for every input file?
-s, --domsimulator specify this option if the data was produced with
DOMSimulator
For experimental data, most of the default configuration is fine. Use as such:
$ python lib/icecube/std_processing/level2_Master.py -i . -o . -r 118300 -f 0 -t -g Level2_IC86.2011_data_Run00118300_0608_GCD.i3.gz
Warning in <TUnixSystem::SetDisplay>: DISPLAY not set, setting it to
Logging configured from file ./log4cplus.conf
Loading daq-decode........................................ok
Loading libBadDomList.....................................ok
Module iceprod.modules not found. Will not define IceProd Class
GCD is used
GCD file to use: Level2_IC86.2011_data_Run00118300_0608_GCD.i3.gz
PFFilt_PhysicsTrig_PhysicsFiltering_Run00118300_Subrun00000000_00000000.meta.xml
PFFilt_PhysicsTrig_PhysicsFiltering_Run00118300_Subrun00000000_00000000.i3
list of input files to actually process: ['Level2_IC86.2011_data_Run00118300_0608_GCD.i3.gz', './PFFilt_PhysicsTrig_PhysicsFiltering_Run00118300_Subrun00000000_00000000.i3']
Output file will be written to .
going to process all events
!!! DOMSimulator tweaks are disabled !!!
... (many, many lines of output) ...
Note
This will have many false positive error messages, which you can ignore.
This may take a while for a full PFFilt file (2-4 hours is normal).
At the end, you should get files named:
Level2_IC86.2011_data_Run00118300_Part00000000.i3.bz2
Level2_IC86.2011_data_Run00118300_Part00000000.root
Level2_IC86.2011_data_Run00118300_Part00000000.xml
Level2_IC86.2011_data_Run00118300_Part00000000_EHE.i3.bz2
Level2_IC86.2011_data_Run00118300_Part00000000_IT.i3.bz2
Level2_IC86.2011_data_Run00118300_Part00000000_SLOP.i3.bz2
Level2_IC86.2011_data_Run00118300_Part00000000_gaps.txt
Simulation¶
An example of how to run L2 on a generated simulation file.
I am assuming you have a GCD and i3 file:
$ cp /data/sim/IceCube/2011/generated/CORSIKA-in-ice/10809/00000-00999/IC86.2011_corsika.010809.000000.i3.bz2 .
$ cp /data/sim/sim-new/downloads/GCD/GeoCalibDetectorStatus_IC86.55697_corrected_V2.i3.gz .
Next, load the environment:
$ ./env-shell.sh
************************************************************************
* *
* W E L C O M E to I C E T R A Y *
* *
* Version icerec.releases.IC2011-L2_V12-08-00_IceSim4compat r124504 *
* *
* You are welcome to visit our Web site *
* http://icecube.umd.edu *
* *
************************************************************************
Icetray environment has:
I3_SRC = /scratch/dschultz/IC86_2011/src
I3_BUILD = /scratch/dschultz/IC86_2011/build
I3_PORTS = /cvmfs/icecube.wisc.edu/py2-v1/RHEL_6_x86_64/i3ports
Python = Python 2.7.3
Because this is simulation, L1 still needs to be run to turn it into a PFFilt-like file. Get the latest L1 script from:
$ svn export http://code.icecube.wisc.edu/svn/projects/std-processing/trunk/python/online_SimulationFiltering.py
This script has various options:
$ python online_SimulationFiltering.py -h
Loading daq-decode........................................ok
Loading libBadDomList.....................................ok
Module iceprod.modules not found. Will not define IceProd Class
Usage: online_SimulationFiltering.py [options]
Options:
-h, --help show this help message and exit
-i INDIR, --indir=INDIR
directory where the input files are located
-o OUTDIR, --outdir=OUTDIR
write output to this directory
--infile=INFILE Input i3 file to process
--outfile=OUTFILE Output i3 file
-g GCDFILE, --gcd=GCDFILE
GCD file for input i3 file
-t, --tar Input files are tared in the data warehouse
-r RUNNUM, --runnumber=RUNNUM
simulation dataset to process)
-f FILENUM, --filenumber=FILENUM
file number of dataset to process
-n NUMEVENTS, --nevents=NUMEVENTS
Number of events to process (default: all)
-q, --qify Should we Qify MC? By default MC files are already in
Q format
--retrigger Apply trigger simulation. Normally you should do
this, as input simulation will be generator level
-y MCTYPE, --mctype=MCTYPE
type of MC to be processed: corsika, corsika_icetop,
nugen_nue, nugen_numu, nugen_nutau, genie_nue,
genie_numu, genie_nutau, wimp_sun, wimp_earth
-w WIMPMASS, --mass=WIMPMASS
only for WIMP MC: mass of the simulated WIMP
-c WIMPCHANNEL, --chan=WIMPCHANNEL
only for WIMP MC: decay channel of the simulated WIMP
-s, --domsimulator is it DOMSIMULATOR data?
-p MBPRESCALE, --prescale=MBPRESCALE
FilterMinBias prescale factor
Pay special attention to the --domsimulator
option. IceSim3 needs
this option. The --retrigger
option is also needed occasionally,
but not for any of the recent IceSim4 datasets.
$ python online_SimulationFiltering.py -i . -o . --infile=IC86.2011_corsika.010809.000000.i3.bz2 -r 10809 -f 0 -g GeoCalibDetectorStatus_IC86.55697_corrected_V2.i3.gz --outfile PFFilt_IC86.2011_corsika.010809.000000.i3.bz2 -y corsika
Loading daq-decode........................................ok
Loading libBadDomList.....................................ok
Module iceprod.modules not found. Will not define IceProd Class
!!! DOMSimulator tweaks are disabled !!!
Using nominal WaveCalibrator droop options
... (many, many lines of output) ...
This may take a while for a full simulation file (30 minutes to 1 hour).
At the end, you should get files named:
PFFilt_IC86.2011_corsika.010809.000000.i3.bz2
Note that if you named your output file something else, you should rename it to this style or L2 will not find it.
Now get the latest L2 script from:
$ svn export http://code.icecube.wisc.edu/svn/projects/std-processing/trunk/python/level2_Master.py
The next step is to run through L2, which is much like experimental data
but with the --mc
flag:
$ python level2_Master.py -i . -o . -r 10809 -f 0 -g GeoCalibDetectorStatus_IC86.55697_corrected_V2.i3.gz --mc -y corsika
Warning in <TUnixSystem::SetDisplay>: DISPLAY not set, setting it to
Logging configured from file ./log4cplus.conf
Loading daq-decode........................................ok
Loading libBadDomList.....................................ok
Module iceprod.modules not found. Will not define IceProd Class
GCD is used
Output file will be written to .
going to process all events
!!! DOMSimulator tweaks are disabled !!!
... (many, many lines of output) ...
Note
This will have many false positive error messages, which you can ignore.
This may take a while (1 hour is normal).
At the end, you should get files named:
Level2_IC86.2011_corsika.010809.000000.i3.bz2
Level2_IC86.2011_corsika.010809.000000.xml
Level2_IC86.2011_corsika.010809.000000_SLOP.i3.bz2