W-DHCAL Marlin Processors

Several processors are available in DHCalMarlin (see TungstenDHCALCode). This page is meant for keeping track of the available processors and should document what they are used for. In general there should be example steering files for each processor available in the steer directory of DHCalMarlin.

The basic example of how to write a Marlin processor is the HelloWorldProcessor



Prints run information and prints the number of processed events after a given interval.


Creates a ROOT file with a tree of various event variables that can be used for high level analysis.

Variables contained in the ROOT tree for every event:

  • int nHits
  • int interactionLayer
  • bool cerenkovA
  • bool cerenkovB
  • bool hasBox
  • float totalEnergy
  • float hitDensity
  • float centerX
  • float centerY
  • float centerZ
  • float centerU
  • float centerV
  • float centerLayer
  • float rmsX
  • float rmsY
  • float rmsXY
  • float rmsZ
  • float rmsU
  • float rmsV
  • float rmsUV
  • float rmsLayer

The following variables are stored per layer in a std::vector of length 53 (the total number of layers)

  • std::vector int layerNumber
  • std::vector int layerNHits
  • std::vector int layerNClusters
  • std::vector double layerEnergy
  • std::vector double layerCenterX
  • std::vector double layerCenterY
  • std::vector double layerCenterU
  • std::vector double layerCenterV
  • std::vector double layerRmsX
  • std::vector double layerRmsY
  • std::vector double layerRmsXY
  • std::vector double layerRmsU
  • std::vector double layerRmsV
  • std::vector double layerRmsUV


Selects calorimeter hits from a calorimeter hit collection based on their hit time. Used to remove the out-of-time hits from the event.


Applies calibration values to hits depending on their layer and module numbers. For now the input is a simple text file where each row contains three values: layerIndex moduleIndex calibrationValue


Determines the efficiency and multiplicity of each RPC module in each layer using MIP stubs from all events of the input data. The MIP stubs are identified by finding MIP-like clusters in adjacent layers to the layer of interest. If there is a sufficient number of MIP clusters, a straight line fit is performed to determine the intersection point of the MIP stub with the layer of interest. The layer is counted as efficient if a hit is present in the layer of interest within the vicinity of the intersection point. The multiplicity is determined from the cluster size of the hit.

The input collection has to contain the clusters from a nearest neighbor clustering algorithm. The output is a ROOT file with the efficiency, multiplicity and calibration values stored in a TGraph including errors for each of the three modues, where the x value is the layer index.


A processor wrapping the NNClustering (see TungstenDHCALMarlinUtil). The input is a list of CalorimeterHit collections and the output is a cluster collection. The clustering parameters used are stored as collection parameters.


A processor to remove hits from a given CalorimeterHit collection based on their cell ID. The input is a plain text file containing the (64bit) cell IDs that should be ignored. The output is a new CalorimeterHit collection that only contains those hits that were not in the list of ignored cell IDs.


A processor that takes a collection of TrackerData as input and forms TrackerHits. The steering file allows to set the slope parameters for the three wire chambers individually as well as an offset in x, y and z to define the wire chamber position with respect to the calorimeter coordinate system.


Runs a combination of different processors to make the text file "badCells.txt" which contain a list of cellIDs for the dead and noisy cells. Also gives an output LCIO file which does not contain the Box Events. This LCIO file has the additional collection FilteredDhcHit where the dead and noisy cells are removed. Warning: Does not work well on runs with large fraction of muons.
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2013-07-26 - HelgaHolmestad
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CLIC All webs login

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