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

Target

Select target project
  • 1810337/CEPCSW
  • shexin/CEPCSW
  • dudejing/CEPCSW
  • yudian2002/cepcsw-otb-development
  • cepcsw/CEPCSW
  • cepc/CEPCSW
  • shixin/CEPCSW
  • lizhan/CEPCSW
  • 1365447033/CEPCSW
  • shihy/CEPCSW
  • sunwy/CEPCSW
  • guofangyi/cepcsw-release
  • lintao/CEPCSW
  • tanggy/CEPCSW
  • gongjd1119/CEPCSW
  • 221840222/CEPCSW
  • lihn/CEPCSW
  • thinking/CEPCSW
  • myliu/CEPCSW
  • shihy/cepcsw-dose
  • zhaog/CEPCSW
  • 201840277/CEPCSW
  • wangchu/CEPCSW
  • xiaolin.wang/CEPCSW
  • fucd/CEPCSW1
  • tyzhang/CEPCSW
  • yudian2002/cepcsw-ote-development
  • songwz/cepcsw-tdr
  • luhc/CEPCSW
  • tangyb/CEPCSW
  • dhb112358/CEPCSW
  • chenbp/CEPCSW
  • guolei/CEPCSW
  • yudian2002/cepcsw-otk-end-cap-development
  • jiangxj/CEPCSW
  • yudian2002/cepcsw-geo-upgrade
  • fangwx/CEPCSW
  • yudian2002/cepcsw-geo-upgrade-v-2
  • mengwq/CEPCSW
  • zhangxm/CEPCSW
  • chenye/CEPCSW
  • wuchonghao9612/CEPCSW
  • xuchj7/CEPCSW
  • yudian2002/cepcsw-otk-endcap-update-01
  • lizhihao/CEPCSW
  • laipz/CEPCSW
  • zhangkl/CEPCSW
  • lihp29/CEPCSW
  • shuxian/CEPCSW
  • zhangyz/CEPCSW
  • zhangjinxian/CEPCSW_20250110
  • glliu/CEPCSW
  • shuohan/CEPCSW
  • fucd/CEPCSW
  • starr136a/CEPCSW
  • yudian2002/CEPCSW
  • wanjw03/CEPCSW
  • zyjonah/CEPCSW
  • maxt/CEPCSW
