Gleam jobOptions File:  Digi Input,
Recon and Merit Output

The following jobOptions.txt file reads a digi.root file and produces recon ROOT and Merit (also known as Summary Ntuple) files in your working directory.

The jobOptions file in this example specifies an input digi.root file.

To obtain a digi ROOT file:

  1. Go to the System Tests web pages.
  2. Click on Start Here.
  3. Select a version of GlastRelease from the dropdown menu. 
  4. Download a digi.root file associated with a specific test (e.g, "AllGamma").

Notes:

  • Based upon the location and name of the digi.root file you obtained, update the parameter:

    digiRootReaderAlg.digiRootFile = "digi.root"; 

  • For the most recent jobOptions example in use by the pipeline for reading digi ROOT files and running the reconstruction, please see the latest version of:

    LatIntegration/src/jobOptions/pipeline/readigi_runrecon.txt

Gleam jobOptions.txt: digi.root to Recon and Merit (a.k.a. Summary Ntuple)

//
// Primary DLLs, including auditor:
//
ApplicationMgr.DLLs   += {"GaudiAlg","GaudiAud"};
ApplicationMgr.ExtSvc += {"ChronoStatSvc"};

AuditorSvc.Auditors = {"ChronoAuditor"};

//
// Set up basic event loop:
//
ApplicationMgr.ExtSvc = {"GlastEventSelector/EventSelector"};

EventPersistencySvc.CnvServices = {"EventCnvSvc"};
EventSelector.Input = "SVC='DbEvtSelector'";
EventSelector.PrintFreq = -1;


//
// A structure for the topalg, using sequencer steps:
//
ApplicationMgr.TopAlg = {"Sequencer/Top"};

//
// Define the top sequence loop:
//
Top.Members = {"Sequencer/Digitization",
               "Sequencer/Calibration",
               "Sequencer/Integrity",
               "Sequencer/Output"};

//
// Needed for EventIntegrityAlg sequence breaking:
//
Top.StopOverride = true;

//
// Digitization sequence: Read in digis from a ROOT file
//
Digitization.Members = {"digiRootReaderAlg"};

//
// This needs to run after having read in the digis
// so we can get the event time form them!
// Note: this is the opposite of what is needed for the MC!
//
Calibration.Members = {"TkrCalibAlg"};

//
// Using EventIntegrityAlg to decide if we run or skip recon:
//     If the event passes, proceed as normal.
//     If EventIntegrityAlg is BAD, skip recon but output to file.
//
ApplicationMgr.DLLs += {"EventIntegrity"};
Integrity.Members    = {"EventIntegrityAlg",
                        "Sequencer/Reconstruction"};

//
// Detector services:
//
ApplicationMgr.DLLs   += {"GlastSvc"};
ApplicationMgr.ExtSvc += {"GlastDetSvc"};

GlastDetSvc.topVolume   = "LAT";
GlastDetSvc.visitorMode = "recon";

//
// Randoms definition:
//
ApplicationMgr.ExtSvc += {"GlastRandomSvc"};

//
// G4:
//
ApplicationMgr.DLLs   += {"G4Generator","G4Propagator"};
ApplicationMgr.ExtSvc += {"G4GeometrySvc"};

//
// CAL Xtal respons::
//
ApplicationMgr.DLLs += {"CalUtil", "CalXtalResponse"};

//
// Propagator:
//
ApplicationMgr.ExtSvc += {"GlastPropagatorSvc"};
 
//
// Reconstruction:
//
ApplicationMgr.DLLs += {"CalibSvc",
                        "TkrUtil",
                        "CalRecon",
                        "TkrRecon"};

Reconstruction.Members = {"Sequencer/Cal1",
                          "Sequencer/Tkr",
                          "Sequencer/Cal2",
                          "Sequencer/TkrIter",
                          "Sequencer/Acd"};
//
// Recon members:
//
Cal1.Members    = {"CalXtalRecAlg",
                   "CalClustersAlg/first"};
Tkr.Members     = {"TkrReconAlg/FirstPass"};
Cal2.Members    = {"CalClustersAlg/second"};
TkrIter.Members = {"TkrReconAlg/Iteration"};

//
// Decrease output:
//
second.OutputLevel = 5; 

//
// ACD recon:
//
ApplicationMgr.DLLs += {"AcdRecon"};
Acd.Members = {"AcdReconAlg"};

//
// Define the output sequence:
//
Output.Members  = {"meritAlg"};
Output.Members += {"FhSetAlg","reconRootWriterAlg"};

//
// Tracker geometry services:
//
ApplicationMgr.ExtSvc += {"TkrGeometrySvc"};
ApplicationMgr.ExtSvc += {"TkrInitSvc"};

//
// Calibrations:
//
#include "$GLEAMROOT/src/jobOptions/pipeline/calibrations.txt"

//
// Start up a CalFailureModeSvc:
//
ApplicationMgr.ExtSvc += {"CalFailureModeSvc"};

//
// Merit and AnalysisNtuple:
//
ApplicationMgr.DLLs   += {"AnalysisNtuple","ntupleWriterSvc","merit"};
ApplicationMgr.ExtSvc += {"RootTupleSvc"};

//
// Merit configuration: Disable IM variables
//
MeritAlg.IM_filename = "";
MeritAlg.cuts        = "LnA";

//
// Root IO:
//
ApplicationMgr.DLLs   += {"RootIo"};
ApplicationMgr.ExtSvc += {"RootIoSvc"};

//
// Must use RootIo as executable, not Gaudi event loop!
//
ApplicationMgr.Runable = "RootIoSvc";

//
// The following things can be changed by the user:
//

//
// Set output level threshold:
//  2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL
//
MessageSvc.OutputLevel = 3;

//
// Number of events:
//
ApplicationMgr.EvtMax = 10000000000;

//
// Geometry:
//
GlastDetSvc.xmlfile = "$(XMLGEODBSROOT)/xml/flight/flightSegVols.xml";

//
// Name of input digi Root file:
//
digiRootReaderAlg.digiRootFile = "digi.root";

//
// Name of output Merit Root file:
//
RootTupleSvc.filename = "merit.root";

//
// Name of output recon Root file:
//
reconRootWriterAlg.reconRootFile = "recon.root";

 

Owned by: Heather Kelly

Last updated by: Chuck Patterson 07/20/2006