Introduction

This page documents the files used for the Liquid Argon calorimeter SuperCell simulation studies and the steps to produce them .

Particle Gun simulations

In order to study the response of the supercells it is interesting to deploy a particle gun with fixed position and/or energy. Since one of the objectives was to investigate the effect of the digitization scheme (FixedEt or mV) in the performance of the SuperCells, we reconstructed the simulated data using both schemes. This is done during the digitization process.

File list in EOS

The generated files produced using the procedure bellow are available in EOS. To access the eos files, one can do


eosmount $HOME/eos 
cd eos/atlas/atlascerngroupdisk/det-larg/SuperCells/

Scheme Dataset

FixedEtLSB_middle125 Particle Gun
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_1p5TeV_Eta0p1_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_1p5TeV_Eta0p8_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_1p5TeV_Eta1p2_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_1p5TeV_Eta1p45_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_1p5TeV_Eta1p9_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_1p5TeV_Eta2p0_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_1p5TeV_Eta2p4_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_7TeV_Eta0p1_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_7TeV_Eta0p8_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_7TeV_Eta1p2_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_7TeV_Eta1p45_Phi0p1
FixedEtLSB_middle125 Data_FixedEtLSB_middle125_PG_Electron_7TeV_Eta1p9_Phi0p1

Mixed ParticleGun
mV-LSB mV-LSB_PG_Electron_1p5TeV_Eta0p1_Phi0p1
mV-LSB mV-LSB_PG_Electron_1p5TeV_Eta1p45_Phi0p1
mV-LSB mV-LSB_PG_Electron_1p5TeV_Eta2p4_Phi0p1
mV-LSB mV-LSB_PG_Electron_3p5TeV_Eta0p1_Phi0p1
mV-LSB mV-LSB_PG_Electron_3p5TeV_Eta1p45_Phi0p1

Mixed Noise
FixedELSB_middle125 Data_FixedELSB_middle125
FixedELSB_middle125 Data_FixedELSB_middle64
FixedEtLSB_middle125 Data_FixedEtLSB_middle125
FixedEtLSB_middle64 Data_FixedEtLSB_middle64
mv-LSB Data_mV_LSB

Procedure for generating the files

You may want to create a directory structure for holding EVGEN, HITS and ESD or AOD files. The following instructions assume such a structure.

1) Preparation of directory structure


#Setup Frontier/SQUID (should be done somewhere else, or maybe it's already set in your setup)
export FRONTIER_SERVER="(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://frontier-atlas.lcg.triumf.ca:3128/ATLAS_frontier)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://192.168.0.1:3128)"

mkdir TestArea
mkdir EVNT
mkdir HITS
mkdir RDO
mkdir AOD

setupATLAS
cd TestArea
asetup AtlasProduction,20.1.5.10,gcc48,here,setup

2) EVNT generation (Particle Gun)

Bellow is the procedure to create the EVNT file with 10k events using a particle gun :


JOBOPTSEARCHPATH=/cvmfs/atlas.cern.ch/repo/sw/Generators/MC15JobOptions/latest/common:$JOBOPTSEARCHPATH
JOBOPTSEARCHPATH=/cvmfs/atlas.cern.ch/repo/sw/Generators/MC15JobOptions/latest/share/DSID147xxx:$JOBOPTSEARCHPATH

export JO=PG_Electron_3p5TeV_Eta0p8_Phi0p1
export RUN=501003
Generate_tf.py --jobConfig=${JO}.py \
               --runNumber=$RUN \
               --randomSeed=$RANDOM \
               --ecmEnergy=13000 \
               --maxEvents=10000 \
               --outputEVNTFile=../EVNT/${JO}.EVNT.pool.root

Bellow is an example of a job option. Please see https://twiki.cern.ch/twiki/bin/view/AtlasProtected/ParticleGunForAtlas for more details about the use and options for a particle gun in the event generation step.

# Generates fixed energy 3.5 TeV electron gun

evgenConfig.description = "Single ele with phi in [0.0, 0.2], eta in [0.7, 0.9], and pT = 3.5 TeV"
evgenConfig.keywords = ["singleParticle", "electron"]

