The individual tasks are encapsulated in marlin processors. Thus, tasks can be executed consecutively by running one marlin job for each processor or in one go by stacking the processors together. A complete processor list is given in the section Processor references. Somce of the processors are rolled out to the separate package calice-analysis. It can be downloaded from the download page.
The processing is steered by Marlin steering files, which define the list of input files, the processors to be used and the output file. The creation of steering files is described in Steering Files.
You can easily add your own processors by building Your own marlin executable and which is linked against the libraries of this package (see Adding Processors).
If You are searching for How-to-use git You are wrong go away.
2. Steering Files
The processing is steered by marlin steering files which are either simple structured text files or full fledged XML
files. To facilitate the creation of steering files, you can either run the marlin executable with -l:
caliceMarlin -lwhich will produce a simple, structured text file including all processors or with -x:
caliceMarlin -xwhich will produce a XML file. Another possibility is to use the script createSteer.sh. The script is located in the directory scripts/ of the calice source package, or can be downloaded. The script expects a list of processor names and some additional arguments like input files. For each given processor name, a small snippet is search for in the directory scripts/processors.d. The snippets contain the parameter section of the processor i.e. it is a snippet of the complete marlin steering file. Here an excerpt for the SimpleHitSearch processor processors.d/MySimpleHitSearch.steer:
.begin MySimpleHitSearch
ProcessorType SimpleHitSearch
#--- description not set by author
# The name of the adc collection (input) to be used
# type: [string]
# default: CALDAQ_ADCCol
ADCCollectionName CALDAQ_ADCCol
....
.end -------------------------------------------------
To reference snippets, the name of the parameter section has to be used e.g. MySimpleHitSearch.
The snippets are plugged together and some place holders are replaced with values from the command line
or the default values specified in the file scripts/processors.d/variables (see below). The place holders
are named @name@, where name is any name which is defined the file variables.
The file scripts/processors.d/variables contains for each defined variable one line:
input_file x 1 1 ;+ f --file name A file name with full path name first_event o 3 1 0 - --event-range _ last_event o 3 2 500000 - --event-range _ event_step o 3 3 100 - --event-range first_last_step Extend the history graphs every step events from the first event till the last event.. Each line describes the name of a variable, the default value and how the variable is filled by command line arguments. The format of each line is the following:
LD_LIBRARY_PATH=$CALICE/lib:$ILC_HOME/lib:$ILC_HOME/extern/lib:$ROOTSYS/libTo test whether all libraries will be found, do:
$CALICE/bin/caliceMarlin -l | lessThis should result in a long list of Marlin processors and their parameters.
Further, it is assumed that the scripts, which can be found either in the directory scripts
of the source directory or can be downloaded from the download page, are
located in the directory scripts of the current working directory, the LCIO conditions data
base files are located in the sub directory conddb, data files are contained in the directory
data/test-beam or data/simulation. The directory data/test-beam contains
files named; Run100214.bin. The directory conddb, should contain files named e.g.
condDB_CalibrationConstants_HEAD_20060228_164024.slcio. The names, in particular the date and time
part of the name, should coincide with those given in scripts/processors.d/FileConditionsProcessor.steer.
3.2 Listing the LCIO collections
The following command should create a marlin steering file which will run a simple processor which
will search for all collections in the events.The steering file is handed to the Marlin executable, which
is executed directly:
> sh scripts/listCollections.sh --exe $CALICE/bin/caliceMarlin \
--file data/simulation/Mokka.slcio \
--max-records 1000
> sh scripts/tbAnalyse.sh --exe $CALICE/bin/caliceMarlin \
--data-dir data/test-beam \
--run 100214 \
--max-records 10000 \
--output-dir /tmp \
--output-ext _firstTest
You can set or change the default values of all the possible command line arguments by editing the
values in the 5th column of the file scripts/processors.d/variables e.g. you could
change in the line which starts with exe the name of the executable from bin/caliceMarlin
to the preferred one.
If you want to see the steering file rather then executing Marlin directly, you could add the argument --show-steer. You can get a full list of possible options for the given script by adding the option --help.
The reconstructed hit and track collections can be stored in an LCIO file. This requires in addition the
LCIO output processor. To add the processor, edit the script scripts/tbAnalyse.sh and add
MyLCIOOutputProcessor to the list of Processors.
3.3 On-the-fly conversion, reconstruction, and writing a ROOT tree.
The following command should create a marlin steering file which will run the LCIO conversion processor,
the drift chamber and ECAL reconstruction. The resulting hit and track collections will be written to
a ROOT tree. The script will directly execute the Marlin executable.
> sh scripts/writeTree.sh --exe $CALICE/bin/caliceMarlin \
--data-dir data/test-beam \
--run 100214 \
--max-records 10000 \
--output-dir /tmp \
--output-ext _firstTest
The output file should be /tmp/HitTree_100214_firstTest.root.
> sh scripts/writeSimulationTree.sh --exe $CALICE/bin/caliceMarlin \
--file data/simulation/mokka.slcio \
--output-dir /tmp \
--output-ext _firstTest
The output file should be /tmp/HitTree__mokka___firstTest.root.
#!/bin/sh # about: # reconstruct test-beam data and write hits and tracks to a LCIO file # --- guess the directory where the create script is located ... .. # --- create steering file using the given processors and run marlin or show the steering file $create_script $0 MarkAllTransient \ MyDriftChamberReconstruction \ MySimpleHitSearch \ MyCollectionHistogramer \ MyLcioOutputProcessor \ -- --data-dir data/test-beam $*The MyLcioOutputProcessor processor was added, some histogramming processors were removed, and the default argument --data-dir data/test-beam was set. The argument can still be overriden by command line.