Glasgow SiD howto
The starting point is the
sidloi3 model in
lcgeo
implemented by F. Gaede and based on the original
sidloi3
compact file.
This was tested by simulating single muons and reconstructing them (see
lcgeo/example/run_sid_reco.xml
).
Getting Started Tutorial
A detailed step by step tutorial can be found here:
GlaSiDGettingStarted. If you are new to
ilcsoft and
DD4hep, it's best to start there.
Versions and paths
Note that some paths used in these wiki pages will change when various software components are upgraded (e.g. from gcc 4.8.1 to 4.8.4, ilcsoft v01-17-09 to v01-17-10 etc.). Always make sure you use the correct versions.
Building the model
The model is using the generic detector drivers in DD4hep. For the calorimeters (Ecal/Hcal) the current (Oct 2015) CLIC drivers were used in order to have the DDRec extensions that will eventually be needed by DDMarlinPandora.
To compile, from the local
lcgeo/
directory:
source /cvmfs/sft.cern.ch/lcg/external/gcc/4.8.1/x86_64-slc6-gcc48-opt/setup.sh
export PATH=/cvmfs/sft.cern.ch/lcg/external/Python/2.7.4/x86_64-slc6-gcc48-opt/bin/:$PATH
export LD_LIBRARY_PATH=/cvmfs/sft.cern.ch/lcg/external/Python/2.7.4/x86_64-slc6-gcc48-opt/lib/:$LD_LIBRARY_PATH
make -C build -j4 install
To check the geometry:
source ../config_dd4hep.sh
source ../dd4hep/bin/thisdd4hep.sh
source bin/thislcgeo.sh
geoDisplay SiD/compact/sidloi3/sidloi3_v00.xml
then from root prompt
root [1] gGeoManager->CheckOverlaps(0.01);
Info in <TGeoNodeMatrix::CheckOverlaps>: Checking overlaps for world_volume and daughters within 0.01
Check overlaps: [==========] 129404 [100.00 %] 01
Info in <TGeoNodeMatrix::CheckOverlaps>: Number of illegal overlaps/extrusions : 6
Checking simulation+reconstruction chain
From
lcgeo
:
source /cvmfs/ilc.desy.de/sw/x86_64_gcc48_sl6/v01-17-07/Marlin/v01-06/build_env.sh
Marlin example/run_sid_reco.xml
See
GlaSiDGettingStarted for recent SiDReconstruction.xml.
Implementing custom SiD ECal drivers
The initial implementations uses
GenericCalBarrel_o1_v01
and
GenericCalEndcap_o1_v01
drivers. The generic drivers will build the main detection volumes but will not include detailed structural components and/or subcomponents (e.g. stacks, towers, gaps, support elements).
View with:
geoDisplay SiD/compact/SiD_o1_v01/SiD_o1_v01.xml
Test with ECals only (other subdetectors commented in
SiD_o1_v01.xml
):
root [0] gGeoManager->CheckOverlaps(0.01);
Info in <TGeoNodeMatrix::CheckOverlaps>: Checking overlaps for world_volume and daughters within 0.01
Check overlaps: [==========] 3039 [100.00 %] 00:00
Info in <TGeoNodeMatrix::CheckOverlaps>: Number of illegal overlaps/extrusions : 0
Note that general ECal parameters are defined in
SiD_o1_v01.xml
, e.g.
<constant name="EcalBarrel_half_length" value="1765.0*mm" />
<constant name="EcalBarrel_rmin" value="1265.0*mm" />
<constant name="EcalBarrel_rmax" value="1403.0*mm" />
<constant name="EcalBarrel_symmetry" value="12" />
etc., and used in
EcalBarrel_o1_v01_00.xml
.
Repository
The development version of the code is located in
lcgeo/SiD/compact/SiD_o1_v01
in the
DESY SVN repo, where the core DD4hep software and the CLIC and ILD models are stored as well. The naming convention for compact files is "DET_oX_vYY_ZZ.xml", e.g.
EcalEndcap_o1_v01_00.xml
.
Use
svn cp DET.xm DET_oX_vYY_ZZ.xml
to rename compact files while preserving SVN history. The C++ drivers can be found in
lcgeo/detector/
.
Adding HCal
Using the naming convention explained above, we add
HcalBarrel_o1_v01_00.xml
and
HcalEndcap_o1_v01_00.xml
. We also need to edit
SiD_o1_v01.xml
to add general HCal parameters. See the result
here. Checked for illegal overlaps or extrusions and found none.
Adding other subdetectors
Plugins and readouts are now included in the individual detector's XML descriptions to make the model more modular (i.e. so that one can comment out sub-detectors from
SiD_o1_v01.xml
, if necessary).
Both
LumiCal_o1_v01_00.xml
and
BeamCal_o1_v01_00.xl
use DD4hep default drivers and some overlaps between the default envelopes have to be solved. See result
here.
Updated and tested
MuonBarrel_o1_v01_00.xml
,
MuonEndcap_o1_v01_00.xml
and
Solenoid_o1_v01_00.xml
were added (see table below).
The silicon trackers were updated and
SiTrackerBarrel_o1_v01_00.xml
and
SiTrackerEndcap_o1_v01_00.xml
were added to the SVN repo.
This is work in progress - watch this wiki (and the SVN repo) for updates.
Troubleshooting