160 likes | 308 Views
Detector Simulation Examples. From the LHCb twiki page : SetupProject LHCb setenv tagA head-20090914 setenv tagB sim-20111020-vc-md100 mkdir myDDDB-Tutorial-LHCb-Feb2012 dump_db_to_files.py -c sqlite_file :$SQLITEDBPATH/ DDDB.db /DDDB -T $ tagA
E N D
From the LHCbtwiki page : SetupProjectLHCb setenvtagA head-20090914 setenvtagBsim-20111020-vc-md100 mkdir myDDDB-Tutorial-LHCb-Feb2012 dump_db_to_files.py -c sqlite_file:$SQLITEDBPATH/DDDB.db/DDDB -T $tagA -d myDDDB-Tutorial-LHCb-Feb2012 dump_db_to_files.py -c sqlite_file:$SQLITEDBPATH/SIMCOND.db/SIMCOND -T $tagB -d myDDDB-Tutorial-LHCb-Feb2012 • For the tutorial Copy the subdirectories TutorialExample, LHCb, AfterMagnet from /afs/cern.ch/user/s/seaso/public/Det/Tutorial/myDDDB-Tutorial-LHCb-Feb2012 area Creating a DB slice
Using Panoramix for Geometry Visualization • The new geometry element is part of a DB slice . • Let us call this local Db slice : ‘myDDDB-Tutorial-LHCb-Feb2012’ • Step1: Create a file ‘DetDb_Tutorial.py’ which has something like: from Configurables import LHCbApp, CondDB, UpdateManagerSvc,DDDBConffrom Gaudi.Configuration import *lhcbApp = LHCbApp()DDDBConf().DbRoot = "/afs/cern.ch/user/s/seaso/scratch0/cmtuser/SQLDDDB/db/myDDDB-Tutorial-LHCb-Feb2012/lhcb.xml"CondDB().Tags['DDDB'] = 'HEAD'lhcbApp.DDDBtag = "head-20110914"lhcbApp.DataType = "2010"lhcbApp.Simulation = TrueLHCbApp().CondDBtag = "sim-20111020-vc-md100" • Step2: SetupProjectPanoramix v20r2 python $mypanoramix --BareConfig 1 –f none -v DetDb_Tutorial.py
Using Panoramix for Geometry Visualization In the Panoramix window, click through the geometry tree • Step3: dd Structure Geometry AfterMagnetRegion TutorialMaster lvTutorialMaster Use the info from HelpGeometry to navigate into the volumes Step 4: • Demonstration from an lxplus window. • Simple Solids, Boolean subtracted Solid. • Array of solids
Panoramix Demonstrations • More info related to • running Panoramix • and copying the XmlVis • in backup slides
More Examples • Example Volumes : Three PixelContainersinside TutorialMaster • Arrays of pixels inside each PixelContainer Demonstration using Panoramics
Exercises Create a boolean subtracted Box , starting from the Tutorial example and visualize it in Panoramix. It can be a box with two cylindrical holes. Example shown here. Use the instructions in earlier slides To get the DB, before making modifications. The instructions for Running panoramix are also in earlier slides. An example solution is also provided in the database.
Exercises In the example with Pixelcontainer, create pixels in a way which is symmetric around the beam axis. An example is shown here with pixels in the shape of r-phi geometry.
Use the volume create in Exercise 2 to run Gauss with particle gun and print (a) The location of where the tracks are incident on the PixelContainer. (b) The location of where the tracks are incident on the pixels. Use the instructions from backup slides to run Gauss. Exercise2: Part2After the Geant4 lecture
DB Slice for Tutorial : Instructions for Panoramix • For the Tutorial, a DB slice is made where the RICH2 is temporarily kept aside. • The space for that is used to create a TutorialMaster Volume within which • we can create additional volumes in this tutorial. • This can be copied to your area using instructions on page 2 • Visualization attributes to volumes (colours , wire frames etc). • The Tutorial Volume attributes in TutorialLogVols.xml, TutorialVisAtts.xml and • colors.xml setenvProjectPanoramix v20r2 cd ~/cmtuser/Panoramix_v20r2 getpack Vis/XmlVishead Optional: getpack Vis/Panoramix v20r2 run $mypanamix from the options area of this panoramix.
Example running of Gauss • setenvGauss v41r1 • cd ~/cmtuser/Gauss_v41r1 • getpackSim/Gauss v41r1 • getpack Gen/LbPGuns • getpack Tutorial/GaussTutorial head • Compile the GaussTutorial • Edit Gauss requirements to use this packge • Copy the options files in • /afs/cern.ch/user/s/seaso/public/Simulation/Tutorial/TutorialOptions • Use the standard Particle Gun options • (alternately copy the options file ParticleGun_rich2.py from • /afs/cern.ch/user/s/seaso/public/Simulation/Tutorial/Gen/LbPGubs/options area.) • gaudirun.py Gauss-DB-Feb2012-Tutorial.py • Gauss_Job_TutorialUserPackage.py
Exercise solutions 1: In the ../myDDDB-Tutorial-LHCb-Feb-2012/TutorialExample cp geometry_exercise1.xml geometry.xml cp structre_basic.xml structure.xml SetupProjectPanoramix v20r2 python $mypanoramix --BareConfig 1 –f none -v DetDb_Tutorial.py 2: In the ../myDDDB-Tutorial-LHCb-Feb2012/TutorialExample cp geometry_exercise2.xml geometry.xml Then run panoramix as above To run gauss use the instructions on the previous slide
Options for using volumes inside TutorialMaster geometry_setA.xml : basic geometry geometry_SetP.xml : few boolean solids geometry_SetCoinA.xml : array of coins geometry_SetPix.xml : PixelContainer geometry_Exercise1.xml, geometry_Exercise2.xml, geometry_Exercise3.xml : solutions to the exercises cp geometry_xxx.xml geometry.xml for the using the various setups structure_basic.xml : basic geometry, boolean solids , PixelContainer etc. With PixelContainer geometry: structure_GenericDetElem.xml : generic detector element structure_MasterSpDetElem.xml : customized detector element. structure_exercise3.xml : solution to exercise 3 cp structure_xxx.xml structure.xml to use the various options. Tutorial DB options
<DDDB> <logvol name="lvTexPixContainer" material="RichMaterials/RichCO2" > <tubs name="TutorialPixContainer" sizeZ="TexSiContainerZSize" outerRadius="TexSiContainerOuterRadius" innerRadius="TexSiContainerInnerRadius" /> &TutorialPixArrayPhys; </logvol> <!-- <logvol name="lvTexSiPixel" material="Silicon" sensdet="TutorialSensDet/TexSensDet" > --> <logvol name="lvTexSiPixel" material="Silicon" > <box name="TutorialPixBox" sizeX="TexSiPixXSize" sizeY="TexSiPixYSize" sizeZ="TexSiPixZSize" /> </logvol> </DDDB> Tutorial Example XML Log Vol : Si Pix Array
<DDDB> <logvol name="lvTexCoin" material="TT/SiO2" > <subtraction name="TutorialCoinSub" > <tubs name="TutorialExampleCoinTubs" sizeZ="TexCoinThickness" outerRadius="TexCoinOuterR" innerRadius="TexCoinInnerR" /> <box name="TutorialExampleCoinSubBox" sizeX="TexCoinSubBoxXSize" sizeY="TexCoinSubBoxYSize" sizeZ="TexCoinSubBoxZLargeSize" /> <posXYZ /> </subtraction> </logvol> </DDDB> Tutorial example XML Log Vol : Coin shown in the slides