include("ParticleGun/ParticleGun_Common.py")

import ParticleGun as PG
genSeq.ParticleGun.sampler.pid = 11
genSeq.ParticleGun.sampler.mom = PG.PtEtaMPhiSampler(pt=3500000,eta=[0.7,0.9],phi=[0.0, 0.2])

3) Simulation Step

The HITS file is created using Sim_tf.py transform. Be aware that high energy particles may take a very long time to simulate (close to 1h per event for 3.5TeV in high eta regions for exemple ), so you may want to split this step in several jobs with few events each.


export JO=PG_Electron_3p5TeV_Eta0p8_Phi0p1
export EVNT=../EVNT/${JO}.EVNT.pool.root
export HITS=../HITS/${JO}.HITS.pool.root

Sim_tf.py --inputEVNTFile= ${EVNT} \
          --outputHITSFile=${HITS} \
           --maxEvents=200 \
           --geometryVersion=ATLAS-R2-2015-03-01-00_VALIDATION \
           --conditionsTag=OFLCOND-RUN12-SDR-30 \
           --physicsList=FTFP_BERT \
           --postInclude "RecJobTransforms/UseFrontier.py" \
           --preInclude "EVNTtoHITS:SimulationJobOptions/preInclude.BeamPipeKill.py,SimulationJobOptions/preInclude.FrozenShowersFCalOnly.py" \
           --simulator MC12G4 \
           --truthStrategy MC12 \
           --randomSeed=$RANDOM

4) Digitization Step

During digitization you need to decide if you want to use a FixedEt scheme (the LSB of digitizer will correspond to a fixed ET, and the correpondence of ET to noise voltage level changes as a function of eta) or a mV scheme (the LSB of digitizer is set such as the useful digitization range corresponds to the saturation limit of the analog chain, which translates to about 1mV, hence the name mV scheme). Also you need to decide if you want to include or not the pileup. Bellow we provide examples for all these cases

4.1) FixedEt scheme with pileup


export MINBIAS_HIGH=PileupData/mc15_13TeV.361035.Pythia8EvtGen_A2MSTW2008LO_minbias_inelastic_high.merge.HITS.e3581_s2578_s2195_tid05608152_00/
export MINBIAS_LOW=PileupData/mc15_13TeV.361034.Pythia8EvtGen_A2MSTW2008LO_minbias_inelastic_low.merge.HITS.e3581_s2578_s2195_tid05608147_00/

export SCHEME=fixedEtLSB_middle125

export JO=PG_Electron_3p5TeV_Eta0p8_Phi0p1
export HITS=../HITS/${JO}.HITS.pool.root
export RDO=../RDO/${SCHEME}_${JO}.RDO.pool.root

