There are various ways of getting MC produced:
1) Official Production
2) 'Organized' private production such as USATLAS RAC:
http://www.usatlas.bnl.gov/twiki/bin/view/AtlasSoftware/ResourceRequest.html
3) Private production that you do yourself. Some commands and tips below.
You should make sure that physics group conveners approve the production. They will have a quota of official production and so may suggest the other options. You should find someone who has produced MC recently (possibly via the conveners) and check with them that you have the most up-to-date standard settings.
For each datasets to be produced you will need:
- A dataset number (RunNumber)
- A cross section
- A job option (probably using pythia or herwig) that Evgen can run on
- A few validation plots on a twiki (from after the Evgen step)
You will have to run the Evgen step (presumably locally) and produce a few plots per dataset to 'validate' the setup. Then put these plots on a twiki and link to it for example here
https://twiki.cern.ch/twiki/bin/view/AtlasProtected/ExoticsValidationPlots
. Pythia and Herwig are part of Athena, so if you have a Pythia card then you should be able to run Evgen directly on that. Otherwise you download, say,
Alpgen
, set it up and produce events (and possibly config) text files. Then to run Evgen you need a pythia/herwig jobOption to read the events files. Either search lxr for the job option of your favourite similar dataset:
http://alxr.usatlas.bnl.gov/lxr/source/atlas/Generators/MC10JobOptions/share/MC10.107650.AlpgenJimmyZeeNp0_pt20.py
or look here:
http://alxr.usatlas.bnl.gov/lxr/source/atlas/Generators/
Some twiki pages explaining how to get started:
https://twiki.cern.ch/twiki/bin/view/AtlasProtected/McProductionCommonParameters
esp. for non-Pythia:
https://twiki.cern.ch/twiki/bin/view/AtlasProtected/PreparingLesHouchesEven
https://twiki.cern.ch/twiki/bin/view/AtlasProtected/ExoticsMCRequestsHowTo#Setting_up_a_request_for_event_g
https://twiki.cern.ch/twiki/bin/view/AtlasProtected/AtlasProductionGroup#Private_Simulation
Private Production with Pathena
This shows how to produce Monte Carlo using MC10 settings with pathena.
https://twiki.cern.ch/twiki/bin/viewauth/Atlas/PandaAthena#example_8_How_to_run_production
I followed the dashboard of a previous request
http://www-f9.ijs.si/atlpy/atlprod/prodrequest/5832/
Generation and Geant
Pythia event generation and Geant simulation were done in athena release 15.6.12.9.
source setup.sh -tag=15.6.12.9,AtlasProduction,32,opt,setup
The transform scripts are:
Evgen_trf.py [options] <ecmenergy> <runnumber> <firstevent> [maxevents] <randomseed> <jobconfig> <outputevgenfile> [histogramfile] [ntuplefile] [inputgeneratorfile] [evgenjobopts]
and:
csc_atlasG4_trf.py [options] <inputevgenfile> <outputhitsfile> [maxevents] <skipevents> <randomseed> <geometryversion> [physicslist] [jobconfig] [dbrelease] [conditionstag] [dbcontent] [ignoreconfigerror] [amitag]
The command below generates 5000 events and runs Geant on the first 25. I understand that it's possible to use
--nEventsPerJob
and
%SKIPEVENTS
to run multiple subjobs on the same evgen file.
Evgen_trf.py complained when I tried to generate less (or more) than 5000 events, but it's so much faster than Geant that it doesn't matter. Geant takes 4-8 mins per event. It uses ~2GB RAM per job and is hence not allowed on xenia.
I made the random seed equal to the job number (0 in the command below)
pathena --trf \
'Evgen_trf.py \
7000 \
105587 \
0 \
5000 \
0 \
./MC10.105587.PythiaWprime800_WZ_qqee.py \
TMP.evgen.root; \
\
csc_atlasG4_trf.py \
TMP.evgen.root \
%OUT.hits.root \
25 \
0 \
0 \
ATLAS-GEO-16-00-00 \
QGSP_BERT \
VertexFromCondDB.py,CalHits.py,ParticleID.py \
%DB:ddo.000001.Atlas.Ideal.DBRelease.v120201:DBRelease-12.2.1.tar.gz \
OFLCOND-SDR-BS7T-02 \
NONE \
False \
NONE' \
--long \
--excludedSite \
RALPP,GRIF-LAL,SLAC \
--dbRelease \
ddo.000001.Atlas.Ideal.DBRelease.v120201:DBRelease-12.2.1.tar.gz \
--outDS \
user.apenson.MC10.105587.PythiaWprime800_WZ_qqee.evgen.G4.25.0
Digitization and Reconstruction
Digitization and reconstruction were done in release 16.0.2.3.
source setup.sh -tag=16.0.2.3,AtlasProduction
This command take the hits file generated by the command above and runs two more transforms on it:
pathena --trf \
'Digi_trf.py \
inputHitsFile=%IN \
outputRDOFile=TMP.RDO.root \
maxEvents=-1 \
skipEvents=0 \
DBRelease=%DB:ddo.000001.Atlas.Ideal.DBRelease.v120902:DBRelease-12.9.2.tar.gz \
conditionsTag=OFLCOND-SDR-BS7T-04-02 \
geometryVersion=ATLAS-GEO-16-00-00 \
samplingFractionDbTag=QGSP_BERT \
digiSeedOffset1=1 \
digiSeedOffset2=0; \
\
Reco_trf.py \
inputRDOFile=TMP.RDO.root \
outputESDFile=%OUT.ESD.pool.root \
outputAODFile=%OUT.AOD.pool.root \
DBRelease=%DB:ddo.000001.Atlas.Ideal.DBRelease.v120902:DBRelease-12.9.2.tar.gz \
autoConfiguration=everything \
conditionsTag=OFLCOND-SDR-BS7T-04-02 \
geometryVersion=ATLAS-GEO-16-00-00 \
preExec="rec.Commissioning.set_Value_and_Lock(True);jobproperties.Beam.energy.set_Value_and_Lock(3500*Units.GeV);muonRecFlags.writeSDOs=True" \
preInclude=RecJobTransforms/SetJetConstants-02-000.py \
postInclude_r2e=RecJobTransforms/CalibrationHitsInESDConfig.py \
triggerConfig=MCRECO:DB:TRIGGERDBMC:248,108,194' \
--long \
--dbRelease \
ddo.000001.Atlas.Ideal.DBRelease.v120902:DBRelease-12.9.2.tar.gz \
--inDS \
user.apenson.MC10.105587.PythiaWprime800_WZ_qqee.evgen.G4.25.0/ \
--outDS \
user.apenson.MC10.105587.PythiaWprime800_WZ_qqee.0
The two
digiSeedOffsets
must be changed for each subjob to change the pattern of noise in the calorimeter.
https://twiki.cern.ch/twiki/bin/viewauth/Atlas/RecoTrf#Special_syntax_for_preExec_postE
was helpful as well as:
hn-atlas-dist-analysis-help@cern.ch and
hn-atlas-job-transformations@cern.ch