Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < | ECal in DD4hep | |||||||
> > | Implementing a detector in DD4hep | |||||||
Changed: | ||||||||
< < | The way detector models are defined is quite different between Mokka and DD4hep. DD4hep provides representations of all TGeo shapes and means to place them in a hierarchy of detector elements with additional information, and this is the core feature of DD4hep. | |||||||
> > | The way detector models are defined is quite different between Mokka and DD4hep. DD4hep provides representations of all TGeo shapes and means to place them in a hierarchy of detector elements with additional information, and this is the core feature of DD4hep. This wiki shows how one would add a detector, e.g. the ECal, in DD4hep. | |||||||
Changed: | ||||||||
< < | Prototype implementations of the ECal in DD4hep | |||||||
> > | Prototype implementations in DD4hep | |||||||
| ||||||||
Changed: | ||||||||
< < | The CLICSiD example in the Root's GL viewer: | |||||||
> > | The CLICSiD example in the Root's OGL viewer: | |||||||
Line: 131 to 131 | ||||||||
| ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < | New CLIC ECal in DD4hep | |||||||
> > | ECal in DD4hep | |||||||
The way detector models are defined is quite different between Mokka and DD4hep. DD4hep provides representations of all TGeo shapes and means to place them in a hierarchy of detector elements with additional information, and this is the core feature of DD4hep. | ||||||||
Deleted: | ||||||||
< < | Current ECal implementationsCurrent<--Mokka (ILD, C++) and GeomConverter (SiD, Java)-->implementations can be found in:
| |||||||
Prototype implementations of the ECal in DD4hep
| ||||||||
Line: 24 to 17 | ||||||||
Implementing ECal in the ILD model | ||||||||
Changed: | ||||||||
< < | As a first step, one can copy the ECal components from the CLICSiD to the existing ILDEx model. | |||||||
> > | The ILDEx example included with DD4hep will produce this: | |||||||
Added: | ||||||||
> > | As a first step, one can copy the ECal components from the CLICSiD to the existing ILDEx model. I will call my new test detector ILDxECal: | |||||||
Added: | ||||||||
> > | cd ~/myDD4hep cp -r /afs/phas.gla.ac.uk/data/ilc/software/DD4hep/examples/ILDEx ILDxECalClean up its contents a bit cd ILDxECal rm -rf build bin/* lib/*and rename all ILDEx instances to ILDxECal. Use copy and paste to add to compact/ILDxECal.xml all relevant EcalBarrel dimensions, materials, visualisation options and geometry definitions ( in the respective sections of the XML). First define:
<constant name="CaloSides" value="12"/> <constant name="EcalBarrel_rmin" value="126.50*cm"/> <constant name="EcalBarrel_zmax" value="176.50*cm"/>then in materials add <material name="TungstenDens24"> <D value="17.8" unit="g/cm3"/> <fraction n="0.93" ref="W"/> <fraction n="0.061" ref="Ni"/> <fraction n="0.009" ref="Fe"/> </material>then add some visualisation options <vis name="EcalBarrelVis" alpha="1.0" r="0" g="0" b="0.3" showDaughters="true" visible="true"/> <vis name="EcalBarrelStaveVis" alpha="1.0" r="1" g="0.9" b="0.5" showDaughters="false" visible="true"/>Add now the EcalBarrel geometry: <detector id="6" name="EcalBarrel" type="EcalBarrel" readout="EcalBarrelHits" vis="EcalBarrelVis" calorimeterType="EM_BARREL"> <comment>EM Calorimeter Barrel</comment> <comment> Copied by protopop@cern.ch from CLICSiD example </comment> <dimensions numsides="(int) CaloSides" rmin="EcalBarrel_rmin" z="EcalBarrel_zmax*2" /> <staves vis="EcalBarrelStaveVis"/> <layer repeat="1"> <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" /> <slice material = "Copper" thickness = "0.005*cm" /> <slice material = "Kapton" thickness = "0.030*cm" /> <slice material = "Air" thickness = "0.033*cm" /> </layer> <layer repeat="20"> <slice material = "TungstenDens24" thickness = "0.25*cm" /> <slice material = "Air" thickness = "0.025*cm" /> <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" /> <slice material = "Copper" thickness = "0.005*cm" /> <slice material = "Kapton" thickness = "0.030*cm" /> <slice material = "Air" thickness = "0.033*cm" /> </layer> <layer repeat="10"> <slice material = "TungstenDens24" thickness = "0.5*cm" /> <slice material = "Air" thickness = "0.025*cm" /> <slice material = "Silicon" thickness = "0.032*cm" sensitive = "yes" limits="cal_limits" /> <slice material = "Copper" thickness = "0.005*cm" /> <slice material = "Kapton" thickness = "0.030*cm" /> <slice material = "Air" thickness = "0.033*cm" /> </layer> </detector>and its readout <readout name="EcalBarrelHits"> <segmentation type="CartesianGridXY" grid_size_x="3.5*cm" grid_size_y="3.5*cm" /> <id>system:8,barrel:3,module:4,layer:6,slice:5,x:32:-16,y:-16</id> </readout>One will need the C++ code snippet that interprets the BarellEcal XML data and expands the geometry: cd ~/myDD4hep cp /afs/phas.gla.ac.uk/data/ilc/software/DD4hep/examples/CLICSiD/src/EcalBarrel_geo.cppNow one can build the new test detector: source /afs/phas.gla.ac.uk/data/ilc/software/ilcsoft/v01-17/init_ilcsoft.sh source /afs/phas.gla.ac.uk/data/ilc/software/DD4hep/bin/thisdd4hep.sh cd ~/myDD4hep/ILDxECal/build cmake .. make -j install cd ../ source bin/thisILDxECal.sh ./geoDisplay compact/ILDxECal.xmland one obtains this: | |||||||
Changed: | ||||||||
< < | Validating the DD4hep implementation of ECal | |||||||
> > |
ECal geometriesThe ECal<--Mokka (ILD, C++) and GeomConverter (SiD, Java)-->geometry parameters can be compared with the values from:
| |||||||
Troubleshooting | ||||||||
Added: | ||||||||
> > | Make sure units are present when dimensions and parameters are set in the compact XML file:
<segmentation type="CartesianGridXY" grid_size_x="3.5*cm" grid_size_y="3.5*cm" /> | |||||||
| ||||||||
Added: | ||||||||
> > |
| |||||||
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
New CLIC ECal in DD4hep | ||||||||
Line: 8 to 8 | ||||||||
Current ECal implementations | ||||||||
Changed: | ||||||||
< < | The current Mokka (ILD, C++) and GeomConverter (SiD, Java) implementations can be found in: | |||||||
> > | Current <--Mokka (ILD, C++) and GeomConverter (SiD, Java)-->implementations can be found in: | |||||||
Added: | ||||||||
> > |
| |||||||
Prototype implementations of the ECal in DD4hep | ||||||||
Changed: | ||||||||
< < | Implementing ECal in DD4hep | |||||||
> > |
Implementing ECal in the ILD modelAs a first step, one can copy the ECal components from the CLICSiD to the existing ILDEx model. | |||||||
Validating the DD4hep implementation of ECalTroubleshooting | ||||||||
Added: | ||||||||
> > |
| |||||||
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < | New CLIC Detector Concept | |||||||
> > | New CLIC ECal in DD4hepThe way detector models are defined is quite different between Mokka and DD4hep. DD4hep provides representations of all TGeo shapes and means to place them in a hierarchy of detector elements with additional information, and this is the core feature of DD4hep. | |||||||
Changed: | ||||||||
< < | Current ECAL implementation in Mokka | |||||||
> > | Current ECal implementationsThe current Mokka (ILD, C++) and GeomConverter (SiD, Java) implementations can be found in:Prototype implementations of the ECal in DD4hepImplementing ECal in DD4hepValidating the DD4hep implementation of ECal | |||||||
Changed: | ||||||||
< < | The current implementation is done in Mokka (ILD,C++) / GeomConverter (SiD, Java). | |||||||
> > | Troubleshooting | |||||||
Changed: | ||||||||
< < | Prototype implementations of the ECAL in DD4hep | |||||||
> > |
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Added: | ||||||||
> > |
New CLIC Detector ConceptCurrent ECAL implementation in MokkaThe current implementation is done in Mokka (ILD,C++) / GeomConverter (SiD, Java).Prototype implementations of the ECAL in DD4hep |