Introduction to Marlin
Marlin is the Modular Analysis and Reconstruction for Linear Colliders. It offers a light interface to the LCIO Data files, the geometry, and the plugins called processors, which do the actual reconstruction.
The data is passed between the processors via LCIO Collections. There exist default reconstruction chains, which consist of digitisation, Trackfiting, Particle Flow Clustering, and possibly vertexing.
Standard configuration steering files are stored in this SVN repository
https://svnsrv.desy.de/viewvc/marlinreco/ILDConfig/trunk/StandardConfig/
Running Marlin
Marlin is run with
Marlin <steeringfile.xml>
All processor parameters can be overwritten on the command line with
Marlin <steeringfile.xml> --myProcessor.myVariable="myValue"
Which processor libraries are loaded by Marlin is controlled by the MARLIN_DLL environment variable. This is a colon (":") separated list of libraries.
Main Parts of the Steering File
A steering file containing the parameters for all the processors known to Marlin can be obtained by running
Marlin -x > NewSteeringFile.xml
Which Processors to Run
Which processors Marlin is supposed to run is defined in the
<execute>....</execute>
block in the beginning of the file.
Inside the block is a list of
<processor name="NameOfProcessorBlock />
tags which give the name of the processors to run. Note that these are the names, not the types of the processors.
Jet Clustering in Marlin
There is an interface of Marlin to
FastJet
Creating your own Processor
There is an example processor in the Marlin/VERSION/examples directory,
or on svn
https://svnsrv.desy.de/viewvc/marlin/Marlin/trunk/examples/mymarlin/
There is a Readme file that explains how to start creating a processor and running it in Marlin.
The example source files also include useful comments.
Copy and rename the mymarlin folder, then follow the instructions from the Readme file.
See also the Readme file for Marlin
https://svnsrv.desy.de/viewvc/marlin/Marlin/trunk/README?view=markup