Reco_tf.py --inputHITSFile $HITS*.pool.root \
           --outputRDOFile $RDO \
           --maxEvents=200 --jobNumber=1 \
           --conditionsTag         'default:OFLCOND-RUN12-SDR-30' \
           --geometryVersion       'default:ATLAS-R2-2015-03-01-00' \
           --autoConfiguration     'everything' \
           --numberOfHighPtMinBias '0' \
           --numberOfLowPtMinBias  '0' \
           --numberOfCavernBkg     '0' \
           --pileupFinalBunch 6 \
           --inputLowPtMinbiasHitsFile \
            $MINBIAS_LOW/HITS.05608147._000029.pool.root.1 \
            $MINBIAS_LOW/HITS.05608147._000039.pool.root.1 \
            $MINBIAS_LOW/HITS.05608147._000069.pool.root.1 \
            $MINBIAS_LOW/HITS.05608147._000081.pool.root.1 \
            $MINBIAS_LOW/HITS.05608147._000220.pool.root.1 \
           --inputHighPtMinbiasHitsFile \
            $MINBIAS_HIGH/HITS.05608152._000017.pool.root.1 \
            $MINBIAS_HIGH/HITS.05608152._000115.pool.root.1 \
            $MINBIAS_HIGH/HITS.05608152._000376.pool.root.1 \
            $MINBIAS_HIGH/HITS.05608152._000433.pool.root.1 \
            $MINBIAS_HIGH/HITS.05608152._000520.pool.root.1 \
          --digiSeedOffset1 $RANDOM \
          --digiSeedOffset2 $RANDOM \
          --postExec "all:CfgMgr.MessageSvc().setError+=[\"HepMcParticleLink\"]" "HITtoRDO:job.StandardPileUpToolsAlg.PileUpTools[\"MergeMcEventCollTool\"].OnlySaveSignalTruth=True;job.StandardPileUpToolsAlg.PileUpTools[\"MdtDigitizationTool\"].LastXing=150;""tagToOverride=\"FixedEtLSB-middle125\";from IOVDbSvc.CondDB import conddb;conddb.addOverride(\"/LAR/ElecCalibMCSC/Noise\",\"LARElecCalibMCSCNoise-\"+tagToOverride);conddb.addOverride(\"/LAR/ElecCalibMCSC/Ramp\",\"LARElecCalibMCSRamp-\"+tagToOverride);topSequence.LArSCL1Maker.TruthHitsContainer=\"SCellTruth\";streamRDO.ItemList+=[\"CaloCellContainer#SCellTruth\"]" \
         --postInclude "default:RecJobTransforms/UseFrontier.py" "LArROD/LArSuperCellEnable.py" \
         --preExec "all:rec.Commissioning.set_Value_and_Lock(True);""mu=1;from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(mu);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(mu);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True)" "HITtoRDO:userRunLumiOverride={\"run\":222525, \"startlb\":1,\"timestamp\":1376703331, \"mu\":1.0}" \
          --preInclude \
 "Digitization/ForceUseOfPileUpTools.py,SimulationJobOptions/preInclude.PileUpBunchTrainsMC15_2015_25ns_Config1.py,RunDependentSimData/configLumi_user.py" \
         --steering "RAWtoESD:in-RDO,in+RDO_TRIG,in-BS"   \
         --triggerConfig "MCRECO:DBF:TRIGGERDBMC:2013,7,11"

4.2) FixedEt scheme no pileup


export SCHEME=fixedEtLSB_middle125

export JO=PG_Electron_3p5TeV_Eta0p8_Phi0p1
export HITS=../HITS/${JO}.HITS.pool.root
export RDO=../RDO/${SCHEME}_${JO}.RDO.pool.root