59 results
Show changes
Showing
with 1273 additions and 151 deletions
......@@ -84,9 +84,13 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h
dd4hep::PlacedVolume pv;
sens.setType("tracker");
if (x_det.hasChild(_U(sensitive))) {
xml_dim_t sd_typ = x_det.child(_U(sensitive));
sens.setType(sd_typ.typeStr());
}
else {
sens.setType("tracker");
}
dd4hep::rec::ZPlanarData* zPlanarData = new dd4hep::rec::ZPlanarData ;
......@@ -307,7 +311,7 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h
dd4hep::Volume sitSenLogical( dd4hep::_toString( layer_id,"SIT_SenLogical_%02d"), sitSenSolid,sensitiveMat ) ;
sitSenLogical.setSensitiveDetector(sens);
if (x_det.hasAttr(_U(limits))) sitSenLogical.setLimitSet(theDetector, x_det.limitsStr());
//====== create the meassurement surface ===================
dd4hep::rec::Vector3D u,v,n ;
......@@ -473,6 +477,10 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h
//--------------------------------------
sit.setVisAttributes( theDetector, x_det.visStr(), envelope );
if ( x_det.hasAttr(_U(combineHits)) ) {
sit.setCombineHits(x_det.attr<bool>(_U(combineHits)),sens);
}
return sit;
}
......
......@@ -26,7 +26,7 @@ using dd4hep::rec::SurfaceType;
using dd4hep::rec::volSurfaceList;
using dd4hep::rec::VolPlane;
using dd4hep::rec::FixedPadSizeTPCData;
using dd4hep::rec::ConicalSupportData;
/** Construction of TPC detector, ported from Mokka driver TPC10.cc
* Mokka History:
* - modified version of TPC driver by Ties Behnke
......@@ -68,7 +68,13 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
PlacedVolume pv;
sens.setType("tracker");
if (x_det.hasChild(_U(sensitive))) {
xml_dim_t sd_typ = x_det.child(_U(sensitive));
sens.setType(sd_typ.typeStr());
}
else {
sens.setType("tracker");
}
std::cout << " ** building TPC10_geo in lcgeo " << lcgeo::versionString() << std::endl ;
......@@ -476,7 +482,10 @@ Material endplate_MaterialMix = theDetector.material( "TPC_endplate_mix" ) ;
lowerlayerLog.setSensitiveDetector(sens);
upperlayerLog.setSensitiveDetector(sens);
if (x_det.hasAttr(_U(limits))) {
lowerlayerLog.setLimitSet(theDetector, x_det.limitsStr());
upperlayerLog.setLimitSet(theDetector, x_det.limitsStr());
}
#else
// create just one volume per pad ring
......@@ -506,7 +515,9 @@ Material endplate_MaterialMix = theDetector.material( "TPC_endplate_mix" ) ;
layerDEbwd.setPlacement( pv ) ;
layerLog.setSensitiveDetector(sens);
if (x_det.hasAttr(_U(limits))) {
layerLog.setLimitSet(theDetector, x_det.limitsStr());
}
#endif
}
......@@ -620,9 +631,27 @@ Material endplate_MaterialMix = theDetector.material( "TPC_endplate_mix" ) ;
tpcData->driftLength = dz_Sensitive + dz_Cathode/2.0; // SJA: cathode has to be added as the sensitive region does not start at 0.00
tpcData->zMinReadout = dz_Cathode/2.0;
// tpcData.z_anode = dzTotal - dz_Endplate; // the edge of the readout terminating the drift volume
tpc.addExtension< FixedPadSizeTPCData >( tpcData ) ;
ConicalSupportData* supportData = new ConicalSupportData;
ConicalSupportData::Section section0;
section0.rInner = rMin_GasVolume;
section0.rOuter = rMax_GasVolume;
section0.zPos = dz_GasVolume - dz_Readout;
ConicalSupportData::Section section1;
section1.rInner = rMin_GasVolume;
section1.rOuter = rMax_GasVolume;
section1.zPos = dz_GasVolume;
ConicalSupportData::Section section2;
section2.rInner = rInner;
section2.rOuter = rOuter;
section2.zPos = dz_GasVolume + dz_Endplate;
supportData->sections.push_back(section0);
supportData->sections.push_back(section1);
supportData->sections.push_back(section2);
tpc.addExtension< FixedPadSizeTPCData >( tpcData ) ;
tpc.addExtension< ConicalSupportData > (supportData);
//######################################################################################################################################################################
......
......@@ -74,7 +74,13 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
//-----------------------------------------------------------------------------------
sens.setType("tracker");
if (x_det.hasChild(_U(sensitive))) {
xml_dim_t sd_typ = x_det.child(_U(sensitive));
sens.setType(sd_typ.typeStr());
}
else {
sens.setType("tracker");
}
// --- create assembly and DetElement for support and service volumes
......@@ -1071,7 +1077,7 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
vxd.setVisAttributes(theDetector, "BlueVis" , SiActiveLayerLogical ) ;
SiActiveLayerLogical.setSensitiveDetector(sens);
if (x_det.hasAttr(_U(limits))) SiActiveLayerLogical.setLimitSet(theDetector, x_det.limitsStr());
//====== create the meassurement surface ===================
Vector3D u( 1. , 0. , 0. ) ;
......@@ -1582,10 +1588,12 @@ static Ref_t create_element(Detector& theDetector, xml_h e, SensitiveDetector se
//--------------------------------------
vxd.setVisAttributes( theDetector, x_det.visStr(), envelope );
if ( x_det.hasAttr(_U(combineHits)) ) {
vxd.setCombineHits(x_det.attr<bool>(_U(combineHits)),sens);
}
return vxd;
}
DECLARE_DETELEMENT(VXD04,create_element)
......@@ -3,22 +3,47 @@
# CEPC Reference Detector (CRD)
################################################################################
find_package(DD4hep COMPONENTS DDRec DDG4 DDParsers REQUIRED)
# find_package(DD4hep)
find_package(Geant4)
include(${Geant4_USE_FILE})
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${DD4hep_ROOT}/cmake )
include( DD4hep )
find_package(ROOT COMPONENTS MathCore GenVector Geom REQUIRED)
# install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/compact DESTINATION Detector/DetCRD)
gaudi_add_module(DetCRD
SOURCES src/Calorimeter/CRDEcal.cpp
SOURCES src/Calorimeter/CRDEcal_v01.cpp
src/Calorimeter/LongCrystalBarBarrelCalorimeter32Polygon_v01.cpp
src/Calorimeter/LongCrystalBarBarrelCalorimeter32Polygon_v02.cpp
src/Calorimeter/LongCrystalBarEndcapCalorimeter_v01.cpp
src/Calorimeter/LongCrystalBarEndcapCalorimeter_v02.cpp
src/Calorimeter/LongCrystalBarEndcapCalorimeter_v03.cpp
src/Calorimeter/LongCrystalBarEndcapCalorimeter_v04.cpp
src/Calorimeter/CRDEcal_Short_v02.cpp
src/Calorimeter/CRDEcal_Endcap_Short_v01.cpp
src/Calorimeter/RotatedPolyhedraBarrelCalorimeter_v01_geo.cpp
src/Calorimeter/RotatedCrystalCalorimeter_v01_geo.cpp
src/Calorimeter/Lumical_v01_geo.cpp
src/Other/Lumical_v01_geo_beampipe.cpp
src/Other/CRDBeamPipe_v01_geo.cpp
src/Muon/Muon_Barrel_v01_04.cpp
src/Muon/Muon_Endcap_v01_02.cpp
src/Tracker/SiTrackerSkewRing_v01_geo.cpp
src/Tracker/ITK_EndCap_v01.cpp
src/Tracker/SiTrackerStitching_v01_geo.cpp
src/Tracker/SiTrackerStaggeredLadder_v01_geo.cpp
src/Tracker/SiTrackerStaggeredLadder_v02_geo.cpp
src/Tracker/SiTrackerStaggeredLadder_v03_geo.cpp
src/Tracker/SiTrackerComposite_v01_geo.cpp
src/Tracker/SiTrackerComposite_v02_geo.cpp
src/Tracker/SiTrackerComposite_v03_geo.cpp
src/Tracker/TPC_Simple_o1_v01.cpp
src/Tracker/TPC_ModularEndcap_o1_v01.cpp
src/Tracker/SiTracker_itkbarrel_v01_geo.cpp
src/Tracker/SiTracker_itkbarrel_v02_geo.cpp
src/Tracker/SiTracker_otkbarrel_v01_geo.cpp
src/Tracker/SiTracker_otkbarrel_v02_geo.cpp
src/Tracker/SiTracker_otkendcap_v02_geo.cpp
src/Tracker/SiTracker_otkendcap_v01_geo.cpp
src/Tracker/SiTracker_otkbarrel_v02_geo.cpp
src/Tracker/SiTracker_otkendcap_v02_geo.cpp
src/Other/ParaffinEndcap_v01.cpp
src/Other/ConcreteWall_v01.cpp
LINK ${DD4hep_COMPONENT_LIBRARIES}
DetIdentifier
)
set(LIBRARY_OUTPUT_PATH ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
......@@ -30,3 +55,49 @@ install(TARGETS DetCRD
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT bin
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT shlib
COMPONENT dev)
################################################################################
# Add tests
################################################################################
foreach(detoption TDR_o1_v01 TDR_o1_v02)
add_test(
NAME Test_${detoption}_Sim
COMMAND gaudirun.py Detector/DetCRD/scripts/${detoption}/sim.py
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
add_test(
NAME Test_${detoption}_Rec
COMMAND gaudirun.py Detector/DetCRD/scripts/${detoption}/tracking.py
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
add_test(
NAME Test_${detoption}_DD4hep2TGeo
COMMAND geoConverter -compact2tgeo
-input Detector/DetCRD/compact/${detoption}/${detoption}.xml
-output ${detoption}.tgeo.root
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
endforeach()
add_test(
NAME Test_TDR_o1_v01_CaloDigi
COMMAND gaudirun.py Detector/DetCRD/scripts/TDR_o1_v01/calodigi.py
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
add_test(
NAME Test_TDR_o1_v01_PFA
COMMAND gaudirun.py Detector/DetCRD/scripts/TDR_o1_v01/rec.py
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
foreach(detoption TDR_o1_v01)
add_test(
NAME Test_${detoption}_Geo
COMMAND checkOverlaps -c Detector/DetCRD/compact/${detoption}/${detoption}.xml -t 0.001
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
endforeach()
......@@ -10,56 +10,190 @@
<define>
<constant name="ForkAsymThickness" value="BeamPipe_Dnstream_inner_radius+BeamPipe_Cu_thickness-BeamPipe_Upstream_inner_radius"/>
<constant name="BeamPipe_QD0_zmax" value="3950*mm"/>
<constant name="BeamPipe_QF1_zmin" value="4450*mm"/>
<constant name="BeamPipe_QF1_zmax" value="5910*mm"/>
<constant name="BeamPipe_QF1_inner_radius" value="20.5*mm"/>
<constant name="BeamPipe_Iron_thickness" value="2.5*mm"/>
</define>
<detectors>
<detector name="BeamPipe" type="DD4hep_CRDBeamPipe_v01" vis="BeamPipeVis">
<detector name="BeamPipe" type="CRDBeamPipe_v01" vis="VacVis">
<parameter crossingangle="CrossingAngle" />
<envelope vis="BlueVis">
<envelope>
<shape type="Assembly"/>
</envelope>
<section type ="Center" name="IPInnerTube" zStart="0" zEnd="BeamPipe_CentralBe_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Central_inner_radius"/>
<layer material="G4_Be" thickness="BeamPipe_Be_inner_thickness"/>
<layer material="G4_PARAFFIN" thickness="BeamPipe_Cooling_thickness"/>
<layer material="G4_Be" thickness="BeamPipe_Be_outer_thickness"/>
<layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
<layer material="G4_Be" thickness="BeamPipe_Be_inner_thickness" vis="TubeVis"/>
<layer material="G4_PARAFFIN" thickness="BeamPipe_Cooling_thickness" vis="GrayVis"/>
<layer material="G4_Be" thickness="BeamPipe_Be_outer_thickness" vis="TubeVis"/>
</section>
<section type="Center" name="IPAl" zStart="BeamPipe_CentralBe_zmax" zEnd="BeamPipe_CentralAl_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Central_inner_radius"/>
<layer material="G4_Al" thickness="BeamPipe_Al_thickness"/>
<layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
<layer material="G4_Al" thickness="BeamPipe_Al_thickness" vis="TubeVis"/>
</section>
<section type="Center" name="ExpandPipe" zStart="BeamPipe_CentralAl_zmax" zEnd="BeamPipe_ConeAl_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Central_inner_radius" thicknessEnd="BeamPipe_Expanded_inner_radius"/>
<layer material="G4_Al" thickness="BeamPipe_Al_thickness" thicknessEnd="BeamPipe_Al_thickness"/>
<layer material="beam" thickness="BeamPipe_Central_inner_radius" thicknessEnd="BeamPipe_Expanded_inner_radius" vis="VacVis"/>
<layer material="G4_Al" thickness="BeamPipe_Al_thickness" thicknessEnd="BeamPipe_Al_thickness" vis="TubeVis"/>
</section>
<section type="Center" name="ThickPipe" zStart="BeamPipe_ConeAl_zmax" zEnd="BeamPipe_LinkerAl_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Expanded_inner_radius"/>
<layer material="G4_Al" thickness="BeamPipe_Al_thickness"/>
<layer material="beam" thickness="BeamPipe_Expanded_inner_radius" vis="VacVis"/>
<layer material="G4_Al" thickness="BeamPipe_Al_thickness" vis="TubeVis"/>
</section>
<section type="CenterSide" name="OutsideLink" zStart="BeamPipe_LinkerAl_zmax" zEnd="BeamPipe_LinkerCu_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Expanded_inner_radius"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness"/>
<layer material="beam" thickness="BeamPipe_Expanded_inner_radius" vis="VacVis"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="FatWaist" name="Waist" zStart="BeamPipe_LinkerCu_zmax" zEnd="BeamPipe_Waist_zmax" rStart="BeamPipe_Expanded_inner_radius" size="BeamPipe_Crotch_hole_height">
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<!--CrotchAsymUp&CrotchAsymDn not work to fix, because of problem on convert from TGeo to Geant4-->
<!--section type="CrotchAsymUp" name="Fork" zStart="BeamPipe_Waist_zmax" zEnd="BeamPipe_Crotch_zmax"
<section type="CrotchAsymUp" name="Fork" zStart="BeamPipe_Waist_zmax" zEnd="BeamPipe_Crotch_zmax"
rStart="BeamPipe_Expanded_inner_radius" rEnd="BeamPipe_Upstream_inner_radius" size="BeamPipe_Crotch_hole_height">
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" thicknessEnd="ForkAsymThickness"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" thicknessEnd="ForkAsymThickness" vis="TubeVis"/>
</section>
<section type="CrotchAsymDn" name="Fork" zStart="BeamPipe_Waist_zmax" zEnd="BeamPipe_Crotch_zmax"
rStart="BeamPipe_Expanded_inner_radius" rEnd="BeamPipe_Dnstream_inner_radius" size="BeamPipe_Crotch_hole_height">
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness"/>
</section-->
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="FlareLegUp" name="FirstDoublePipe" zStart="BeamPipe_Crotch_zmax" zEnd="BeamPipe_FirstSeparated_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Upstream_inner_radius" thicknessEnd="BeamPipe_Dnstream_inner_radius"/>
<layer material="G4_Cu" thickness="ForkAsymThickness" thicknessEnd="BeamPipe_Cu_thickness"/>
<layer material="beam" thickness="BeamPipe_Upstream_inner_radius" thicknessEnd="BeamPipe_Dnstream_inner_radius" vis="VacVis"/>
<layer material="G4_Cu" thickness="ForkAsymThickness" thicknessEnd="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="FlareLegDn" name="FirstDoublePipe" zStart="BeamPipe_Crotch_zmax" zEnd="BeamPipe_FirstSeparated_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Dnstream_inner_radius"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness"/>
<layer material="beam" thickness="BeamPipe_Dnstream_inner_radius" vis="VacVis"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="Legs" name="QD0Link" zStart="BeamPipe_FirstSeparated_zmax" zEnd="BeamPipe_SecondSeparated_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Dnstream_inner_radius" vis="VacVis"/>
<layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
</section>
<section type="Legs" name="QD0" zStart="BeamPipe_SecondSeparated_zmax" zEnd="BeamPipe_QD0_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Dnstream_inner_radius" vis="VacVis"/>
<layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
<layer material="G4_Cu" thickness="3.5*mm" vis="TubeVis"/>
<layer material="superconductor" thickness="6.0*mm" vis="MagentaVis"/>
<layer material="stainless_steel" thickness="8.0*mm" vis="ShellVis"/>
</section>
<section type="Legs" name="QF1Link" zStart="BeamPipe_QD0_zmax" zEnd="BeamPipe_QF1_zmin" rStart="0">
<layer material="beam" thickness="BeamPipe_Dnstream_inner_radius" thicknessEnd="BeamPipe_QF1_inner_radius" vis="VacVis"/>
<layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
</section>
<section type="Legs" name="QF1" zStart="BeamPipe_QF1_zmin" zEnd="BeamPipe_QF1_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_QF1_inner_radius" vis="VacVis"/>
<layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
<layer material="G4_Cu" thickness="3.0*mm" vis="TubeVis"/>
<layer material="superconductor" thickness="6.0*mm" vis="MagentaVis"/>
<layer material="stainless_steel" thickness="8.0*mm" vis="ShellVis"/>
</section>
<section type="Legs" name="Farest" zStart="BeamPipe_QF1_zmax" zEnd="BeamPipe_end_z" rStart="0">
<layer material="beam" thickness="BeamPipe_QF1_inner_radius" vis="VacVis"/>
<layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
</section>
<!-- Magnets and their cooling, support -->
<section type="CenterSide" name="Magnet_1" zStart="1160*mm" zEnd="1900*mm" rStart="90*mm">
<layer material="superconductor" thickness="20*mm" vis="MagentaVis"/>
</section>
<section type="CenterSide" name="Magnet_2" zStart="1930*mm" zEnd="3964*mm" rStart="120*mm">
<layer material="superconductor" thickness="10*mm" vis="MagentaVis"/>
</section>
<section type="CenterSide" name="Magnet_3" zStart="3970*mm" zEnd="7000*mm" rStart="185*mm">
<layer material="superconductor" thickness="10*mm" vis="MagentaVis"/>
</section>
<section type="CenterSide" name="MagnetShell_1" zStart="970*mm" zEnd="1110*mm" rStart="31*mm">
<layer material="stainless_steel" thickness="1.5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetShell_2" zStart="1110*mm" zEnd="1115*mm" rStart="50.0*mm">
<layer material="stainless_steel" thickness="91.25*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetShell_3" zStart="1115*mm" zEnd="1900*mm" rStart="130.75*mm" rEnd="175*mm">
<layer material="stainless_steel" thickness="10.5*mm" thicknessEnd="65*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetShell_4" zStart="1900*mm" zEnd="3800*mm" rStart="175*mm">
<layer material="stainless_steel" thickness="65*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetShell_5" zStart="3800*mm" zEnd="3910*mm" rStart="175*mm">
<layer material="stainless_steel" thickness="135*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetShell_6" zStart="3910*mm" zEnd="7160*mm" rStart="240*mm">
<layer material="stainless_steel" thickness="70*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_1" zStart="1130*mm" zEnd="1135*mm" rStart="75*mm">
<layer material="stainless_steel" thickness="50*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_2i" zStart="1135*mm" zEnd="1925*mm" rStart="75*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_2o" zStart="1135*mm" zEnd="1900*mm" rStart="120*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_3l" zStart="1900*mm" zEnd="1905*mm" rStart="120*mm">
<layer material="stainless_steel" thickness="25*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_3r" zStart="1925*mm" zEnd="1930*mm" rStart="75*mm">
<layer material="stainless_steel" thickness="35*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_4i" zStart="1930*mm" zEnd="4000*mm" rStart="105*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_4o" zStart="1905*mm" zEnd="3940*mm" rStart="140*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_5l" zStart="3940*mm" zEnd="3945*mm" rStart="140*mm">
<layer material="stainless_steel" thickness="70*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_5r" zStart="4000*mm" zEnd="4005*mm" rStart="105*mm">
<layer material="stainless_steel" thickness="70*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_6i" zStart="4005*mm" zEnd="7050*mm" rStart="170*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_6o" zStart="3945*mm" zEnd="7050*mm" rStart="205*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_7" zStart="7050*mm" zEnd="7055*mm" rStart="170*mm">
<layer material="stainless_steel" thickness="40*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_1l" zStart="1135*mm" zEnd="1160*mm" rStart="80*mm">
<layer material="lN2" thickness="40*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_1i" zStart="1160*mm" zEnd="1900*mm" rStart="80*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_1o" zStart="1160*mm" zEnd="1900*mm" rStart="110*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_1r" zStart="1900*mm" zEnd="1925*mm" rStart="80*mm">
<layer material="lN2" thickness="40*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2l" zStart="1905*mm" zEnd="1930*mm" rStart="120*mm">
<layer material="lN2" thickness="20*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2i" zStart="1925*mm" zEnd="3964*mm" rStart="110*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2o" zStart="1930*mm" zEnd="3945*mm" rStart="130*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2r1" zStart="3964*mm" zEnd="4000*mm" rStart="110*mm">
<layer material="lN2" thickness="65*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2r2" zStart="3945*mm" zEnd="3964*mm" rStart="130*mm">
<layer material="lN2" thickness="45*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_3l" zStart="3945*mm" zEnd="3970*mm" rStart="175*mm">
<layer material="lN2" thickness="30*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_3i" zStart="3970*mm" zEnd="7000*mm" rStart="175*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_3o" zStart="3970*mm" zEnd="7000*mm" rStart="195*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_3r" zStart="7000*mm" zEnd="7050*mm" rStart="175*mm">
<layer material="lN2" thickness="30*mm" vis="BlueVis"/>
</section>
</detector>
</detectors>
......
<lccdd>
<info name="CRD" title="CRD Beam pipe" author="Chengdong Fu" url="no" status="development" version="1.0">
<comment>A beampipe for CRD</comment>
</info>
<display>
<vis name="TubeVis" alpha="0.1" r="1.0" g="0.7" b="0.5" showDaughters="true" visible="true"/>
<vis name="VacVis" alpha="1.0" r="0.0" g="0.0" b="0.0" showDaughters="true" visible="false"/>
</display>
<define>
<!--only needed for asymetry double pipe-->
<!--constant name="ForkAsymThickness" value="BeamPipe_Dnstream_inner_radius+BeamPipe_Cu_thickness-BeamPipe_Upstream_inner_radius"/-->
<constant name="BeamPipe_QD0_zmax" value="3950*mm"/>
<constant name="BeamPipe_QF1_zmin" value="4450*mm"/>
<constant name="BeamPipe_QF1_zmax" value="5910*mm"/>
<constant name="BeamPipe_QF1_inner_radius" value="20.5*mm"/>
<constant name="BeamPipe_Iron_thickness" value="2.5*mm"/>
</define>
<detectors>
<detector name="BeamPipe" type="CRDBeamPipe_v01" vis="VacVis">
<parameter crossingangle="CrossingAngle" />
<envelope>
<shape type="Assembly"/>
</envelope>
<section type ="Center" name="IPInnerTube" zStart="0" zEnd="BeamPipe_CentralBe_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
<layer material="G4_Be" thickness="BeamPipe_Be_inner_thickness" vis="TubeVis"/>
<layer material="G4_PARAFFIN" thickness="BeamPipe_Cooling_thickness" vis="GrayVis"/>
<layer material="G4_Be" thickness="BeamPipe_Be_outer_thickness" vis="TubeVis"/>
</section>
<section type="Center" name="IPAl" zStart="BeamPipe_CentralBe_zmax" zEnd="BeamPipe_CentralAl_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Central_inner_radius" vis="VacVis"/>
<layer material="G4_Al" thickness="BeamPipe_Al_thickness" vis="TubeVis"/>
</section>
<section type="Waist" name="Waist1st" zStart="BeamPipe_CentralAl_zmax" zEnd="BeamPipe_ExpandAl_zmax" rStart="BeamPipe_Central_inner_radius" size="BeamPipe_FirstExpand_width">
<layer material="G4_Al" thickness="BeamPipe_Al_thickness" vis="TubeVis"/>
</section>
<section type="Runway" name="Waist2nd" zStart="BeamPipe_ExpandAl_zmax" zEnd="BeamPipe_Linker_zmin" rStart="BeamPipe_Central_inner_radius" size="BeamPipe_FirstExpand_width">
<layer material="G4_Al" thickness="BeamPipe_Al_thickness" vis="TubeVis"/>
</section>
<section type="Runway" name="Waist3rd" zStart="BeamPipe_Linker_zmin" zEnd="BeamPipe_Linker_zmax" rStart="BeamPipe_Central_inner_radius" size="BeamPipe_FirstExpand_width">
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="Runway" name="Waist4th" zStart="BeamPipe_Linker_zmax" zEnd="BeamPipe_Waist_zmax" rStart="BeamPipe_Central_inner_radius" size="BeamPipe_FirstExpand_width"
shift="BeamPipe_SecondExpand_width-BeamPipe_FirstExpand_width">
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="Crotch" name="Fork" zStart="BeamPipe_Waist_zmax" zEnd="BeamPipe_Crotch_zmax"
rStart="BeamPipe_Central_inner_radius" rEnd="BeamPipe_Central_inner_radius" size="BeamPipe_SecondExpand_width">
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="Legs" name="FirstDoublePipe" zStart="BeamPipe_Crotch_zmax" zEnd="BeamPipe_FirstSeparated_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Fork_inner_radius" vis="VacVis"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="Legs" name="BeforeMask" zStart="BeamPipe_FirstSeparated_zmax" zEnd="BeamPipe_Mask_zmin" rStart="0">
<layer material="beam" thickness="BeamPipe_Fork_inner_radius" vis="VacVis"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="Legs" name="Mask" zStart="BeamPipe_Mask_zmin" zEnd="BeamPipe_Mask_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Mask_inner_radius" vis="VacVis"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness+BeamPipe_Fork_inner_radius-BeamPipe_Mask_inner_radius" vis="TubeVis"/>
</section>
<section type="Legs" name="SecondDoublePipe" zStart="BeamPipe_Mask_zmax" zEnd="BeamPipe_SecondSeparated_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Fork_inner_radius" vis="VacVis"/>
<layer material="G4_Cu" thickness="BeamPipe_Cu_thickness" vis="TubeVis"/>
</section>
<section type="Legs" name="QD0" zStart="BeamPipe_SecondSeparated_zmax" zEnd="BeamPipe_QD0_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_Fork_inner_radius" vis="VacVis"/>
<layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
<layer material="G4_Cu" thickness="3.5*mm" vis="TubeVis"/>
<layer material="superconductor" thickness="6.0*mm" vis="MagentaVis"/>
<layer material="stainless_steel" thickness="8.0*mm" vis="ShellVis"/>
</section>
<section type="Legs" name="QF1Linker" zStart="BeamPipe_QD0_zmax" zEnd="BeamPipe_QF1_zmin" rStart="0">
<layer material="beam" thickness="BeamPipe_Fork_inner_radius" thicknessEnd="BeamPipe_QF1_inner_radius" vis="VacVis"/>
<layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
</section>
<section type="Legs" name="QF1" zStart="BeamPipe_QF1_zmin" zEnd="BeamPipe_QF1_zmax" rStart="0">
<layer material="beam" thickness="BeamPipe_QF1_inner_radius" vis="VacVis"/>
<layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
<layer material="G4_Cu" thickness="3.0*mm" vis="TubeVis"/>
<layer material="superconductor" thickness="6.0*mm" vis="MagentaVis"/>
<layer material="stainless_steel" thickness="8.0*mm" vis="ShellVis"/>
</section>
<section type="Legs" name="Farest" zStart="BeamPipe_QF1_zmax" zEnd="BeamPipe_end_z" rStart="0">
<layer material="beam" thickness="BeamPipe_QF1_inner_radius" vis="VacVis"/>
<layer material="stainless_steel" thickness="BeamPipe_Iron_thickness" vis="TubeVis"/>
</section>
<!-- Magnets and their cooling, support -->
<section type="CenterSide" name="Magnet_1" zStart="1160*mm" zEnd="1900*mm" rStart="90*mm">
<layer material="superconductor" thickness="20*mm" vis="MagentaVis"/>
</section>
<section type="CenterSide" name="Magnet_2" zStart="1930*mm" zEnd="3964*mm" rStart="120*mm">
<layer material="superconductor" thickness="10*mm" vis="MagentaVis"/>
</section>
<section type="CenterSide" name="Magnet_3" zStart="3970*mm" zEnd="7000*mm" rStart="185*mm">
<layer material="superconductor" thickness="10*mm" vis="MagentaVis"/>
</section>
<!--TO DO: overlap with Lumical-->
<!--section type="CenterSide" name="MagnetShell_1" zStart="970*mm" zEnd="1110*mm" rStart="33*mm">
<layer material="stainless_steel" thickness="1.5*mm" vis="ShellVis"/>
</section-->
<section type="CenterSide" name="MagnetShell_2" zStart="1110*mm" zEnd="1115*mm" rStart="50.0*mm">
<layer material="stainless_steel" thickness="91.25*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetShell_3" zStart="1115*mm" zEnd="1900*mm" rStart="130.75*mm" rEnd="175*mm">
<layer material="stainless_steel" thickness="10.5*mm" thicknessEnd="65*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetShell_4" zStart="1900*mm" zEnd="3800*mm" rStart="175*mm">
<layer material="stainless_steel" thickness="65*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetShell_5" zStart="3800*mm" zEnd="3910*mm" rStart="175*mm">
<layer material="stainless_steel" thickness="135*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetShell_6" zStart="3910*mm" zEnd="7160*mm" rStart="240*mm">
<layer material="stainless_steel" thickness="70*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_1" zStart="1130*mm" zEnd="1135*mm" rStart="75*mm">
<layer material="stainless_steel" thickness="50*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_2i" zStart="1135*mm" zEnd="1925*mm" rStart="75*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_2o" zStart="1135*mm" zEnd="1900*mm" rStart="120*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_3l" zStart="1900*mm" zEnd="1905*mm" rStart="120*mm">
<layer material="stainless_steel" thickness="25*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_3r" zStart="1925*mm" zEnd="1930*mm" rStart="75*mm">
<layer material="stainless_steel" thickness="35*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_4i" zStart="1930*mm" zEnd="4000*mm" rStart="105*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_4o" zStart="1905*mm" zEnd="3940*mm" rStart="140*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_5l" zStart="3940*mm" zEnd="3945*mm" rStart="140*mm">
<layer material="stainless_steel" thickness="70*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_5r" zStart="4000*mm" zEnd="4005*mm" rStart="105*mm">
<layer material="stainless_steel" thickness="70*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_6i" zStart="4005*mm" zEnd="7050*mm" rStart="170*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_6o" zStart="3945*mm" zEnd="7050*mm" rStart="205*mm">
<layer material="stainless_steel" thickness="5*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetSupport_7" zStart="7050*mm" zEnd="7055*mm" rStart="170*mm">
<layer material="stainless_steel" thickness="40*mm" vis="ShellVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_1l" zStart="1135*mm" zEnd="1160*mm" rStart="80*mm">
<layer material="lN2" thickness="40*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_1i" zStart="1160*mm" zEnd="1900*mm" rStart="80*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_1o" zStart="1160*mm" zEnd="1900*mm" rStart="110*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_1r" zStart="1900*mm" zEnd="1925*mm" rStart="80*mm">
<layer material="lN2" thickness="40*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2l" zStart="1905*mm" zEnd="1930*mm" rStart="120*mm">
<layer material="lN2" thickness="20*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2i" zStart="1925*mm" zEnd="3964*mm" rStart="110*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2o" zStart="1930*mm" zEnd="3945*mm" rStart="130*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2r1" zStart="3964*mm" zEnd="4000*mm" rStart="110*mm">
<layer material="lN2" thickness="65*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_2r2" zStart="3945*mm" zEnd="3964*mm" rStart="130*mm">
<layer material="lN2" thickness="45*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_3l" zStart="3945*mm" zEnd="3970*mm" rStart="175*mm">
<layer material="lN2" thickness="30*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_3i" zStart="3970*mm" zEnd="7000*mm" rStart="175*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_3o" zStart="3970*mm" zEnd="7000*mm" rStart="195*mm">
<layer material="lN2" thickness="10*mm" vis="BlueVis"/>
</section>
<section type="CenterSide" name="MagnetCooling_3r" zStart="7000*mm" zEnd="7050*mm" rStart="175*mm">
<layer material="lN2" thickness="30*mm" vis="BlueVis"/>
</section>
</detector>
</detectors>
</lccdd>
<lccdd>
<detectors>
<detector name="Coil" type="SCoil02" vis="SOLVis" id="DetID_COIL" insideTrackingVolume="false" readout="COILCollection">
<envelope vis="SeeThrough">
<shape type="Tube" rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" dz="Solenoid_half_length" material="Air"/>
<detector name="Coil" type="DD4hep_Solenoid_o1_v01" id="DetID_COIL" insideTrackingVolume="false" readout="COILCollection">
<envelope>
<shape type="Tube" rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" dz="Solenoid_half_length" material="Vacuum"/>
</envelope>
<type_flags type=" DetType_SUPPORT + DetType_COIL " />
<!--fg: for now only a simple aluminum cylinder is created inside the envelope -->
<tube rmin="Solenoid_inner_radius" rmax="Solenoid_outer_radius" dz="Solenoid_half_length" material="G4_Al"/>
<!-- slice can put as sensitive (tracker type), currently without sensitive, so COILCollection is null -->
<layer id="0" inner_r="Solenoid_inner_radius" outer_z="Solenoid_half_length" vis="SeeThrough">
<slice material="g10" thickness="3*mm" vis="SOLVis"/>
<slice material="Vacuum" thickness="6*mm" vis="Invisible"/>
<slice material="G4_Al" thickness="6*mm" vis="SOLVis"/>
</layer>
<layer id="1" inner_r="SolenoidCoil_radius" outer_z="Solenoid_half_length" vis="SeeThrough">
<slice material="G4_Al" thickness="55*mm" vis="SOLVis"/>
</layer>
<layer id="2" inner_r="Solenoid_outer_radius-27*mm" outer_z="Solenoid_half_length" vis="SeeThrough">
<slice material="G4_Al" thickness="6*mm" vis="SOLVis"/>
<slice material="Vacuum" thickness="6*mm" vis="Invisible"/>
<slice material="G4_Al" thickness="15*mm" vis="SOLVis"/>
</layer>
</detector>
</detectors>
<readouts>
<readout name="COILCollection">
<id>system:5,side:-2,layer:9,module:8,sensor:8,barrelside:-2</id>
<id>system:5,side:-2,layer:9,slice:8,sensor:8,barrelside:-2</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<constant name="concrete_position_z" value="592.5*cm"/>
<constant name="concrete_hole_rmin" value="65*cm"/>
<constant name="concrete_wall_size" value="520*cm"/>
<constant name="concrete_wall_hz" value="50*cm"/>
</define>
<detectors>
<detector name="ConcreteWall" type="ConcreteWall_v01" vis="VisibleBrown" material="Concrete">
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
<position x="0" y="0" z="concrete_position_z"/>
<dimensions rmax="concrete_wall_size" rmin="concrete_hole_rmin" dz="concrete_wall_hz"/>
</detector>
</detectors>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<info name="DriftChamber"
title="Test with Drift Chamber"
author="Tao Lin"
url="http://github.com/cepc/CEPCSW"
status="development"
version="v0">
<comment>Test with Drift Chamber</comment>
</info>
<define>
<constant name="SDT_radius_min" value="InnerTracker_inner_radius"/>
<constant name="SDT_radius_max" value="OuterTracker_outer_radius"/>
<constant name="SDT_half_length" value="DC_half_length"/>
<constant name="SDT_length" value="SDT_half_length*2"/>
<constant name="DC_length" value="DC_half_length*2"/>
<constant name="SDT_chamber_inner_wall_thickness" value="0.2*mm"/>
<constant name="SDT_chamber_outer_wall_thickness" value="2.8*mm"/>
<constant name="SDT_inner_chamber_radius_min" value="InnerTracker_inner_radius+SDT_chamber_inner_wall_thickness"/>
<constant name="SDT_inner_chamber_radius_max" value="InnerTracker_outer_radius-SDT_chamber_outer_wall_thickness"/>
<constant name="SDT_inner_chamber_length" value="DC_length"/>
<constant name="SDT_outer_chamber_radius_min" value="OuterTracker_inner_radius+SDT_chamber_inner_wall_thickness"/>
<constant name="SDT_outer_chamber_radius_max" value="OuterTracker_outer_radius-SDT_chamber_outer_wall_thickness"/>
<constant name="SDT_outer_chamber_length" value="DC_length"/>
<constant name="SDT_inner_chamber_layer_number" value="67"/>
<constant name="SDT_outer_chamber_layer_number" value="63"/>
<constant name="SDT_chamber_layer_width" value="10*mm"/>
<constant name="Epsilon" value="0*deg"/>
<constant name="SDT_inner_chamber_inner_wall_radius_min" value="SDT_inner_chamber_radius_min-SDT_chamber_inner_wall_thickness"/>
<constant name="SDT_inner_chamber_inner_wall_radius_max" value="SDT_inner_chamber_radius_min"/>
<constant name="SDT_inner_chamber_outer_wall_radius_min" value="SDT_inner_chamber_radius_max"/>
<constant name="SDT_inner_chamber_outer_wall_radius_max" value="SDT_inner_chamber_radius_max+SDT_chamber_outer_wall_thickness"/>
<constant name="SDT_outer_chamber_inner_wall_radius_min" value="SDT_outer_chamber_radius_min-SDT_chamber_inner_wall_thickness"/>
<constant name="SDT_outer_chamber_inner_wall_radius_max" value="SDT_outer_chamber_radius_min"/>
<constant name="SDT_outer_chamber_outer_wall_radius_min" value="SDT_outer_chamber_radius_max"/>
<constant name="SDT_outer_chamber_outer_wall_radius_max" value="SDT_outer_chamber_radius_max+SDT_chamber_outer_wall_thickness"/>
<constant name="DC_Endcap_rmin" value="SDT_radius_min"/>
<constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
<constant name="DC_Endcap_dz" value="DC_Endcap_z"/>
<constant name="DC_inner_chamber_enabled" value="1"/>
<constant name="DC_outer_chamber_enabled" value="1"/>
</define>
<detectors>
<detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="BlueVis" sensitive="true" insideTrackingVolume="true">
<envelope vis="SeeThrough">
<shape type="BooleanShape" operation="Union" material="Air">
<shape type="Tube" rmin="SDT_radius_min" rmax="InnerTracker_outer_radius" dz="MainTracker_half_length" />
<shape type="Tube" rmin="OuterTracker_inner_radius" rmax="SDT_radius_max" dz="MainTracker_half_length" />
</shape>
</envelope>
<module id="0" repeat="1" name="SignalWire" type="Tube" rmin="0*mm" rmax="0.01*mm">
<tubs name="W" type="Tube" rmin="0*mm" rmax="0.007*mm" material="Tungsten"/>
<tubs name="Au" type="Tube" rmin="0.007*mm" rmax="0.01*mm" material="Gold"/>
</module>
<module id="1" repeat="3" name="FieldWire" type="Tube" rmin="0*mm" rmax="0.02*mm">
<tubs name="Al" type="Tube" rmin="0*mm" rmax="0.017*mm" material="Aluminum"/>
<tubs name="Ag" type="Tube" rmin="0.017*mm" rmax="0.02*mm" material="Silver"/>
</module>
<type_flags type="DetType_TRACKER + DetType_BARREL + DetType_GASEOUS + DetType_WIRE"/>
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
<sensitive type="SimpleDriftChamber"/>
</detector>
</detectors>
<readouts>
<readout name="DriftChamberHitsCollection">
<segmentation type="GridDriftChamber" cell_size="10*mm" epsilon0="Epsilon" detector_length="DC_length" identifier_phi="cellID" />
<id>system:8,chamber:1,layer:8,cellID:16</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<info name="DriftChamber"
title="Test with Drift Chamber"
author="Tao Lin"
url="http://github.com/cepc/CEPCSW"
status="development"
version="v0">
<comment>Test with Drift Chamber</comment>
</info>
<define>
<constant name="DC_layer_number" value="100"/>
<constant name="Alpha" value="12*deg"/>
<constant name="Gas_radius_min" value="DC_rbegin+DC_inner_wall_thickness+DC_safe_distance"/>
<constant name="Gas_half_length" value="DC_half_length-DC_Endcap_dz-DC_safe_distance"/>
<constant name="Gas_length" value="Gas_half_length*2"/>
<constant name="DC_cell_width" value="10*mm"/>
<constant name="DC_inner_wall_radius_min" value="DC_rbegin"/>
<constant name="DC_inner_wall_radius_max" value="DC_rbegin+DC_inner_wall_thickness"/>
<constant name="DC_Endcap_rmin" value="DC_rbegin"/>
<constant name="DC_Endcap_rmax" value="DC_rend"/>
<constant name="DC_construct_wire" value="1"/>
<constant name="DC_layer_width" value="9.57687*mm"/>
</define>
<limits>
<limitset name="DC_limits">
<limit name="step_length_max" particles="*" value="0.1" unit="mm" />
</limitset>
</limits>
<regions>
<region name="DriftChamberRegion">
</region>
</regions>
<detectors>
<detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="DCVis" sensitive="true" region="DriftChamberRegion" limits="DC_limits">
<material name="Air"/>
<chamber id="0" material="GasHe_90Isob_10"/>
<side material="CarbonFiber"/>
<envelope vis="SeeThrough">
<shape type="BooleanShape" operation="Union" material="Air">
<shape type="Tube" rmin="DC_rbegin" rmax="DC_rend" dz="DC_half_length" />
</shape>
</envelope>
<module id="0" name="SignalWire" type="Tube" rmin="0*mm" rmax="0.01*mm" vis="RedVis">
<tubs name="W" type="Tube" rmin="0*mm" rmax="0.007*mm" material="Tungsten"/>
<tubs name="Au" type="Tube" rmin="0.007*mm" rmax="0.01*mm" material="Gold"/>
</module>
<module id="1" name="FieldWire" type="Tube" rmin="0*mm" rmax="0.02*mm" vis="GreenVis">
<tubs name="Al" type="Tube" rmin="0*mm" rmax="0.017*mm" material="Aluminum"/>
<tubs name="Ag" type="Tube" rmin="0.017*mm" rmax="0.02*mm" material="Silver"/>
</module>
<type_flags type="DetType_TRACKER + DetType_BARREL + DetType_GASEOUS + DetType_WIRE"/>
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
<sensitive type="SimpleDriftChamber"/>
</detector>
</detectors>
<readouts>
<readout name="DriftChamberHitsCollection">
<segmentation type="GridDriftChamber" cell_size="DC_cell_width" detector_length="Gas_length" identifier_phi="cellID" layerID="layer" DC_rbegin="DC_rbegin" DC_rend="DC_rend" layer_width="DC_layer_width"/>
<id>system:5,layer:7:9,chamber:8,cellID:32:16</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<info name="DriftChamber"
title="Test with Drift Chamber"
author="Tao Lin"
url="http://github.com/cepc/CEPCSW"
status="development"
version="v0">
<comment>Test with Drift Chamber</comment>
</info>
<define>
<constant name="DC_layer_number" value="55"/>
<constant name="Alpha" value="12*deg"/>
<constant name="Gas_radius_min" value="DC_rbegin+DC_inner_wall_thickness+DC_safe_distance"/>
<constant name="Gas_half_length" value="DC_half_length-DC_Endcap_dz-DC_safe_distance"/>
<constant name="Gas_length" value="Gas_half_length*2"/>
<constant name="DC_cell_width" value="18*mm"/>
<constant name="DC_inner_wall_radius_min" value="DC_rbegin"/>
<constant name="DC_inner_wall_radius_max" value="DC_rbegin+DC_inner_wall_thickness"/>
<constant name="DC_Endcap_rmin" value="DC_rbegin"/>
<constant name="DC_Endcap_rmax" value="DC_rend"/>
<constant name="DC_construct_wire" value="0"/>
<constant name="DC_layer_width" value="18*mm"/>
</define>
<limits>
<limitset name="DC_limits">
<limit name="step_length_max" particles="*" value="0.1" unit="mm" />
</limitset>
</limits>
<regions>
<region name="DriftChamberRegion">
</region>
</regions>
<detectors>
<detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="DCVis" sensitive="true" limits="DC_limits">
<material name="Air"/>
<chamber id="0" material="GasHe_90Isob_10"/>
<side material="CarbonFiber"/>
<envelope vis="SeeThrough">
<shape type="BooleanShape" operation="Union" material="Air">
<shape type="Tube" rmin="DC_rbegin" rmax="DC_rend" dz="DC_half_length" />
</shape>
</envelope>
<module id="0" name="SignalWire" type="Tube" rmin="0*mm" rmax="0.01*mm" vis="RedVis">
<tubs name="W" type="Tube" rmin="0*mm" rmax="0.007*mm" material="Tungsten"/>
<tubs name="Au" type="Tube" rmin="0.007*mm" rmax="0.01*mm" material="Gold"/>
</module>
<module id="1" name="FieldWire" type="Tube" rmin="0*mm" rmax="0.02*mm" vis="GreenVis">
<tubs name="Al" type="Tube" rmin="0*mm" rmax="0.017*mm" material="Aluminum"/>
<tubs name="Ag" type="Tube" rmin="0.017*mm" rmax="0.02*mm" material="Silver"/>
</module>
<type_flags type="DetType_TRACKER + DetType_BARREL + DetType_GASEOUS + DetType_WIRE"/>
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
<sensitive type="SimpleDriftChamber"/>
</detector>
</detectors>
<readouts>
<readout name="DriftChamberHitsCollection">
<segmentation type="GridDriftChamber" cell_size="DC_cell_width" detector_length="Gas_length" identifier_phi="cellID" layerID="layer" DC_rbegin="DC_rbegin" DC_rend="DC_rend" layer_width="DC_layer_width"/>
<id>system:5,layer:7:9,chamber:8,cellID:32:16</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<info name="DriftChamber"
title="Test with Drift Chamber"
author="Tao Lin"
url="http://github.com/cepc/CEPCSW"
status="development"
version="v0">
<comment>Test with Drift Chamber</comment>
</info>
<define>
<constant name="DC_layer_number" value="66"/>
<constant name="Alpha" value="12*deg"/>
<constant name="Gas_radius_min" value="DC_rbegin+DC_inner_wall_thickness+DC_safe_distance"/>
<constant name="Gas_half_length" value="DC_half_length-DC_Endcap_dz-DC_safe_distance"/>
<constant name="Gas_length" value="Gas_half_length*2"/>
<constant name="DC_cell_width" value="18*mm"/>
<constant name="DC_inner_wall_radius_min" value="DC_rbegin"/>
<constant name="DC_inner_wall_radius_max" value="DC_rbegin+DC_inner_wall_thickness"/>
<constant name="DC_Endcap_rmin" value="DC_rbegin"/>
<constant name="DC_Endcap_rmax" value="DC_rend"/>
<constant name="DC_construct_wire" value="0"/>
<constant name="DC_layer_width" value="18*mm"/>
</define>
<limits>
<limitset name="DC_limits">
<limit name="step_length_max" particles="*" value="0.1" unit="mm" />
</limitset>
</limits>
<regions>
<region name="DriftChamberRegion">
</region>
</regions>
<detectors>
<detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="DCVis" sensitive="true" limits="DC_limits">
<material name="Air"/>
<chamber id="0" material="GasHe_90Isob_10"/>
<side material="CarbonFiber"/>
<envelope vis="SeeThrough">
<shape type="BooleanShape" operation="Union" material="Air">
<shape type="Tube" rmin="DC_rbegin" rmax="DC_rend" dz="DC_half_length" />
</shape>
</envelope>
<module id="0" name="SignalWire" type="Tube" rmin="0*mm" rmax="0.01*mm" vis="RedVis">
<tubs name="W" type="Tube" rmin="0*mm" rmax="0.007*mm" material="Tungsten"/>
<tubs name="Au" type="Tube" rmin="0.007*mm" rmax="0.01*mm" material="Gold"/>
</module>
<module id="1" name="FieldWire" type="Tube" rmin="0*mm" rmax="0.03*mm" vis="GreenVis">
<tubs name="Al" type="Tube" rmin="0*mm" rmax="0.027*mm" material="Aluminum"/>
<tubs name="Ag" type="Tube" rmin="0.027*mm" rmax="0.03*mm" material="Silver"/>
</module>
<type_flags type="DetType_TRACKER + DetType_BARREL + DetType_GASEOUS + DetType_WIRE"/>
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
<sensitive type="SimpleDriftChamber"/>
</detector>
</detectors>
<readouts>
<readout name="DriftChamberHitsCollection">
<segmentation type="GridDriftChamber" cell_size="DC_cell_width" detector_length="Gas_length" identifier_phi="cellID" layerID="layer" DC_rbegin="DC_rbegin" DC_rend="DC_rend" layer_width="DC_layer_width"/>
<id>system:5,layer:7:9,chamber:8,cellID:32:16</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<info name="DriftChamber"
title="Test with Drift Chamber"
author="Tao Lin"
url="http://github.com/cepc/CEPCSW"
status="development"
version="v0">
<comment>Test with Drift Chamber</comment>
</info>
<define>
<!-- SDT -->
<constant name="SDT_radius_min" value="DC_inner_radius"/>
<constant name="SDT_radius_max" value="DC_outer_radius"/>
<constant name="SDT_half_length" value="MainTracker_half_length"/>
<constant name="DC_length" value="DC_half_length*2"/>
<constant name="SDT_length" value="SDT_half_length*2"/>
<constant name="SDT_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/>
<constant name="SDT_chamber_radius_max" value="DC_chamber_layer_rend+DC_chamber_safe_distance+DC_safe_distance"/>
<constant name="SDT_chamber_half_length" value="DC_half_length"/>
<constant name="SDT_chamber_layer_width" value="10*mm"/>
<constant name="SDT_chamber_cell_width" value="10*mm"/>
<constant name="Alpha" value="12*deg"/>
<constant name="SDT_chamber_inner_wall_radius_min" value="SDT_chamber_radius_min-SDT_inner_wall_thickness"/>
<constant name="SDT_chamber_inner_wall_radius_max" value="SDT_chamber_radius_min"/>
<constant name="SDT_chamber_outer_wall_radius_min" value="SDT_chamber_radius_max"/>
<constant name="SDT_chamber_outer_wall_radius_max" value="SDT_chamber_radius_max+SDT_outer_wall_thickness"/>
<constant name="DC_Endcap_rmin" value="SDT_radius_min"/>
<constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
</define>
<limits>
<limitset name="DC_limits">
<limit name="step_length_max" particles="*" value="0.1" unit="mm" />
</limitset>
</limits>
<regions>
<region name="DriftChamberRegion">
<limitsetref name="DC_limits"/>
</region>
</regions>
<detectors>
<detector id="DetID_DC" name="DriftChamber_Stero" type="DriftChamber_Stero" readout="DriftChamberHitsCollection" vis="DCVis" sensitive="true" insideTrackingVolume="true" limits="DC_limits">
<material name="Air"/>
<chamber id="0" material="GasHe_90Isob_10"/>
<side material="CarbonFiber"/>
<envelope vis="SeeThrough">
<shape type="BooleanShape" operation="Union" material="Air">
<shape type="Tube" rmin="SDT_radius_min" rmax="SDT_radius_max" dz="SDT_half_length" />
</shape>
</envelope>
<module id="0" name="SignalWire" type="Tube" rmin="0*mm" rmax="0.01*mm" vis="RedVis">
<tubs name="W" type="Tube" rmin="0*mm" rmax="0.007*mm" material="Tungsten"/>
<tubs name="Au" type="Tube" rmin="0.007*mm" rmax="0.01*mm" material="Gold"/>
</module>
<module id="1" name="FieldWire" type="Tube" rmin="0*mm" rmax="0.02*mm" vis="GreenVis">
<tubs name="Al" type="Tube" rmin="0*mm" rmax="0.017*mm" material="Aluminum"/>
<tubs name="Ag" type="Tube" rmin="0.017*mm" rmax="0.02*mm" material="Silver"/>
</module>
<type_flags type="DetType_TRACKER + DetType_BARREL + DetType_GASEOUS + DetType_WIRE"/>
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
<sensitive type="SimpleDriftChamber"/>
</detector>
</detectors>
<readouts>
<readout name="DriftChamberHitsCollection">
<segmentation type="GridDriftChamber" cell_size="SDT_chamber_cell_width" detector_length="DC_length" identifier_phi="cellID" DC_rbegin="DC_chamber_layer_rbegin" DC_rend="DC_chamber_layer_rend" DC_rmin="SDT_chamber_radius_min" DC_rmax="SDT_chamber_radius_max" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/>
<id>system:5,layer:7:9,chamber:8,cellID:32:16</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<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">
<info name="DriftChamber"
title="Test with Drift Chamber"
author="Tao Lin"
url="http://github.com/cepc/CEPCSW"
status="development"
version="v0">
<comment>Test with Drift Chamber</comment>
</info>
<define>
<!-- SDT -->
<constant name="SDT_radius_min" value="DC_inner_radius"/>
<constant name="SDT_radius_max" value="DC_outer_radius"/>
<constant name="SDT_half_length" value="MainTracker_half_length"/>
<constant name="DC_length" value="DC_half_length*2"/>
<constant name="SDT_length" value="SDT_half_length*2"/>
<constant name="SDT_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/>
<constant name="SDT_chamber_radius_max" value="DC_chamber_layer_rend+DC_safe_distance"/>
<constant name="SDT_chamber_half_length" value="DC_half_length"/>
<constant name="SDT_chamber_layer_width" value="10*mm"/>
<constant name="SDT_chamber_cell_width" value="10*mm"/>
<constant name="Alpha" value="0*deg"/>
<constant name="SDT_chamber_inner_wall_radius_min" value="SDT_chamber_radius_min-SDT_inner_wall_thickness"/>
<constant name="SDT_chamber_inner_wall_radius_max" value="SDT_chamber_radius_min"/>
<constant name="SDT_chamber_outer_wall_radius_min" value="SDT_chamber_radius_max"/>
<constant name="SDT_chamber_outer_wall_radius_max" value="SDT_chamber_radius_max+SDT_outer_wall_thickness"/>
<constant name="DC_Endcap_rmin" value="SDT_radius_min"/>
<constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
</define>
<limits>
<limitset name="DC_limits">
<limit name="step_length_max" particles="*" value="0.1" unit="mm" />
</limitset>
</limits>
<regions>
<region name="DriftChamberRegion">
</region>
</regions>
<detectors>
<detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="DCVis" sensitive="true" region="DriftChamberRegion" limits="DC_limits">
<material name="Air"/>
<chamber id="0" material="GasHe_90Isob_10"/>
<side material="CarbonFiber"/>
<envelope vis="SeeThrough">
<shape type="BooleanShape" operation="Union" material="Air">
<shape type="Tube" rmin="SDT_radius_min" rmax="SDT_radius_max" dz="SDT_half_length" />
</shape>
</envelope>
<module id="0" name="SignalWire" type="Tube" rmin="0*mm" rmax="0.01*mm" vis="RedVis">
<tubs name="W" type="Tube" rmin="0*mm" rmax="0.007*mm" material="Tungsten"/>
<tubs name="Au" type="Tube" rmin="0.007*mm" rmax="0.01*mm" material="Gold"/>
</module>
<module id="1" name="FieldWire" type="Tube" rmin="0*mm" rmax="0.02*mm" vis="GreenVis">
<tubs name="Al" type="Tube" rmin="0*mm" rmax="0.017*mm" material="Aluminum"/>
<tubs name="Ag" type="Tube" rmin="0.017*mm" rmax="0.02*mm" material="Silver"/>
</module>
<type_flags type="DetType_TRACKER + DetType_BARREL + DetType_GASEOUS + DetType_WIRE"/>
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
<sensitive type="SimpleDriftChamber"/>
</detector>
</detectors>
<readouts>
<readout name="DriftChamberHitsCollection">
<segmentation type="GridDriftChamber" cell_size="SDT_chamber_cell_width" detector_length="DC_length" identifier_phi="cellID" DC_rbegin="DC_chamber_layer_rbegin" DC_rend="DC_chamber_layer_rend" DC_rmin="SDT_chamber_radius_min" DC_rmax="SDT_chamber_radius_max" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/>
<!-- <id>system:8,chamber:1,layer:8,cellID:16</id> -->
<id>system:5,layer:7:9,chamber:8,cellID:32:16</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<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">
<info name="DriftChamber"
title="Test with Drift Chamber"
author="Tao Lin"
url="http://github.com/cepc/CEPCSW"
status="development"
version="v0">
<comment>Test with Drift Chamber</comment>
</info>
<define>
<!-- SDT -->
<constant name="SDT_radius_min" value="DC_inner_radius"/>
<constant name="SDT_radius_max" value="DC_outer_radius"/>
<constant name="SDT_half_length" value="MainTracker_half_length"/>
<constant name="DC_length" value="DC_half_length*2"/>
<constant name="SDT_length" value="SDT_half_length*2"/>
<constant name="SDT_chamber_radius_min" value="DC_chamber_layer_rbegin-DC_safe_distance"/>
<constant name="SDT_chamber_radius_max" value="DC_chamber_layer_rend+DC_safe_distance"/>
<constant name="SDT_chamber_half_length" value="DC_half_length"/>
<constant name="SDT_chamber_layer_width" value="10*mm"/>
<constant name="SDT_chamber_cell_width" value="10*mm"/>
<constant name="Alpha" value="0*deg"/>
<constant name="SDT_chamber_inner_wall_radius_min" value="SDT_chamber_radius_min-SDT_inner_wall_thickness"/>
<constant name="SDT_chamber_inner_wall_radius_max" value="SDT_chamber_radius_min"/>
<constant name="SDT_chamber_outer_wall_radius_min" value="SDT_chamber_radius_max"/>
<constant name="SDT_chamber_outer_wall_radius_max" value="SDT_chamber_radius_max+SDT_outer_wall_thickness"/>
<constant name="DC_Endcap_rmin" value="SDT_radius_min"/>
<constant name="DC_Endcap_rmax" value="SDT_radius_max"/>
</define>
<limits>
<limitset name="DC_limits">
<limit name="step_length_max" particles="*" value="10" unit="mm" />
</limitset>
</limits>
<regions>
<region name="DriftChamberRegion">
<limitsetref name="DC_limits"/>
</region>
</regions>
<detectors>
<detector id="DetID_DC" name="DriftChamber" type="DriftChamber" readout="DriftChamberHitsCollection" vis="DCVis" sensitive="true" insideTrackingVolume="true" limits="DC_limits">
<material name="Air"/>
<chamber id="0" material="GasHe_90Isob_10"/>
<side material="CarbonFiber"/>
<envelope>
<shape type="BooleanShape" operation="Union" material="Air">
<shape type="Tube" rmin="SDT_radius_min" rmax="SDT_radius_max" dz="SDT_half_length" />
</shape>
</envelope>
<module id="0" name="SignalWire" type="Tube" rmin="0*mm" rmax="0.01*mm" vis="RedVis">
<tubs name="W" type="Tube" rmin="0*mm" rmax="0.007*mm" material="Tungsten"/>
<tubs name="Au" type="Tube" rmin="0.007*mm" rmax="0.01*mm" material="Gold"/>
</module>
<module id="1" name="FieldWire" type="Tube" rmin="0*mm" rmax="0.02*mm" vis="GreenVis">
<tubs name="Al" type="Tube" rmin="0*mm" rmax="0.017*mm" material="Aluminum"/>
<tubs name="Ag" type="Tube" rmin="0.017*mm" rmax="0.02*mm" material="Silver"/>
</module>
<type_flags type="DetType_TRACKER + DetType_BARREL + DetType_GASEOUS + DetType_WIRE"/>
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
<sensitive type="SimpleDriftChamber"/>
</detector>
</detectors>
<readouts>
<readout name="DriftChamberHitsCollection">
<segmentation type="GridDriftChamber" cell_size="SDT_chamber_cell_width" detector_length="DC_length" identifier_phi="cellID" DC_rbegin="DC_chamber_layer_rbegin" DC_rend="DC_chamber_layer_rend" DC_rmin="SDT_chamber_radius_min" DC_rmax="SDT_chamber_radius_max" safe_distance="DC_safe_distance" layerID="layer" layer_width="SDT_chamber_layer_width"/>
<!-- <id>system:8,chamber:1,layer:8,cellID:16</id> -->
<id>system:5,layer:7:9,chamber:8,cellID:32:16</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<constant name="ecalbarrel_inner_radius" value="Ecal_barrel_inner_radius"/>
<constant name="ecalbarrel_outer_radius" value="Ecal_barrel_outer_radius"/>
<!--<constant name="ecalbarrel_thickness" value="Ecal_barrel_thickness"/>-->
<constant name="ecalbarrel_thickness" value="28.5*cm"/>
<constant name="ecalbarrel_zlength" value="Ecal_barrel_half_length*2"/>
<constant name="Nmodule" value="32"/>
<constant name="Nblock_z" value="15"/>
<constant name="module_rotation" value="12*degree"/>
<constant name="crystal_r" value="4.1*cm"/>
<constant name="crystal_phi" value="1*cm"/>
<constant name="crystal_z_barrel" value="1*cm"/>
<constant name="esr_thickness_barrel" value="0.1*mm"/>
<constant name="sipm_r" value="0.8*mm"/>
<constant name="sipm_phi" value="3*mm"/>
<constant name="sipm_z_barrel" value="3*mm"/>
<constant name="pcb_thickness_barrel" value="2.2*mm"/>
<constant name="cu_thickness_barrel" value="1*mm"/>
<constant name="fibre_thickness_barrel" value="0.1*mm"/>
<constant name="collection_width" value="300*mm"/>
<constant name="collection_thickness" value="10*mm"/>
<constant name="boundary_safety_barrel" value="1*nm"/>
</define>
<regions>
<region name="EcalBarrelRegion">
</region>
</regions>
<detectors>
<detector id="DetID_ECAL"
name="EcalBarrel"
type="CRDEcalBarrel_Short_v02"
readout="EcalBarrelCollection"
vis="Invisible"
sensitive="true"
region="EcalBarrelRegion">
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
<material name="G4_BGO"/>
</detector>
</detectors>
<readouts>
<readout name="EcalBarrelCollection">
<segmentation type="NoSegmentation"/>
<!--segmentation type="CartesianGridXYZ"
grid_size_x="1*cm"
grid_size_y="1*cm"
grid_size_z="1*cm"/-->
<id>system:5,module:5,stave:4,layer:5,phi:6,z:6</id>
</readout>
</readouts>
</lccdd>
......@@ -2,8 +2,13 @@
<lccdd>
<define>
<constant name="ecalbarrel_inner_radius" value="Ecal_barrel_inner_radius"/>
<constant name="ecalbarrel_thickness" value="Ecal_barrel_thickness"/> <!--Must be n*10*mm! -->
<constant name="ecalbarrel_zlength" value="Ecal_barrel_half_length*2"/> <!--Must be n*10*mm! -->
<constant name="ecalbarrel_thickness" value="Ecal_barrel_thickness"/> <!--Must be n*10*mm! -->
<constant name="ecalbarrel_zlength" value="Ecal_barrel_half_length*2"/> <!--Must be n*10*mm n*Nblock_z! -->
<constant name="n_symm" value="Ecal_barrel_symmetry" /> <!--Only support 8 and 12 now -->
<constant name="Nblock_z" value="11" />
<constant name="Nblock_phi" value="4" />
<constant name="bar_x" value="1*cm"/>
<constant name="bar_y" value="1*cm"/>
</define>
<regions>
......@@ -12,20 +17,20 @@
</regions>
<detectors>
<detector id="DetID_ECAL" name="CaloDetector" type="CRDEcalBarrel" readout="EcalBarrelCollection" vis="Invisible" sensitive="true" region="EcalBarrelRegion">
<detector id="DetID_ECAL" name="CaloDetector" type="CRDEcalBarrel_v01" readout="EcalBarrelCollection" vis="Invisible" sensitive="true" region="EcalBarrelRegion">
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
</detector>
</detectors>
<readouts>
<readout name="EcalBarrelCollection">
<!-- <segmentation type="NoSegmentation"/> -->
<!--segmentation type="NoSegmentation"/-->
<!--segmentation type="CartesianGridXYZ"
grid_size_x="1*cm"
grid_size_y="1*cm"
grid_size_z="1*cm"/-->
<id>system:4,layer:6,block:8,bar:10</id>
<id>system:5,module:3,stave:4,dlayer:5,part:3,slayer:32:2,bar:6</id>
</readout>
</readouts>
......
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<constant name="ecalbarrel_inner_radius" value="Ecal_barrel_inner_radius"/>
<constant name="ecalbarrel_outer_radius" value="Ecal_barrel_outer_radius"/>
<constant name="ecalbarrel_zlength" value="Ecal_barrel_half_length*2"/>
<constant name="ecalbarrel_layer" value="28" />
<constant name="ecalbarrel_phimodule_number" value="32" />
<constant name="ecalbarrel_Zmodule_number" value="15"/>
<constant name="ecalbarrel_module_ratation" value="12.*degree" />
<constant name="ecalbarrel_width_crystal" value="10.2*mm"/>
<constant name="ecalbarrel_crystal_wrapping" value="0.1*mm"/>
<constant name="ecalbarrel_length_photoelectronic" value="0.7*mm"/>
<constant name="ecalbarrel_width_photoelectronic" value="3*mm"/>
<constant name="ecalbarrel_length_carbon" value="5.*mm"/>
<constant name="ecalbarrel_length_cable" value="0.*mm"/>
<constant name="ecalbarrel_length_cooling" value="1.*mm"/>
<constant name="ecalbarrel_length_pcb" value="1.2*mm"/>
<constant name="ecalbarrel_length_asic" value="1.*mm"/>
<constant name="ecalbarrel_length_back" value="10.*mm"/>
</define>
<regions>
<region name="EcalBarrelRegion">
</region>
</regions>
<detectors>
<detector id="DetID_ECAL" name="EcalBarrel" type="LongCrystalBarBarrelCalorimeter32Polygon_v01" readout="EcalBarrelCollection" vis="Invisible" sensitive="true" region="EcalBarrelRegion">
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
</detector>
</detectors>
<readouts>
<readout name="EcalBarrelCollection">
<segmentation type="NoSegmentation"/>
<!--segmentation type="CartesianGridXYZ"
grid_size_x="1*cm"
grid_size_y="1*cm"
grid_size_z="1*cm"/-->
<id>system:5,module:5,stave:4,dlayer:5,slayer:6,bar:15</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<constant name="ecalbarrel_inner_radius" value="Ecal_barrel_inner_radius"/>
<constant name="ecalbarrel_outer_radius" value="Ecal_barrel_outer_radius"/>
<constant name="ecalbarrel_zlength" value="Ecal_barrel_half_length*2"/>
<constant name="ecalbarrel_layer" value="18" />
<constant name="ecalbarrel_phimodule_number" value="32" />
<constant name="ecalbarrel_Zmodule_number" value="15"/>
<constant name="ecalbarrel_module_ratation" value="12.*degree" />
<constant name="ecalbarrel_width_crystal" value="15.2*mm"/>
<constant name="ecalbarrel_crystal_wrapping" value="0.1*mm"/>
<constant name="ecalbarrel_length_photoelectronic" value="0.7*mm"/>
<constant name="ecalbarrel_width_photoelectronic" value="3*mm"/>
<constant name="ecalbarrel_length_carbon" value="5.*mm"/>
<constant name="ecalbarrel_length_cable" value="0.*mm"/>
<constant name="ecalbarrel_length_cooling" value="1.*mm"/>
<constant name="ecalbarrel_length_pcb" value="1.2*mm"/>
<constant name="ecalbarrel_length_asic" value="1.*mm"/>
<constant name="ecalbarrel_length_back" value="10.*mm"/>
</define>
<regions>
<region name="EcalBarrelRegion">
</region>
</regions>
<detectors>
<detector id="DetID_ECAL" name="EcalBarrel" type="LongCrystalBarBarrelCalorimeter32Polygon_v01" readout="EcalBarrelCollection" vis="Invisible" sensitive="true" region="EcalBarrelRegion">
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
</detector>
</detectors>
<readouts>
<readout name="EcalBarrelCollection">
<segmentation type="NoSegmentation"/>
<!--segmentation type="CartesianGridXYZ"
grid_size_x="1*cm"
grid_size_y="1*cm"
grid_size_z="1*cm"/-->
<id>system:5,module:5,stave:4,dlayer:5,slayer:6,bar:15</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<constant name="ecalbarrel_inner_radius" value="Ecal_barrel_inner_radius"/>
<constant name="ecalbarrel_outer_radius" value="Ecal_barrel_outer_radius"/>
<constant name="ecalbarrel_zlength" value="Ecal_barrel_half_length*2"/>
<constant name="ecalbarrel_24X0" value="268.8*mm"/>
<constant name="ecalbarrel_layer" value="18" />
<constant name="ecalbarrel_phimodule_number" value="32" />
<constant name="ecalbarrel_phimodule_number_display" value="32" />
<constant name="ecalbarrel_Zmodule_number" value="15"/>
<constant name="ecalbarrel_Zmodule_number_display" value="15"/>
<constant name="ecalbarrel_module_ratation" value="12.*degree" />
<constant name="ecalbarrel_width_crystal" value="15.2*mm"/>
<constant name="ecalbarrel_width_crystal_n" value="15.8*mm"/>
<constant name="ecalbarrel_size_crystal" value="15.2*mm"/>
<constant name="ecalbarrel_crystal_wrapping" value="0.1*mm"/>
<constant name="ecalbarrel_crystal_supportting" value="0.000001*mm"/>
<constant name="ecalbarrel_length_photoelectronic" value="0.699999*mm"/>
<constant name="ecalbarrel_width_photoelectronic" value="3*mm"/>
<constant name="ecalbarrel_length_carbon" value="2.5*mm"/>
<constant name="ecalbarrel_length_carbon_z" value="2.5*mm"/>
<constant name="ecalbarrel_length_cable" value="0.*mm"/>
<constant name="ecalbarrel_length_cooling" value="1.*mm"/>
<constant name="ecalbarrel_length_pcb" value="2*mm"/>
<constant name="ecalbarrel_length_asic" value="2*mm"/>
<constant name="ecalbarrel_length_back" value="12*mm"/>
</define>
<regions>
<region name="EcalBarrelRegion">
</region>
</regions>
<detectors>
<detector id="DetID_ECAL" name="EcalBarrel" type="LongCrystalBarBarrelCalorimeter32Polygon_v02" readout="EcalBarrelCollection" vis="Invisible" sensitive="true" region="EcalBarrelRegion">
<!-- Use cm as unit if you want to use Pandora for reconstruction -->
</detector>
</detectors>
<readouts>
<readout name="EcalBarrelCollection">
<segmentation type="NoSegmentation"/>
<!--segmentation type="CartesianGridXYZ"
grid_size_x="1*cm"
grid_size_y="1*cm"
grid_size_z="1*cm"/-->
<id>system:5,module:5,stave:4,dlayer:5,slayer:6,bar:15</id>
</readout>
</readouts>
</lccdd>