80 likes | 89 Views
How to Run TB2003 MC*. JP Archambault, Carleton University November 2007. * A directory ~jparcham/TB2003Tutorial has been made on bigmac and lxplus to hold all relevant files. Running Simulation in 13.0.30. Create directory for Athena 13.0.30: > mkdir $HOME/…/13.0.30
E N D
How to Run TB2003 MC* JP Archambault, Carleton University November 2007 * A directory ~jparcham/TB2003Tutorial has been made on bigmac and lxplus to hold all relevant files
Running Simulation in 13.0.30 • Create directory for Athena 13.0.30: > mkdir $HOME/…/13.0.30 • setup cmt for 13.0.30 (use v1r20p20070208): > source $HOME/cmthome/setup.sh -tag=13.0.30 • Check out packages for G4AtlasApps and LArGeoH62003Algs: > cd $HOME/…/13.0.30 >cmt co -r G4AtlasApps-00-02-03-13 Simulation/G4Atlas/G4AtlasApps >cmt co -r LArGeoH62003Algs-00-00-20 LArCalorimeter/LArGeoModel/LArGeoH62003Algs • Copy some files from my area (needed for new geometry): > cp ~jparcham/TB2003Tutorial/LArDetectorConstructionH62003.cxx $HOME/…/13.0.30/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/src/. • Copy some jobOptions from my area: > cp ~jparcham/TB2003Tutorial/jobOptions.G4TB_LArH6-2003.py $HOME/…/13.0.30/Simulation/G4Atlas/G4AtlasApps/share/. • Compile packages: > cd $HOME/…/13.0.30/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/cmt > gmake >cd $HOME/…/13.0.30/Simulation/G4Atlas/G4AtlasApps/cmt >source setup.sh >gmake • Run jobOptions: > cd $HOME/13.0.30/Simulation/G4Atlas/G4AtlasApps/run/ > athena ../share/jobOptions.G4TB_LArH6-2003.py
How to Change Settings • jobOptions file has been restructured to have all TB flags at beginning: eg. • thePOSITION='POSITION4L' • theParticlePDG='11' ### 11 = e-, 13 = mu-, 211 = pi-, • theEnergy='193100' ### [MeV] • theEvtNum=20 • doCalibTB2003=False ###Set true to use Calibration Hits * • doTBMC_CBNTAA=True • BeamProfileVertex=False ### Set to True if want Particle Generator to use real data to set beam profile (Must check our Generators package; see next slide) • thePhysicsList='QGSP_EMV' ### ATLAS default is QGSP_EMV (as of 13.0.30) • theSeeds='SINGLE 2000160768 643921183' • PoolFileName='H6TB2003MC.pool.root' • AANFileName='H6TB2003MC.aan.root’ ### for running CBNTAA • Change electrode map: • Change atlas version in G4AtlasApps/python/SimCtbKernel.py • GeoModelSvc.AtlasVersion = "ATLAS-H6-2003-02" * Calibration hits for TB2003 also need modification of LArG4FCal code - see pg 7 for details
Check out packages for ParticleGenerators: > cmt co -r ParticleGenerator-00-00-34 Generators/ParticleGenerator • Change directories to ParticleGenerators • Copy some files from my area: > cp ~jparcham/TB2003Tutorial/ParticleGeneratorRoot.cxx src/. > cp ~jparcham/TB2003Tutorial/ParticleGeneratorRoot.h ParticleGenerator/. > cp ~jparcham/TB2003Tutorial/ParticleGeneratorRoot.cxx src/. > cp ~jparcham/TB2003Tutorial/ParticleGenerator_entries.cxx src/components/. > cp ~jparcham/TB2003Tutorial/jobOptions_ParticleGeneratorRoot.py share/. > cp ~jparcham/TB2003Tutorial/LArFCALTBBPCInfo_jobOptions_2324.root share/. • Compile packages: • Run jobOptions: > cd $HOME/13.0.30/Generators/share/. > athena ../share/jobOptions_ParticleGeneratorRoot.py Beam Profile Vertex (from Louise) See Louise’s handout for some results
Run Athena Aware (AA) Ntuple for TB2003 MC • Check out LArCnv/LArFCALTBCnv (00-02-01) • Check out LArTestBeam/LArFCALTBAna (00-01-24) • Copy some updated files: > cp ~jparcham/TB2003Tutorial/LArFCalTB_MC_CBNT_AA.cxx > cp ~jparcham/TB2003Tutorial/LArFCalTB_MC_CBNT_AA.h • Compile • Previous jobOptions file produces AANtuple called 'H6TB2003MC.aan.root’ • Check file ~jparcham/TB2003Tutorial/TBMC_CBNT_Var_list.pdf for details on variables in CBNT • pdf is also available on twiki: • https://twiki.cern.ch/twiki/bin/view/Atlas/LArFCALTBCnv
if(doTBMC_CBNTAA): CBNTAthenaAware=True include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" ) include( "CBNT_Athena/CBNT_EventInfo_jobOptions.py" ) from AthenaCommon.AppMgr import ServiceMgr from GaudiSvc.GaudiSvcConf import THistSvc THistFile = "AANT DATAFILE='" + AANFileName + "' OPT='RECREATE'" ServiceMgr += THistSvc(Output = [THistFile]) from AthenaCommon.AppMgr import theApp from AthenaCommon.AppMgr import ToolSvc from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() from LArFCALTBAna.LArFCALTBAnaConf import LArFCalTB_MC_CBNT_AA topSequence.CBNT_AthenaAware += LArFCalTB_MC_CBNT_AA() theFCalCBNTAA=LArFCalTB_MC_CBNT_AA() if (doCalibTB2003==True): theFCalCBNTAA.Calibration=True from AnalysisTools.AnalysisToolsConf import AANTupleStream topSequence += AANTupleStream() AANTupleStream.ExtraRefNames = [ "StreamESD","StreamRDO" ] AANTupleStream.OutputName = AANFileName ###must match AANT DATAFILE AANTupleStream.ExistDataHeader=False from GaudiSvc.GaudiSvcConf import HistogramPersistencySvc HistogramPersistencySvc.HistogramPersistency = "ROOT" Commands for Athena Aware (AA) Ntuple for TB2003MC (using configurables) File name set higher up in jobO
Digitization and Reconstruction • Digitization: • Check out LArDigitization: • >cmt co -r LArDigitization-03-02-01 LArCalorimeter/LArDigitization • Copy some jobOptions files used to turn off EMEC, HEC … > cp ~jparcham/TB2003Tutorial/ LArDigitization_G4_jobOptions.py $HOME/…/13.0.30/LArCalorimeter/LArDigitization/share/. • Copy myDigiOptions.py to your run area: • > cp ~jparcham/TB2003Tutorial/myDigiOptions.py$HOME/…/13.0.30/Simulation/G4Atlas/G4AtlasApps/run/. • Run from your run area: > athena myDigiOptions.py Digitization/AtlasDigitization.py >&! outfile_digi.log & • Reconstruction: • Copy myTopOptions.py to your area: > cp ~jparcham/TB2003Tutorial/myTopOptions.py $HOME/…/13.0.30/Simulation/G4Atlas/G4AtlasApps/run/. • Run from your area: > athena.py myTopOptions.py >&! outfile_reco.log
Changes needed to LArG4FCalCalculator due to rotation of FCal in the TB2003 setup • calculator needs the x,y-position relative to FCal mother volume instead of Atlas world coordinates Calibration Hits: Changes to LArG4FCal Recipe: • Checkout LArCalorimeter/LArG4/LArG4FCAL-00-00-32 and compile • modify src/LArFCALCalibCalculatorBase.cc • change m_zshift(4.0*cm) to m_zshift(0.0*cm) in constructor • comment out G4ThreeVector theLocalPoint(p); • add following lines just after int etaIndex, phiIndex; • G4TouchableHandle theTouchable = pre_step_point->GetTouchableHandle(); • G4ThreeVector theWorldPosition = pre_step_point->GetPosition(); • G4int detDepth = 0; • G4int histDepth = theTouchable->GetHistory()->GetDepth(); • for(G4int i = 0; i < histDepth; i++){ • std::string volumeName = theTouchable->GetHistory()->GetVolume(i)->GetName(); • if((volumeName == "LArMgr::LAr::FCAL::LiquidArgonA") || • (volumeName == "LArMgr::LAr::FCAL::LiquidArgonC") { • detDepth = i; • continue; • } • } • G4ThreeVector theLocalPoint = theTouchable->GetHistory() • ->GetTransform(detDepth).TransformPoint(theWorldPosition); • re-compile