Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 14-implement-cb_vtx_endcaps
  • 15-implement-cb_sidiscs
  • 24-implement-ci_hcal
  • 27-implement-fi_b0_emcal
  • 28-implement-ffi_offm_trk-2
  • 32-implement-ffi_rpot_d2
  • 40-implement-sampling-calorimeter
  • 41-detailed-zero-degree-calorimeter-hcal
  • 42-make-detector-compile-and-correctly-work-on-gcc-9-3-ubuntu-20-04
  • 65-trigger-detector-benchmarks
  • 7-implement-ce_emcal
  • 73-pion-rejection-yr-benchmark
  • 8-implement-cb_ctd
  • Implement_AMEGOX_layers
  • default_visibilities
  • det_template
  • fix_ci_GEM
  • fix_material
  • master
  • rm_template
  • solenoid_fix
  • testBranchRobin
  • upstream_trigger
  • view_update
  • wdconinc-ecal-testing
  • yezhenyu-btof-20210520
  • yezhenyu_work_master
  • v0.1.0
  • v0.2.0
29 results

Target

Select target project
No results found
Select Git revision
  • 14-implement-cb_vtx_endcaps
  • 15-implement-cb_sidiscs
  • 24-implement-ci_hcal
  • 27-implement-fi_b0_emcal
  • 28-implement-ffi_offm_trk-2
  • 32-implement-ffi_rpot_d2
  • 40-implement-sampling-calorimeter
  • 41-detailed-zero-degree-calorimeter-hcal
  • 42-make-detector-compile-and-correctly-work-on-gcc-9-3-ubuntu-20-04
  • 65-trigger-detector-benchmarks
  • 7-implement-ce_emcal
  • 73-pion-rejection-yr-benchmark
  • 8-implement-cb_ctd
  • Implement_AMEGOX_layers
  • default_visibilities
  • det_template
  • fix_ci_GEM
  • fix_material
  • master
  • rm_template
  • solenoid_fix
  • testBranchRobin
  • upstream_trigger
  • view_update
  • wdconinc-ecal-testing
  • yezhenyu-btof-20210520
  • yezhenyu_work_master
  • v0.1.0
  • v0.2.0
29 results
Show changes
Commits on Source (7)
Overview
--------
A collection of reference detector geometry for Electron-Ion Collider experiment.
Related useful links
--------------------
- [Reference_Detector_doc] (https://escalate.readthedocs.io/projects/g4e/en/latest/detector_naming.html)
- [g4e] (https://gitlab.com/eic/escalate/g4e)
- [eic_tutorial] (https://argonne_eic.gitlab.io/tutorial/eic_tutorial/part2/adding_detectors/)
- [DD4hep] (https://github.com/AIDAsoft/DD4hep)
- [DD4hep_manual] (https://dd4hep.web.cern.ch/dd4hep/usermanuals/DD4hepManual/DD4hepManual.pdf)
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
<!-- Some information about detector -->
<info name="Central Barrel Solenoid" title="Central Barrel Solenoid"
author="Jihee Kim"
url="https://eicweb.phy.anl.gov/EIC/detectors/reference_detector.git"
status="development"
version="v1 2021-03-15">
<comment>Central Barrel Solenoid</comment>
</info>
<!-- Use DD4hep elements and materials definitions -->
<includes>
<gdmlFile ref="elements.xml"/>
<gdmlFile ref="materials.xml"/>
</includes>
<!-- Define the dimensions of the world volume -->
<define>
<constant name="world_side" value="50*m"/>
<constant name="world_x" value="world_side"/>
<constant name="world_y" value="world_side"/>
<constant name="world_z" value="world_side"/>
<constant name="tracker_region_zmax" value="6 * m"/>
<constant name="tracker_region_rmax" value="6 * m"/>
<constant name="cb_Solenoid_ID" value="1"/>
<constant name="cb_Solenoid_rmin" value="0.0 * cm"/> <!-- Central Barrel Solenoid Inner diameter -->
<constant name="cb_Solenoid_rmax" value="137.0 * cm"/> <!-- Central Barrel Solenoid Outer diameter -->
<constant name="cb_Solenoid_z" value="400.0 * cm"/> <!-- Central Barrel Solenoid Size in Z direction -->
<constant name="cb_Solenoid_shift" value="0.0 * cm"/>
</define>
<limits>
</limits>
<regions>
</regions>
<!-- Common Generic visualization attributes -->
<comment>Common Generic visualization attributes</comment>
<display>
<vis name="cb_SolenoidVis" alpha="0.4" r= "0.1" g="0.0" b="0.1" showDaughters="true" visible="true"/>
</display>
<!-- Define detector -->
<detectors>
<comment>
Central Barrel Solenoid Magnet
</comment>
<detector id="cb_Solenoid_ID" name="cb_Solenoid" type="cb_Solenoid" insideTrackingVolume="false" vis="cb_SolenoidVis">
<material name="Vacuum"/> <!-- G4_Galactic -->
<dimensions rmin="cb_Solenoid_rmin" rmax="cb_Solenoid_rmax" z="cb_Solenoid_z" delta="cb_Solenoid_shift"/>
</detector>
</detectors>
<plugins>
</plugins>
<!-- TODO: Define field using field map-->
<fields>
<field type="solenoid" name="GlobalSolenoid" inner_field="1.5 * tesla" outer_field="0.5*tesla"
zmin="100.0 * cm" zmax="100.0 * cm" inner_radius="100.0 * cm" outer_radius="100.0 * cm"/>
</fields>
</lccdd>
......@@ -2,7 +2,6 @@
<materials>
<!--
Air by weight from
http://www.engineeringtoolbox.com/air-composition-24_212.html
-->
<material name="Air">
......@@ -13,7 +12,7 @@
</material>
<!-- We model vakuum just as very thin air -->
<material name="Vacuum">
<D type="density" unit="g/cm3" value="0.0000000001"/>
<D type="density" unit="g/cm3" value="1.e-25"/>
<fraction n="0.754" ref="N"/>
<fraction n="0.234" ref="O"/>
<fraction n="0.012" ref="Ar"/>
......
#include <XML/Helper.h>
///////////////////////////
// Central Barrel Solenoid
///////////////////////////
using namespace dd4hep;
static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens)
{
xml::DetElement detElem = handle;
std::string detName = detElem.nameStr();
int detID = detElem.id();
xml::Component dims = detElem.dimensions();
double SizeZ = dims.z(); // Size in Z direction
double ROut = dims.rmax(); // Outer diameter
double RIn = dims.rmin(); // Inner diameter
double ShiftZ = dims.delta();
Material mat = desc.material(detElem.materialStr());
Tube cb_Solenoid_GVol_Solid(RIn, ROut, SizeZ / 2., 0., 360 * deg);
Volume detVol("cb_Solenoid_GVol_Logic", cb_Solenoid_GVol_Solid, mat);
detVol.setVisAttributes(desc.visAttributes(detElem.visStr()));
DetElement det(detName, detID);
Volume motherVol = desc.pickMotherVolume(det);
Transform3D tr(RotationZYX(0., 0., 0.), Position(0., 0., ShiftZ));
PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
det.setPlacement(detPV);
return det;
}
// clang-format off
DECLARE_DETELEMENT(cb_Solenoid, createDetector)