Reco_tf.py --inputHITSFile $HITS/*.pool.root \
           --outputRDOFile $RDO \
           --maxEvents=1000 --jobNumber=1 \
           --conditionsTag         'default:OFLCOND-RUN12-SDR-30' \
           --geometryVersion       'default:ATLAS-R2-2015-03-01-00' \
           --autoConfiguration     'everything' \
           --numberOfHighPtMinBias '0' \
           --numberOfLowPtMinBias  '0' \
           --numberOfCavernBkg     '0' \
           --digiSeedOffset1 $RANDOM \
           --digiSeedOffset2 $RANDOM \
           --postExec "all:CfgMgr.MessageSvc().setError+=[\"HepMcParticleLink\"]" "tagToOverride=\"FixedEtLSB-middle125\";from IOVDbSvc.CondDB import conddb;conddb.addOverride(\"/LAR/ElecCalibMCSC/Noise\",\"LARElecCalibMCSCNoise-\"+tagToOverride);conddb.addOverride(\"/LAR/ElecCalibMCSC/Ramp\",\"LARElecCalibMCSRamp-\"+tagToOverride);topSequence.LArSCL1Maker.TruthHitsContainer=\"SCellTruth\";streamRDO.ItemList+=[\"CaloCellContainer#SCellTruth\"]" \
           --postInclude "default:RecJobTransforms/UseFrontier.py" "LArROD/LArSuperCellEnable.py" \
           --preExec "all:rec.Commissioning.set_Value_and_Lock(True);""mu=1;from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(mu);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(mu);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True)"  \
           --steering "RAWtoESD:in-RDO,in+RDO_TRIG,in-BS"   \
           --triggerConfig "MCRECO:DBF:TRIGGERDBMC:2013,7,11"

4.3) mV scheme with pileup


export MINBIAS_HIGH=PileupData/mc15_13TeV.361035.Pythia8EvtGen_A2MSTW2008LO_minbias_inelastic_high.merge.HITS.e3581_s2578_s2195_tid05608152_00/
export MINBIAS_LOW=PileupData/mc15_13TeV.361034.Pythia8EvtGen_A2MSTW2008LO_minbias_inelastic_low.merge.HITS.e3581_s2578_s2195_tid05608147_00/

export SCHEME=mV-LSB

export JO=PG_Electron_3p5TeV_Eta0p8_Phi0p1
export HITS=../HITS/${JO}.HITS.pool.root
export RDO=../RDO/${SCHEME}_${JO}.RDO.pool.root

Reco_tf.py --inputHITSFile $HITS*.pool.root \
           --outputRDOFile $RDO \
           --maxEvents=200 --jobNumber=1 \
           --conditionsTag         'default:OFLCOND-RUN12-SDR-30' \
           --geometryVersion       'default:ATLAS-R2-2015-03-01-00' \
           --autoConfiguration     'everything' \
           --numberOfHighPtMinBias '0' \
           --numberOfLowPtMinBias  '0' \
           --numberOfCavernBkg     '0' \
           --pileupFinalBunch 6 \
           --inputLowPtMinbiasHitsFile \
            $MINBIAS_LOW/HITS.05608147._000029.pool.root.1 \
            $MINBIAS_LOW/HITS.05608147._000039.pool.root.1 \
            $MINBIAS_LOW/HITS.05608147._000069.pool.root.1 \
            $MINBIAS_LOW/HITS.05608147._000081.pool.root.1 \
            $MINBIAS_LOW/HITS.05608147._000220.pool.root.1 \
           --inputHighPtMinbiasHitsFile \
            $MINBIAS_HIGH/HITS.05608152._000017.pool.root.1 \
            $MINBIAS_HIGH/HITS.05608152._000115.pool.root.1 \
            $MINBIAS_HIGH/HITS.05608152._000376.pool.root.1 \
            $MINBIAS_HIGH/HITS.05608152._000433.pool.root.1 \
            $MINBIAS_HIGH/HITS.05608152._000520.pool.root.1 \
          --digiSeedOffset1 $RANDOM \
          --digiSeedOffset2 $RANDOM \
          --postExec "all:CfgMgr.MessageSvc().setError+=[\"HepMcParticleLink\"]" "HITtoRDO:job.StandardPileUpToolsAlg.PileUpTools[\"MergeMcEventCollTool\"].OnlySaveSignalTruth=True;job.StandardPileUpToolsAlg.PileUpTools[\"MdtDigitizationTool\"].LastXing=150;""tagToOverride=\"mV-LSB\";from IOVDbSvc.CondDB import conddb;conddb.addOverride(\"/LAR/ElecCalibMCSC/Noise\",\"LARElecCalibMCSCNoise-\"+tagToOverride);conddb.addOverride(\"/LAR/ElecCalibMCSC/Ramp\",\"LARElecCalibMCSRamp-\"+tagToOverride);topSequence.LArSCL1Maker.TruthHitsContainer=\"SCellTruth\";streamRDO.ItemList+=[\"CaloCellContainer#SCellTruth\"]" \
         --postInclude "default:RecJobTransforms/UseFrontier.py" "LArROD/LArSuperCellEnable.py" \
         --preExec "all:rec.Commissioning.set_Value_and_Lock(True);""mu=1;from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(mu);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(mu);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True)" "HITtoRDO:userRunLumiOverride={\"run\":222525, \"startlb\":1,\"timestamp\":1376703331, \"mu\":1.0}" \
          --preInclude \
 "Digitization/ForceUseOfPileUpTools.py,SimulationJobOptions/preInclude.PileUpBunchTrainsMC15_2015_25ns_Config1.py,RunDependentSimData/configLumi_user.py" \
         --steering "RAWtoESD:in-RDO,in+RDO_TRIG,in-BS"   \
         --triggerConfig "MCRECO:DBF:TRIGGERDBMC:2013,7,11"

4.4) mV scheme, no pileup


export SCHEME=fixedEtLSB_middle125

export JO=PG_Electron_3p5TeV_Eta0p8_Phi0p1
export HITS=../HITS/${JO}.HITS.pool.root
export RDO=../RDO/${SCHEME}_${JO}.RDO.pool.root

Reco_tf.py --inputHITSFile $HITS/*.pool.root \
           --outputRDOFile $RDO \
           --maxEvents=1000 --jobNumber=1 \
           --conditionsTag         'default:OFLCOND-RUN12-SDR-30' \
           --geometryVersion       'default:ATLAS-R2-2015-03-01-00' \
           --autoConfiguration     'everything' \
           --numberOfHighPtMinBias '0' \
           --numberOfLowPtMinBias  '0' \
           --numberOfCavernBkg     '0' \
           --digiSeedOffset1 $RANDOM \
           --digiSeedOffset2 $RANDOM \
           --postExec "all:CfgMgr.MessageSvc().setError+=[\"HepMcParticleLink\"]" "tagToOverride=\"mV-LSB\";from IOVDbSvc.CondDB import conddb;conddb.addOverride(\"/LAR/ElecCalibMCSC/Noise\",\"LARElecCalibMCSCNoise-\"+tagToOverride);conddb.addOverride(\"/LAR/ElecCalibMCSC/Ramp\",\"LARElecCalibMCSRamp-\"+tagToOverride);topSequence.LArSCL1Maker.TruthHitsContainer=\"SCellTruth\";streamRDO.ItemList+=[\"CaloCellContainer#SCellTruth\"]" \
           --postInclude "default:RecJobTransforms/UseFrontier.py" "LArROD/LArSuperCellEnable.py" \
           --preExec "all:rec.Commissioning.set_Value_and_Lock(True);""mu=1;from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(mu);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(mu);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True)"  \
           --steering "RAWtoESD:in-RDO,in+RDO_TRIG,in-BS"   \
           --triggerConfig "MCRECO:DBF:TRIGGERDBMC:2013,7,11"

5) Creating an Hybrid xAOD/D3PD

This is needed because we cannot access calorimter cells directly in xAOD (one can still use the AOD and Athena for that, but we want to do all in ROOT, so this hybrid is necessary). This is not ATLAS standandard, and as such some patches are necessry to run it. This was provided by Denis Damazio. You will need to download the d3pd_filler.tgz file attached here

(make sure you are in the TestArea directory where you run asetup)

pkgco.py D3PDMakerRoot-00-01-33
pkgco.py CaloD3PDMaker
pkgco.py PyJobTransforms-02-03-46

tar -zxvf d3pd_filler.tgz 
cp -r D3PD_filler/* .
./compile.sh

cd Run

export SCHEME=mV-LSB

export JO=PG_Electron_3p5TeV_Eta0p8_Phi0p1
export RDO=../RDO/${SCHEME}_${JO}.RDO.pool.root
export XAOD=../AOD/${SCHEME}_${JO}.xAOD.pool.root

Reco_tf.py \
    --inputRDOFile ${RDO} \
    --outputAODFile ${XAOD} \
    --maxEvents 10000 \
    --conditionsTag 'OFLCOND-RUN12-SDR-30' \
    --geometryVersion 'ATLAS-R2-2015-03-01-00' \
    --autoConfiguration 'everything' \
    --postInclude 'RecJobTransforms/UseFrontier.py' 'r2e:postInc_SC_RDOtoESD.py' 'e2a:postInc_SC_ESDtoAOD.py,D3PD_tt.py'

That's it. You should have an xAOD file with the calorimeter tree inside: caloD3PD contains several calorimeter objects at the cell level (reconstructed and digits) as well as the SuperCell objects. The CollectionTree has the xAOD containers (Tracking, MET, Jets etc.) - so you need to load ROOTCORE to access these.

-- MarcoALeite - 2016-03-09

Topic attachments
I Attachment History Action Size Date Who Comment
Compressed Zip archivetgz d3pd_filler.tgz r1 manage 11.4 K 2016-03-10 - 01:15 MarcoALeite  
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2016-03-10 - MarcoALeite
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox 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