Contact Name

George Irwin.


The CandDigit package provides services for the early stages of event reconstruction. A typical Job Path might invoke the following JobModule methods, each of which is found in the CandDigit package: The DigitListModule::Get step initializes the CandRecord which will hold the output Candidate objects from subsequent steps of reconstruction.

The DigitListModule::Reco step calls an AlgDigitList method to create the initial CandDigitList of CandDigit objects, which is then given for "adoption" to the CandRecord, held in "mom" for persistency management and output to the Cand I/O stream.

The FilterDigitListModule::Reco step calls a user-selectible Algorithm, such as AlgFilterDigitSR (from the FilterDigitSR package) to identify and prune unwanted (e.g., out-of--time) CandDigits from a copy of the original CandDigitList produced by the DigitListModule::Reco step. It can then replace the original CandDigitList in the CandRecord with the filtered CandDigitList, or add the filtered CandDigitList to the CandRecord, based on a FilterDigitListModule configuration parameter.

The DeMuxDigitListModule::Reco step calls a user-selectible Algorithm, such as AlgDeMuxCosmics (from the DeMux package) or AlgAltDeMuxCosmics (from the AltDeMux package). These Algorithms set the PlexSEIdAltL demultiplexing hypothesis weights in each CandDigit. The new CandDigitList, containing the modified PlexSEIdAltL information, can be chosen to replace or add to the original CandDigitList in the CandRecord, as with the filtered CandDigitList discussed above. Again this decision is based on a DeMuxDigitListModule configuration parameter.

User Interface

The job user can employ the following modules:-

Database Access


Configuring & Running

The following shows how to use DeMuxDigitListModule for event demuxing.
  1. Load the required underlying demuxing library e.g.:-
  2. Add the Reco method of the DeMuxDigitListModule to the path e.g.:-
                     "DeMuxDigitListModule::Reco "
  3. Select and configure the Algorithm to be used to demux.

    The official Algorithms are supposed to come pre-configured. To see how the default configurations are defined, to discover the values of parameters in the pre-configured AlgConfig sets, or to create your own full AlgConfig sets, see here.

    If you wish to simply change parameters in a pre-defined configuration, you need to add lines like this to your Job script. You specify the AlgConfig set with two identifiers: the Algorithm class name (e.g., AlgDeMuxDigitList) and the configuration name for a specific AlgDeMuxDigitList configuration set. This is usually, but not necessarily, the string "default".

      AlgFactory &af = AlgFactory::GetInstance();
      AlgHandle ah = af.GetAlgHandle("AlgDeMuxDigitList", "default");
      AlgConfig &acd = ah.GetAlgConfig();
      acd.Set("DeMuxAlgorithm", "AlgDeMuxBeam"); //Configure DeMuxer for beam data.
      acd.Set("DeMuxAlgConfig", "default");
      acd.Set("NormalizeWeights", 1); // Normalize weights to 1 if non-zero
      acd.Set("TrimHyps", 1);    // Drop "0" weights if neg., or keep top N
    The Algorithm choices from DeMux are:- and from AltDeMux are:-

    Further Links

    George Irwin Last Modified: $Date: 2004/05/28 21:44:04 $