Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview: 

The following is how 'official' MC production is typically done, by submitting jobs to the JLab batch farm using xml scripts. To run these same steps from a command line with customized jar or steering files, please see 2015 MC Production using a Command Line.

There are 4 steps to MC production:  event generation, detector simulation, readout simulation, and reconstruction. The tools used are: 

  • Event Generation:  
    • MadGraph:  tridents & signal events 
    • EGS5:  beam-target interactions (includes Mollers), wide-angle bremstralung 
    • GEANT4:  hadrons from the beam-target interaction
  • Detector Simulation: 
    • slic (GEANT4 based)
  • Readout Simulation: 
    • hps-java (on slic output)
  • Reconstruction: 
    • hps-java (on readout output…give output, gives a recon .slcio file)
    • dst-maker & lcio api (on recon output…gives gives a root file)

Currently, each step is performed in a separate batch job. The following event samples are made:

  • "beam-tri":  simulates the beam going though the target; the “tri” refers to trident events that are inserted at the expected rate.  This is intended to be an unbiased representation of our data
  • “tritrig-beam-tri”:  the “tritrig” refers to a sample of tridents that are preselected (at the MadGraph level) to be more likely to be in the detector acceptance and pass the trigger cuts so that we can efficiently get a large sample. These then have “beam-tri” overlaid in order to simulate what trident events look like in the detector. 
  • "wab-beam-tri": beam-tri with wide-angle bremsstrahlung events mixed in.
  • “ap” and “ap-beam-tri”:  the “ap” stands for “A prime” and is our signal MC…they MC. They can be generated at a given mass and decay length (ctau), and are produced with and w/o beam overlay (mostly with).  
  • "moller" pure moller events. Note: beam backgrounds already contain moller events. "moller" is intended to be used for specialized studies involving them.

Below, each generation step for each sample is outlined. 

Batch Job Submission:

 

There is a basic example on the confluence here:

...

  • ebeam.csh:  given the beam energy string (e.g. “1pt05”) returns the beam energy in MeV
  • dz.csh:  given the beam energy string, returns the target thickness
  • ne.csh:  given the beam energy string, returns the number of electrons per 2ns bunch
  • apmass.csh: given the beam energy string, returns as list of A’ masses to simulate
  • mu.csh: only used by lhe generators (e.g. tridents and wab), sets the number of bunches for each component

Event Generation: 

The event generation is performed via MadGraph, EGS5, or GEANT4 depending on the type.  Below lists the different type of particles produced, and some instructions on each.

...

  • beam electrons:  
    •  auger xml:  /u/group/hps/production/mc/EngRun2015Scripts/stdhep/beam.xml
    •  run with ./runjob.sh stdhep/beam.xml 1pt05 <firstjob> <lastjob>
    • the executable that does the event generation is /u/group/hps/production/mc/egs5/beam_v3.exe
    • output is an .stdhep file with each event being the products from 1 scattered electron
  • beam hadrons:  
    •  auger xml:  /u/group/hps/production/mc/EngRun2015Scripts/stdhep/hadrons.xml
    •  run with ./runjob.sh stdhep/hadrons.xml 1pt05 <firstjob> <lastjob>
    • the executable that does the event generation is a GEANT4 release that gets copied locallyorg
    • output is an .stdhep file with each event being hadrons from bunch
  • unbiased tridents == “tri”:  
    •  auger xml:  /u/group/hps/production/mc/EngRun2015Scripts/lhe/tri.xml
    •  run with ./runjob.sh lhe/tri.xml 1pt05 <firstjob> <lastjob>
    •  this runs MadGraph using the  /u/group/hps/production/mc/MadGraph/trigg/run_card_<ebeam>.dat
    • output is an lhe file with each event being 1 trident
    • these files are small, so they are bundled 100-to-1 with:
      • ./runjob_100to1.sh lhe/tri_merge_100to1.xml 1pt1 1pt05 1 100
  • enhanced tridents == “tritrig”
    •  auger xml:  /u/group/hps/production/mc/EngRun2015Scripts/lhe/tritrig.xml
    •  run with ./runjob.sh lhe/tritrig.xml 1pt05 <firstjob> <lastjob>
    •  this runs MadGraph using the  /u/group/hps/production/mc/MadGraph/tritrig/run_card_<ebeam>.dat
      • the cuts here are E(e+e-)>0.8 EBeam and m(e+e-)>10MeV
    • output is an lhe file with each event being 1 trident
  • wide-angle bremsstrahlung == “wab”:  
    •  auger xml:  /u/group/hps/production/mc/EngRun2015Scripts/lhe/wab.xml
    •  run with ./runjob.sh lhe/wab.xml 1pt05 <firstjob> <lastjob>
    •  this runs MadGraph using the  /u/group/hps/production/mc/MadGraph/wab/run_card_<ebeam>.dat
    • output is an lhe file with each event being 1 wab event
    • cross section is 0.7 barns, 6M events/s at 50 nA
    • cuts: E(photon) > 50 MeV, |theta_y(photon)| > 10 mrad, no cuts on e-
    • like the tridents, these files are also bundled 100-to-1 with:
      • ./runjob_100to1.sh lhe/wab_merge_100to1.xml 1pt1 1pt05 1 100
  • signal events ==  “ap-truth”
    •  auger xml:  /u/group/hps/production/mc/EngRun2015Scripts/lhe/ap-truth.xml
    •  run with ./runjob.sh lhe/ap-truth.xml 1pt05 <firstjob> <lastjob>
    •  this runs MadGraph using the  /u/group/hps/production/mc/ap/run_card_<ebeam>.dat
    • also converts the lhe to stdhep while adding displaced vertex (though now ct is hardcoded to 0 in the .xml)
    • output is an stdhep file with each event being 1 trident
  • moller electrons == "moller":  
    •  auger xml:  /u/group/hps/production/mc/EngRun2015Scripts/stdhep/mollers.xml
    •  run with ./runjob.sh stdhep/mollers.xml 1pt05 <firstjob> <lastjob>
    • the executable that does the event generation is /u/group/hps/production/mc/egs5/moller_v1.exe
    • output is an .stdhep file with each event containing a moller pair (93% efficiency) 
    • cross section: 0.09 barns, 800k events/s at 50 nA (258 events per 10^8 incident e-)
    • cuts: E > 10 MeV, |theta_y| > 10 mrad

Detector Simulation

The detector simulation is performed by slic, which is itself a front-end for GEANT4 which helps incorporate the specific geometry HPS uses along with putting the GEANT output into LCIO collections that are then used by the reconstruction in hps-java.  The batch scripts do more than just run slic though; they may also mix components first, such as with the beam overlay. Below is what we do for each sample type:

...

  • moller events == “moller”
    •  auger xml:  /u/group/hps/production/mc/EngRun2015Scripts/slic/moller.xml
    •  run with ./runjob.sh slic/moller.xml 1pt05 <firstnum> <lastnum>
    •  runs slic over moller events, 1 moller pair per event

Readout Simulation

Simulation of the SVT and ECal digital readout is performed using the hps-java framework.

...

  • moller events == “moller”
    •  auger xml: /u/group/hps/production/mc/EngRun2015Scripts/readout/moller_<trigger>_100to1.xml
    •  run with ./runjob_100to1.sh <auger xml> 1pt05 <firstnum> <lastnum>
    • moller files individually processed by slic are readout in groups of 100to1

Reconstruction

Once the readout is obtained, tracks can be reconstructed, creating HPS-Event objects containing pertinent quantities (cluster energy, etc.) that may be analyzed

...