diff --git a/Algorithms/MaterialMapping/src/OutcomeRecording.cpp b/Algorithms/MaterialMapping/src/OutcomeRecording.cpp index 580b7a5d897c5cf272b1b6f0ebbebecca4cbd2e4..09fb0a477317ab063ea739b41f26164d84149a74 100644 --- a/Algorithms/MaterialMapping/src/OutcomeRecording.cpp +++ b/Algorithms/MaterialMapping/src/OutcomeRecording.cpp @@ -60,8 +60,8 @@ FW::OutcomeRecording::execute(const FW::AlgorithmContext& context) const m_runManager->BeamOn(m_cfg.tracksPerEvent); // Retrieve the track material tracks from Geant4 auto recordedParticles - = FW::Geant4::OREventAction::Instance()->outcomingParticles(); - ACTS_INFO("Received " << recordedParticles.size() + = FW::Geant4::OREventAction::Instance()->outcomingParticles(m_cfg.pdg, m_cfg.momentum, m_cfg.phi, m_cfg.theta); // Keeping momentum in Acts units + ACTS_INFO("Received " << recordedParticles.particles.size() << " particles. Writing them now onto file..."); // Write the recorded material to the event store diff --git a/Detectors/DD4hepDetector/compact/Demonstrator/Demonstrator.xml b/Detectors/DD4hepDetector/compact/Demonstrator/Demonstrator.xml deleted file mode 100644 index 733439793e2f04597254a8365f88c11e974f9c32..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/compact/Demonstrator/Demonstrator.xml +++ /dev/null @@ -1,149 +0,0 @@ -<?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"> - - <includes> - <gdmlFile ref="../elements.xml"/> - <gdmlFile ref="../materials.xml"/> - </includes> - - <info name="Demonstrator" - title="Demonstrator" - author="Andreas.Salzburger@cern.ch" url="" status="test" version="0"> - <comment>Demonstrator Detector for the acts webpage and documentation</comment> - </info> - - <define> - <!--World--> - <constant name="world_size" value="1*m"/> - <constant name="world_x" value="world_size"/> - <constant name="world_y" value="world_size"/> - <constant name="world_z" value="world_size"/> - <!--Dimensions of the beam pipe --> - <constant name="bp_rmin" value="34.5*mm"/> - <constant name="bp_rmax" value="35.5*mm"/> - <constant name="bp_length" value="200.*mm"/> - <!--Dimension of the volume --> - <constant name="bv_rmin" value="40.*mm"/> - <constant name="bv_rmax" value="80.*mm"/> - <constant name="bv_length" value="200.*mm"/> - <!--The layer --> - <constant name="bl0_rmin" value="45.*mm"/> - <constant name="bl0_rmax" value="65.*mm"/> - <constant name="bl0_length" value="200.*mm"/> - <!--The layer support shell--> - <constant name="bl0_s_rmin" value="64.*mm"/> - <constant name="bl0_s_rmax" value="65.*mm"/> - <constant name="bl0_s_length" value="50.*mm"/> - <!--The layer module --> - <constant name="bl0_m_dx" value="50.*mm"/> - <constant name="bl0_m_dy" value="50.*mm"/> - <constant name="bl0_m_dz" value="15.*mm"/> - <constant name="bl0_m_r" value="57.*mm"/> - <constant name="bl0_m_nphi" value="8"/> - <constant name="bl0_m_phi0" value="0.144"/> - <constant name="bl0_m_phiTilt" value="0.25"/> - <!-- The module components --> - <constant name="bl0_m_c0_dx" value="48.*mm"/> - <constant name="bl0_m_c0_dy" value="48.*mm"/> - <constant name="bl0_m_c0_dz" value="0.125*mm"/> - <constant name="bl0_m_c0_ox" value="0.*mm"/> - <constant name="bl0_m_c0_oy" value="0.*mm"/> - <constant name="bl0_m_c0_oz" value="-7.43*mm"/> - - <constant name="bl0_m_c1_dx" value="45.*mm"/> - <constant name="bl0_m_c1_dy" value="45.*mm"/> - <constant name="bl0_m_c1_dz" value="2.*mm"/> - <constant name="bl0_m_c1_ox" value="0.*mm"/> - <constant name="bl0_m_c1_oy" value="0.*mm"/> - <constant name="bl0_m_c1_oz" value="-6.2*mm"/> - - <constant name="bl0_m_c2_dx" value="45.*mm"/> - <constant name="bl0_m_c2_dy" value="13.*mm"/> - <constant name="bl0_m_c2_dz" value="0.75*mm"/> - <constant name="bl0_m_c2_ox" value="0.*mm"/> - <constant name="bl0_m_c2_oy" value="15.*mm"/> - <constant name="bl0_m_c2_oz" value="-4.8*mm"/> - - <constant name="bl0_m_c3_dx" value="45.*mm"/> - <constant name="bl0_m_c3_dy" value="11.*mm"/> - <constant name="bl0_m_c3_dz" value="0.75*mm"/> - <constant name="bl0_m_c3_ox" value="0.*mm"/> - <constant name="bl0_m_c3_oy" value="15.*mm"/> - <constant name="bl0_m_c3_oz" value="-4.7*mm"/> - - <constant name="bl0_m_c4_dx" value="55.*mm"/> - <constant name="bl0_m_c4_dy" value="8.*mm"/> - <constant name="bl0_m_c4_dz" value="3.*mm"/> - <constant name="bl0_m_c4_ox" value="0.*mm"/> - <constant name="bl0_m_c4_oy" value="13.*mm"/> - <constant name="bl0_m_c4_oz" value="7.0*mm"/> - - <constant name="bl0_m_p_rmin" value="3.*mm"/> - <constant name="bl0_m_p_rmax" value="4.*mm"/> - <constant name="bl0_m_p_length" value="55.*mm"/> - <constant name="bl0_m_p_ox" value="0.*mm"/> - <constant name="bl0_m_p_oy" value="0.*mm"/> - <constant name="bl0_m_p_oz" value="-1.*mm"/> - - <constant name="bl0_m_cs_dx" value="5.*mm"/> - <constant name="bl0_m_cs_dy" value="9.*mm"/> - <constant name="bl0_m_cs_dz" value="0.5*mm"/> - <constant name="bl0_m_cs_rot" value="1.2"/> - <constant name="bl0_m_cs_ox" value="0.*mm"/> - <constant name="bl0_m_cs_oy" value="13.*mm"/> - <constant name="bl0_m_cs_oz" value="1.*mm"/> - - <constant name="bl0_m_m_x1" value="5.*mm"/> - <constant name="bl0_m_m_x2" value="1.*mm"/> - <constant name="bl0_m_m_length" value="12.*mm"/> - <constant name="bl0_m_m_dz" value="3.8*mm"/> - <constant name="bl0_m_m_ox" value="0.*mm"/> - <constant name="bl0_m_m_oy" value="-11.*mm"/> - <constant name="bl0_m_m_oz" value="-1.*mm"/> - - </define> - - <display> - <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="yellow" r="0.65" g="0.65" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="grey" r="0.7" g="0.6" b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="bluetrans" alpha="0.5" r="0.0" g="0.0" b="0.5" showDaughters="true" visible="true"/> - </display> - - <readouts> - <readout name="BarrelReadout"> - <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/> - <id>system:1,layer:1,support:4,module:8,component:8,x:4,y:4</id> - </readout> - </readouts> - - <detectors> - <detector id="0" name="beampipe" type="DemonstratorBeamPipe" vis="blue"> - <status id="0" /> - <description rmin="bp_rmin" rmax="bp_rmax" dz="bp_length" material="Beryllium"/> - </detector> - <detector id="1" name="barrel" type="DemonstratorBarrel" vis="invisible" readout="BarrelReadout"> - <dimensions rmin="bv_rmin" rmax="bv_rmax" dz="bv_length"/> - <layer id="0" rmin="bl0_rmin" rmax="bl0_rmax" dz="bl0_length" material="Air" vis="invisible"> - <module dx="bl0_m_dx" dy="bl0_m_dy" dz="bl0_m_dz" material="Air" vis="invisible"> - <placements r="bl0_m_r" nphi="bl0_m_nphi" phi0="bl0_m_phi0" phi_tilt="bl0_m_phiTilt"/> - <module_component sensitive="true" material="Silicon" dx="bl0_m_c0_dx" dy="bl0_m_c0_dy" dz="bl0_m_c0_dz" x_offset="bl0_m_c0_ox" y_offset="bl0_m_c0_oy" z_offset="bl0_m_c0_oz" vis="green" /> - <module_component sensitive="false" material="Kapton" dx="bl0_m_c1_dx" dy="bl0_m_c1_dy" dz="bl0_m_c1_dz" x_offset="bl0_m_c1_ox" y_offset="bl0_m_c1_oy" z_offset="bl0_m_c1_oz" vis="yellow" /> - <module_component sensitive="false" material="Al" dx="bl0_m_c2_dx" dy="bl0_m_c2_dy" dz="bl0_m_c2_dz" x_offset="bl0_m_c2_ox" y_offset="bl0_m_c2_oy" z_offset="bl0_m_c2_oz" vis="orange" /> - <module_component sensitive="false" material="Co" dx="bl0_m_c3_dx" dy="bl0_m_c3_dy" dz="bl0_m_c3_dz" x_offset="bl0_m_c3_ox" y_offset="bl0_m_c3_oy" z_offset="bl0_m_c3_oz" vis="blue" /> - <module_component sensitive="false" material="Kapton" dx="bl0_m_c4_dx" dy="bl0_m_c4_dy" dz="bl0_m_c4_dz" x_offset="bl0_m_c4_ox" y_offset="bl0_m_c4_oy" z_offset="bl0_m_c4_oz" vis="blue" /> - <tubs material="Ti" rmin="bl0_m_p_rmin" rmax="bl0_m_p_rmax" length="bl0_m_p_length" x_offset="bl0_m_p_ox" y_offset="bl0_m_p_oy" z_offset="bl0_m_p_oz" vis="grey"/> - <anchor material="CarbonFiber" x1="bl0_m_m_x1" x2="bl0_m_m_x2" length="bl0_m_m_length" dz="bl0_m_m_dz" x_offset="bl0_m_m_ox" y_offset="bl0_m_m_oy" z_offset="bl0_m_m_oz" vis="grey"/> - <box material="Kapton" dx="bl0_m_cs_dx" dy="bl0_m_cs_dy" dz="bl0_m_cs_dz" alpha="bl0_m_cs_rot" x_offset="bl0_m_cs_ox" y_offset="bl0_m_cs_oy" z_offset="bl0_m_cs_oz" vis="blue"/> - </module> - <support rmin="bl0_s_rmin" rmax="bl0_s_rmax" dz="bl0_s_length" material="CarbonFiber" vis="grey"/> - </layer> - </detector> - </detectors> -</lccdd> diff --git a/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML.xml b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML.xml new file mode 100644 index 0000000000000000000000000000000000000000..4692a86527ee6b541910b9c63aff8d1ce70cb8ff --- /dev/null +++ b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML.xml @@ -0,0 +1,283 @@ +<?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"> + + <includes> + <gdmlFile ref="../elements.xml"/> + <gdmlFile ref="../materials.xml"/> + </includes> + + <info name="GenericDetectorML" + title="A generic detector used for the machine learning challenge." + author="" url="" status="test" version="0"> + <comment></comment> + </info> + + <define> + <!--World--> + <constant name="world_size" value="30*m"/> + <constant name="world_x" value="world_size"/> + <constant name="world_y" value="world_size"/> + <constant name="world_z" value="world_size"/> + <!--BeamPipe--> + <constant name="BeamPipe_rmin" value="18.6*mm"/> + <constant name="BeamPipe_rmax" value="19.4*mm"/> + <constant name="BeamPipe_hLength" value="3000.*mm"/> + <!--Barrel0--> + <constant name="B0_rmin" value="22.*mm"/> + <constant name="B0_rmax" value="180.*mm"/> + <constant name="B0_dz" value="500.*mm"/> + <constant name="B0_zpos" value="0.*mm"/> + <constant name="B0_M_repeatZ" value="14"/> + <constant name="B0_L_dz" value="491*mm"/> + <constant name="B0_phiTilt" value="0.14*rad"/> + <!--Layer0--> + <constant name="B0_L0_rmin" value="30.*mm"/> + <constant name="B0_L0_rmax" value="34.*mm"/> + <constant name="B0_L0_M_repeatPhi" value="16"/> + <!--Layer1--> + <constant name="B0_L1_rmin" value="70.*mm"/> + <constant name="B0_L1_rmax" value="74.*mm"/> + <constant name="B0_L1_M_repeatPhi" value="32"/> + <!--Layer2--> + <constant name="B0_L2_rmin" value="114.*mm"/> + <constant name="B0_L2_rmax" value="118.*mm"/> + <constant name="B0_L2_M_repeatPhi" value="52"/> + <!--Layer3--> + <constant name="B0_L3_rmin" value="170.*mm"/> + <constant name="B0_L3_rmax" value="174.*mm"/> + <constant name="B0_L3_M_repeatPhi" value="78"/> + <!--Module--> + <constant name="B0_M_hWidth" value="8.4*mm"/> + <constant name="B0_M_hLength" value="36.*mm"/> + <constant name="B0_M_hThickness" value="0.15*mm"/> + <constant name="B0_M_OverlapZ" value="2.*mm"/> + <constant name="B0_M_offsetR" value="0.5*mm"/> + <!--EndCap0--> + <constant name="E0_rmin" value="22.*mm"/> + <constant name="E0_rmax" value="180.*mm"/> + <constant name="E0_dz" value="600.*mm"/> + <constant name="pE0_zpos" value="1100.*mm"/> + <!--Layers--> + <constant name="E0_L_dz" value="2*mm"/> + <constant name="E0_L_ringStagger" value="0.*mm"/> + <!--Layer0--> + <constant name="E0_L0_pos" value="-500.*mm"/> + <constant name="E0_L1_pos" value="-400.*mm"/> + <constant name="E0_L2_pos" value="-280.*mm"/> + <constant name="E0_L3_pos" value="-140.*mm"/> + <constant name="E0_L4_pos" value="0.*mm"/> + <constant name="E0_L5_pos" value="200.*mm"/> + <constant name="E0_L6_pos" value="400.*mm"/> + <!--Module and Ring Info--> + <!--Module0--> + <constant name="E0_M0_X1" value="8.4*mm"/> + <constant name="E0_M0_X2" value="8.4*mm"/> + <constant name="E0_M0_hLength" value="36.*mm"/> + <constant name="E0_M0_hThickness" value="0.15*mm"/> + <constant name="E0_M0_r" value="66*mm"/> + <constant name="E0_M0_modulesInPhi" value="40"/> + <constant name="E0_M0_stagger" value="4.*mm"/> + <constant name="E0_M0_subStagger" value="0.5*mm"/> + <!--Module1--> + <constant name="E0_M1_X1" value="8.4*mm"/> + <constant name="E0_M1_X2" value="8.4*mm"/> + <constant name="E0_M1_hLength" value="36.*mm"/> + <constant name="E0_M1_hThickness" value="0.15*mm"/> + <constant name="E0_M1_r" value="140*mm"/> + <constant name="E0_M1_modulesInPhi" value="68"/> + <constant name="E0_M1_stagger" value="4.*mm"/> + <constant name="E0_M1_subStagger" value="0.*mm"/> + <!--Barrel1--> + <constant name="B1_rmin" value="185.*mm"/> + <constant name="B1_rmax" value="700.*mm"/> + <constant name="B1_dz" value="1086*mm"/> + <constant name="B1_zpos" value="0.*mm"/> + <constant name="B1_M_repeatZ" value="21"/> + <constant name="B1_L_dz" value="5*mm"/> + <constant name="B1_phiTilt" value="-0.15*rad"/> + <!--Layer0--> + <constant name="B1_L0_rmin" value="258.*mm"/> + <constant name="B1_L0_rmax" value="262.*mm"/> + <constant name="B1_L0_M_repeatPhi" value="40"/> + <!--Layer1--> + <constant name="B1_L1_rmin" value="358.*mm"/> + <constant name="B1_L1_rmax" value="362.*mm"/> + <constant name="B1_L1_M_repeatPhi" value="56"/> + <!--Layer2--> + <constant name="B1_L2_rmin" value="498.*mm"/> + <constant name="B1_L2_rmax" value="502.*mm"/> + <constant name="B1_L2_M_repeatPhi" value="78"/> + <!--Layer3--> + <constant name="B1_L3_rmin" value="658.*mm"/> + <constant name="B1_L3_rmax" value="662.*mm"/> + <constant name="B1_L3_M_repeatPhi" value="102"/> + <!--Module--> + <constant name="B1_M_hWidth" value="24.*mm"/> + <constant name="B1_M_hLength" value="54.*mm"/> + <constant name="B1_M_hThickness" value="0.25*mm"/> + <constant name="B1_M_OverlapZ" value="5.*mm"/> + <constant name="B1_M_offsetR" value="3.*mm"/> + <!--EndCap1--> + <constant name="E1_rmin" value="185.*mm"/> + <constant name="E1_rmax" value="700*mm"/> + <constant name="E1_dz" value="1000.*mm"/> + <constant name="pE1_zpos" value="2000.*mm"/> + <!--Layers--> + <constant name="E1_L_dz" value="2*mm"/> + <constant name="E1_L_ringStagger" value="6.*mm"/> + <!--Layer0--> + <constant name="E1_L0_pos" value="-780.*mm"/> + <constant name="E1_L1_pos" value="-500.*mm"/> + <constant name="E1_L2_pos" value="-200.*mm"/> + <constant name="E1_L3_pos" value="150.*mm"/> + <constant name="E1_L4_pos" value="550.*mm"/> + <constant name="E1_L5_pos" value="950.*mm"/> + <!--Module and Ring Info--> + <!--Module1--> + <constant name="E1_M0_X1" value="16.4*mm"/> + <constant name="E1_M0_X2" value="24.2*mm"/> + <constant name="E1_M0_hLength" value="78.*mm"/> + <constant name="E1_M0_hThickness" value="0.25*mm"/> + <constant name="E1_M0_r" value="318*mm"/> + <constant name="E1_M0_modulesInPhi" value="54"/> + <constant name="E1_M0_stagger" value="3.*mm"/> + <constant name="E1_M0_subStagger" value="0*mm"/> + <!--Module1--> + <constant name="E1_M1_X1" value="24.2*mm"/> + <constant name="E1_M1_X2" value="32.2*mm"/> + <constant name="E1_M1_hLength" value="78.*mm"/> + <constant name="E1_M1_hThickness" value="0.25*mm"/> + <constant name="E1_M1_r" value="470*mm"/> + <constant name="E1_M1_modulesInPhi" value="56"/> + <constant name="E1_M1_stagger" value="3.*mm"/> + <constant name="E1_M1_subStagger" value="0.*mm"/> + <!--Module2--> + <constant name="E1_M2_X1" value="32.2*mm"/> + <constant name="E1_M2_X2" value="40.*mm"/> + <constant name="E1_M2_hLength" value="78.*mm"/> + <constant name="E1_M2_hThickness" value="0.25*mm"/> + <constant name="E1_M2_r" value="622*mm"/> + <constant name="E1_M2_modulesInPhi" value="60"/> + <constant name="E1_M2_stagger" value="3.*mm"/> + <constant name="E1_M2_subStagger" value="0.*mm"/> + <!--Barrel2--> + <constant name="B2_rmin" value="705.*mm"/> + <constant name="B2_rmax" value="1100.*mm"/> + <constant name="B2_dz" value="1086*mm"/> + <constant name="B2_zpos" value="0.*mm"/> + <constant name="B2_M_repeatZ" value="21"/> + <constant name="B2_L_dz" value="5*mm"/> + <constant name="B2_phiTilt" value="-0.15*rad"/> + <!--Layer0--> + <constant name="B2_L0_rmin" value="818.*mm"/> + <constant name="B2_L0_rmax" value="822.*mm"/> + <constant name="B2_L0_M_repeatPhi" value="120"/> + <!--Layer1--> + <constant name="B2_L1_rmin" value="1018.*mm"/> + <constant name="B2_L1_rmax" value="1022.*mm"/> + <constant name="B2_L1_M_repeatPhi" value="152"/> + <!--Module--> + <constant name="B2_M_hWidth" value="24.*mm"/> + <constant name="B2_M_hLength" value="54.*mm"/> + <constant name="B2_M_hThickness" value="0.35*mm"/> + <constant name="B2_M_OverlapZ" value="5.*mm"/> + <constant name="B2_M_offsetR" value="3.*mm"/> + <!--EndCap2--> + <constant name="E2_rmin" value="705.*mm"/> + <constant name="E2_rmax" value="1100*mm"/> + <constant name="E2_dz" value="1000.*mm"/> + <constant name="pE2_zpos" value="2000.*mm"/> + <!--Layers--> + <constant name="E2_L_dz" value="2*mm"/> + <constant name="E2_L_ringStagger" value="8.*mm"/> + <!--Layer0--> + <constant name="E2_L0_pos" value="-780.*mm"/> + <constant name="E2_L1_pos" value="-500.*mm"/> + <constant name="E2_L2_pos" value="-200.*mm"/> + <constant name="E2_L3_pos" value="150.*mm"/> + <constant name="E2_L4_pos" value="550.*mm"/> + <constant name="E2_L5_pos" value="950.*mm"/> + <!--Module and Ring Info--> + <!--ModulE2--> + <constant name="E2_M0_X1" value="54.*mm"/> + <constant name="E2_M0_X2" value="64.2*mm"/> + <constant name="E2_M0_hLength" value="78.*mm"/> + <constant name="E2_M0_hThickness" value="0.35*mm"/> + <constant name="E2_M0_r" value="828*mm"/> + <constant name="E2_M0_modulesInPhi" value="48"/> + <constant name="E2_M0_stagger" value="3.*mm"/> + <constant name="E2_M0_subStagger" value="0*mm"/> + <!--ModulE2--> + <constant name="E2_M1_X1" value="66.*mm"/> + <constant name="E2_M1_X2" value="72.*mm"/> + <constant name="E2_M1_hLength" value="78.*mm"/> + <constant name="E2_M1_hThickness" value="0.35*mm"/> + <constant name="E2_M1_r" value="942*mm"/> + <constant name="E2_M1_modulesInPhi" value="50"/> + <constant name="E2_M1_stagger" value="3.*mm"/> + <constant name="E2_M1_subStagger" value="0.*mm"/> + +</define> + + <display> + <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="BlueVisTrans" alpha="0.1" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="false"/> + </display> + + <readouts> + <readout name="B_Pixel_Readout"> + <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05625*mm"/> + <id>system:5,layer:3,module:15,x:32:-16,y:-16</id> + </readout> + <readout name="E_Pixel_Readout"> + <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05625*mm"/> + <id>system:5,posneg:1,layer:3,module:15,x:32:-16,y:-16</id> + </readout> + <readout name="B_ShortStrip_Readout"> + <segmentation type="CartesianGridXY" grid_size_x="0.08*mm" grid_size_y="1.2*mm"/> + <id>system:5,layer:3,module:15,x:32:-16,y:-16</id> + </readout> + <readout name="E_ShortStrip_Readout"> + <segmentation type="CartesianGridXY" grid_size_x="0.08*mm" grid_size_y="1.2*mm"/> + <id>system:5,posneg:1,layer:3,module:15,x:32:-16,y:-16</id> + </readout> + <readout name="B_LongStrip_Readout"> + <segmentation type="CartesianGridXY" grid_size_x="0.12*mm" grid_size_y="10.8*mm"/> + <id>system:5,layer:3,module:15,x:32:-16,y:-16</id> + </readout> + <readout name="E_LongStrip_Readout"> + <segmentation type="CartesianGridXY" grid_size_x="0.12*mm" grid_size_y="10.2*mm"/> + <id>system:5,posneg:1,layer:3,module:15,x:32:-16,y:-16</id> + </readout> + </readouts> + + + <include ref="GenericDetectorML_pixel.xml"/> + <include ref="GenericDetectorML_ShortStrip.xml"/> + <include ref="GenericDetectorML_LongStrip.xml"/> + + <detectors> + <!--BeamPipe--> + <detector id="0" name="beampipe" type="BeamPipe"> + <dimensions rmin="BeamPipe_rmin" rmax="BeamPipe_rmax" z="BeamPipe_hLength" vis="violet" material="Be"/> + </detector> + <detector id="1" name="Pixel" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans"> + <composite name="Barrel0"/> + <composite name="EndCap0"/> + </detector> + <detector id="2" name="ShortStrip" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans"> + <composite name="Barrel1"/> + <composite name="EndCap1"/> + </detector> + <detector id="3" name="LongStrip" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans"> + <composite name="Barrel2"/> + <composite name="EndCap2"/> + </detector> + </detectors> +</lccdd> diff --git a/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_LongStrip.xml b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_LongStrip.xml new file mode 100644 index 0000000000000000000000000000000000000000..0cf6d02814c24a1c2ca199cd13ac230bf6b9780b --- /dev/null +++ b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_LongStrip.xml @@ -0,0 +1,42 @@ +<detectors> + <!--Barrel--> + <detector id="300" name="Barrel2" type="ACTS_GenericMLBarrel" readout="B_LongStrip_Readout"> + <dimensions rmin="B2_rmin" rmax="B2_rmax" dz="B2_dz" z="0.*mm" vis="invisible"/> + <layer id="0" inner_r="B2_L0_rmin" outer_r="B2_L0_rmax" z="B2_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B2_M_OverlapZ" repeat="B2_M_repeatZ" offset="B2_M_offsetR"/> + <module name="Module0" width="B2_M_hWidth" length="B2_M_hLength" thickness="B2_M_hThickness" phi_tilt="B2_phiTilt" repeat="B2_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="B2_L1_rmin" outer_r="B2_L1_rmax" z="B2_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B2_M_OverlapZ" repeat="B2_M_repeatZ" offset="B2_M_offsetR"/> + <module name="Module0" width="B2_M_hWidth" length="B2_M_hLength" thickness="B2_M_hThickness" phi_tilt="B2_phiTilt" repeat="B2_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> + <!--EndCap--> + <detector id="302" name="EndCap2" type="ACTS_GenericMLEndcaps" readout="E_LongStrip_Readout"> + <dimensions rmin="E2_rmin" rmax="E2_rmax" dz="E2_dz" z="pE2_zpos" vis="invisible"/> + <layer id="0" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L0_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L1_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="2" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L2_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="3" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L3_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="4" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L4_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="5" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L5_pos" z_offset="E2_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E2_M0_r" z_offset="E2_M0_stagger" dz="E2_M0_subStagger" x1="E2_M0_X1" x2="E2_M0_X2" length="E2_M0_hLength" thickness="E2_M0_hThickness" repeat="E2_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E2_M1_r" z_offset="E2_M1_stagger" dz="E2_M1_subStagger" x1="E2_M1_X1" x2="E2_M1_X2" length="E2_M1_hLength" thickness="E2_M1_hThickness" repeat="E2_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> +</detectors> \ No newline at end of file diff --git a/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_ShortStrip.xml b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_ShortStrip.xml new file mode 100644 index 0000000000000000000000000000000000000000..93cb7cfa40a3584dcc3279251ee0be9ea6436737 --- /dev/null +++ b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_ShortStrip.xml @@ -0,0 +1,50 @@ +<detectors> + <!--Barrel--> + <detector id="200" name="Barrel1" type="ACTS_GenericMLBarrel" readout="B_ShortStrip_Readout"> + <dimensions rmin="B1_rmin" rmax="B1_rmax" dz="B1_dz" z="0.*mm" vis="invisible"/> + <layer id="0" inner_r="B1_L0_rmin" outer_r="B1_L0_rmax" z="B1_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B1_M_OverlapZ" repeat="B1_M_repeatZ" offset="B1_M_offsetR"/> + <module name="Module0" width="B1_M_hWidth" length="B1_M_hLength" thickness="B1_M_hThickness" phi_tilt="B1_phiTilt" repeat="B1_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="B1_L1_rmin" outer_r="B1_L1_rmax" z="B1_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B1_M_OverlapZ" repeat="B1_M_repeatZ" offset="B1_M_offsetR"/> + <module name="Module0" width="B1_M_hWidth" length="B1_M_hLength" thickness="B1_M_hThickness" phi_tilt="B1_phiTilt" repeat="B1_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="2" inner_r="B1_L2_rmin" outer_r="B1_L2_rmax" z="B1_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B1_M_OverlapZ" repeat="B1_M_repeatZ" offset="B1_M_offsetR"/> + <module name="Module0" width="B1_M_hWidth" length="B1_M_hLength" thickness="B1_M_hThickness" phi_tilt="B1_phiTilt" repeat="B1_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="3" inner_r="B1_L3_rmin" outer_r="B1_L3_rmax" z="B1_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B1_M_OverlapZ" repeat="B1_M_repeatZ" offset="B1_M_offsetR"/> + <module name="Module0" width="B1_M_hWidth" length="B1_M_hLength" thickness="B1_M_hThickness" phi_tilt="B1_phiTilt" repeat="B1_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> + <!--posEndCap--> + <detector id="202" name="EndCap1" type="ACTS_GenericMLEndcaps" readout="E_ShortStrip_Readout"> + <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="pE1_zpos" vis="invisible"/> + <layer id="0" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L0_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> </layer> + <layer id="1" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L1_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> </layer> + <layer id="2" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L2_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> </layer> + <layer id="3" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L3_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> </layer> + <layer id="4" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L4_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> </layer> + <layer id="5" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L5_pos" z_offset="E1_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="Mod0" radius="E1_M0_r" z_offset="E1_M0_stagger" dz="E1_M0_subStagger" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_hLength" thickness="E1_M0_hThickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M1_r" z_offset="E1_M1_stagger" dz="E1_M1_subStagger" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_hLength" thickness="E1_M1_hThickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="Mod1" radius="E1_M2_r" z_offset="E1_M2_stagger" dz="E1_M2_subStagger" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_hLength" thickness="E1_M2_hThickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> </layer> + </detector> +</detectors> \ No newline at end of file diff --git a/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_pixel.xml b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_pixel.xml new file mode 100644 index 0000000000000000000000000000000000000000..7afea633dd26d1210d635b0e1769eb39e0d7ecf5 --- /dev/null +++ b/Detectors/DD4hepDetector/compact/GenericDetectorML/GenericDetectorML_pixel.xml @@ -0,0 +1,54 @@ +<detectors> + <!--Barrel--> + <detector id="100" name="Barrel0" type="ACTS_GenericMLBarrel" readout="B_Pixel_Readout"> + <dimensions rmin="B0_rmin" rmax="B0_rmax" dz="B0_dz" z="0.*mm" vis="invisible"/> + <layer id="0" inner_r="B0_L0_rmin" outer_r="B0_L0_rmax" z="B0_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B0_M_OverlapZ" repeat="B0_M_repeatZ" offset="B0_M_offsetR"/> + <module name="Module0" width="B0_M_hWidth" length="B0_M_hLength" thickness="B0_M_hThickness" phi_tilt="B0_phiTilt" repeat="B0_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="B0_L1_rmin" outer_r="B0_L1_rmax" z="B0_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B0_M_OverlapZ" repeat="B0_M_repeatZ" offset="B0_M_offsetR"/> + <module name="Module0" width="B0_M_hWidth" length="B0_M_hLength" thickness="B0_M_hThickness" phi_tilt="B0_phiTilt" repeat="B0_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="2" inner_r="B0_L2_rmin" outer_r="B0_L2_rmax" z="B0_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B0_M_OverlapZ" repeat="B0_M_repeatZ" offset="B0_M_offsetR"/> + <module name="Module0" width="B0_M_hWidth" length="B0_M_hLength" thickness="B0_M_hThickness" phi_tilt="B0_phiTilt" repeat="B0_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="3" inner_r="B0_L3_rmin" outer_r="B0_L3_rmax" z="B0_L_dz" material="Vacuum" vis="invisible"> + <slice dz="B0_M_OverlapZ" repeat="B0_M_repeatZ" offset="B0_M_offsetR"/> + <module name="Module0" width="B0_M_hWidth" length="B0_M_hLength" thickness="B0_M_hThickness" phi_tilt="B0_phiTilt" repeat="B0_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> + <!--EndCaps--> + <detector id="102" name="EndCap0" type="ACTS_GenericMLEndcaps" readout="E_Pixel_Readout"> + <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="pE0_zpos" vis="invisible"/> + <layer id="0" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L0_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L1_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="2" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L2_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="3" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L3_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="4" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L4_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="5" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L5_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="6" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L6_pos" z_offset="E0_L_ringStagger" material="Vacuum" vis="invisible"> + <module name ="TrMod0" radius="E0_M0_r" z_offset="E0_M0_stagger" dz="E0_M0_subStagger" x1="E0_M0_X1" x2="E0_M0_X2" length="E0_M0_hLength" thickness="E0_M0_hThickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + <module name ="TrMod1" radius="E0_M1_r" z_offset="E0_M1_stagger" dz="E0_M1_subStagger" x1="E0_M1_X1" x2="E0_M1_X2" length="E0_M1_hLength" thickness="E0_M1_hThickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> + </detectors> diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataDetector.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataDetector.xml deleted file mode 100644 index 8566dbf3060484a07eba5ac9b9bb01a726885a52..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataDetector.xml +++ /dev/null @@ -1,139 +0,0 @@ -<?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"> - - <includes> - <gdmlFile ref="../elements.xml"/> - <gdmlFile ref="OpenDataMaterials.xml"/> - </includes> - - <info name="Demonstrator" - title="Demonstrator" - author="Andreas.Salzburger@cern.ch" url="" status="test" version="0"> - <comment>Demonstrator Detector for the acts webpage and documentation</comment> - </info> - - <define> - <!--World--> - <constant name="world_size" value="10.*m"/> - <constant name="world_x" value="world_size"/> - <constant name="world_y" value="world_size"/> - <constant name="world_z" value="world_size"/> - <!--Dimensions of the beam pipe --> - <constant name="bp_rmin" value="23.6*mm"/> - <constant name="bp_rmax" value="24.4*mm"/> - <constant name="bp_length" value="4.0*m"/> - <!--Dimensions of the Pixel volume & sub volumes --> - <constant name="pix_env_rmin" value="30.*mm"/> - <constant name="pix_env_rmax" value="200.*mm"/> - <constant name="pix_env_dz" value="2.4*m"/> - <constant name="pix_b_z" value="0.*m"/> - <constant name="pix_b_dz" value="0.575*m"/> - <constant name="pix_e_nz" value="-1.480*m"/> - <constant name="pix_e_pz" value="1.480*m"/> - <constant name="pix_e_dz" value="0.9*m"/> - <!--Dimensions of the Pixel Support tube --> - <constant name="pst_rmin" value="201.*mm"/> - <constant name="pst_rmax" value="203.*mm"/> - <constant name="pst_length" value="2.0*m"/> - <!--Dimensions of the Short Strips volume & sub volumes --> - <constant name="ss_env_rmin" value="204.*mm"/> - <constant name="ss_env_rmax" value="720.*mm"/> - <constant name="ss_env_dz" value="3.1*m"/> - <constant name="ss_b_z" value="0.*m"/> - <constant name="ss_b_dz" value="1.2*m"/> - <constant name="ss_e_nz" value="-2.175*m"/> - <constant name="ss_e_pz" value="2.175*m"/> - <constant name="ss_e_dz" value="0.925*m"/> - <!--Dimensions of the Long Strips volume & sub volumes --> - <constant name="ls_env_rmin" value="720.*mm"/> - <constant name="ls_env_rmax" value="1150.*mm"/> - <constant name="ls_env_dz" value="3.1*m"/> - <constant name="ls_b_z" value="0.*m"/> - <constant name="ls_b_dz" value="1.2*m"/> - <constant name="ls_e_nz" value="-2.175*m"/> - <constant name="ls_e_pz" value="2.175*m"/> - <constant name="ls_e_dz" value="0.925*m"/> - <!--Dimensions of the Solenoid --> - <constant name="sol_rmin" value="1140.*mm"/> - <constant name="sol_rmax" value="1200.*mm"/> - <constant name="sol_hlength" value="2.85*m"/> - </define> - - <display> - <vis name="Beryllium" r="0.8" g="0.8" b="0.8" alpha="0.9" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="Silicon" r="0." g="0." b="0.5" alpha="1.0" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="Kapton" r="0.1328125" g="0.55859375" b="0.02734375" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="CarbonFiber" r="0.4" g="0.4" b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="CarbonFoam" r="0.5" g="0.5" b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="yellow" r="0.65" g="0.65" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="grey" r="0.7" g="0.6" b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> - <vis name="bluetrans" alpha="0.5" r="0.0" g="0.0" b="0.5" showDaughters="true" visible="true"/> - </display> - - <readouts> - <readout name="PixelBarrelReadout"> - <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/> - <id>system:4,layer:4,stave:8,module:4,sensor:2,x:4,y:4</id> - </readout> - <readout name="PixelEndcapReadout"> - <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/> - <id>system:4,layer:4,ring:2,module:8,sensor:2,x:4,y:4</id> - </readout> - <readout name="ShortStripBarrelReadout"> - <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/> - <id>system:4,layer:4,stave:8,module:8,sensor:2,x:4,y:4</id> - </readout> - <readout name="ShortStripEndcapReadout"> - <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/> - <id>system:4,layer:4,ring:2,module:8,sensor:2,x:4,y:4</id> - </readout> - <readout name="LongStripBarrelReadout"> - <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/> - <id>system:4,layer:4,stave:8,module:8,sensor:4,x:4,y:4</id> - </readout> - <readout name="LongStripEndcapReadout"> - <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/> - <id>system:4,layer:4,ring:4,module:8,sensor:4,x:4,y:4</id> - </readout> - </readouts> - <include ref="OpenDataPixels.xml"/> - <include ref="OpenDataShortStrips.xml"/> - <include ref="OpenDataLongStrips.xml"/> - <detectors> - <detector id="0" name="BeamPipe" type="ODDCylinder" vis="Beryllium"> - <beampipe/> - <tubs name="BeamPipeCylinder" rmin="bp_rmin" rmax="bp_rmax" dz="bp_length" material="Beryllium"/> - </detector> - <detector id="1" name="Pixels" type="DD4hep_SubdetectorAssembly" vis="invisible"> - <shape name="PixelVolume" type="Tube" rmin="pix_env_rmin" rmax="pix_env_rmax" dz="pix_env_dz" material="Air"/> - <composite name="PixelEndcapN"/> - <composite name="PixelBarrel"/> - <composite name="PixelEndcapP"/> - </detector> - <detector id="2" name="PST" type="ODDCylinder" beampipe="false" vis="CarbonFiber"> - <tubs name="PixelSupportCylinder" rmin="pst_rmin" rmax="pst_rmax" dz="pst_length" material="CarbonFiber"/> - </detector> - <detector id="3" name="ShortStrips" type="DD4hep_SubdetectorAssembly" vis="invisible"> - <shape name="ShortStripVolume" type="Tube" rmin="ss_env_rmin" rmax="ss_env_rmax" dz="ss_env_dz" material="Air"/> - <composite name="ShortStripEndcapN"/> - <composite name="ShortStripBarrel"/> - <composite name="ShortStripEndcapP"/> - </detector> - <detector id="4" name="LongStrips" type="DD4hep_SubdetectorAssembly" vis="invisible"> - <shape name="LongStripVolume" type="Tube" rmin="ls_env_rmin" rmax="ls_env_rmax" dz="ls_env_dz" material="Air"/> - <composite name="LongStripEndcapN"/> - <composite name="LongStripBarrel"/> - <composite name="LongStripEndcapP"/> - </detector> - <detector id="5" name="Solenoid" type="ODDCylinder" beampipe="false" vis="grey"> - <tubs name="Solenoid" rmin="sol_rmin" rmax="sol_rmax" dz="sol_hlength" material="CarbonFiber"/> - </detector> - </detectors> -</lccdd> diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataLongStrips.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataLongStrips.xml deleted file mode 100644 index 7f909a2ee9890b23e4e5e6e788265af0fb191685..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataLongStrips.xml +++ /dev/null @@ -1,164 +0,0 @@ -<detectors> - <!--EndcapN--> - <detector id="301" name="LongStripEndcapN" type="ODDStripEndcap" readout="LongStripEndcapReadout" vis="invisible"> - <dimensions name="LongStripEndcapShape" rmin="ls_env_rmin" rmax="ls_env_rmax" dz="ls_e_dz" z="ls_e_nz"/> - <ring name="Ring0" r="820.*mm" nphi="44" reflect="true" phi0="0." gap="8.*mm" z_offset="15.*mm"> - <module name="LongStripEndcapModuleR0" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="54.4*mm" x2="66.6*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="55.2*mm" x2="67.2*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Foam" alpha="0." x1="55.2*mm" x2="67.2*mm" length="96.8*mm" thickness="4.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false"> - <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.6*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> - <tube name="CoolingPipe" rmin="1.4*mm" rmax="1.5*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/> - </module_component> - <module_component name="Board" alpha="0.04" x1="55.2*mm" x2="67.2*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Sensor" alpha="0.04" x1="54.4*mm" x2="66.6*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - </module> - - <support name="SupportRing0" rmin="720.*mm" rmax="735.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <support name="SupportRing1" rmin="900.*mm" rmax="920.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="922.*mm" gap="23.0*mm" nphi="64" z_offset="0.*mm" material="Ti" vis="orange"/> - </ring> - - <ring name="Ring1" r="990.*mm" nphi="52" reflect="true" phi0="0." gap="8.*mm" z_offset="-15.*mm"> - <module name="LongStripEndcapModuleR1" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="66.6*mm" x2="78*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="67.2*mm" x2="78.8*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Foam" alpha="0." x1="67.2*mm" x2="78.8*mm" length="110.8*mm" thickness="4.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false"> - <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.6*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> - <tube name="CoolingPipe" rmin="1.4*mm" rmax="1.5*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/> - </module_component> - <module_component name="Board" alpha="0.04" x1="66.6*mm" x2="78.*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Sensor" alpha="0.04" x1="54.4*mm" x2="78.8*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - </module> - <support name="SupportRing1" rmin="1070.*mm" rmax="1090.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="1092.*mm" gap="24.*mm" nphi="72" z_offset="0.*mm" material="Ti" vis="orange"/> - </ring> - <layer id="0" name="LongStripEndcapN0" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-1280.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="1" name="LongStripEndcapN2" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-1550.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="LongStripEndcapN3" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-1850.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="LongStripEndcapN4" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-2200.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="3" name="LongStripEndcapN5" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-2550.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="4" name="LongStripEndcapN6" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="-2950.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <services> - <cable_routing name="OuterCables" nphi="30" phi0="0." number="10" r="1095*mm" rmin="0.*mm" rmax="0.75*mm" dz="0.1*mm" z_offset="1150.*mm" gap="25.*mm" material="Cu" vis="orange"> - <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing name="OuterCooling" nphi="30" phi0="0.104" number="6" r="1095*mm" rmin="1.2*mm" rmax="1.4*mm" dz="0.*mm" z_offset="1150.*mm" gap="25.*mm" material="Ti" vis="orange"/> - </services> - </detector> - <!--Barrel--> - <detector id="300" name="LongStripBarrel" type="ODDStripBarrel" readout="LongStripBarrelReadout" vis="invisible"> - <dimensions name="LongStripBarrelShape" rmin="ls_env_rmin" rmax="ls_env_rmax" dz="ls_b_dz" z="0.*mm"/> - <module name="LongStripBarrelModule" vis="invisible"> - <module_component name="SensorS" alpha="0.04" dx="96.*mm" dy="108.*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="-3.2*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="BoardS" alpha="0.04" dx="96.*mm" dy="108*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="-3.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="ConnectorS" alpha="0.04" dx="20.*mm" dy="108.*mm" dz="0.25*mm" x_offset="18.*mm" y_offset="0." z_offset="-2.8*mm" material="Al" vis="red" sensitive="false"/> - <module_component name="Rail1" alpha="0.0" dx="16.*mm" dy="108*mm" dz="5*mm" x_offset="-43.*mm" y_offset="0." z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber" sensitive="false"/> - <module_component name="FoamL" alpha="0." dx="30.*mm" dy="108*mm" dz="5*mm" x_offset="-18.*mm" y_offset="0." z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false"> - <subtraction name="CoolingLine" rmin="0.*mm" rmax="2.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> - <tube name="CoolingPipeL" rmin="1.8*mm" rmax="1.9*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/> - </module_component> - <module_component name="Rail2" alpha="0.0" dx="16.*mm" dy="108*mm" dz="5*mm" x_offset="43.*mm" y_offset="0." z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber" sensitive="false"/> - <module_component name="FoamR" alpha="0.0" dx="30.*mm" dy="108*mm" dz="5*mm" x_offset="18.*mm" y_offset="0." z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false"> - <subtraction name="CoolingLine" rmin="0.*mm" rmax="2.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> - <tube name="CoolingPipeR" rmin="1.8*mm" rmax="1.9*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/> - </module_component> - <module_component name="ConnectorA" alpha="0." dx="20.*mm" dy="108.*mm" dz="0.25*mm" x_offset="-18.*mm" y_offset="0." z_offset="2.8*mm" material="Al" vis="red" sensitive="false"/> - <module_component name="BoardA" alpha="0." dx="96.*mm" dy="108*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="3.0*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="SensorA" alpha="0." dx="96.*mm" dy="108.*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="3.2*mm" material="Silicon" vis="Silicon" sensitive="true"/> - </module> - <stave name="LongStripBarrelStave" nmodules="21" gap="1.*mm" vis="invisible"> - <eltube name="CableBundle" rmin="0.5*mm" rmax="1.5*mm" r="820.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Cu" vis="orange"/> - </stave> - <layer id="0" name="LongStripLayer0" rmin="790.*mm" r="820.*mm" rmax="840.*mm" outer_z="20.*mm" nphi="60" phi_tilt="-0.15" phi0="0." vis="invisible"> - <support name="InnerSupportRings" rmin="795.*mm" rmax="810.*mm" dz="50.*mm" z_offset="300.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber"/> - <support name="OuterSupportRings" rmin="795.*mm" rmax="810.*mm" dz="50.*mm" z_offset="1000.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber"/> - <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/> - </layer> - <layer id="1" name="LongStripLayer1" rmin="990.*mm" r="1020.*mm" rmax="1040.*mm" outer_z="20.*mm" nphi="80" phi_tilt="-0.15" phi0="0." vis="invisible"> - <support name="InnerSupportRings" rmin="995.*mm" rmax="1010.*mm" dz="50.*mm" z_offset="300.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber"/> - <support name="OuterSupportRings" rmin="995.*mm" rmax="1010.*mm" dz="50.*mm" z_offset="1000.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber"/> - <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/> - </layer> - <support name="SupportRails" rmin="1075.*mm" rmax="1090.*mm" dz="25.*mm" z_offset="1150.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber"> - <connector/> - </support> - <services> - <cable_routing nphi="30" phi0="0." number="10" rmin="0.*mm" rmax="0.75*mm" dz="2.*mm" z_offset="1150.*mm" gap="15.*mm" material="Cu" vis="orange"> - <box dz="2.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing nphi="30" phi0="0.104" number="6" rmin="1.2*mm" rmax="1.4*mm" dz="0.*mm" z_offset="1150.*mm" gap="15.*mm" material="Ti" vis="orange"/> - </services> - </detector> - <!--EndcapP--> - <detector id="302" name="LongStripEndcapP" type="ODDStripEndcap" readout="LongStripEndcapReadout" vis="invisible"> - <dimensions name="LongStripEndcapShape" rmin="ls_env_rmin" rmax="ls_env_rmax" dz="ls_e_dz" z="ls_e_pz"/> - <ring name="Ring0" r="820.*mm" nphi="44" reflect="true" phi0="0." gap="8.*mm" z_offset="-15.*mm"> - <module name="LongStripEndcapModuleR0" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="54.4*mm" x2="66.6*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="55.2*mm" x2="67.2*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Foam" alpha="0." x1="55.2*mm" x2="67.2*mm" length="96.8*mm" thickness="4.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false"> - <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.6*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> - <tube name="CoolingPipe" rmin="1.4*mm" rmax="1.5*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/> - </module_component> - <module_component name="Board" alpha="0.04" x1="55.2*mm" x2="67.2*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Sensor" alpha="0.04" x1="54.4*mm" x2="66.6*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - </module> - <support name="SupportRing0" rmin="720.*mm" rmax="735.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <support name="SupportRing1" rmin="900.*mm" rmax="920.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="922.*mm" gap="23.0*mm" nphi="64" z_offset="0.*mm" material="Ti" vis="orange"/> - </ring> - - <ring name="Ring1" r="990.*mm" nphi="52" reflect="true" phi0="0." gap="8.*mm" z_offset="15.*mm"> - <module name="LongStripEndcapModuleR1" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="66.6*mm" x2="78*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="67.2*mm" x2="78.8*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Foam" alpha="0." x1="67.2*mm" x2="78.8*mm" length="110.8*mm" thickness="4.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFoam" sensitive="false"> - <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.6*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> - <tube name="CoolingPipe" rmin="1.4*mm" rmax="1.5*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/> - </module_component> - <module_component name="Board" alpha="0.04" x1="66.6*mm" x2="78.*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.25*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Sensor" alpha="0.04" x1="54.4*mm" x2="78.8*mm" length="80.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-2.5*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - </module> - <support name="SupportRing1" rmin="1070.*mm" rmax="1090.*mm" dz="4.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="1092.*mm" gap="24.*mm" nphi="72" z_offset="0.*mm" material="Ti" vis="orange"/> - </ring> - <layer id="0" name="LongStripEndcapP0" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="1280.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="1" name="LongStripEndcapP2" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="1550.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="LongStripEndcapP3" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="1850.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="LongStripEndcapP4" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="2200.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="3" name="LongStripEndcapP5" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="2550.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="4" name="LongStripEndcapP6" rmin="720.*mm" rmax="1095.*mm" dz="100.*mm" z_offset="2950.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <services> - <cable_routing name="OuterCables" nphi="30" phi0="0." number="10" r="1095*mm" rmin="0.*mm" rmax="0.75*mm" dz="0.1*mm" z_offset="1150.*mm" gap="25.*mm" material="Cu" vis="orange"> - <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing name="OuterCooling" nphi="30" phi0="0.104" number="6" r="1095*mm" rmin="1.2*mm" rmax="1.4*mm" dz="0.*mm" z_offset="1150.*mm" gap="25.*mm" material="Ti" vis="orange"/> - </services> - </detector> -</detectors> - diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataMaterials.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataMaterials.xml deleted file mode 100644 index 0c95bf842d5ea9d4dfd460faf2dc186200d68d03..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataMaterials.xml +++ /dev/null @@ -1,98 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<materials> - - - <material name="Air"> - <D type="density" unit="g/cm3" value="0.0012"/> - <fraction n="0.754" ref="N"/> - <fraction n="0.234" ref="O"/> - <fraction n="0.012" ref="Ar"/> - </material> - - <material name="Vacuum"> - <D type="density" unit="g/cm3" value="0.00000001" /> - <fraction n="1" ref="H" /> - </material> - - <material Z="4" name="Beryllium" state="solid"> - <MEE unit="eV" value="63.7"/> - <D unit="g/cm3" value="1.848"/> - <atom unit="g/mole" value="9.01218"/> - <fraction n="1" ref="Be"/> - </material> - - <material name="Epoxy"> - <D type="density" value="1.3" unit="g/cm3"/> - <composite n="44" ref="H"/> - <composite n="15" ref="C"/> - <composite n="7" ref="O"/> - </material> - - <material name="Polystyrene"> - <D value="1.032" unit="g/cm3"/> - <composite n="19" ref="C"/> - <composite n="21" ref="H"/> - </material> - - <material name="Steel235"> - <D value="7.85" unit="g/cm3"/> - <fraction n="0.998" ref="Fe"/> - <fraction n=".002" ref="C"/> - </material> - - <material name="SiliconOxide"> - <D type="density" value="2.65" unit="g/cm3"/> - <composite n="1" ref="Si"/> - <composite n="2" ref="O"/> - </material> - - <material name="AluminumOxide"> - <D type="density" value="3.89" unit="g/cm3"/> - <composite n="2" ref="Al"/> - <composite n="3" ref="O"/> - </material> - - <material name="CarbonFoam"> - <D type="density" value="0.245" unit="g/cm3"/> - <fraction n="0.65" ref="C"/> - <fraction n="0.35" ref="Epoxy"/> -</material> - - <material name="CarbonFiber"> - <D type="density" value="1.5" unit="g/cm3"/> - <fraction n="0.65" ref="C"/> - <fraction n="0.35" ref="Epoxy"/> - </material> - - <material name="CarbonFiber_50D"> - <D type="density" value="0.75" unit="g/cm3"/> - <fraction n="0.65" ref="C"/> - <fraction n="0.35" ref="Epoxy"/> - </material> - - <material name="PolystyreneFoam"> - <D type="density" value="0.0056" unit="g/cm3"/> - <fraction n="1.0" ref="Polystyrene"/> - </material> - - <material name="PE"> - <D type="density" value="0.95" unit="g/cm3"/> - <fraction n="4" ref="H"/> - <fraction n="2" ref="C"/> - </material> - - <material name="Kapton"> - <D value="1.43" unit="g/cm3" /> - <composite n="22" ref="C"/> - <composite n="10" ref="H" /> - <composite n="2" ref="N" /> - <composite n="5" ref="O" /> - </material> - - - <material name="LAr"> - <D value="1.396" unit="g/cm3" /> - <composite n="1" ref="Ar"/> - </material> - -</materials> diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataPixels.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataPixels.xml deleted file mode 100644 index 635921dec62fc2c0156fa39f2178569b740de89e..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataPixels.xml +++ /dev/null @@ -1,146 +0,0 @@ -<detectors> - <!--EndcapN--> - <detector id="101" name="PixelEndcapN" type="ODDPixelEndcap" readout="PixelEndcapReadout" vis="invisible"> - <dimensions name="PixelEndcapShape" rmin="pix_env_rmin" rmax="pix_env_rmax" dz="pix_e_dz" z="pix_e_nz"/> - <module name="PixelEndcapModule" vis="invisible"> - <module_component name="Sensor" alpha="0." dx="16.8*mm" dy="72.*mm" dz="0.125*mm" x_offset="0." y_offset="0." z_offset="-0.3*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." dx="16*mm" dy="70*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Connector" alpha="0." dx="3*mm" dy="60*mm" dz="0.15*mm" x_offset="0.*mm" y_offset="8.*mm" z_offset="0.3*mm" material="Al" vis="red" sensitive="false"/> - </module> - <ring id="0" r="76.*mm" nphi="40" z_offset="3.5*mm" phi0="0." gap="0.6*mm" vis="invisible"/> - <ring id="1" r="144.*mm" nphi="68" z_offset="-3.5*mm" phi0="0." gap="0.6*mm" vis="invisible"/> - <ring_support rmin="36.*mm" rmax="176.*mm" dz="2*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="50.*mm" gap="2.6*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="70.*mm" gap="3.6*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="90.*mm" gap="4.6*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="120.*mm" gap="6.1*mm" nphi="32" z_offset="+4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="145.*mm" gap="7.4*mm" nphi="32" z_offset="+4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="170.*mm" gap="8.5*mm" nphi="32" z_offset="+4.*mm" material="Ti" vis="orange"/> - <layer id="0" name="PixelEndcapN0" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-620.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="1" name="PixelEndcapN1" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-720.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="PixelEndcapN2" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-840.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="3" name="PixelEndcapN3" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-980.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="4" name="PixelEndcapN4" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-1120.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="5" name="PixelEndcapN5" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-1320.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="6" name="PixelEndcapN6" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="-1520.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <disk name="PixelEndplate" z_offset="-1950.*mm" rmin="40.*mm" rmax="189.*mm" dz="5*mm" material="CarbonFiber" vis="CarbonFiber"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </disk> - <support name="InnerSupportRail" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="000.*mm" nsides="1" vis="CarbonFiber"/> - <support name="OuterSupportRails" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="490.*mm" nsides="2" vis="CarbonFiber"/> - <services> - <cable_routing nphi="8" phi0="0." number="8" r="188.*mm" rmin="0.*mm" rmax="0.2*mm" z_offset="550.*mm" gap="5.*mm" material="Cu" vis="orange"> - <box dz="0.25*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing nphi="8" phi0="0.3926" number="1" r="188.*mm" rmin="1.0*mm" rmax="1.1*mm" z_offset="550.*mm" gap="5.*mm" material="Ti" vis="orange"/> - </services> - </detector> - <!--Barrel--> - <detector id="100" name="PixelBarrel" type="ODDPixelBarrel" readout="PixelBarrelReadout" vis="invisible"> - <dimensions name="PixelBarrelShape" rmin="pix_env_rmin" rmax="pix_env_rmax" dz="pix_b_dz" z="0.*mm"/> - <module name="PixelBarrelModule" vis="invisible"> - <module_component name="Sensor" alpha="0." dx="16.8*mm" dy="72.*mm" dz="0.125*mm" x_offset="0." y_offset="0." z_offset="-1.8*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." dx="16*mm" dy="70*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="-1.6*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Connector" alpha="0." dx="3*mm" dy="60*mm" dz="0.15*mm" x_offset="-8.*mm" y_offset="0." z_offset="-1.35*mm" material="Al" vis="red" sensitive="false"/> - </module> - <stave name="PixelBarrelStave" nmodules="14" gap="0.5*mm" vis="invisible"> - <subtraction name="PixelBarrelStaveFoam" material="CarbonFoam" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.5*mm" vis="CarbonFoam"> - <trd name="FoamStructure" x1="6.*mm" x2="1.*mm" thickness="2.*mm" dz="15.*mm"/> - <tubs name="FoamCutout" rmin="0." rmax="1.2*mm" z_offset="0.*mm" dz="20.*mm"/> - </subtraction> - <tube name="CoolingPipe" rmin="1.0*mm" rmax="1.1*mm" dz="20.*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.5*mm" material="Ti" vis="orange" /> - <eltube name="CableBundle" rmin="0.0*mm" rmax="0.25*mm" dz="50.*mm" x_offset="-10.*mm" y_offset="0.*mm" z_offset="1.*mm" material="Cu" vis="orange" /> - </stave> - <layer id="0" name="PixelLayer0" rmin="28.*mm" r="34.*mm" rmax="44.*mm" outer_z="20.*mm" nphi="16" phi_tilt="0.12" phi0="0." vis="invisible"> - <layer_material inner="false" representing="false" outer="true" binsPhi="1" binsZ="100"/> - <support name="SupportCylinder" rmin="38.*mm" rmax="40.*mm" dz="500.*mm" material="CarbonFiber" z_offset="0.*mm" nsides="1" vis="CarbonFiber"/> - </layer> - <layer id="1" name="PixelLayer1" rmin="56.*mm" r="72.*mm" rmax="82.*mm" outer_z="20.*mm" nphi="32" phi_tilt="0.12" phi0="0." vis="invisible"> - <layer_material inner="false" representing="false" outer="true" binsPhi="1" binsZ="100"/> - <support name="SupportCylinder" rmin="76.*mm" rmax="78.*mm" dz="500.*mm" material="CarbonFiber" z_offset="0.*mm" nsides="1" vis="CarbonFiber" /> - </layer> - <layer id="2" name="PixelLayer2" rmin="100.*mm" r="116.*mm" rmax="126.*mm" outer_z="20.*mm" nphi="52" phi_tilt="0.12" phi0="0." vis="invisible"> - <layer_material inner="false" representing="false" outer="true" binsPhi="1" binsZ="100"/> - <support name="SupportCylinder" rmin="120.*mm" rmax="122.*mm" dz="500.*mm" material="CarbonFiber" z_offset="0.*mm" nsides="1" vis="CarbonFiber" /> - </layer> - <layer id="3" name="PixelLayer3" rmin="160.*mm" r="172.*mm" rmax="182.*mm" outer_z="20.*mm" nphi="78" phi_tilt="0.12" phi0="0." vis="invisible"> - <layer_material inner="false" representing="false" outer="true" binsPhi="1" binsZ="100"/> - <support name="SupportCylinder" rmin="176.*mm" rmax="178.*mm" dz="500.*mm" material="CarbonFiber" z_offset="0.*mm" nsides="1" vis="CarbonFiber"/> - </layer> - <support name="OuterSupportRails" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="550.*mm" nsides="2" vis="CarbonFiber"> - <connector/> - </support> - <support name="InnerSupportRails" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="200.*mm" nsides="2" vis="CarbonFiber"/> - <services> - <cable_routing nphi="8" phi0="0." number="8" rmin="0.*mm" rmax="0.25*mm" z_offset="550.*mm" gap="5.*mm" material="Cu" vis="orange"> - <box dz="0.25*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing nphi="8" phi0="0.3926" number="1" rmin="1.0*mm" rmax="1.1*mm" z_offset="550.*mm" gap="5.*mm" material="Ti" vis="orange"/> - </services> - </detector> - <!--EndcapP--> - <detector id="102" name="PixelEndcapP" type="ODDPixelEndcap" readout="PixelEndcapReadout" vis="invisible"> - <dimensions name="PixelEndcapShape" rmin="pix_env_rmin" rmax="pix_env_rmax" dz="pix_e_dz" z="pix_e_pz"/> - <module name="PixelEndcapModule" vis="invisible"> - <module_component name="Sensor" alpha="0." dx="16.8*mm" dy="72.*mm" dz="0.125*mm" x_offset="0." y_offset="0." z_offset="-0.3*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." dx="16*mm" dy="70*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="0*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Connector" alpha="0." dx="3*mm" dy="60*mm" dz="0.15*mm" x_offset="0.*mm" y_offset="8.*mm" z_offset="0.3*mm" material="Al" vis="red" sensitive="false"/> - </module> - <ring id="0" r="76.*mm" nphi="40" z_offset="-3.5*mm" phi0="0." gap="0.6*mm"/> - <ring id="1" r="144.*mm" nphi="68" z_offset="3.5*mm" phi0="0." gap="0.6*mm"/> - <ring_support rmin="36.*mm" rmax="176.*mm" dz="2*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="50.*mm" gap="2.6*mm" nphi="32" z_offset="4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="70.*mm" gap="3.6*mm" nphi="32" z_offset="4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="90.*mm" gap="4.6*mm" nphi="32" z_offset="4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="120.*mm" gap="6.1*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="145.*mm" gap="7.4*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="170.*mm" gap="8.5*mm" nphi="32" z_offset="-4.*mm" material="Ti" vis="orange"/> - <layer id="0" name="PixelEndcapP0" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="620.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="1" name="PixelEndcapP1" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="720.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="PixelEndcapP2" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="840.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="3" name="PixelEndcapP3" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="980.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="4" name="PixelEndcapP4" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="1120.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="5" name="PixelEndcapP5" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="1320.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="6" name="PixelEndcapP6" rmin="28.*mm" rmax="186.*mm" dz="20.*mm" z_offset="1520.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <disk name="PixelEndplate" z_offset="1950.*mm" rmin="40.*mm" rmax="189.*mm" dz="5*mm" material="CarbonFiber" vis="CarbonFiber"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </disk> - <support name="InnerSupportRail" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="000.*mm" nsides="1" vis="CarbonFiber"/> - <support name="OuterSupportRails" rmin="190.*mm" rmax="200.*mm" dz="10.*mm" material="CarbonFiber" z_offset="490.*mm" nsides="2" vis="CarbonFiber"/> - <services> - <cable_routing nphi="8" phi0="0." number="8" r="188.*mm" rmin="0.*mm" rmax="0.2*mm" z_offset="550.*mm" gap="2.*mm" material="Cu" vis="orange"> - <box dz="0.25*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing nphi="8" phi0="0.3926" number="1" r="188.*mm" rmin="1.0*mm" rmax="1.1*mm" z_offset="550.*mm" gap="2.*mm" material="Ti" vis="orange"/> - </services> - </detector> -</detectors> - diff --git a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataShortStrips.xml b/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataShortStrips.xml deleted file mode 100644 index 36d53dd2bb7804ae5052754c79c17a84d8c79ee1..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/compact/OpenDataDetector/OpenDataShortStrips.xml +++ /dev/null @@ -1,170 +0,0 @@ -<detectors> - <!--EndcapN--> - <detector id="201" name="ShortStripEndcapN" type="ODDStripEndcap" readout="ShortStripEndcapReadout" vis="invisible"> - <dimensions name="ShortStripEndcapShape" rmin="ss_env_rmin" rmax="ss_env_rmax" dz="ss_e_dz" z="ss_e_nz"/> - <ring name="Ring0" r="318*mm" nphi="42" reflect="true" phi0="0." gap="2.5*mm" z_offset="5.*mm"> - <module name="ShortStripEndcapModuleR0" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="18.4*mm" x2="30.2*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="19.2*mm" x2="31.*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Connector" alpha="0." x1="10.2*mm" x2="15.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/> - </module> - <support name="SupportRing0" rmin="220.*mm" rmax="270.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="272.*mm" gap="13.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="366.*mm" gap="18.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/> - <support name="SupportRing1" rmin="370.*mm" rmax="430.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="432.*mm" gap="21.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/> - </ring> - <ring name="Ring1" r="470*mm" nphi="50" reflect="true" phi0="0." gap="2.5*mm" z_offset="-5.*mm"> - <module name="ShortStripEndcapModuleR1" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="25.2*mm" x2="36.2*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="26.0*mm" x2="37.*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Connector" alpha="0." x1="15.2*mm" x2="22.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/> - </module> - </ring> - <ring name="Ring2" r="622*mm" nphi="60" reflect="true" phi0="0." gap="2.5*mm" z_offset="5.*mm"> - <module name="ShortStripEndcapModuleR2" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="32.2*mm" x2="38.*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="33.0*mm" x2="38.8*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Connector" alpha="0." x1="22.2*mm" x2="28.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/> - </module> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="504.*mm" gap="19.5*mm" nphi="42" z_offset="0.*mm" material="Ti" vis="orange"/> - <support name="SupportRing0" rmin="510.*mm" rmax="570.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="572.*mm" gap="19*mm" nphi="48" z_offset="0.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="662.*mm" gap="19.5*mm" nphi="56" z_offset="0.*mm" material="Ti" vis="orange"/> - <support name="SupportRing1" rmin="670.*mm" rmax="710.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </ring> - <layer id="0" name="ShortStripEndcapN0" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-1280.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="1" name="ShortStripEndcapN2" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-1550.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="ShortStripEndcapN3" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-1850.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="ShortStripEndcapN4" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-2200.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="3" name="ShortStripEndcapN5" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-2550.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="4" name="ShortStripEndcapN6" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="-2950.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <services> - <cable_routing name="InnerCables" nphi="12" phi0="0." number="6" r="215.*mm" rmin="0.*mm" rmax="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange"> - <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing name="InnerCooling" nphi="12" phi0="0.262" number="4" r="215.*mm" rmin="1.2*mm" rmax="1.4*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/> - <cable_routing name="OuterCables" nphi="12" phi0="0.1303" number="6" r="710*mm" rmin="0.*mm" rmax="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange"> - <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing name="OuterCooling" nphi="12" phi0="0.3926" number="4" r="710*mm" rmin="1.2*mm" rmax="1.4*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/> - </services> - </detector> - <!--Barrel--> - <detector id="200" name="ShortStripBarrel" type="ODDStripBarrel" readout="ShortStripBarrelReadout" vis="invisible"> - <dimensions name="ShortStripBarrelShape" rmin="ss_env_rmin" rmax="ss_env_rmax" dz="ss_b_dz" z="0.*mm"/> - <module name="ShortStripBarrelModule" vis="invisible"> - <module_component name="Foam" alpha="0." dx="45.*mm" dy="108*mm" dz="4*mm" x_offset="0." y_offset="0." z_offset="-2.8*mm" material="CarbonFoam" vis="CarbonFoam" sensitive="false"> - <subtraction name="CoolingLine" rmin="0.*mm" rmax="1.8*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm"/> - <tube name="CoolingPipe" rmin="1.5*mm" rmax="1.7*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Ti" vis="orange"/> - </module_component> - <module_component name="Connector" alpha="0." dx="10.*mm" dy="108.*mm" dz="0.25*mm" x_offset="-18.*mm" y_offset="0." z_offset="-0.5*mm" material="Al" vis="red" sensitive="false"/> - <module_component name="Board" alpha="0." dx="48.*mm" dy="108*mm" dz="0.25*mm" x_offset="0." y_offset="0." z_offset="-0.25*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Sensor" alpha="0." dx="48.*mm" dy="108.*mm" dz="0.2*mm" x_offset="0." y_offset="0." z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - </module> - <stave name="ShortStripBarrelStave" nmodules="21" gap="0.5*mm" vis="invisible"> - <eltube name="CableBundle" rmin="0.5*mm" rmax="1.5*mm" r="245.*mm" x_offset="12.*mm" y_offset="0.*mm" z_offset="-9.*mm" material="Cu" vis="orange"/> - </stave> - <layer id="0" name="ShortStripLayer0" rmin="240.*mm" r="260.*mm" rmax="280.*mm" outer_z="20.*mm" nphi="40" phi_tilt="-0.15" phi0="0." vis="invisible"> - <support name="SupportCylinder" rmin="248.*mm" rmax="250.*mm" dz="1000.*mm" z_offset="0.*mm" nsides="1" material="CarbonFiber" vis="CarbonFiber"/> - <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/> - </layer> - <layer id="1" name="ShortStripLayer1" rmin="340.*mm" r="360.*mm" rmax="380.*mm" outer_z="20.*mm" nphi="56" phi_tilt="-0.15" phi0="0." vis="invisible"> - <support name="SupportCylinder" rmin="344.*mm" rmax="346.*mm" dz="1000.*mm" z_offset="0.*mm" nsides="1" material="CarbonFiber" vis="CarbonFiber" /> - <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/> - </layer> - <layer id="2" name="ShortStripLayer2" rmin="480.*mm" r="500.*mm" rmax="520.*mm" outer_z="20.*mm" nphi="78" phi_tilt="-0.15" phi0="0." vis="invisible"> - <support name="SupportCylinder" rmin="484.*mm" rmax="486.*mm" dz="1000.*mm" z_offset="0.*mm" nsides="1" material="CarbonFiber" vis="CarbonFiber" /> - <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/> - </layer> - <layer id="3" name="ShortStripLayer3" rmin="640.*mm" r="660.*mm" rmax="680.*mm" outer_z="20.*mm" nphi="102" phi_tilt="-0.15" phi0="0." vis="invisible"> - <support name="SupportCylinder" rmin="644.*mm" rmax="646.*mm" dz="1000.*mm" z_offset="0.*mm" nsides="1" material="CarbonFiber" vis="CarbonFiber" /> - <layer_material inner="true" representing="false" outer="false" binsPhi="1" binsZ="100"/> - </layer> - <support name="SupportRails" rmin="695.*mm" rmax="715.*mm" dz="20.*mm" z_offset="1150.*mm" nsides="2" material="CarbonFiber" vis="CarbonFiber"> - <connector/> - </support> - <services> - <cable_routing nphi="12" phi0="0.1303" number="6" rmin="0.*mm" rmax="0.5*mm" dz="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange"> - <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing nphi="12" phi0="0.3926" number="4" rmin="1.2*mm" rmax="1.4*mm" dz="0.*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/> - </services> - </detector> - <!--EndcapP--> - <detector id="202" name="ShortStripEndcapP" type="ODDStripEndcap" readout="ShortStripEndcapReadout" vis="invisible"> - <dimensions name="ShortStripEndcapShape" rmin="ss_env_rmin" rmax="ss_env_rmax" dz="ss_e_dz" z="ss_e_pz"/> - <ring name="Ring0" r="318*mm" nphi="42" reflect="true" phi0="0." gap="2.5*mm" z_offset="-5.*mm"> - <module name="ShortStripEndcapModuleR0" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="18.4*mm" x2="30.2*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="19.2*mm" x2="31.*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Connector" alpha="0." x1="10.2*mm" x2="15.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/> - </module> - <support name="SupportRing0" rmin="220.*mm" rmax="270.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="272.*mm" gap="13.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="366.*mm" gap="18.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/> - <support name="SupportRing1" rmin="370.*mm" rmax="430.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="432.*mm" gap="21.5*mm" nphi="32" z_offset="0.*mm" material="Ti" vis="orange"/> - </ring> - <ring name="Ring1" r="470*mm" nphi="50" reflect="true" phi0="0." gap="2.5*mm" z_offset="+5.*mm"> - <module name="ShortStripEndcapModuleR1" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="25.2*mm" x2="36.2*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="26.0*mm" x2="37.*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Connector" alpha="0." x1="15.2*mm" x2="22.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/> - </module> - </ring> - <ring name="Ring2" r="622*mm" nphi="60" reflect="true" phi0="0." gap="2.5*mm" z_offset="-5.*mm"> - <module name="ShortStripEndcapModuleR2" vis="invisible"> - <module_component name="Sensor" alpha="0." x1="32.2*mm" x2="38.*mm" length="78.*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="0.*mm" z_offset="0.*mm" material="Silicon" vis="Silicon" sensitive="true"/> - <module_component name="Board" alpha="0." x1="33.0*mm" x2="38.8*mm" length="78.8*mm" thickness="0.25*mm" x_offset="0.*mm" y_offset="-0.5*mm" z_offset="0.*mm" material="Kapton" vis="Kapton" sensitive="false"/> - <module_component name="Connector" alpha="0." x1="22.2*mm" x2="28.*mm" length="44.8*mm" thickness="0.2*mm" x_offset="0.*mm" y_offset="-0.7*mm" z_offset="0.*mm" material="Al" vis="red" sensitive="false"/> - </module> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="504.*mm" gap="19.5*mm" nphi="42" z_offset="0.*mm" material="Ti" vis="orange"/> - <support name="SupportRing0" rmin="510.*mm" rmax="570.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="572.*mm" gap="19*mm" nphi="48" z_offset="0.*mm" material="Ti" vis="orange"/> - <cooling_ring rmin="1.4*mm" rmax="1.6*mm" r="662.*mm" gap="19.5*mm" nphi="56" z_offset="0.*mm" material="Ti" vis="orange"/> - <support name="SupportRing1" rmin="670.*mm" rmax="710.*mm" dz="2.*mm" z_offset="0.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </ring> - <layer id="0" name="ShortStripEndcapP0" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="1280.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="1" name="ShortStripEndcapP2" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="1550.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="ShortStripEndcapP3" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="1850.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="2" name="ShortStripEndcapP4" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="2200.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="3" name="ShortStripEndcapP5" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="2550.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <layer id="4" name="ShortStripEndcapP6" rmin="210.*mm" rmax="715.*mm" dz="50.*mm" z_offset="2950.*mm" vis="invisible"> - <layer_material inner="false" representing="true" outer="false" binsPhi="1" binsR="25"/> - </layer> - <services> - <cable_routing name="InnerCables" nphi="12" phi0="0." number="6" r="215.*mm" rmin="0.*mm" rmax="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange"> - <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing name="InnerCooling" nphi="12" phi0="0.262" number="4" r="215.*mm" rmin="1.2*mm" rmax="1.4*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/> - <cable_routing name="OuterCables" nphi="12" phi0="0.1303" number="6" r="710*mm" rmin="0.*mm" rmax="0.75*mm" z_offset="1150.*mm" gap="10.*mm" material="Cu" vis="orange"> - <box dz="1.*mm" material="CarbonFiber" vis="CarbonFiber"/> - </cable_routing> - <cooling_routing name="OuterCooling" nphi="12" phi0="0.3926" number="4" r="710*mm" rmin="1.2*mm" rmax="1.4*mm" z_offset="1150.*mm" gap="10.*mm" material="Ti" vis="orange"/> - </services> - </detector> -</detectors> - diff --git a/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1.xml b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1.xml new file mode 100644 index 0000000000000000000000000000000000000000..ca181d0087fb5a09c7da18da205e018eb14ffb2b --- /dev/null +++ b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1.xml @@ -0,0 +1,246 @@ +<?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"> + + <includes> + <gdmlFile ref="../elements.xml"/> + <gdmlFile ref="../materials.xml"/> + </includes> + + <info name="TestTracker1" + title="A test tracker in FCC dimensions and 'ATLAS-style'" + author="julia.hrdinka@cern.ch" url="" status="test" version="0"> + <comment>First demonstration tracker in FCC dimensions, containing simple silicon modules, without any substructure or support material. The example contains three hierarchies, a pixel tracker, a short strip and a long strip tracker</comment> + </info> + + <define> + <!--World--> + <constant name="world_size" value="30*m"/> + <constant name="world_x" value="world_size"/> + <constant name="world_y" value="world_size"/> + <constant name="world_z" value="world_size"/> + <constant name="Tube_rmin" value="0.*mm"/> + <constant name="Tube_rmax" value="15.*mm"/> + <constant name="Tube_length" value="1000.*cm"/> + <!--Envelope0--> + <constant name="Env0_rmin" value="1.9*cm"/> + <constant name="Env0_rmax" value="94.*cm"/> + <constant name="Env0_dz" value="300.*cm"/> + <!--Barrel0--> + <constant name="B0_rmin" value="2.*cm"/> + <constant name="B0_rmax" value="93.65*cm"/> + <constant name="B0_dz" value="187.5*cm"/> + <constant name="B0_zpos" value="0.*cm"/> + <constant name="B0_M_repeatZ" value="25"/> + <constant name="B0_L_dz" value="186.5*cm"/> + <!--Layer0--> + <constant name="B0_L0_rmin" value="3.85*cm"/> + <constant name="B0_L0_rmax" value="8.85*cm"/> + <constant name="B0_L0_M_repeatPhi" value="30"/> + <!--Layer1--> + <constant name="B0_L1_rmin" value="27.85*cm"/> + <constant name="B0_L1_rmax" value="31.85*cm"/> + <constant name="B0_L1_M_repeatPhi" value="100"/> + <!--Layer2--> + <constant name="B0_L2_rmin" value="50.85*cm"/> + <constant name="B0_L2_rmax" value="55.85*cm"/> + <constant name="B0_L2_M_repeatPhi" value="150"/> + <!--Layer3--> + <constant name="B0_L3_rmin" value="74.85*cm"/> + <constant name="B0_L3_rmax" value="79.85*cm"/> + <constant name="B0_L3_M_repeatPhi" value="300"/> + <!--Module--> + <constant name="B_M_width" value="12.0*mm"/> + <constant name="B_M_length" value="31.*mm"/> + <constant name="B_M_thickness" value="0.1375*mm"/> + <constant name="B_M_offsetZ" value="60.*mm"/> + <constant name="B_M_offsetR" value="0.3*mm"/> + <!--EndCap0--> + <constant name="E0_rmin" value="2.1*cm"/> + <constant name="E0_rmax" value="93.65*cm"/> + <constant name="E0_dz" value="56.25*cm"/> + <constant name="pE0_zpos" value="243.75*cm"/> + <constant name="nE0_zpos" value="-243.75*cm"/> + <!--Layer0--> + <constant name="E0_L_dz" value="6.*cm"/> + <constant name="E0_L0_pos" value="-43.35*cm"/> + <constant name="E0_L1_pos" value="-18.45"/> + <constant name="E0_L2_pos" value="18.45"/> + <constant name="E0_L3_pos" value="43.35*cm"/> + <!--Module--> + <constant name="E_M0_pos" value="0.*mm"/> + <constant name="E_M0_X1" value="40.*mm"/> + <constant name="E_M0_X2" value="45.*mm"/> + <constant name="E0_L0_M0_r" value="24.1*cm"/> + <constant name="E_M_length" value="22.*cm"/> + <constant name="E_M_thickness" value="0.1375"/> + <constant name="E0_L_modulesInPhi" value="50"/> + + <constant name="E_M1_pos" value="-0.275*mm"/> + <constant name="E_M1_X1" value="45.*mm"/> + <constant name="E_M1_X2" value="50.*mm"/> + <constant name="E0_L0_M1_r" value="57.85*cm"/> + + <constant name="E_M2_pos" value="0.*mm"/> + <constant name="E_M2_X1" value="80.*mm"/> + <constant name="E_M2_X2" value="100.*mm"/> + <constant name="E0_L0_M2_r" value="101.85*cm"/> + + <constant name="E_M3_pos" value="-0.275*mm"/> + <constant name="E_M3_X1" value="100.*mm"/> + <constant name="E_M3_X2" value="143.*mm"/> + <constant name="E0_L0_M3_r" value="130.25*cm"/> + + <constant name="E_M4_pos" value="0.*mm"/> + <constant name="E_M4_X1" value="143.*mm"/> + <constant name="E_M4_X2" value="180.*mm"/> + <constant name="E0_L0_M4_r" value="150.25*cm"/> + + <constant name="E_M5_pos" value="-0.275*mm"/> + <constant name="E_M5_X1" value="180.*mm"/> + <constant name="E_M5_X2" value="200.*mm"/> + <constant name="E0_L0_M5_r" value="180.625*cm"/> + + <constant name="E_M6_pos" value="0.*mm"/> + <constant name="E_M6_X1" value="200.*mm"/> + <constant name="E_M6_X2" value="230.*mm"/> + <constant name="E0_L0_M6_r" value="211.*cm"/> + + <!--Envelope1--> + <constant name="Env1_rmin" value="937.*mm"/> + <constant name="Env1_rmax" value="156.45*cm"/> + <constant name="Env1_dz" value="500.*cm"/> + <!--Barrel1--> + <constant name="B1_rmin" value="938.*mm"/> + <constant name="B1_rmax" value="156.25*cm"/> + <constant name="B1_dz" value="300.*cm"/> + <constant name="B1_zpos" value="0.*cm"/> + <constant name="B1_M_repeatZ" value="23"/> + <constant name="B1_L_dz" value="288.5*cm"/> + <!--Layer0--> + <constant name="B1_L0_rmin" value="98.25*cm"/> + <constant name="B1_L0_rmax" value="107.25*cm"/> + <constant name="B1_L0_M_repeatPhi" value="130"/> + <!--Layer1--> + <constant name="B1_L1_rmin" value="113.25*cm"/> + <constant name="B1_L1_rmax" value="124.25*cm"/> + <constant name="B1_L1_M_repeatPhi" value="150"/> + <!--Layer2--> + <constant name="B1_L2_rmin" value="128.25*cm"/> + <constant name="B1_L2_rmax" value="137.25*cm"/> + <constant name="B1_L2_M_repeatPhi" value="180"/> + <!--Layer3--> + <constant name="B1_L3_rmin" value="144.25*cm"/> + <constant name="B1_L3_rmax" value="153.25*cm"/> + <constant name="B1_L3_M_repeatPhi" value="200"/> + <!--Module--> + <constant name="B1_M_width" value="30.0*mm"/> + <constant name="B1_M_length" value="60.4*mm"/> + <constant name="B1_M_thickness" value="0.1375*mm"/> + <constant name="B1_M_offsetZ" value="120.*mm"/> + <constant name="B1_M_offsetR" value="0.3*mm"/> + <!--EndCap0--> + <constant name="E1_rmin" value="2.1*cm"/> + <constant name="E1_rmax" value="156.25*cm"/> + <constant name="E1_dz" value="93.*cm"/> + <constant name="nE1_zpos" value="-406.25*cm"/> + <constant name="pE1_zpos" value="406.25*cm"/> + <!--Layer0--> + <constant name="E1_L_dz" value="10.*cm"/> + <constant name="E1_L0_pos" value="62.25*cm"/> + <constant name="E1_L1_pos" value="20.75*cm"/> + <constant name="E1_L2_pos" value="-20.75*cm"/> + <constant name="E1_L3_pos" value="-62.25*cm"/> + <!--Envelope2--> + <constant name="Env2_rmin" value="1.9*cm"/> + <constant name="Env2_rmax" value="252*cm"/> + <constant name="Env2_dz" value="800.*cm"/> + <!--Barrel2--> + <constant name="B2_rmin" value="156.45*cm"/> + <constant name="B2_rmax" value="250.*cm"/> + <constant name="B2_dz" value="500.*cm"/> + <constant name="B2_zpos" value="0.*cm"/> + <constant name="B2_M_repeatZ" value="24"/> + <constant name="B2_L_dz" value="492.*cm"/> + <!--Layer0--> + <constant name="B2_L0_rmin" value="158.*cm"/> + <constant name="B2_L0_rmax" value="167.*cm"/> + <constant name="B2_L0_M_repeatPhi" value="120"/> + <!--Layer1--> + <constant name="B2_L1_rmin" value="181.*cm"/> + <constant name="B2_L1_rmax" value="190.*cm"/> + <constant name="B2_L1_M_repeatPhi" value="150"/> + <!--Layer2--> + <constant name="B2_L2_rmin" value="204.*cm"/> + <constant name="B2_L2_rmax" value="213.*cm"/> + <constant name="B2_L2_M_repeatPhi" value="180"/> + <!--Layer3--> + <constant name="B2_L3_rmin" value="227.*cm"/> + <constant name="B2_L3_rmax" value="236.*cm"/> + <constant name="B2_L3_M_repeatPhi" value="200"/> + <!--Module--> + <constant name="B2_M_width" value="50.0*mm"/> + <constant name="B2_M_length" value="100.4*mm"/> + <constant name="B2_M_thickness" value="0.1375*mm"/> + <constant name="B2_M_offsetZ" value="150.*mm"/> + <constant name="B2_M_offsetR" value="0.3*mm"/> + <!--EndCap2--> + <constant name="E2_rmin" value="2.1*cm"/> + <constant name="E2_rmax" value="250.*cm"/> + <constant name="E2_dz" value="150.*cm"/> + <constant name="nE2_zpos" value="-650.*cm"/> + <constant name="pE2_zpos" value="650.*cm"/> + <!--Layer2--> + <constant name="E2_L_dz" value="10.*cm"/> + <constant name="E2_L0_pos" value="96.*cm"/> + <constant name="E2_L1_pos" value="32.*cm"/> + <constant name="E2_L2_pos" value="-32.*cm"/> + <constant name="E2_L3_pos" value="-96.*cm"/> + +</define> + + <display> + <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="BlueVisTrans" alpha="0.1" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="false"/> + </display> + + <readouts> + <readout name="B0_Readout"> + <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/> + <id>system:3,layer:3,module:15,x:32:-16,y:-16</id> + </readout> + </readouts> + + + <include ref="TestTracker1Pixel.xml"/> + <include ref="TestTracker1ShortStrip.xml"/> + <include ref="TestTracker1LongStrip.xml"/> + + <detectors> + <!--BeamTube--> + <detector id="0" name="beampipe" type="BeamPipe"> + <status id="0"/> + <dimensions rmin="Tube_rmin" rmax="Tube_rmax" z="Tube_length" vis="violet" material="Air"/> + </detector> + <detector id="1" name="TestTracker1Pixel" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans"> + <composite name="Barrel0"/> + <composite name="nEndCap0"/> + <composite name="pEndCap0"/> + </detector> + <detector id="2" name="TestTracker1ShortStrip" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans"> + <composite name="Barrel1"/> + <composite name="nEndCap1"/> + <composite name="pEndCap1"/> + </detector> + <detector id="3" name="TestTracker1LongStrip" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans"> + <composite name="Barrel2"/> + <composite name="nEndCap2"/> + <composite name="pEndCap2"/> + </detector> + </detectors> +</lccdd> diff --git a/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1LongStrip.xml b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1LongStrip.xml new file mode 100644 index 0000000000000000000000000000000000000000..73d434e0ec531f8860ed5821ed6626697d2205bd --- /dev/null +++ b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1LongStrip.xml @@ -0,0 +1,158 @@ +<detectors> + <!--Barrel--> + <detector id="300" name="Barrel2" type="ACTS_Barrel" readout="B0_Readout"> + <dimensions rmin="B2_rmin" rmax="B2_rmax" dz="B2_dz" z="0.*mm" vis="invisible"/> + <layer id="0" inner_r="B2_L0_rmin" outer_r="B2_L0_rmax" z="B2_L_dz" material="Air" vis="invisible"> + <slice z="B2_M_offsetZ" repeat="B2_M_repeatZ" dr="B2_M_offsetR"/> + <module name="Module0" width="B2_M_width" length="B2_M_length" thickness="B2_M_thickness" repeat="B2_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="B2_L1_rmin" outer_r="B2_L1_rmax" z="B2_L_dz" material="Air" vis="invisible"> + <slice z="B2_M_offsetZ" repeat="B2_M_repeatZ" dr="B2_M_offsetR"/> + <module name="Module0" width="B2_M_width" length="B2_M_length" thickness="B2_M_thickness" repeat="B2_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="2" inner_r="B2_L2_rmin" outer_r="B2_L2_rmax" z="B2_L_dz" material="Air" vis="invisible"> + <slice z="B2_M_offsetZ" repeat="B2_M_repeatZ" dr="B2_M_offsetR"/> + <module name="Module0" width="B2_M_width" length="B2_M_length" thickness="B2_M_thickness" repeat="B2_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="3" inner_r="B2_L3_rmin" outer_r="B2_L3_rmax" z="B2_L_dz" material="Air" vis="invisible"> + <slice z="B2_M_offsetZ" repeat="B2_M_repeatZ" dr="B2_M_offsetR"/> + <module name="Module0" width="B2_M_width" length="B2_M_length" thickness="B2_M_thickness" repeat="B2_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> + <!--negEndCap--> + <detector id="301" name="nEndCap2" type="ACTS_Endcap" readout="B0_Readout"> + <dimensions rmin="E2_rmin" rmax="E2_rmax" dz="E2_dz" z="nE2_zpos" vis="invisible"/> + <layer id="0" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L0_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1" x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L1_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1" x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L2_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1" x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L3_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1" x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + </detector> + <!--posEndCap--> + <detector id="302" name="pEndCap2" type="ACTS_Endcap" readout="B0_Readout"> + <dimensions rmin="E2_rmin" rmax="E2_rmax" dz="E2_dz" z="pE2_zpos" vis="invisible"/> + <layer id="0" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L0_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1" x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L1_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1" x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L2_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1" x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E2_rmin" outer_r="E2_rmax" dz="E2_L_dz" z="E2_L3_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_L0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_L0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E0_L0_M6_r" dz="E_M6_pos" x1="E_M6_X1" x2="E_M6_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + </detector> +</detectors> \ No newline at end of file diff --git a/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1Pixel.xml b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1Pixel.xml new file mode 100644 index 0000000000000000000000000000000000000000..3b25c32ea7020a7f6a068cc63305124f088a27dd --- /dev/null +++ b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1Pixel.xml @@ -0,0 +1,78 @@ +<detectors> + <!--Barrel--> + <detector id="100" name="Barrel0" type="ACTS_Barrel" readout="B0_Readout"> + <dimensions rmin="B0_rmin" rmax="B0_rmax" dz="B0_dz" z="0.*mm" vis="invisible"/> + <layer id="0" inner_r="B0_L0_rmin" outer_r="B0_L0_rmax" z="B0_L_dz" material="Air" vis="invisible"> + <slice z="B_M_offsetZ" repeat="B0_M_repeatZ" dr="B_M_offsetR"/> + <module name="Module0" width="B_M_width" length="B_M_length" thickness="B_M_thickness" repeat="B0_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="B0_L1_rmin" outer_r="B0_L1_rmax" z="B0_L_dz" material="Air" vis="invisible"> + <slice z="B_M_offsetZ" repeat="B0_M_repeatZ" dr="B_M_offsetR"/> + <module name="Module0" width="B_M_width" length="B_M_length" thickness="B_M_thickness" repeat="B0_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="2" inner_r="B0_L2_rmin" outer_r="B0_L2_rmax" z="B0_L_dz" material="Air" vis="invisible"> + <slice z="B_M_offsetZ" repeat="B0_M_repeatZ" dr="B_M_offsetR"/> + <module name="Module0" width="B_M_width" length="B_M_length" thickness="B_M_thickness" repeat="B0_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="3" inner_r="B0_L3_rmin" outer_r="B0_L3_rmax" z="B0_L_dz" material="Air" vis="invisible"> + <slice z="B_M_offsetZ" repeat="B0_M_repeatZ" dr="B_M_offsetR"/> + <module name="Module0" width="B_M_width" length="B_M_length" thickness="B_M_thickness" repeat="B0_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> + <!--negEndCap--> + <detector id="101" name="nEndCap0" type="ACTS_Endcap" readout="B0_Readout"> + <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="nE0_zpos" vis="invisible"/> + <layer id="0" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L0_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L1_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L2_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L3_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + </detector> + <!--posEndCap--> + <detector id="102" name="pEndCap0" type="ACTS_Endcap" readout="B0_Readout"> + <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="pE0_zpos" vis="invisible"/> + <layer id="0" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L0_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L1_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L2_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E0_rmin" outer_r="E0_rmax" dz="E0_L_dz" z="E0_L3_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + </detector> + </detectors> \ No newline at end of file diff --git a/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1ShortStrip.xml b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1ShortStrip.xml new file mode 100644 index 0000000000000000000000000000000000000000..29bddec7cbf6a290b16a43476e80b5ff57f68539 --- /dev/null +++ b/Detectors/DD4hepDetector/compact/TestTracker1/TestTracker1ShortStrip.xml @@ -0,0 +1,110 @@ +<detectors> + <!--Barrel--> + <detector id="200" name="Barrel1" type="ACTS_Barrel" readout="B0_Readout"> + <dimensions rmin="B1_rmin" rmax="B1_rmax" dz="B1_dz" z="0.*mm" vis="invisible"/> + <layer id="0" inner_r="B1_L0_rmin" outer_r="B1_L0_rmax" z="B1_L_dz" material="Air" vis="invisible"> + <slice z="B1_M_offsetZ" repeat="B1_M_repeatZ" dr="B1_M_offsetR"/> + <module name="Module0" width="B1_M_width" length="B1_M_length" thickness="B1_M_thickness" repeat="B1_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="B1_L1_rmin" outer_r="B1_L1_rmax" z="B1_L_dz" material="Air" vis="invisible"> + <slice z="B1_M_offsetZ" repeat="B1_M_repeatZ" dr="B1_M_offsetR"/> + <module name="Module0" width="B1_M_width" length="B1_M_length" thickness="B1_M_thickness" repeat="B1_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="2" inner_r="B1_L2_rmin" outer_r="B1_L2_rmax" z="B1_L_dz" material="Air" vis="invisible"> + <slice z="B1_M_offsetZ" repeat="B1_M_repeatZ" dr="B1_M_offsetR"/> + <module name="Module0" width="B1_M_width" length="B1_M_length" thickness="B1_M_thickness" repeat="B1_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="3" inner_r="B1_L3_rmin" outer_r="B1_L3_rmax" z="B1_L_dz" material="Air" vis="invisible"> + <slice z="B1_M_offsetZ" repeat="B1_M_repeatZ" dr="B1_M_offsetR"/> + <module name="Module0" width="B1_M_width" length="B1_M_length" thickness="B1_M_thickness" repeat="B1_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> + <!--negEndCap--> + <detector id="201" name="nEndCap1" type="ACTS_Endcap" readout="B0_Readout"> + <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="nE1_zpos" vis="invisible"/> + <layer id="0" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L0_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L1_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L2_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L3_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + </detector> + <!--posEndCap--> + <detector id="202" name="pEndCap1" type="ACTS_Endcap" readout="B0_Readout"> + <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="pE1_zpos" vis="invisible"/> + <layer id="0" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L0_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L1_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L2_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E1_rmin" outer_r="E1_rmax" dz="E1_L_dz" z="E1_L3_pos" material="Air" vis="invisible"> + <module name ="TrMod0" radius="E0_L0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_L0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_L0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_L0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M_length" thickness="E_M_thickness" repeat="E0_L_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + </detector> +</detectors> \ No newline at end of file diff --git a/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2.xml b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2.xml new file mode 100644 index 0000000000000000000000000000000000000000..fa55e2e9bcd08b1173036736d4b2fc5752d42253 --- /dev/null +++ b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2.xml @@ -0,0 +1,630 @@ +<?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"> + + <includes> + <gdmlFile ref="../elements.xml"/> + <gdmlFile ref="../materials.xml"/> + </includes> + + <info name="TestTracker2" + title="Test-Tracker in FCC-dimension and 'CMS-style'" author="Z. Draszal" url="" status="test" version="0"> + <comment>More realistic tracker description with dimensions taken from tklayout http://fcc-tklayout.web.cern.ch/fcc-tklayout/FCChh_Delphes/indexINNER.html</comment> + </info> + + <define> + <!--World--> + <constant name="world_size" value="30*m"/> + <constant name="world_x" value="world_size"/> + <constant name="world_y" value="world_size"/> + <constant name="world_z" value="world_size"/> + + <constant name="Tube_rmin" value="0.*mm"/> + <constant name="Tube_rmax" value="15.*mm"/> + <constant name="Tube_length" value="1000.*mm"/> + <!--Envelope0--> + <constant name="Env0_rmin" value="21*mm"/> + <constant name="Env0_rmax" value="800.*mm"/> + <constant name="Env0_dz" value="3100.*mm"/> + <!--Barrel0--> + <constant name="B0_rmin" value="21*mm"/> + <constant name="B0_rmax" value="700*mm"/> + <constant name="B0_dz" value="1100*mm"/> + <constant name="B0_zpos" value="0.*mm"/> + <!--Layer0--> + <constant name="B0_L0_rmin" value="21.5*mm"/> + <constant name="B0_L0_rmax" value="31.5*mm"/> + <constant name="B0_L0_M_repeatPhi" value="14"/> + <constant name="B0_L0_M_repeatZ" value="23"/> + <constant name="B0_L0_dz" value="500.*mm"/> + <!--Layer1--> + <constant name="B0_L1_rmin" value="62*mm"/> + <constant name="B0_L1_rmax" value="88*mm"/> + <constant name="B0_L1_M_repeatPhi" value="20"/> + <constant name="B0_L1_M_repeatZ" value="21"/> + <constant name="B0_L1_dz" value="1000.*mm"/> + <!--Layer2--> + <constant name="B0_L2_rmin" value="144.7*mm"/> + <constant name="B0_L2_rmax" value="170.7*mm"/> + <constant name="B0_L2_M_repeatPhi" value="20"/> + <constant name="B0_L2_M_repeatZ" value="21"/> + <constant name="B0_L2_dz" value="1000.*mm"/> + <!--Layer3--> + <constant name="B0_L3_rmin" value="209.6*mm"/> + <constant name="B0_L3_rmax" value="235.6*mm"/> + <constant name="B0_L3_M_repeatPhi" value="28"/> + <constant name="B0_L3_M_repeatZ" value="21"/> + <constant name="B0_L3_dz" value="1000.*mm"/> + <!--Layer4--> + <constant name="B0_L4_rmin" value="290.5*mm"/> + <constant name="B0_L4_rmax" value="316.5*mm"/> + <constant name="B0_L4_M_repeatPhi" value="38"/> + <constant name="B0_L4_M_repeatZ" value="21"/> + <constant name="B0_L4_dz" value="1000.*mm"/> + <!--Layer5--> + <constant name="B0_L5_rmin" value="355.2*mm"/> + <constant name="B0_L5_rmax" value="381.2*mm"/> + <constant name="B0_L5_M_repeatPhi" value="46"/> + <constant name="B0_L5_M_repeatZ" value="21"/> + <constant name="B0_L5_dz" value="1000.*mm"/> + <!--Layer6--> + <constant name="B0_L6_rmin" value="439.*mm"/> + <constant name="B0_L6_rmax" value="459.*mm"/> + <constant name="B0_L6_M_repeatPhi" value="56"/> + <constant name="B0_L6_M_repeatZ" value="21"/> + <constant name="B0_L6_dz" value="1000.*mm"/> + <!--Layer7--> + <constant name="B0_L7_rmin" value="516.7*mm"/> + <constant name="B0_L7_rmax" value="542.7*mm"/> + <constant name="B0_L7_M_repeatPhi" value="66"/> + <constant name="B0_L7_M_repeatZ" value="21"/> + <constant name="B0_L7_dz" value="1000.*mm"/> + <!--Layer8--> + <constant name="B0_L8_rmin" value="587.*mm"/> + <constant name="B0_L8_rmax" value="613.*mm"/> + <constant name="B0_L8_M_repeatPhi" value="76"/> + <constant name="B0_L8_M_repeatZ" value="21"/> + <constant name="B0_L8_dz" value="1000.*mm"/> + <!--Module--> + <constant name="B0_L0_M_width" value="6.*mm"/> <!--sensor size is smaller--> + <constant name="B0_L0_M_length" value="12.0*mm"/> + <constant name="B0_L0_M_thickness" value="0.1*mm"/> + <constant name="B0_L0_M_offsetZ" value="21.*mm"/> + <constant name="B0_L0_M_offsetRZ" value="3.*mm"/> <!--old smaller--> + <constant name="B0_L0_M_offsetR" value="3.*mm"/> + + <constant name="B0_L1_M_width" value="13.*mm"/> <!--sensor size is smaller--> + <constant name="B0_L1_M_length" value="25.0*mm"/> + <constant name="B0_L1_M_thickness" value="0.1*mm"/> + <constant name="B0_L1_M_offsetZ" value="46.*mm"/> + <constant name="B0_L1_M_offsetRZ" value="3.*mm"/> + <constant name="B0_L1_M_offsetR" value="3.*mm"/> + + <constant name="B0_L2_M_width" value="27.*mm"/> + <constant name="B0_L2_M_length" value="25.0*mm"/> + <constant name="B0_L2_M_thickness" value="0.1*mm"/> + <constant name="B0_L2_M_offsetZ" value="46.*mm"/> + <constant name="B0_L2_M_offsetRZ" value="3.*mm"/> + <constant name="B0_L2_M_offsetR" value="3.0*mm"/> + + <constant name="B0_L3_M_width" value="30.*mm"/> + <constant name="B0_L3_M_length" value="25.0*mm"/> + <constant name="B0_L3_M_thickness" value="0.1*mm"/> + <constant name="B0_L3_M_offsetZ" value="46.*mm"/> + <constant name="B0_L3_M_offsetRZ" value="3.*mm"/> + <constant name="B0_L3_M_offsetR" value="3.0*mm"/> + + <constant name="B0_L4_M_width" value="30.*mm"/> + <constant name="B0_L4_M_length" value="25.0*mm"/> + <constant name="B0_L4_M_thickness" value="0.1*mm"/> + <constant name="B0_L4_M_offsetZ" value="46.*mm"/> + <constant name="B0_L4_M_offsetRZ" value="3.*mm"/> + <constant name="B0_L4_M_offsetR" value="3.0*mm"/> + + <constant name="B0_L5_M_width" value="30.*mm"/> + <constant name="B0_L5_M_length" value="25.0*mm"/> + <constant name="B0_L5_M_thickness" value="0.1*mm"/> + <constant name="B0_L5_M_offsetZ" value="46.*mm"/> + <constant name="B0_L5_M_offsetRZ" value="3.*mm"/> + <constant name="B0_L5_M_offsetR" value="3.0*mm"/> + + <constant name="B0_L6_M_width" value="30.*mm"/> + <constant name="B0_L6_M_length" value="25.0*mm"/> + <constant name="B0_L6_M_thickness" value="0.1*mm"/> + <constant name="B0_L6_M_offsetZ" value="46.*mm"/> + <constant name="B0_L6_M_offsetRZ" value="3.*mm"/> + <constant name="B0_L6_M_offsetR" value="3.0*mm"/> + + <constant name="B0_L7_M_width" value="35.*mm"/> + <constant name="B0_L7_M_length" value="25.0*mm"/> + <constant name="B0_L7_M_thickness" value="0.1*mm"/> + <constant name="B0_L7_M_offsetZ" value="46.*mm"/> + <constant name="B0_L7_M_offsetRZ" value="3.*mm"/> + <constant name="B0_L7_M_offsetR" value="3.0*mm"/> + + <constant name="B0_L8_M_width" value="35.*mm"/> + <constant name="B0_L8_M_length" value="25.0*mm"/> + <constant name="B0_L8_M_thickness" value="0.1*mm"/> + <constant name="B0_L8_M_offsetZ" value="46.*mm"/> + <constant name="B0_L8_M_offsetRZ" value="3.*mm"/> + <constant name="B0_L8_M_offsetR" value="3.0*mm"/> + <!--EndCap0--> + <constant name="E0_rmin" value="21.*mm"/> + <constant name="E0_rmax" value="700.*mm"/> + <constant name="E0_dz" value="1000.*mm"/> + <constant name="pE0_zpos" value="2100.*mm"/> + <constant name="nE0_zpos" value="-2100.*mm"/> + <!--Layers--> + <constant name="E0_L_rmin" value="23.*mm"/> + <constant name="E0_L_rmax" value="650.*mm"/> + <constant name="E0_L_dz" value="6.*cm"/> + <constant name="E0_L0_pos" value="-850.*mm"/> + <constant name="E0_L1_pos" value="-683.5*mm"/> + <constant name="E0_L2_pos" value="-494.8*mm"/> + <constant name="E0_L3_pos" value="-280.9*mm"/> + <constant name="E0_L4_pos" value="-38.5*mm"/> + <constant name="E0_L5_pos" value="236.1*mm"/> + <constant name="E0_L6_pos" value="547.3*mm"/> + <constant name="E0_L7_pos" value="900.*mm"/> + <!--Module--> + <constant name="E_M_thickness" value="0.1*mm"/> + <!--Ring0--> + <constant name="E0_M0_r" value="62.65*mm"/> + <constant name="E_M0_pos" value="0.*mm"/> + <constant name="E_M0_X1" value="7.5*mm"/> + <constant name="E_M0_X2" value="30.09*mm"/> + <constant name="E_M0_length" value="37.65*mm"/> + <constant name="E0_M0_modulesInPhi" value="12"/> + <!--Ring1--> + <constant name="E0_M1_r" value="150.25*mm"/> + <constant name="E_M1_pos" value="1.*mm"/> + <constant name="E_M1_X1" value="25.*mm"/> + <constant name="E_M1_X2" value="35*mm"/> + <constant name="E_M1_length" value="50.25*mm"/> + <constant name="E0_M1_modulesInPhi" value="20"/> + <!--Ring2--> + <constant name="E0_M2_r" value="249.05*mm"/> + <constant name="E_M2_pos" value="0.*mm"/> + <constant name="E_M2_X1" value="25.*mm"/> + <constant name="E_M2_X2" value="35.*mm"/> + <constant name="E_M2_length" value="51.45*mm"/> + <constant name="E0_M2_modulesInPhi" value="32"/> + <!--Ring3--> + <constant name="E0_M3_r" value="350.6*mm"/> + <constant name="E_M3_pos" value="1.*mm"/> + <constant name="E_M3_X1" value="25.*mm"/> + <constant name="E_M3_X2" value="35.*mm"/> + <constant name="E_M3_length" value="50.1*mm"/> + <constant name="E0_M3_modulesInPhi" value="44"/> + <!--Ring4--> + <constant name="E0_M4_r" value="445.4*mm"/> + <constant name="E_M4_pos" value="0.*mm"/> + <constant name="E_M4_X1" value="25.*mm"/> + <constant name="E_M4_X2" value="35.*mm"/> + <constant name="E_M4_length" value="52.5*mm"/> + <constant name="E0_M4_modulesInPhi" value="52"/> + <!--Ring5--> + <constant name="E0_M5_r" value="535.35*mm"/> + <constant name="E_M5_pos" value="1.*mm"/> + <constant name="E_M5_X1" value="25.*mm"/> + <constant name="E_M5_X2" value="35.*mm"/> + <constant name="E_M5_length" value="34.65*mm"/> + <constant name="E0_M5_modulesInPhi" value="64"/> + + + <!--Envelope1--> + <constant name="Env1_rmin" value="21.*mm"/> + <constant name="Env1_rmax" value="5000.*mm"/><!--Old:3000.*mm now for forward tracker bigger, change later--> + <constant name="Env1_dz" value="9100.*m"/><!--with FwrdEndcap: 30 m--> + <!--Barrel1--> + <constant name="B1_rmin" value="810.*mm"/> + <constant name="B1_rmax" value="4000.*mm"/><!--Old:2400.*mm now for forward tracker bigger, change later--> + <constant name="B1_dz" value="3100.*mm"/> + <constant name="B1_zpos" value="0.*mm"/> + <!--Layer0--> + <constant name="B1_L0_rmin" value="811.*mm"/> + <constant name="B1_L0_rmax" value="839*mm"/> + <constant name="B1_L0_M_repeatPhi" value="52"/> + <constant name="B1_L0_M_repeatZ" value="59"/> + <constant name="B1_L0_dz" value="3000.*mm"/> + <!--Layer1--> + <constant name="B1_L1_rmin" value="1017.6*mm"/> + <constant name="B1_L1_rmax" value="1051.6*mm"/> + <constant name="B1_L1_M_repeatPhi" value="64"/> + <constant name="B1_L1_M_repeatZ" value="59"/> + <constant name="B1_L1_dz" value="3000.*mm"/> + <!--Layer2--> + <constant name="B1_L2_rmin" value="1244.8*mm"/> + <constant name="B1_L2_rmax" value="1278.8*mm"/> + <constant name="B1_L2_M_repeatPhi" value="78"/> + <constant name="B1_L2_M_repeatZ" value="59"/> + <constant name="B1_L2_dz" value="3000.*mm"/> + <!--Layer3--> + <constant name="B1_L3_rmin" value="1462.0*mm"/> + <constant name="B1_L3_rmax" value="1516.*mm"/> + <constant name="B1_L3_M_repeatPhi" value="92"/> + <constant name="B1_L3_M_repeatZ" value="59"/> + <constant name="B1_L3_dz" value="3000.*mm"/> + <!--Layer4--> + <constant name="B1_L4_rmin" value="1689.1*mm"/> + <constant name="B1_L4_rmax" value="1743.1*mm"/> + <constant name="B1_L4_M_repeatPhi" value="106"/> + <constant name="B1_L4_M_repeatZ" value="59"/> + <constant name="B1_L4_dz" value="3000.*mm"/> + <!--Layer5--> + <constant name="B1_L5_rmin" value="1916.2*mm"/> + <constant name="B1_L5_rmax" value="1970.2*mm"/> + <constant name="B1_L5_M_repeatPhi" value="120"/> + <constant name="B1_L5_M_repeatZ" value="59"/> + <constant name="B1_L5_dz" value="3000.*mm"/> + <!--Layer6--> + <constant name="B1_L6_rmin" value="2133.3*mm"/> + <constant name="B1_L6_rmax" value="2207.3*mm"/> + <constant name="B1_L6_M_repeatPhi" value="134"/> + <constant name="B1_L6_M_repeatZ" value="59"/> + <constant name="B1_L6_dz" value="3000.*mm"/> + <!--Layer7--> + <constant name="B1_L7_rmin" value="2365.*mm"/> + <constant name="B1_L7_rmax" value="2435.*mm"/> + <constant name="B1_L7_M_repeatPhi" value="150"/> + <constant name="B1_L7_M_repeatZ" value="59"/> + <constant name="B1_L7_dz" value="3000.*mm"/> + <!--Module--> + <constant name="B1_L0_M_width" value="55.*mm"/> <!--sensor size is smaller--> + <constant name="B1_L0_M_length" value="28.0*mm"/> + <constant name="B1_L0_M_thickness" value="0.1*mm"/> + <constant name="B1_L0_M_offsetZ" value="50.*mm"/> + <constant name="B1_L0_M_offsetRZ" value="3.*mm"/> + <constant name="B1_L0_M_offsetR" value="4.*mm"/> + + <constant name="B1_L1_M_width" value="55.*mm"/> + <constant name="B1_L1_M_length" value="28.0*mm"/> + <constant name="B1_L1_M_thickness" value="0.1*mm"/> + <constant name="B1_L1_M_offsetZ" value="50.*mm"/> + <constant name="B1_L1_M_offsetRZ" value="3.*mm"/> + <constant name="B1_L1_M_offsetR" value="4.*mm"/> + + <constant name="B1_L2_M_width" value="55.*mm"/> + <constant name="B1_L2_M_length" value="28.0*mm"/> + <constant name="B1_L2_M_thickness" value="0.1*mm"/> + <constant name="B1_L2_M_offsetZ" value="50.*mm"/> + <constant name="B1_L2_M_offsetRZ" value="3.*mm"/> + <constant name="B1_L2_M_offsetR" value="4.*mm"/> + + <constant name="B1_L3_M_width" value="55.*mm"/> + <constant name="B1_L3_M_length" value="28.0*mm"/> + <constant name="B1_L3_M_thickness" value="0.1*mm"/> + <constant name="B1_L3_M_offsetZ" value="50.*mm"/> + <constant name="B1_L3_M_offsetRZ" value="3.*mm"/> + <constant name="B1_L3_M_offsetR" value="4.*mm"/> + + <constant name="B1_L4_M_width" value="55.*mm"/> + <constant name="B1_L4_M_length" value="28.0*mm"/> + <constant name="B1_L4_M_thickness" value="0.1*mm"/> + <constant name="B1_L4_M_offsetZ" value="50.*mm"/> + <constant name="B1_L4_M_offsetRZ" value="3.*mm"/> + <constant name="B1_L4_M_offsetR" value="4.*mm"/> + + <constant name="B1_L5_M_width" value="55.*mm"/> + <constant name="B1_L5_M_length" value="28.0*mm"/> + <constant name="B1_L5_M_thickness" value="0.1*mm"/> + <constant name="B1_L5_M_offsetZ" value="50.*mm"/> + <constant name="B1_L5_M_offsetRZ" value="3.*mm"/> + <constant name="B1_L5_M_offsetR" value="4.*mm"/> + + <constant name="B1_L6_M_width" value="55.*mm"/> + <constant name="B1_L6_M_length" value="28.0*mm"/> + <constant name="B1_L6_M_thickness" value="0.1*mm"/> + <constant name="B1_L6_M_offsetZ" value="50.*mm"/> + <constant name="B1_L6_M_offsetRZ" value="3.*mm"/> + <constant name="B1_L6_M_offsetR" value="4.*mm"/> + + <constant name="B1_L7_M_width" value="55.*mm"/> + <constant name="B1_L7_M_length" value="28.0*mm"/> + <constant name="B1_L7_M_thickness" value="0.1*mm"/> + <constant name="B1_L7_M_offsetZ" value="50.*mm"/> + <constant name="B1_L7_M_offsetRZ" value="3.*mm"/> + <constant name="B1_L7_M_offsetR" value="4.*mm"/> + + <!--EndCap1--> + <constant name="E1_rmin" value="21.*mm"/> + <constant name="E1_rmax" value="4000.*mm"/> <!--Old:2405.*mm now for forward tracker bigger, change later--> + <constant name="E1_dz" value="2500.*mm"/> <!--With FwrdEndcap: 10.95, -14.05, 14.05--> + <constant name="pE1_zpos" value="5603.*mm"/> + <constant name="nE1_zpos" value="-5603.*mm"/> + <!--Layers--> + <!-- <constant name="E1_L_rmin" value="23.*mm"/> + <constant name="E1_L_rmax" value="2401.5*mm"/>--> + <constant name="E1_L_dz" value="6.*cm"/> + <constant name="E1_L0_pos" value="-2100.*mm"/> + <constant name="E1_L1_pos" value="-1763.3*mm"/> + <constant name="E1_L2_pos" value="-1394.2*mm"/> + <constant name="E1_L3_pos" value="-989.6*mm"/> + <constant name="E1_L4_pos" value="-546.*mm"/> + <constant name="E1_L5_pos" value="-40.*mm"/> + <constant name="E1_L6_pos" value="473.2*mm"/> + <constant name="E1_L7_pos" value="1057.4*mm"/> + <constant name="E1_L8_pos" value="1697.9*mm"/> + <constant name="E1_L9_pos" value="2400.*mm"/> + <constant name="E1_L_rmin" value="23.*mm"/> + <constant name="E1_L_rmax" value="3500.*mm"/><!--Old:2401.5.*mm now for forward tracker bigger, change later--> + <!--Fwrd <constant name="E1_L_dz" value="6.*cm"/> + <constant name="E1_L0_pos" value="-10550.*mm"/> + <constant name="E1_L1_pos" value="-10213.3*mm"/> + <constant name="E1_L2_pos" value="-9844.2*mm"/> + <constant name="E1_L3_pos" value="-9439.6*mm"/> + <constant name="E1_L4_pos" value="-8996.*mm"/> + <constant name="E1_L5_pos" value="-8509.8*mm"/> + <constant name="E1_L6_pos" value="-7976.8*mm"/> + <constant name="E1_L7_pos" value="-7392.6*mm"/> + <constant name="E1_L8_pos" value="-6752.1*mm"/> + <constant name="E1_L9_pos" value="-6050.*mm"/>--> + <!--Module--> + <constant name="E_M_thickness" value="0.1*mm"/> + <!--Ring0--> + <constant name="E1_M0_r" value="62.65*mm"/> + <constant name="E1_M0_pos" value="0.*mm"/> + <constant name="E1_M0_X1" value="7.5*mm"/> + <constant name="E1_M0_X2" value="30.09*mm"/> + <constant name="E1_M0_length" value="37.65*mm"/> + <constant name="E1_M0_modulesInPhi" value="12"/> + <!--Ring1--> + <constant name="E1_M1_r" value="150.15*mm"/> + <constant name="E1_M1_pos" value="1.*mm"/> + <constant name="E1_M1_X1" value="20.*mm"/> + <constant name="E1_M1_X2" value="35.*mm"/> + <constant name="E1_M1_length" value="50.25*mm"/> + <constant name="E1_M1_modulesInPhi" value="20"/> + <!--Ring2--> + <constant name="E1_M2_r" value="250.3*mm"/> + <constant name="E1_M2_pos" value="0.*mm"/> + <constant name="E1_M2_X1" value="20.*mm"/> + <constant name="E1_M2_X2" value="30.*mm"/> + <constant name="E1_M2_length" value="51.35*mm"/> + <constant name="E1_M2_modulesInPhi" value="32"/> + <!--Ring3--> + <constant name="E1_M3_r" value="351.55*mm"/> + <constant name="E1_M3_pos" value="1.*mm"/> + <constant name="E1_M3_X1" value="25.*mm"/> + <constant name="E1_M3_X2" value="35.*mm"/> + <constant name="E1_M3_length" value="50.05*mm"/> + <constant name="E1_M3_modulesInPhi" value="44"/> + <!--Ring4--> + <constant name="E1_M4_r" value="451.75*mm"/> + <constant name="E1_M4_pos" value="0.*mm"/> + <constant name="E1_M4_X1" value="25.*mm"/> + <constant name="E1_M4_X2" value="35.*mm"/> + <constant name="E1_M4_length" value="52.35*mm"/> + <constant name="E1_M4_modulesInPhi" value="52"/> + <!--Ring5--> + <constant name="E1_M5_r" value="553.6*mm"/> + <constant name="E1_M5_pos" value="1.*mm"/> + <constant name="E1_M5_X1" value="25.*mm"/> + <constant name="E1_M5_X2" value="35.*mm"/> + <constant name="E1_M5_length" value="50.3*mm"/> + <constant name="E1_M5_modulesInPhi" value="64"/> + <!--Ring6--> + <constant name="E1_M6_r" value="657.9*mm"/> + <constant name="E1_M6_pos" value="0.*mm"/> + <constant name="E1_M6_X1" value="40.*mm"/> + <constant name="E1_M6_X2" value="50.*mm"/> + <constant name="E1_M6_length" value="57.7*mm"/> + <constant name="E1_M6_modulesInPhi" value="48"/> + <!--Ring7--> + <constant name="E1_M7_r" value="773.3*mm"/> + <constant name="E1_M7_pos" value="1.*mm"/> + <constant name="E1_M7_X1" value="60.*mm"/> + <constant name="E1_M7_X2" value="70.*mm"/> + <constant name="E1_M7_length" value="57.7*mm"/> + <constant name="E1_M7_modulesInPhi" value="52"/> + <!--Ring8--> + <constant name="E1_M8_r" value="884.6*mm"/> + <constant name="E1_M8_pos" value="0.*mm"/> + <constant name="E1_M8_X1" value="60.*mm"/> + <constant name="E1_M8_X2" value="70.*mm"/> + <constant name="E1_M8_length" value="57.7*mm"/> + <constant name="E1_M8_modulesInPhi" value="60"/> + <!--Ring9--> + <constant name="E1_M9_r" value="1000.1*mm"/> + <constant name="E1_M9_pos" value="1.*mm"/> + <constant name="E1_M9_X1" value="60.*mm"/> + <constant name="E1_M9_X2" value="70.*mm"/> + <constant name="E1_M9_length" value="57.7*mm"/> + <constant name="E1_M9_modulesInPhi" value="68"/> + <!--Ring10--> + <constant name="E1_M10_r" value="1110.5*mm"/> + <constant name="E1_M10_pos" value="0.*mm"/> + <constant name="E1_M10_X1" value="60.*mm"/> + <constant name="E1_M10_X2" value="70.*mm"/> + <constant name="E1_M10_length" value="57.7*mm"/> + <constant name="E1_M10_modulesInPhi" value="76"/> + <!--Ring11--> + <constant name="E1_M11_r" value="1226.1*mm"/> + <constant name="E1_M11_pos" value="1.*mm"/> + <constant name="E1_M11_X1" value="60.*mm"/> + <constant name="E1_M11_X2" value="70.*mm"/> + <constant name="E1_M11_length" value="57.7*mm"/> + <constant name="E1_M11_modulesInPhi" value="80"/> + <!--Ring12--> + <constant name="E1_M12_r" value="1335.5*mm"/> + <constant name="E1_M12_pos" value="0.*mm"/> + <constant name="E1_M12_X1" value="50.*mm"/> + <constant name="E1_M12_X2" value="60.*mm"/> + <constant name="E1_M12_length" value="57.7*mm"/> + <constant name="E1_M12_modulesInPhi" value="88"/> + <!--Ring13--> + <constant name="E1_M13_r" value="1451.3*mm"/> + <constant name="E1_M13_pos" value="1.*mm"/> + <constant name="E1_M13_X1" value="50.*mm"/> + <constant name="E1_M13_X2" value="60.*mm"/> + <constant name="E1_M13_length" value="57.7*mm"/> + <constant name="E1_M13_modulesInPhi" value="96"/> + <!--Ring14--> + <constant name="E1_M14_r" value="1559.8*mm"/> + <constant name="E1_M14_pos" value="0.*mm"/> + <constant name="E1_M14_X1" value="50.*mm"/> + <constant name="E1_M14_X2" value="60.*mm"/> + <constant name="E1_M14_length" value="57.7*mm"/> + <constant name="E1_M14_modulesInPhi" value="100"/> + <!--Ring15--> + <constant name="E1_M15_r" value="1675.7*mm"/> + <constant name="E1_M15_pos" value="1.*mm"/> + <constant name="E1_M15_X1" value="50.*mm"/> + <constant name="E1_M15_X2" value="60.*mm"/> + <constant name="E1_M15_length" value="57.7*mm"/> + <constant name="E1_M15_modulesInPhi" value="108"/> + <!--Ring16--> + <constant name="E1_M16_r" value="1783.2*mm"/> + <constant name="E1_M16_pos" value="0.*mm"/> + <constant name="E1_M16_X1" value="50.*mm"/> + <constant name="E1_M16_X2" value="60.*mm"/> + <constant name="E1_M16_length" value="57.7*mm"/> + <constant name="E1_M16_modulesInPhi" value="116"/> + <!--Ring17--> + <constant name="E1_M17_r" value="1899.2*mm"/> + <constant name="E1_M17_pos" value="1.*mm"/> + <constant name="E1_M17_X1" value="50.*mm"/> + <constant name="E1_M17_X2" value="60.*mm"/> + <constant name="E1_M17_length" value="57.7*mm"/> + <constant name="E1_M17_modulesInPhi" value="124"/> + <!--Ring18--> + <constant name="E1_M18_r" value="2005.7*mm"/> + <constant name="E1_M18_pos" value="0.*mm"/> + <constant name="E1_M18_X1" value="50.*mm"/> + <constant name="E1_M18_X2" value="60.*mm"/> + <constant name="E1_M18_length" value="57.7*mm"/> + <constant name="E1_M18_modulesInPhi" value="128"/> + <!--Ring19--> + <constant name="E1_M19_r" value="2118.9*mm"/> + <constant name="E1_M19_pos" value="1.*mm"/> + <constant name="E1_M19_X1" value="50.*mm"/> + <constant name="E1_M19_X2" value="60.*mm"/> + <constant name="E1_M19_length" value="57.7*mm"/> + <constant name="E1_M19_modulesInPhi" value="136"/> + <!--Ring20--> + <constant name="E1_M20_r" value="2227.5*mm"/> + <constant name="E1_M20_pos" value="0.*mm"/> + <constant name="E1_M20_X1" value="50.*mm"/> + <constant name="E1_M20_X2" value="60.*mm"/> + <constant name="E1_M20_length" value="57.7*mm"/> + <constant name="E1_M20_modulesInPhi" value="144"/> + <!--Ring21--> + <constant name="E1_M21_r" value="2326.1*mm"/> + <constant name="E1_M21_pos" value="1.*mm"/> + <constant name="E1_M21_X1" value="50.*mm"/> + <constant name="E1_M21_X2" value="60.*mm"/> + <constant name="E1_M21_length" value="40.*mm"/> + <constant name="E1_M21_modulesInPhi" value="152"/> + + + <!--now adding discs for forward tracker--> + <constant name="E1_L10_pos" value="7.45*m"/> + <constant name="E1_L11_pos" value="7.95*m"/> + <constant name="E1_L12_pos" value="8.45*m"/> + <constant name="E1_L13_pos" value="8.95*m"/> + <constant name="E1_L14_pos" value="9.95*m"/> + <!--Ring22--> + <constant name="E1_M22_r" value="2423.8*mm"/> + <constant name="E1_M22_pos" value="0.*mm"/> + <constant name="E1_M22_X1" value="75.*mm"/> + <constant name="E1_M22_X2" value="90.*mm"/> + <constant name="E1_M22_length" value="57.7*mm"/> + <constant name="E1_M22_modulesInPhi" value="161"/> + <!--Ring23--> + <constant name="E1_M23_r" value="2539.2*mm"/> + <constant name="E1_M23_pos" value="0.*mm"/> + <constant name="E1_M23_X1" value="75.*mm"/> + <constant name="E1_M23_X2" value="90.*mm"/> + <constant name="E1_M23_length" value="57.7*mm"/> + <constant name="E1_M23_modulesInPhi" value="170"/> + <!--Ring24--> + <constant name="E1_M24_r" value="2654.6*mm"/> + <constant name="E1_M24_pos" value="0.*mm"/> + <constant name="E1_M24_X1" value="75.*mm"/> + <constant name="E1_M24_X2" value="90.*mm"/> + <constant name="E1_M24_length" value="57.7*mm"/> + <constant name="E1_M24_modulesInPhi" value="177"/> + <!--Ring25--> + <constant name="E1_M25_r" value="2760.0*mm"/> + <constant name="E1_M25_pos" value="0.*mm"/> + <constant name="E1_M25_X1" value="75.*mm"/> + <constant name="E1_M25_X2" value="90.*mm"/> + <constant name="E1_M25_length" value="57.7*mm"/> + <constant name="E1_M25_modulesInPhi" value="195"/> + <!--Ring25--> + <constant name="E1_M26_r" value="2875.4*mm"/> + <constant name="E1_M26_pos" value="0.*mm"/> + <constant name="E1_M26_X1" value="75.*mm"/> + <constant name="E1_M26_X2" value="90.*mm"/> + <constant name="E1_M26_length" value="57.7*mm"/> + <constant name="E1_M26_modulesInPhi" value="205"/> + <!--Ring27--> + <constant name="E1_M27_r" value="2980.8*mm"/> + <constant name="E1_M27_pos" value="0.*mm"/> + <constant name="E1_M27_X1" value="75.*mm"/> + <constant name="E1_M27_X2" value="90.*mm"/> + <constant name="E1_M27_length" value="57.7*mm"/> + <constant name="E1_M27_modulesInPhi" value="214"/> + <!--Ring28--> + <constant name="E1_M28_r" value="3096.2*mm"/> + <constant name="E1_M28_pos" value="0.*mm"/> + <constant name="E1_M28_X1" value="75.*mm"/> + <constant name="E1_M28_X2" value="90.*mm"/> + <constant name="E1_M28_length" value="57.7*mm"/> + <constant name="E1_M28_modulesInPhi" value="222"/> + <!--Ring29--> + <constant name="E1_M29_r" value="3211.6*mm"/> + <constant name="E1_M29_pos" value="0.*mm"/> + <constant name="E1_M29_X1" value="75.*mm"/> + <constant name="E1_M29_X2" value="90.*mm"/> + <constant name="E1_M29_length" value="57.7*mm"/> + <constant name="E1_M29_modulesInPhi" value="230"/> + + + +</define> + + <display> + <vis name="violet" r="0.4" g="0." b="0.4" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="red" r="0.6" g="0." b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="orange" r="0.65" g="0.35" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="blue" r="0." g="0." b="0.5" alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="green" r="0." g="0.5" b="0." alpha="1" showDaugthers="true" visible="true" drawingStyle="solid"/> + <vis name="BlueVisTrans" alpha="0.1" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="false"/> + <vis name="BarrelVis" alpha="1" r="1.0" g="0.0" b="0.0" showDaughters="true" visible="false"/> + <vis name="EndCapVis" alpha="1" r="0.0" g="0.0" b="1.0" showDaughters="true" visible="false"/> + <vis name="BarrelLayerVis" alpha="1" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="false"/> + <vis name="EndcapLayerVis" alpha="1" r="1.0" g="0.0" b="1.0" showDaughters="true" visible="false"/> + </display> + + <readouts> + <readout name="B0_Readout"> + <segmentation type="CartesianGridXY" grid_size_x="0.05*mm" grid_size_y="0.05*mm"/> + <id>system:3,layer:3,module:15,x:32:-16,y:-16</id> + </readout> + </readouts> + + + <include ref="TestTracker2Inner.xml"/> + <include ref="TestTracker2Outer.xml"/> + + <detectors> + <detector id="0" name="beampipe" type="BeamPipe"> + <status id="0"/> + <dimensions rmin="Tube_rmin" rmax="Tube_rmax" z="Tube_length" vis="violet" material="Air"/> + </detector> + <detector id="1" name="TestTracker2Inner" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans"> + <shape name="EnvelopeShape" type="Tube" rmin="Env0_rmin" rmax="Env0_rmax" dz="Env0_dz" material="Air"/> + <composite name="Barrel0"/> + <composite name="nEndCap0"/> + <composite name="pEndCap0"/> + </detector> + <detector id="2" name="TestTracker2Outer" type="DD4hep_SubdetectorAssembly" vis="BlueVisTrans"> + <shape name="EnvelopeShape" type="Tube" rmin="Env1_rmin" rmax="Env1_rmax" dz="Env1_dz" material="Air"/> + <composite name="Barrel1"/> + <composite name="nEndCap1"/> + <composite name="pEndCap1"/> + </detector> + </detectors> +</lccdd> \ No newline at end of file diff --git a/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Inner.xml b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Inner.xml new file mode 100644 index 0000000000000000000000000000000000000000..95c1d8fc8061926a7e041e98b33f15cdc27f0bd5 --- /dev/null +++ b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Inner.xml @@ -0,0 +1,274 @@ +<detectors> + <!--Barrel--> + <detector id="100" name="Barrel0" type="ACTS_TKLayoutBarrel" readout="B0_Readout"> + <dimensions rmin="B0_rmin" rmax="B0_rmax" dz="B0_dz" z="0.*mm" vis="BarrelVis"/> + <layer id="0" inner_r="B0_L0_rmin" outer_r="B0_L0_rmax" z="B0_L0_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B0_L0_M_offsetZ" repeat="B0_L0_M_repeatZ" dr="B0_L0_M_offsetR" dz="B0_L0_M_offsetRZ"/> + <module name="Module0" width="B0_L0_M_width" length="B0_L0_M_length" thickness="B0_L0_M_thickness" repeat="B0_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="B0_L1_rmin" outer_r="B0_L1_rmax" z="B0_L1_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B0_L1_M_offsetZ" repeat="B0_L1_M_repeatZ" dr="B0_L1_M_offsetR" dz="B0_L1_M_offsetRZ"/> + <module name="Module1" width="B0_L1_M_width" length="B0_L1_M_length" thickness="B0_L1_M_thickness" repeat="B0_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="2" inner_r="B0_L2_rmin" outer_r="B0_L2_rmax" z="B0_L2_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B0_L2_M_offsetZ" repeat="B0_L2_M_repeatZ" dr="B0_L2_M_offsetR" dz="B0_L2_M_offsetRZ"/> + <module name="Module2" width="B0_L2_M_width" length="B0_L2_M_length" thickness="B0_L2_M_thickness" repeat="B0_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="3" inner_r="B0_L3_rmin" outer_r="B0_L3_rmax" z="B0_L3_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B0_L3_M_offsetZ" repeat="B0_L3_M_repeatZ" dr="B0_L3_M_offsetR" dz="B0_L3_M_offsetRZ"/> + <module name="Module3" width="B0_L3_M_width" length="B0_L3_M_length" thickness="B0_L3_M_thickness" repeat="B0_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="4" inner_r="B0_L4_rmin" outer_r="B0_L4_rmax" z="B0_L4_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B0_L4_M_offsetZ" repeat="B0_L4_M_repeatZ" dr="B0_L4_M_offsetR" dz="B0_L4_M_offsetRZ"/> + <module name="Module4" width="B0_L4_M_width" length="B0_L4_M_length" thickness="B0_L4_M_thickness" repeat="B0_L4_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="5" inner_r="B0_L5_rmin" outer_r="B0_L5_rmax" z="B0_L5_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B0_L5_M_offsetZ" repeat="B0_L5_M_repeatZ" dr="B0_L5_M_offsetR" dz="B0_L5_M_offsetRZ"/> + <module name="Module5" width="B0_L5_M_width" length="B0_L5_M_length" thickness="B0_L5_M_thickness" repeat="B0_L5_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="6" inner_r="B0_L6_rmin" outer_r="B0_L6_rmax" z="B0_L6_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B0_L6_M_offsetZ" repeat="B0_L6_M_repeatZ" dr="B0_L6_M_offsetR" dz="B0_L6_M_offsetRZ"/> + <module name="Module6" width="B0_L6_M_width" length="B0_L6_M_length" thickness="B0_L6_M_thickness" repeat="B0_L6_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="7" inner_r="B0_L7_rmin" outer_r="B0_L7_rmax" z="B0_L7_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B0_L7_M_offsetZ" repeat="B0_L7_M_repeatZ" dr="B0_L7_M_offsetR" dz="B0_L7_M_offsetRZ"/> + <module name="Module7" width="B0_L7_M_width" length="B0_L7_M_length" thickness="B0_L7_M_thickness" repeat="B0_L7_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="8" inner_r="B0_L8_rmin" outer_r="B0_L8_rmax" z="B0_L8_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B0_L8_M_offsetZ" repeat="B0_L8_M_repeatZ" dr="B0_L8_M_offsetR" dz="B0_L8_M_offsetRZ"/> + <module name="Module8" width="B0_L8_M_width" length="B0_L8_M_length" thickness="B0_L8_M_thickness" repeat="B0_L8_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> + <!--negEndCap--> + <detector id="101" name="nEndCap0" type="ACTS_TKLayoutEndcap" readout="B0_Readout"> + <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="nE0_zpos" vis="EndCapVis"/> + <layer id="0" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L0_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L1_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L2_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L3_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="4" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L4_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="5" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L5_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="6" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L6_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="7" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L7_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + </detector> + <!--posEndCap--> + <detector id="102" name="pEndCap0" type="ACTS_TKLayoutEndcap" readout="B0_Readout"> + <dimensions rmin="E0_rmin" rmax="E0_rmax" dz="E0_dz" z="pE0_zpos" vis="EndCapVis"/> + <layer id="0" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L0_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L1_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L2_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L3_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="4" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L4_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="5" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L5_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="6" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L6_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="7" inner_r="E0_L_rmin" outer_r="E0_L_rmax" dz="E0_L_dz" z="E0_L7_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E0_M0_r" dz="E_M0_pos" x1="E_M0_X1" x2="E_M0_X2" length="E_M0_length" thickness="E_M_thickness" repeat="E0_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E0_M1_r" dz="E_M1_pos" x1="E_M1_X1" x2="E_M1_X2" length="E_M1_length" thickness="E_M_thickness" repeat="E0_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E0_M2_r" dz="E_M2_pos" x1="E_M2_X1" x2="E_M2_X2" length="E_M2_length" thickness="E_M_thickness" repeat="E0_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E0_M3_r" dz="E_M3_pos" x1="E_M3_X1" x2="E_M3_X2" length="E_M3_length" thickness="E_M_thickness" repeat="E0_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E0_M4_r" dz="E_M4_pos" x1="E_M4_X1" x2="E_M4_X2" length="E_M4_length" thickness="E_M_thickness" repeat="E0_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E0_M5_r" dz="E_M5_pos" x1="E_M5_X1" x2="E_M5_X2" length="E_M5_length" thickness="E_M_thickness" repeat="E0_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + </detector> + </detectors> \ No newline at end of file diff --git a/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Outer.xml b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Outer.xml new file mode 100644 index 0000000000000000000000000000000000000000..f439eadb2930f9dde56669e7735732eba71d5090 --- /dev/null +++ b/Detectors/DD4hepDetector/compact/TestTracker2/TestTracker2Outer.xml @@ -0,0 +1,1239 @@ +<detectors> + <!--Barrel--> + <detector id="200" name="Barrel1" type="ACTS_TKLayoutBarrel" readout="B0_Readout"> + <dimensions rmin="B1_rmin" rmax="B1_rmax" dz="B1_dz" z="B1_zpos" vis="BarrelVis"/> + <layer id="0" inner_r="B1_L0_rmin" outer_r="B1_L0_rmax" z="B1_L0_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B1_L0_M_offsetZ" repeat="B1_L0_M_repeatZ" dr="B1_L0_M_offsetR" dz="B1_L0_M_offsetRZ"/> + <module name="Module0" width="B1_L0_M_width" length="B1_L0_M_length" thickness="B1_L0_M_thickness" repeat="B1_L0_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="1" inner_r="B1_L1_rmin" outer_r="B1_L1_rmax" z="B1_L1_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B1_L1_M_offsetZ" repeat="B1_L1_M_repeatZ" dr="B1_L1_M_offsetR" dz="B1_L1_M_offsetRZ"/> + <module name="Module1" width="B1_L1_M_width" length="B1_L1_M_length" thickness="B1_L1_M_thickness" repeat="B1_L1_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="2" inner_r="B1_L2_rmin" outer_r="B1_L2_rmax" z="B1_L2_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B1_L2_M_offsetZ" repeat="B1_L2_M_repeatZ" dr="B1_L2_M_offsetR" dz="B1_L2_M_offsetRZ"/> + <module name="Module1" width="B1_L2_M_width" length="B1_L2_M_length" thickness="B1_L2_M_thickness" repeat="B1_L2_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="3" inner_r="B1_L3_rmin" outer_r="B1_L3_rmax" z="B1_L3_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B1_L3_M_offsetZ" repeat="B1_L3_M_repeatZ" dr="B1_L3_M_offsetR" dz="B1_L3_M_offsetRZ"/> + <module name="Module1" width="B1_L3_M_width" length="B1_L3_M_length" thickness="B1_L3_M_thickness" repeat="B1_L3_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="4" inner_r="B1_L4_rmin" outer_r="B1_L4_rmax" z="B1_L4_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B1_L4_M_offsetZ" repeat="B1_L4_M_repeatZ" dr="B1_L4_M_offsetR" dz="B1_L4_M_offsetRZ"/> + <module name="Module1" width="B1_L4_M_width" length="B1_L4_M_length" thickness="B1_L4_M_thickness" repeat="B1_L4_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="5" inner_r="B1_L5_rmin" outer_r="B1_L5_rmax" z="B1_L5_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B1_L5_M_offsetZ" repeat="B1_L5_M_repeatZ" dr="B1_L5_M_offsetR" dz="B1_L5_M_offsetRZ"/> + <module name="Module1" width="B1_L5_M_width" length="B1_L5_M_length" thickness="B1_L5_M_thickness" repeat="B1_L5_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="6" inner_r="B1_L6_rmin" outer_r="B1_L6_rmax" z="B1_L6_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B1_L6_M_offsetZ" repeat="B1_L6_M_repeatZ" dr="B1_L6_M_offsetR" dz="B1_L6_M_offsetRZ"/> + <module name="Module1" width="B1_L6_M_width" length="B1_L6_M_length" thickness="B1_L6_M_thickness" repeat="B1_L6_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + <layer id="7" inner_r="B1_L7_rmin" outer_r="B1_L7_rmax" z="B1_L7_dz" material="Air" vis="BarrelLayerVis"> + <slice z="B1_L7_M_offsetZ" repeat="B1_L7_M_repeatZ" dr="B1_L7_M_offsetR" dz="B1_L7_M_offsetRZ"/> + <module name="Module1" width="B1_L7_M_width" length="B1_L7_M_length" thickness="B1_L7_M_thickness" repeat="B1_L7_M_repeatPhi" material="Silicon" vis="orange" sensitive="true"/> + </layer> + </detector> + <!--negEndCap--> + <detector id="201" name="nEndCap1" type="ACTS_TKLayoutEndcap" readout="B0_Readout"> + <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="nE1_zpos" vis="EndCapVis"/> + <layer id="0" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L0_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L1_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L2_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L3_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="4" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L4_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="5" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L5_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="6" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L6_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="7" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L7_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="8" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L8_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="9" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L9_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + </detector> + <!--posEndCap--> + <detector id="202" name="pEndCap1" type="ACTS_TKLayoutEndcap" readout="B0_Readout"> + <dimensions rmin="E1_rmin" rmax="E1_rmax" dz="E1_dz" z="pE1_zpos" vis="EndCapVis"/> + <layer id="0" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L0_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="1" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L1_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="2" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L2_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="3" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L3_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="4" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L4_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="5" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L5_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="6" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L6_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="7" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L7_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="8" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L8_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="9" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L9_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <!--Forward--> + <!--<layer id="10" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L10_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="11" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L11_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod23" radius="E1_M23_r" dz="E1_M23_pos" x1="E1_M23_X1" x2="E1_M23_X2" length="E1_M23_length" thickness="E_M_thickness" repeat="E1_M23_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="12" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L12_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod23" radius="E1_M23_r" dz="E1_M23_pos" x1="E1_M23_X1" x2="E1_M23_X2" length="E1_M23_length" thickness="E_M_thickness" repeat="E1_M23_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod24" radius="E1_M24_r" dz="E1_M24_pos" x1="E1_M24_X1" x2="E1_M24_X2" length="E1_M24_length" thickness="E_M_thickness" repeat="E1_M24_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod25" radius="E1_M25_r" dz="E1_M25_pos" x1="E1_M25_X1" x2="E1_M25_X2" length="E1_M25_length" thickness="E_M_thickness" repeat="E1_M25_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="13" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L13_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod23" radius="E1_M23_r" dz="E1_M23_pos" x1="E1_M23_X1" x2="E1_M23_X2" length="E1_M23_length" thickness="E_M_thickness" repeat="E1_M23_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod24" radius="E1_M24_r" dz="E1_M24_pos" x1="E1_M24_X1" x2="E1_M24_X2" length="E1_M24_length" thickness="E_M_thickness" repeat="E1_M24_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod25" radius="E1_M25_r" dz="E1_M25_pos" x1="E1_M25_X1" x2="E1_M25_X2" length="E1_M25_length" thickness="E_M_thickness" repeat="E1_M25_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod26" radius="E1_M26_r" dz="E1_M26_pos" x1="E1_M26_X1" x2="E1_M26_X2" length="E1_M26_length" thickness="E_M_thickness" repeat="E1_M26_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod27" radius="E1_M27_r" dz="E1_M27_pos" x1="E1_M27_X1" x2="E1_M27_X2" length="E1_M27_length" thickness="E_M_thickness" repeat="E1_M27_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer> + <layer id="14" inner_r="E1_L_rmin" outer_r="E1_L_rmax" dz="E1_L_dz" z="E1_L14_pos" material="Air" vis="EndcapLayerVis"> + <module name ="TrMod0" radius="E1_M0_r" dz="E1_M0_pos" x1="E1_M0_X1" x2="E1_M0_X2" length="E1_M0_length" thickness="E_M_thickness" repeat="E1_M0_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod1" radius="E1_M1_r" dz="E1_M1_pos" x1="E1_M1_X1" x2="E1_M1_X2" length="E1_M1_length" thickness="E_M_thickness" repeat="E1_M1_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod2" radius="E1_M2_r" dz="E1_M2_pos" x1="E1_M2_X1" x2="E1_M2_X2" length="E1_M2_length" thickness="E_M_thickness" repeat="E1_M2_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod3" radius="E1_M3_r" dz="E1_M3_pos" x1="E1_M3_X1" x2="E1_M3_X2" length="E1_M3_length" thickness="E_M_thickness" repeat="E1_M3_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod4" radius="E1_M4_r" dz="E1_M4_pos" x1="E1_M4_X1" x2="E1_M4_X2" length="E1_M4_length" thickness="E_M_thickness" repeat="E1_M4_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod5" radius="E1_M5_r" dz="E1_M5_pos" x1="E1_M5_X1" x2="E1_M5_X2" length="E1_M5_length" thickness="E_M_thickness" repeat="E1_M5_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod6" radius="E1_M6_r" dz="E1_M6_pos" x1="E1_M6_X1" x2="E1_M6_X2" length="E1_M6_length" thickness="E_M_thickness" repeat="E1_M6_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod7" radius="E1_M7_r" dz="E1_M7_pos" x1="E1_M7_X1" x2="E1_M7_X2" length="E1_M7_length" thickness="E_M_thickness" repeat="E1_M7_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod8" radius="E1_M8_r" dz="E1_M8_pos" x1="E1_M8_X1" x2="E1_M8_X2" length="E1_M8_length" thickness="E_M_thickness" repeat="E1_M8_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod9" radius="E1_M9_r" dz="E1_M9_pos" x1="E1_M9_X1" x2="E1_M9_X2" length="E1_M9_length" thickness="E_M_thickness" repeat="E1_M9_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod10" radius="E1_M10_r" dz="E1_M10_pos" x1="E1_M10_X1" x2="E1_M10_X2" length="E1_M10_length" thickness="E_M_thickness" repeat="E1_M10_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod11" radius="E1_M11_r" dz="E1_M11_pos" x1="E1_M11_X1" x2="E1_M11_X2" length="E1_M11_length" thickness="E_M_thickness" repeat="E1_M11_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod12" radius="E1_M12_r" dz="E1_M12_pos" x1="E1_M12_X1" x2="E1_M12_X2" length="E1_M12_length" thickness="E_M_thickness" repeat="E1_M12_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod13" radius="E1_M13_r" dz="E1_M13_pos" x1="E1_M13_X1" x2="E1_M13_X2" length="E1_M13_length" thickness="E_M_thickness" repeat="E1_M13_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod14" radius="E1_M14_r" dz="E1_M14_pos" x1="E1_M14_X1" x2="E1_M14_X2" length="E1_M14_length" thickness="E_M_thickness" repeat="E1_M14_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod15" radius="E1_M15_r" dz="E1_M15_pos" x1="E1_M15_X1" x2="E1_M15_X2" length="E1_M15_length" thickness="E_M_thickness" repeat="E1_M15_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod16" radius="E1_M16_r" dz="E1_M16_pos" x1="E1_M16_X1" x2="E1_M16_X2" length="E1_M16_length" thickness="E_M_thickness" repeat="E1_M16_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod17" radius="E1_M17_r" dz="E1_M17_pos" x1="E1_M17_X1" x2="E1_M17_X2" length="E1_M17_length" thickness="E_M_thickness" repeat="E1_M17_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod18" radius="E1_M18_r" dz="E1_M18_pos" x1="E1_M18_X1" x2="E1_M18_X2" length="E1_M18_length" thickness="E_M_thickness" repeat="E1_M18_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod19" radius="E1_M19_r" dz="E1_M19_pos" x1="E1_M19_X1" x2="E1_M19_X2" length="E1_M19_length" thickness="E_M_thickness" repeat="E1_M19_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod20" radius="E1_M20_r" dz="E1_M20_pos" x1="E1_M20_X1" x2="E1_M20_X2" length="E1_M20_length" thickness="E_M_thickness" repeat="E1_M20_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod21" radius="E1_M21_r" dz="E1_M21_pos" x1="E1_M21_X1" x2="E1_M21_X2" length="E1_M21_length" thickness="E_M_thickness" repeat="E1_M21_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod22" radius="E1_M22_r" dz="E1_M22_pos" x1="E1_M22_X1" x2="E1_M22_X2" length="E1_M22_length" thickness="E_M_thickness" repeat="E1_M22_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod23" radius="E1_M23_r" dz="E1_M23_pos" x1="E1_M23_X1" x2="E1_M23_X2" length="E1_M23_length" thickness="E_M_thickness" repeat="E1_M23_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod24" radius="E1_M24_r" dz="E1_M24_pos" x1="E1_M24_X1" x2="E1_M24_X2" length="E1_M24_length" thickness="E_M_thickness" repeat="E1_M24_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod25" radius="E1_M25_r" dz="E1_M25_pos" x1="E1_M25_X1" x2="E1_M25_X2" length="E1_M25_length" thickness="E_M_thickness" repeat="E1_M25_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod26" radius="E1_M26_r" dz="E1_M26_pos" x1="E1_M26_X1" x2="E1_M26_X2" length="E1_M26_length" thickness="E_M_thickness" repeat="E1_M26_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod27" radius="E1_M27_r" dz="E1_M27_pos" x1="E1_M27_X1" x2="E1_M27_X2" length="E1_M27_length" thickness="E_M_thickness" repeat="E1_M27_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod28" radius="E1_M28_r" dz="E1_M28_pos" x1="E1_M28_X1" x2="E1_M28_X2" length="E1_M28_length" thickness="E_M_thickness" repeat="E1_M28_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + <module name ="TrMod29" radius="E1_M29_r" dz="E1_M29_pos" x1="E1_M29_X1" x2="E1_M29_X2" length="E1_M29_length" thickness="E_M_thickness" repeat="E1_M29_modulesInPhi" material="Silicon" vis="orange" sensitive="true"> + </module> + </layer>--> + </detector> +</detectors> \ No newline at end of file diff --git a/Detectors/DD4hepDetector/compact/materials.xml b/Detectors/DD4hepDetector/compact/materials.xml index 17da23d24076822fdfbbfb68fd842f94edb0fd9c..f545a4f489ec9383ef1a830c8406cd5d573cd873 100644 --- a/Detectors/DD4hepDetector/compact/materials.xml +++ b/Detectors/DD4hepDetector/compact/materials.xml @@ -35,14 +35,6 @@ <fraction n="1" ref="H" /> </material> - <material Z="4" name="Beryllium" state="solid"> - <MEE unit="eV" value="63.7"/> - <D unit="g/cm3" value="1.848"/> - <atom unit="g/mole" value="9.01218"/> - <fraction n="1" ref="Be"/> - </material> - - <material name="Epoxy"> <D type="density" value="1.3" unit="g/cm3"/> <composite n="44" ref="H"/> diff --git a/Detectors/DD4hepDetector/include/ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp b/Detectors/DD4hepDetector/include/ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp index 3fa99b3d6aa9259347a56e60b68c14a6b662fdd0..4a0520e44f8a6005c6d5b7bb2126aab29bf2109c 100644 --- a/Detectors/DD4hepDetector/include/ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp +++ b/Detectors/DD4hepDetector/include/ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp @@ -53,7 +53,7 @@ /// ... /// Acts::ActsExtension* moduleExtension /// = new Acts::ActsExtension(digiModule); -/// moduleDetElement.addExtension<Acts::ActsExtension>(moduleExtension); +/// moduleDetElement.addExtension<Acts::IActsExtension>(moduleExtension); /// } /// @endcode /// @@ -83,7 +83,7 @@ /// layConfig.layerMaterialPosition = Acts::LayerMaterialPos::inner /// Acts::ActsExtension* layerExtension = new /// Acts::ActsExtension(layConfig); -/// layer_detElement.addExtension<Acts::ActsExtension>(layerExtension); +/// layer_detElement.addExtension<Acts::IActsExtension>(layerExtension); /// @endcode /// /// In case several sensitive detector modules have the same segmentation an diff --git a/Detectors/DD4hepDetector/src/TestTracker/AirTube_geo.cpp b/Detectors/DD4hepDetector/src/AirTube_geo.cpp similarity index 73% rename from Detectors/DD4hepDetector/src/TestTracker/AirTube_geo.cpp rename to Detectors/DD4hepDetector/src/AirTube_geo.cpp index 5f8ddc3e5c21932b2455a1cd3020cd254e14d985..2f568b0c968df6a244a5833ebbb07d4245557fbc 100644 --- a/Detectors/DD4hepDetector/src/TestTracker/AirTube_geo.cpp +++ b/Detectors/DD4hepDetector/src/AirTube_geo.cpp @@ -31,10 +31,11 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector /* sens */) std::string name = x_det.nameStr(); DetElement airTube(name, x_det.id()); - // Extension to Detlement for the RecoGeometry - Acts::ActsExtension* airTubeExtension = new Acts::ActsExtension(); - airTubeExtension->addType("beampipe", "layer"); - airTube.addExtension<Acts::ActsExtension>(airTubeExtension); + // add Extension to Detlement for the RecoGeometry + Acts::ActsExtension::Config volConfig; + volConfig.isBeampipe = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + airTube.addExtension<Acts::IActsExtension>(detvolume); PlacedVolume pv; @@ -54,6 +55,18 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector /* sens */) Volume tube_vol( name + "_inner_cylinder_air", tubeSolid, lcdd.material("Air")); + /* Vector3D ocyl(inner_r + 0.5 * tube_thick, 0., 0.); + + VolCylinder cylSurf(tube_vol, + SurfaceType(SurfaceType::Helper), + 0.5 * tube_thick, + 0.5 * tube_thick, + ocyl); + + volSurfaceList(airTube)->push_back(cylSurf);*/ + + //-------------------------------------- + Volume mother = lcdd.pickMotherVolume(airTube); pv = mother.placeVolume(tube_vol); diff --git a/Detectors/DD4hepDetector/src/TestTracker/Barrel_geo.cpp b/Detectors/DD4hepDetector/src/Barrel_geo.cpp similarity index 80% rename from Detectors/DD4hepDetector/src/TestTracker/Barrel_geo.cpp rename to Detectors/DD4hepDetector/src/Barrel_geo.cpp index 46eb0e6e836fa345230932e456b49d067b922f13..de42dfaa16d8cf0ab94a8489926f0bef3b057fb3 100644 --- a/Detectors/DD4hepDetector/src/TestTracker/Barrel_geo.cpp +++ b/Detectors/DD4hepDetector/src/Barrel_geo.cpp @@ -8,6 +8,7 @@ #include "ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp" #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" #include "DD4hep/DetFactoryHelper.h" using namespace std; @@ -25,10 +26,11 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) string det_name = x_det.nameStr(); // Make DetElement DetElement cylinderVolume(det_name, x_det.id()); - // Add Extension to DetElement for the RecoGeometry - Acts::ActsExtension* barrelExtension = new Acts::ActsExtension(); - barrelExtension->addType("barrel", "detector"); - cylinderVolume.addExtension<Acts::ActsExtension>(barrelExtension); + // add Extension to Detlement for the RecoGeometry + Acts::ActsExtension::Config volConfig; + volConfig.isBarrel = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + cylinderVolume.addExtension<Acts::IActsExtension>(detvolume); // make Volume dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); Tube tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); @@ -93,9 +95,12 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) // Set Sensitive Volmes sensitive if (x_module.isSensitive()) { mod_vol.setSensitiveDetector(sens); - // Create and attach the extension for DD4Hep/Acts conversion - Acts::ActsExtension* moduleExtension = new Acts::ActsExtension(); - mod_det.addExtension<Acts::ActsExtension>(moduleExtension); + + // create and attach the extension with the shared digitzation + // module + Acts::ActsExtension* moduleExtension + = new Acts::ActsExtension(digiModule); + mod_det.addExtension<Acts::IActsExtension>(moduleExtension); } // Place Module Box Volumes in layer PlacedVolume placedmodule = layer_vol.placeVolume( @@ -109,13 +114,18 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) } } } - - // Place the layer with appropriate Acts::Extension - // Configure the ACTS extension - Acts::ActsExtension* layerExtension = new Acts::ActsExtension(); - layerExtension->addType("active cylinder", "layer"); - layerExtension->addType("axes", "definitions", "YxZ"); - lay_det.addExtension<Acts::ActsExtension>(layerExtension); + // set granularity of layer material mapping and where material should be + // mapped + // hand over modules to ACTS + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; + layConfig.axes = "YxZ"; + /// @todo re-enable material mapping + // layConfig.materialBins1 = 100; + // layConfig.materialBins2 = 100; + // layConfig.layerMaterialPosition = Acts::LayerMaterialPos::outer; + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + lay_det.addExtension<Acts::IActsExtension>(detlayer); // Place layer volume PlacedVolume placedLayer = tube_vol.placeVolume(layer_vol); placedLayer.addPhysVolID("layer", layer_num); diff --git a/Detectors/DD4hepDetector/src/TestTracker/BeamPipe_geo.cpp b/Detectors/DD4hepDetector/src/BeamPipe_geo.cpp similarity index 80% rename from Detectors/DD4hepDetector/src/TestTracker/BeamPipe_geo.cpp rename to Detectors/DD4hepDetector/src/BeamPipe_geo.cpp index 43d590604810dbd6348b1a781f9182a6fb06372a..7aa95ab9069622302d2a7ee844926607a6cdd062 100644 --- a/Detectors/DD4hepDetector/src/TestTracker/BeamPipe_geo.cpp +++ b/Detectors/DD4hepDetector/src/BeamPipe_geo.cpp @@ -19,25 +19,23 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector sens) string det_name = x_det.nameStr(); // Make DetElement DetElement beamtube(det_name, x_det.id()); - // Add Extension to Detlement for the RecoGeometry - Acts::ActsExtension* beamPipeExtension = new Acts::ActsExtension(); - beamPipeExtension->addType("beampipe", "layer"); - beamtube.addExtension<Acts::ActsExtension>(beamPipeExtension); + // add Extension to Detlement for the RecoGeometry + Acts::ActsExtension::Config volConfig; + volConfig.isBeampipe = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + beamtube.addExtension<Acts::IActsExtension>(detvolume); - // Create the shape and volume dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); Tube tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.z()); Volume tube_vol( det_name, tube_shape, lcdd.air()); // air at the moment change later tube_vol.setVisAttributes(lcdd, x_det_dim.visStr()); - // Place Volume Volume mother_vol = lcdd.pickMotherVolume(beamtube); PlacedVolume placedTube = mother_vol.placeVolume(tube_vol); placedTube.addPhysVolID("tube", beamtube.id()); beamtube.setPlacement(placedTube); - // Return the detector element return beamtube; } diff --git a/Detectors/DD4hepDetector/src/CMakeLists.txt b/Detectors/DD4hepDetector/src/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e02833bdb01f4ad91f2170892d26eb0823592cee --- /dev/null +++ b/Detectors/DD4hepDetector/src/CMakeLists.txt @@ -0,0 +1,17 @@ +file(GLOB_RECURSE src_files "src/*.cpp") + +add_library (ACTFWDD4hepDetector SHARED ${src_files}) +target_include_directories(ACTFWDD4hepDetector PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/> $<INSTALL_INTERFACE:include>) +target_include_directories(ACTFWDD4hepDetector PUBLIC ${DD4hep_INCLUDE_DIRS}) +target_include_directories(ACTFWDD4hepDetector PUBLIC ${ROOT_INCLUDE_DIRS}) +target_link_libraries(ACTFWDD4hepDetector PRIVATE ACTFramework) +target_link_libraries(ACTFWDD4hepDetector PUBLIC ActsCore ActsDD4hepPlugin) +target_link_libraries(ACTFWDD4hepDetector PUBLIC ${ROOT_LIBRARIES}) +target_link_libraries(ACTFWDD4hepDetector PUBLIC ${DD4hep_LIBRARIES}) + +set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}) +set_target_properties(ACTFWDD4hepDetector PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) +dd4hep_set_version(ACTFWDD4hepDetector MAJOR 1 MINOR 0 PATCH 0) +dd4hep_generate_rootmap(ACTFWDD4hepDetector) + +install(TARGETS ACTFWDD4hepDetector LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBarrel_geo.cpp b/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBarrel_geo.cpp deleted file mode 100644 index 25e51d220ace1b602457e28a72262b5d018d2eba..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBarrel_geo.cpp +++ /dev/null @@ -1,225 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2019 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#include "Acts/Plugins/DD4hep/ActsExtension.hpp" -#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" -#include "DD4hep/DetFactoryHelper.h" - -using namespace std; -using namespace dd4hep; - -/** - Constructor for a cylindrical barrel volume, possibly containing layers and the - layers possibly containing modules. - */ - -static Ref_t -create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) -{ - xml_det_t x_det = xml; - string barrelName = x_det.nameStr(); - // Make DetElement - DetElement barrelDetector(barrelName, x_det.id()); - // add Extension to Detlement for the RecoGeometry - Acts::ActsExtension* barrelExtension = new Acts::ActsExtension(); - barrelExtension->addType("barrel", "detector"); - barrelDetector.addExtension<Acts::ActsExtension>(barrelExtension); - - // Make Volume - dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); - Tube barrelShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); - Volume barrelVolume( - barrelName, barrelShape, lcdd.air()); // air at the moment change later - barrelVolume.setVisAttributes(lcdd, x_det.visStr()); - - // Loop over the layers and build them - for (xml_coll_t j(xml, _U(layer)); j; ++j) { - - // Get the layer xml configuration - xml_comp_t x_layer = j; - double rmin = x_layer.rmin(); - double rmax = x_layer.rmax(); - unsigned int layerNum = x_layer.id(); - // Create Volume for Layer - string layerName = barrelName + _toString((int)layerNum, "layer%d"); - Volume layerVolume(layerName, - Tube(rmin, rmax, x_layer.dz()), - lcdd.material(x_layer.materialStr())); - DetElement layerElement(barrelDetector, layerName, layerNum); - // Visualization - layerVolume.setVisAttributes(lcdd, x_layer.visStr()); - - unsigned int supportNum = 0; - // Place the support cylinder - if (x_layer.hasChild(_U(support))) { - xml_comp_t x_support = x_layer.child(_U(support)); - - // Create the volume of the support structure - Volume supportVolume( - "SupportStructure", - Tube(x_support.rmin(), x_support.rmax(), x_support.dz()), - lcdd.material(x_support.materialStr())); - supportVolume.setVisAttributes(lcdd, x_support.visStr()); - // Place the support structure - PlacedVolume placedSupport = layerVolume.placeVolume(supportVolume); - placedSupport.addPhysVolID("support", supportNum++); - } - - // Construct the volume - if (x_layer.hasChild(_U(module))) { - - xml_comp_t x_module = x_layer.child(_U(module)); - // create the module volume and its corresponing component volumes first - Assembly moduleAssembly("module"); - // Visualization - moduleAssembly.setVisAttributes(lcdd, x_module.visStr()); - if (x_module.isSensitive()) { moduleAssembly.setSensitiveDetector(sens); } - - xml_comp_t x_mod_placement = x_module.child(_U(parameter)); - unsigned int nphi = x_mod_placement.nphi(); - double phi0 = x_mod_placement.phi0(); - double phiTilt = x_mod_placement.phi_tilt(); - double r = x_mod_placement.r(); - double deltaPhi = 2 * M_PI / nphi; - - // Place the components inside the module - unsigned int compNum = 1; - - std::vector<PlacedVolume> sensComponents; - - for (xml_coll_t comp(x_module, _U(module_component)); comp; - ++comp, ++compNum) { - xml_comp_t x_comp = comp; - // Component volume - string componentName = _toString((int)compNum, "component%d"); - Volume componentVolume( - componentName, - Box(0.5 * x_comp.dx(), 0.5 * x_comp.dy(), 0.5 * x_comp.dz()), - lcdd.material(x_comp.materialStr())); - if (x_comp.isSensitive()) { - componentVolume.setSensitiveDetector(sens); - } - - // Visualization - componentVolume.setVisAttributes(lcdd, x_comp.visStr()); - // Place Module Box Volumes in layer - PlacedVolume placedComponent = moduleAssembly.placeVolume( - componentVolume, - Position(x_comp.x_offset(), x_comp.y_offset(), x_comp.z_offset())); - placedComponent.addPhysVolID("component", compNum); - // Remember the sensitive components of this module - if (x_comp.isSensitive()) { sensComponents.push_back(placedComponent); } - } - - // Add cooling pipe - if (x_module.hasChild(_U(tubs))) { - xml_comp_t x_tubs = x_module.child(_U(tubs)); - Volume pipeVolume("CoolingPipe", - Tube(x_tubs.rmin(), x_tubs.rmax(), x_tubs.length()), - lcdd.material(x_tubs.materialStr())); - pipeVolume.setVisAttributes(lcdd, x_tubs.visStr()); - // Place the cooling pipe into the module - PlacedVolume placedPipe = moduleAssembly.placeVolume( - pipeVolume, - Transform3D(RotationX(0.5 * M_PI) * RotationY(0.5 * M_PI), - Position(x_tubs.x_offset(), - x_tubs.y_offset(), - x_tubs.z_offset()))); - placedPipe.addPhysVolID("support", supportNum++); - } - - // Add mount - if (x_module.hasChild(_U(anchor))) { - xml_comp_t x_trd = x_module.child(_U(anchor)); - // create the two shapes first - Trapezoid mountShape( - x_trd.x1(), x_trd.x2(), x_trd.length(), x_trd.length(), x_trd.dz()); - - Volume mountVolume( - "ModuleMount", mountShape, lcdd.material(x_trd.materialStr())); - - // Place the mount onto the module - PlacedVolume placedMount = moduleAssembly.placeVolume( - mountVolume, - Transform3D(RotationZ(0.5 * M_PI), - Position(x_trd.x_offset(), - x_trd.y_offset(), - x_trd.z_offset()))); - placedMount.addPhysVolID("support", supportNum++); - } - - // Add cable - if (x_module.hasChild(_U(box))) { - xml_comp_t x_cab = x_module.child(_U(box)); - Volume cableVolume( - "Cable", - Box(0.5 * x_cab.dx(), 0.5 * x_cab.dy(), 0.5 * x_cab.dz()), - lcdd.material(x_cab.materialStr())); - // Visualization - cableVolume.setVisAttributes(lcdd, x_cab.visStr()); - // Place Module Box Volumes in layer - PlacedVolume placedCable = moduleAssembly.placeVolume( - cableVolume, - Transform3D(RotationX(x_cab.alpha()), - Position(x_cab.x_offset(), - x_cab.y_offset(), - x_cab.z_offset()))); - placedCable.addPhysVolID("support", supportNum++); - } - - // Place the modules - for (int iphi = 0; iphi < nphi; ++iphi) { - - double phi = phi0 + iphi * deltaPhi; - string moduleName = layerName + _toString((int)iphi, "module%d"); - Position trans(r * cos(phi), r * sin(phi), 0.); - // Create detector element - DetElement moduleElement(layerElement, moduleName, iphi); - // Place the sensitive inside here - unsigned int ccomp = 1; - for (auto& sensComp : sensComponents) { - DetElement componentElement(moduleElement, "component", ccomp++); - componentElement.setPlacement(sensComp); - } - - // Place Module Box Volumes in layer - PlacedVolume placedModule = layerVolume.placeVolume( - moduleAssembly, - Transform3D(RotationY(0.5 * M_PI) * RotationX(-phi - phiTilt), - trans)); - placedModule.addPhysVolID("module", iphi + 1); - - // Assign module DetElement to the placed module volume - moduleElement.setPlacement(placedModule); - } - } - - // Configure the ACTS extension - Acts::ActsExtension* layerExtension = new Acts::ActsExtension(); - layerExtension->addType("barrel", "layer"); - Acts::xml2CylinderProtoMaterial(x_layer, *layerExtension); - layerElement.addExtension<Acts::ActsExtension>(layerExtension); - - // Place layer volume - PlacedVolume placedLayer = barrelVolume.placeVolume(layerVolume); - placedLayer.addPhysVolID("layer", layerNum); - // Assign layer DetElement to layer volume - layerElement.setPlacement(placedLayer); - } - - // Place Volume - Volume motherVolume = lcdd.pickMotherVolume(barrelDetector); - PlacedVolume placedBarrel = motherVolume.placeVolume(barrelVolume); - // "system" is hard coded in the DD4Hep::VolumeManager - placedBarrel.addPhysVolID("system", barrelDetector.id()); - barrelDetector.setPlacement(placedBarrel); - - return barrelDetector; -} - -DECLARE_DETELEMENT(DemonstratorBarrel, create_element) diff --git a/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBeamPipe_geo.cpp b/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBeamPipe_geo.cpp deleted file mode 100644 index f2c5e6dbec62062587a7820ff049b9b039f07556..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/src/Demonstrator/DemonstratorBeamPipe_geo.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2019 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#include "Acts/Plugins/DD4hep/ActsExtension.hpp" -#include "DD4hep/DetFactoryHelper.h" - -using namespace std; -using namespace dd4hep; - -static Ref_t -create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) -{ - - xml_det_t x_det = xml; - string det_name = x_det.nameStr(); - - // Make DetElement - DetElement beamPipeElement(det_name, x_det.id()); - // add Extension to Detlement for the RecoGeometry - Acts::ActsExtension* beamPipeExtension = new Acts::ActsExtension(); - beamPipeExtension->addType("beampipe", "layer"); - beamPipeElement.addExtension<Acts::ActsExtension>(beamPipeExtension); - - // Make Volume - xml_comp_t x_det_def = x_det.child(_U(description)); - Tube tube_shape(x_det_def.rmin(), x_det_def.rmax(), x_det_def.dz()); - Volume tube_vol(det_name, tube_shape, lcdd.material(x_det_def.materialStr())); - tube_vol.setVisAttributes(lcdd, x_det.visStr()); - - // Place it in the mother - Volume mother_vol = lcdd.pickMotherVolume(beamPipeElement); - PlacedVolume placedTube = mother_vol.placeVolume(tube_vol); - placedTube.addPhysVolID("BeamTube", beamPipeElement.id()); - beamPipeElement.setPlacement(placedTube); - - return beamPipeElement; -} - -DECLARE_DETELEMENT(DemonstratorBeamPipe, create_element) diff --git a/Detectors/DD4hepDetector/src/TestTracker/Endcap_geo.cpp b/Detectors/DD4hepDetector/src/Endcap_geo.cpp similarity index 85% rename from Detectors/DD4hepDetector/src/TestTracker/Endcap_geo.cpp rename to Detectors/DD4hepDetector/src/Endcap_geo.cpp index e5716b23e8f0c7832cf1f2d128781a02a3d31b63..6076812e2caa722e9d6e60932fd54709e4814e89 100644 --- a/Detectors/DD4hepDetector/src/TestTracker/Endcap_geo.cpp +++ b/Detectors/DD4hepDetector/src/Endcap_geo.cpp @@ -8,6 +8,7 @@ #include "ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp" #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" #include "DD4hep/DetFactoryHelper.h" using namespace std; @@ -27,8 +28,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) // Make DetElement DetElement cylinderVolume(det_name, x_det.id()); // add Extension to Detlement for the RecoGeometry - Acts::ActsExtension* detvolume = new Acts::ActsExtension(); - cylinderVolume.addExtension<Acts::ActsExtension>(detvolume); + Acts::ActsExtension::Config volConfig; + volConfig.isEndcap = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + cylinderVolume.addExtension<Acts::IActsExtension>(detvolume); // make Volume dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); Tube tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); @@ -140,18 +143,22 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) // Set Sensitive Volumes sensitive if (x_module.isSensitive()) { mod_vol.setSensitiveDetector(sens); - // Create and attach the extension for DD4Hep/Acts conversion - Acts::ActsExtension* moduleExtension = new Acts::ActsExtension(); - mod_det.addExtension<Acts::ActsExtension>(moduleExtension); + // create and attach the extension with the shared digitzation + // module + Acts::ActsExtension* moduleExtension + = new Acts::ActsExtension(digiModule); + mod_det.addExtension<Acts::IActsExtension>(moduleExtension); } int comp_num = 0; for (auto& sensComp : sensComponents) { // Create DetElement DetElement comp_det(mod_det, "component", comp_num); - // Create and attach the extension - Acts::ActsExtension* moduleExtension = new Acts::ActsExtension(); - comp_det.addExtension<Acts::ActsExtension>(moduleExtension); + // create and attach the extension with the shared digitzation + // module + Acts::ActsExtension* moduleExtension + = new Acts::ActsExtension(digiComponent); + comp_det.addExtension<Acts::IActsExtension>(moduleExtension); comp_det.setPlacement(sensComp); comp_num++; } @@ -172,13 +179,18 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) ++module_num_num; } } - - // Place the layer with appropriate Acts::Extension - // Configure the ACTS extension - Acts::ActsExtension* layerExtension = new Acts::ActsExtension(); - layerExtension->addType("sensitive disk", "layer"); - lay_det.addExtension<Acts::ActsExtension>(layerExtension); - + // set granularity of layer material mapping and where material should be + // mapped + // hand over modules to ACTS + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; + layConfig.axes = "XZy"; + ///@todo re-enable material mapping + // layConfig.materialBins1 = 50; + // layConfig.materialBins2 = 50; + // layConfig.layerMaterialPosition = Acts::LayerMaterialPos::inner; + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + lay_det.addExtension<Acts::IActsExtension>(detlayer); // Placed Layer Volume Position layer_pos(0., 0., x_layer.z()); PlacedVolume placedLayer = tube_vol.placeVolume(layer_vol, layer_pos); diff --git a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Barrel.cpp b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Barrel.cpp similarity index 89% rename from Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Barrel.cpp rename to Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Barrel.cpp index c01396e4a8346b8c0b5da0adacf570856f1a3cbb..103cccac2a2709ebfc82f45411aa35a6c8ada482 100644 --- a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Barrel.cpp +++ b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Barrel.cpp @@ -6,9 +6,11 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -#include "../DetUtils.h" +#include "DetUtils.h" #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" + #include "DD4hep/DetFactoryHelper.h" using dd4hep::DetElement; @@ -33,12 +35,13 @@ createTkLayoutTrackerBarrel(dd4hep::Detector& lcdd, // definition of top volume // has min/max dimensions of tracker for visualization etc. - std::string detectorName = xmlDet.nameStr(); - DetElement topDetElement(detectorName, xmlDet.id()); + std::string detectorName = xmlDet.nameStr(); + DetElement topDetElement(detectorName, xmlDet.id()); + Acts::ActsExtension::Config barrelConfig; + barrelConfig.isBarrel = true; // detElement owns extension - Acts::ActsExtension* detWorldExt = new Acts::ActsExtension(); - detWorldExt->addType("barrel", "detector"); - topDetElement.addExtension<Acts::ActsExtension>(detWorldExt); + Acts::ActsExtension* detWorldExt = new Acts::ActsExtension(barrelConfig); + topDetElement.addExtension<Acts::IActsExtension>(detWorldExt); dd4hep::Tube topVolumeShape(dimensions.rmin(), dimensions.rmax(), (dimensions.zmax() - dimensions.zmin()) * 0.5); @@ -70,13 +73,15 @@ createTkLayoutTrackerBarrel(dd4hep::Detector& lcdd, placedLayerVolume.addPhysVolID("layer", layerCounter); DetElement lay_det( topDetElement, "layer" + std::to_string(layerCounter), layerCounter); + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; // the local coordinate systems of modules in dd4hep and acts differ // see http://acts.web.cern.ch/ACTS/latest/doc/group__DD4hepPlugins.html + layConfig.axes = "XzY"; // correct translation of local x axis in dd4hep to + // local x axis in acts // detElement owns extension - Acts::ActsExtension* layerExtension = new Acts::ActsExtension(); - layerExtension->addType("sensitive cylinder", "layer"); - layerExtension->addType("axes", "definitions", "XzY"); - lay_det.addExtension<Acts::ActsExtension>(layerExtension); + Acts::ActsExtension* layerExtension = new Acts::ActsExtension(layConfig); + lay_det.addExtension<Acts::IActsExtension>(layerExtension); lay_det.setPlacement(placedLayerVolume); dd4hep::xml::Component xModuleComponentsOdd = xModulePropertiesOdd.child("components"); @@ -156,8 +161,9 @@ createTkLayoutTrackerBarrel(dd4hep::Detector& lcdd, "module" + std::to_string(moduleCounter), moduleCounter); // add extension to hand over material - Acts::ActsExtension* moduleExtension = new Acts::ActsExtension(); - mod_det.addExtension<Acts::ActsExtension>(moduleExtension); + Acts::ActsExtension* moduleExtension + = new Acts::ActsExtension(compMaterials, digiModule); + mod_det.addExtension<Acts::IActsExtension>(moduleExtension); mod_det.setPlacement(placedModuleVolume); ++moduleCounter; diff --git a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Beampipe.cpp b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Beampipe.cpp similarity index 82% rename from Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Beampipe.cpp rename to Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Beampipe.cpp index 29cc4acfe88da6b9aed9cb6a1b73ebaee48ea9d6..fdd9b33b349ef60d556474b89db0e31a54e538d8 100644 --- a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Beampipe.cpp +++ b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Beampipe.cpp @@ -20,10 +20,11 @@ create_element(dd4hep::Detector& lcdd, xml_h e, dd4hep::SensitiveDetector) xml_det_t x_det = e; std::string det_name = x_det.nameStr(); // Make DetElement - DetElement beamtube(det_name, x_det.id()); - Acts::ActsExtension* detvolume = new Acts::ActsExtension(); - detvolume->addType("beampipe", "layer"); - beamtube.addExtension<Acts::ActsExtension>(detvolume); + DetElement beamtube(det_name, x_det.id()); + Acts::ActsExtension::Config volConfig; + volConfig.isBeampipe = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + beamtube.addExtension<Acts::IActsExtension>(detvolume); dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); Tube tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.z()); Volume tube_vol(det_name, diff --git a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Endcap.cpp b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Endcap.cpp similarity index 92% rename from Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Endcap.cpp rename to Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Endcap.cpp index b19680fc44c5c16b3390fdeb4a72a81ca0da07d4..56d8056156e80ea4d16bb067ef4f8b560c5e2274 100644 --- a/Detectors/DD4hepDetector/src/FCChh/FCChhTrackerTkLayout_Endcap.cpp +++ b/Detectors/DD4hepDetector/src/FCChhTrackerTkLayout_Endcap.cpp @@ -6,10 +6,11 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -#include "../DetUtils.h" #include "DD4hep/DetFactoryHelper.h" +#include "DetUtils.h" #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" using dd4hep::DetElement; using dd4hep::PlacedVolume; @@ -39,9 +40,10 @@ createTkLayoutTrackerEndcap(dd4hep::Detector& lcdd, DetElement worldDetElement(detName, xmlDet.id()); DetElement posEcapDetElement(worldDetElement, "posEndcap", 0); - Acts::ActsExtension* ecapDetExt = new Acts::ActsExtension(); - ecapDetExt->addType("endcap", "detector"); - posEcapDetElement.addExtension<Acts::ActsExtension>(ecapDetExt); + Acts::ActsExtension::Config actsEcapConfig; + actsEcapConfig.isEndcap = true; + Acts::ActsExtension* ecapDetExt = new Acts::ActsExtension(actsEcapConfig); + posEcapDetElement.addExtension<Acts::IActsExtension>(ecapDetExt); dd4hep::Assembly envelopeVolume("endcapEnvelope"); envelopeVolume.setVisAttributes(lcdd.invisible()); @@ -75,12 +77,14 @@ createTkLayoutTrackerEndcap(dd4hep::Detector& lcdd, discVolumeVec.emplace_back("disc", discShape, lcdd.air()); discDetElementVec.emplace_back( posEcapDetElement, "disc" + std::to_string(discCounter), discCounter); + Acts::ActsExtension::Config layConfig; // the local coordinate systems of modules in dd4hep and acts differ // see http://acts.web.cern.ch/ACTS/latest/doc/group__DD4hepPlugins.html - Acts::ActsExtension* detlayer = new Acts::ActsExtension(); - detlayer->addType("sensitive disk", "layer"); - detlayer->addType("axes", "definitions", "XZY"); - discDetElementVec.back().addExtension<Acts::ActsExtension>(detlayer); + layConfig.axes = "XZY"; // correct translation of local x axis in dd4hep + // to local x axis in acts + layConfig.isLayer = true; + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + discDetElementVec.back().addExtension<Acts::IActsExtension>(detlayer); // iterate over rings for (dd4hep::xml::Collection_t xRingColl(xCurrentRings, _U(ring)); (nullptr != xRingColl); @@ -190,8 +194,9 @@ createTkLayoutTrackerEndcap(dd4hep::Detector& lcdd, compCounter); // add extension to hand over material - Acts::ActsExtension* moduleExtension = new Acts::ActsExtension(); - moduleDetElement.addExtension<Acts::ActsExtension>( + Acts::ActsExtension* moduleExtension + = new Acts::ActsExtension(compMaterials, digiModule); + moduleDetElement.addExtension<Acts::IActsExtension>( moduleExtension); moduleDetElement.setPlacement(placedComponentVolume); diff --git a/Detectors/DD4hepDetector/src/GenericMLBarrel_geo.cpp b/Detectors/DD4hepDetector/src/GenericMLBarrel_geo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2addf9c9a3528966ca07c07b526cc352941322e6 --- /dev/null +++ b/Detectors/DD4hepDetector/src/GenericMLBarrel_geo.cpp @@ -0,0 +1,167 @@ +// This file is part of the Acts project. +// +// Copyright (C) 2017 CERN for the benefit of the Acts project +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#include "ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp" +#include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" +#include "DD4hep/DetFactoryHelper.h" + +using namespace std; +using namespace dd4hep; + +/** + Constructor for a cylindrical barrel volume, possibly containing layers and the + layers possibly containing modules. In Atlas style. This constructor was + specifically introduced for the TrackML detector. +*/ + +static Ref_t +create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) +{ + xml_det_t x_det = xml; + string detName = x_det.nameStr(); + // Make DetElement + DetElement barrelDetector(detName, x_det.id()); + // add Extension to Detlement for the RecoGeometry + Acts::ActsExtension::Config volConfig; + volConfig.isBarrel = true; + Acts::ActsExtension* volumeExt = new Acts::ActsExtension(volConfig); + barrelDetector.addExtension<Acts::IActsExtension>(volumeExt); + // create Volume + dd4hep::xml::Dimension x_detDim(x_det.dimensions()); + Volume barrelVolume(detName, + Tube(x_detDim.rmin(), x_detDim.rmax(), x_detDim.dz()), + lcdd.vacuum()); // vacuum at the moment change later + barrelVolume.setVisAttributes(lcdd, x_detDim.visStr()); + // go trough possible layers + size_t layerNumber = 0; + + for (xml_coll_t j(xml, _U(layer)); j; ++j) { + xml_comp_t x_layer = j; + double layerRmin = x_layer.inner_r(); + double layerRmax = x_layer.outer_r(); + double layerLength = x_layer.z(); + // Create Volume and DetElement for Layer + string layerName = detName + _toString((int)layerNumber, "layer%d"); + Volume layerVolume(layerName, + Tube(layerRmin, layerRmax, layerLength), + lcdd.material(x_layer.materialStr())); + DetElement layerDetector(barrelDetector, layerName, layerNumber); + // Visualization + layerVolume.setVisAttributes(lcdd, x_layer.visStr()); + // go trough possible modules + if (x_layer.hasChild(_U(module))) { + // the module describing the module dimensions + xml_comp_t x_module = x_layer.child(_U(module)); + double modHalfLength = x_module.length(); + double modHalfWidth = x_module.width(); + double modHalfThickness = x_module.thickness(); + // informations for the placement and tilt in phi + int phiRepeat = x_module.repeat(); + double deltaphi = 2. * M_PI / phiRepeat; + double phiTilt = x_module.phi_tilt(); + // informarions for he placement in z + xml_comp_t x_slice = x_layer.child(_U(slice)); + int zRepeat = x_slice.repeat(); + double zOverlap = x_slice.dz(); + double rOffset = x_slice.offset(); // half offset + + // Create the module volume + Volume modVolume("module", + Box(modHalfLength, modHalfWidth, modHalfThickness), + lcdd.material(x_module.materialStr())); + + // create the Acts::DigitizationModule (needed to do geometric + // digitization) for all modules which have the same segmentation + auto digiModule + = FW::DD4hep::rectangleDigiModule(modHalfLength, + modHalfWidth, + modHalfThickness, + sens.readout().segmentation()); + + // Visualization + modVolume.setVisAttributes(lcdd, x_module.visStr()); + size_t moduleNumber = 0; + // Place the Modules in z + // the distance between the modules in z + double dz = (2 * modHalfLength - zOverlap); + // the start value in z + double startz = -((zRepeat - 1) * 0.5 * dz); + // place in z + for (int iz = 0; iz < zRepeat; iz++) { + // to be added later to the module name + string zname = _toString((int)iz, "z%d"); + // the radial position of the module + double r = ((layerRmax + layerRmin) * 0.5); + // alterning radial offset for each subsequent module + if (iz % 2 == 0) { + r += (0.5 * rOffset); + } else { + r -= (0.5 * rOffset); + } + // current z position + double z = startz + iz * dz; + // start phi position + double minPhi = -M_PI + 0.5 * deltaphi / dd4hep::rad; + // Place the modules in phi + for (int iphi = 0; iphi < phiRepeat; ++iphi) { + // the unique module name + string module_name = zname + _toString((int)iphi, "module%d"); + // the phi position + double phi = minPhi + deltaphi * iphi; + // the position of the module within the layer + Position trans(r * cos(phi), r * sin(phi), z); + // Create the module DetElement + DetElement moduleDetector(layerDetector, module_name, moduleNumber); + // Set Sensitive Volmes sensitive + if (x_module.isSensitive()) { + modVolume.setSensitiveDetector(sens); + // create and attach the extension with the shared digitzation + // module + Acts::ActsExtension* moduleExtension + = new Acts::ActsExtension(digiModule); + moduleDetector.addExtension<Acts::IActsExtension>(moduleExtension); + } + // Place Module Box Volumes in layer adding a tilt in phi + PlacedVolume placedmodule = layerVolume.placeVolume( + modVolume, + Transform3D(RotationY(0.5 * M_PI) * RotationX(-phi - phiTilt), + trans)); + placedmodule.addPhysVolID("module", moduleNumber); + // assign module DetElement to the placed module volume + moduleDetector.setPlacement(placedmodule); + ++moduleNumber; + } + } + } + // todo set granularity of layer material mapping and where material should + // be mapped + // hand over modules to ACTS + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; + layConfig.envelopeR = 2. * Acts::units::_mm; + layConfig.envelopeZ = 2. * Acts::units::_mm; // maybe change later + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + layerDetector.addExtension<Acts::IActsExtension>(detlayer); + // Place layer volume + PlacedVolume placedLayer = barrelVolume.placeVolume(layerVolume); + placedLayer.addPhysVolID("layer", layerNumber); + // Assign layer DetElement to layer volume + layerDetector.setPlacement(placedLayer); + ++layerNumber; + } + // Place Volume + Volume mother_vol = lcdd.pickMotherVolume(barrelDetector); + PlacedVolume placedTube = mother_vol.placeVolume(barrelVolume); + placedTube.addPhysVolID("system", barrelDetector.id()); + barrelDetector.setPlacement(placedTube); + + return barrelDetector; +} + +DECLARE_DETELEMENT(ACTS_GenericMLBarrel, create_element) diff --git a/Detectors/DD4hepDetector/src/GenericMLEndcaps_geo.cpp b/Detectors/DD4hepDetector/src/GenericMLEndcaps_geo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..bcf01100418ac6af293e489ebd88ea8c8c3e1d47 --- /dev/null +++ b/Detectors/DD4hepDetector/src/GenericMLEndcaps_geo.cpp @@ -0,0 +1,259 @@ +// This file is part of the Acts project. +// +// Copyright (C) 2017 CERN for the benefit of the Acts project +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#include "ACTFW/DD4hepDetector/DD4hepDetectorHelper.hpp" +#include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" +#include "DD4hep/DetFactoryHelper.h" + +using namespace std; +using namespace dd4hep; + +/** + Constructor for a disc two like endcap volumes, possibly containing layers and + the layers possibly containing modules. Both endcaps, the positive and negative + can be build with this constructor. Atlas like style. This constructor was + specifically introduced for the TrackML detector, building both the endcap on + the negative and the positive side. + */ + +static Ref_t +create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) +{ + xml_det_t x_det = xml; + string detName = x_det.nameStr(); + // Create endcap envelope (has no shape because barrel needs to be inbetween) + dd4hep::Assembly endcapVolume("endcapEnvelope"); + endcapVolume.setVisAttributes(lcdd.invisible()); + // Create endcap DetElement for positive side + DetElement posEndcapDetector("pos" + detName, x_det.id()); + // add Extension to Detlement for the RecoGeometry + Acts::ActsExtension::Config volConfig; + volConfig.isEndcap = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + posEndcapDetector.addExtension<Acts::IActsExtension>(detvolume); + // make Volume + dd4hep::xml::Dimension x_detDim(x_det.dimensions()); + Volume posEndcapVolume(detName, + Tube(x_detDim.rmin(), x_detDim.rmax(), x_detDim.dz()), + lcdd.vacuum()); // air at the moment change later + posEndcapVolume.setVisAttributes(lcdd, x_detDim.visStr()); + // go trough possible layers + size_t layerNumber = 0; + for (xml_coll_t j(xml, _U(layer)); j; ++j) { + xml_comp_t x_layer = j; + // get the dimensions of the layer; + double layerRmin = x_layer.inner_r(); + double layerRmax = x_layer.outer_r(); + double layerLength = x_layer.dz(); + double ringStaggerZ = x_layer.z_offset(); + // Create Volume and DetElement for Layer + string layerName = detName + _toString((int)layerNumber, "layer%d"); + Volume layerVolume(layerName, + Tube(layerRmin, layerRmax, layerLength), + lcdd.material(x_layer.materialStr())); + DetElement lay_det(posEndcapDetector, layerName, layerNumber); + // Visualization + layerVolume.setVisAttributes(lcdd, x_layer.visStr()); + int radialModuleCounter = 0; + // go trough possible modules + if (x_layer.hasChild(_U(module))) { + // radial placement of modules + for (xml_coll_t i(x_layer, _U(module)); i; i++) { + // The module + xml_comp_t x_module = i; + // information for placement in phi + int phiRepeat = x_module.repeat(); + double deltaphi = 2. * M_PI / phiRepeat; + double minPhi = -M_PI + 0.5 * deltaphi; + // information for placement in r + double radius = x_module.radius(); + // information for placement in z + double staggerZ = x_module.z_offset(); + double subStaggerZ = x_module.dz(); + double zPosRing = (radialModuleCounter % 2) ? (0.5 * ringStaggerZ) + : (-0.5 * ringStaggerZ); + size_t moduleNumber = 0; + + // Create the module volume + Volume moduleVolume("module", + Trapezoid(x_module.x1(), + x_module.x2(), + x_module.thickness(), + x_module.thickness(), + x_module.length()), + lcdd.material(x_module.materialStr())); + moduleVolume.setVisAttributes(lcdd, x_module.visStr()); + + // create the Acts::DigitizationModule (needed to do geometric + // digitization) for all modules which have digitization module + auto digiModule + = FW::DD4hep::trapezoidalDigiModule(x_module.x1(), + x_module.x2(), + x_module.length(), + x_module.thickness(), + sens.readout().segmentation()); + + // the sensitive placed components to be used later to create the + // DetElements + std::vector<PlacedVolume> sensComponents; + // the possible digitization module + std::shared_ptr<const Acts::DigitizationModule> digiComponent = nullptr; + // go through possible components - currently not used + int compNumber = 0; + for (xml_coll_t comp(x_module, _U(module_component)); comp; comp++) { + xml_comp_t x_comp = comp; + // create the component volume + string compName = _toString((int)compNumber, "component%d") + + x_comp.materialStr(); + Volume compVolume(compName, + Trapezoid(x_comp.x1(), + x_comp.x2(), + x_comp.thickness(), + x_comp.thickness(), + x_comp.length()), + lcdd.material(x_comp.materialStr())); + compVolume.setVisAttributes(lcdd, x_comp.visStr()); + + // create the Acts::DigitizationModule (needed to do geometric + // digitization) for all modules which have the sdigitization + // compoenent + digiComponent = FW::DD4hep::trapezoidalDigiModule( + x_comp.x1(), + x_comp.x2(), + x_comp.length(), + x_comp.thickness(), + sens.readout().segmentation()); + + // Set Sensitive Volumes sensitive + if (x_comp.isSensitive()) compVolume.setSensitiveDetector(sens); + + // place component in module + Position translation(0., x_comp.z(), 0.); + PlacedVolume placed_comp + = moduleVolume.placeVolume(compVolume, translation); + if (x_comp.isSensitive()) sensComponents.push_back(placed_comp); + placed_comp.addPhysVolID("component", moduleNumber); + ++compNumber; + } + + // Place the modules in phi + for (int iphi = 0; iphi < phiRepeat; iphi++) { + // the phi position of the module + double phi = minPhi + deltaphi / dd4hep::rad * iphi; + // the unique module name + string module_name + = _toString((int)(phiRepeat * radialModuleCounter + moduleNumber), + "module%d"); + // the z position of the module (with alterning stagger for subsequent + // modules) + double zPos = (iphi % 2) ? (zPosRing - 0.5 * staggerZ) + : (zPosRing + 0.5 * staggerZ); + // phi stagger affects 0 vs 1, 2 vs 3 ... etc + // -> only works if it is a %4 + // phi sub stagger affects 2 vs 4, 1 vs 3 etc. + if (subStaggerZ != 0 && !(phiRepeat % 4)) { + // switch sides + if (!(iphi % 4)) + zPos += subStaggerZ; + else if (!((iphi + 1) % 4)) + zPos -= subStaggerZ; + } + // the podition of the module + Position trans(radius * cos(phi), radius * sin(phi), zPos); + // Create the module DetElement + DetElement moduleDetector(lay_det, + module_name, + phiRepeat * radialModuleCounter + + moduleNumber); + // Set Sensitive Volumes sensitive + if (x_module.isSensitive()) { + moduleVolume.setSensitiveDetector(sens); + // create and attach the extension with the shared digitzation + // module + Acts::ActsExtension* moduleExtension + = new Acts::ActsExtension(digiModule); + moduleDetector.addExtension<Acts::IActsExtension>(moduleExtension); + } + + int compNumber = 0; + for (auto& sensComp : sensComponents) { + // Create DetElement + DetElement compDetector(moduleDetector, "component", compNumber); + // create and attach the extension with the shared digitzation + // module + Acts::ActsExtension* moduleExtension + = new Acts::ActsExtension(digiComponent); + compDetector.addExtension<Acts::IActsExtension>(moduleExtension); + compDetector.setPlacement(sensComp); + compNumber++; + } + // Place Module Box Volumes in layer + Transform3D transf( + RotationX(0.5 * M_PI) * RotationY(phi + 0.5 * M_PI), trans); + PlacedVolume placedmodule + = layerVolume.placeVolume(moduleVolume, transf); + placedmodule.addPhysVolID( + "module", phiRepeat * radialModuleCounter + moduleNumber); + // assign module DetElement to the placed module volume + moduleDetector.setPlacement(placedmodule); + ++moduleNumber; + } + ++radialModuleCounter; + } + } + // set granularity of layer material mapping and where material should be + // mapped + // hand over modules to ACTS + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; + layConfig.axes = "XZy"; + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + lay_det.addExtension<Acts::IActsExtension>(detlayer); + // Placed Layer Volume + Position layerPos(0., 0., x_layer.z()); + PlacedVolume placedLayer + = posEndcapVolume.placeVolume(layerVolume, layerPos); + placedLayer.addPhysVolID("layer", layerNumber); + lay_det.setPlacement(placedLayer); + ++layerNumber; + } + // Place Volume + // if it is the negative endcap the normal vector needs to point into the + // outside + double endcapZPos = (x_detDim.z() > 0.) ? x_detDim.z() : -x_detDim.z(); + Position posTranslation(0., 0., endcapZPos); + Rotation3D posRotation(1., 0., 0., 0., 1., 0., 0., 0., 1.); + Position negTranslation(0., 0., -endcapZPos); + Rotation3D negRotation(1., 0., 0., 0., -1., 0., 0., 0., -1.); + // Place the two (positive and negative) endcap volumes + PlacedVolume placedPosEndcap = endcapVolume.placeVolume( + posEndcapVolume, Transform3D(posRotation, posTranslation)); + placedPosEndcap.addPhysVolID("posneg", 0); + PlacedVolume placedNegEndcap = endcapVolume.placeVolume( + posEndcapVolume, Transform3D(negRotation, negTranslation)); + placedPosEndcap.addPhysVolID("posneg", 1); + // create endcap detector element for negative side + auto negEndcapDetector = posEndcapDetector.clone("neg" + detName); + // set the placements of positive and negative endcaps + posEndcapDetector.setPlacement(placedPosEndcap); + negEndcapDetector.setPlacement(placedNegEndcap); + // create envelope detelement + DetElement endcapDetector(detName, x_det.id()); + endcapDetector.add(posEndcapDetector); + endcapDetector.add(negEndcapDetector); + + PlacedVolume motherVolume + = lcdd.pickMotherVolume(endcapDetector).placeVolume(endcapVolume); + motherVolume.addPhysVolID("system", x_det.id()); + endcapDetector.setPlacement(motherVolume); + + return endcapDetector; +} + +DECLARE_DETELEMENT(ACTS_GenericMLEndcaps, create_element) diff --git a/Detectors/DD4hepDetector/src/IBL/IBLSimpleBarrel_geo.cpp b/Detectors/DD4hepDetector/src/IBLSimpleBarrel_geo.cpp similarity index 92% rename from Detectors/DD4hepDetector/src/IBL/IBLSimpleBarrel_geo.cpp rename to Detectors/DD4hepDetector/src/IBLSimpleBarrel_geo.cpp index 71f19943e607005c88438c300e97f938d1fceaaa..0b6062d76658e9df577dce0fd4f36f2f7a38f349 100644 --- a/Detectors/DD4hepDetector/src/IBL/IBLSimpleBarrel_geo.cpp +++ b/Detectors/DD4hepDetector/src/IBLSimpleBarrel_geo.cpp @@ -7,6 +7,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" #include "DD4hep/DetFactoryHelper.h" using namespace std; @@ -25,9 +26,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) // Make DetElement DetElement cylinderVolume(det_name, x_det.id()); // add Extension to Detlement for the RecoGeometry - Acts::ActsExtension* barrelExtension = new Acts::ActsExtension(); - barrelExtension->addType("barrel", "detector"); - cylinderVolume.addExtension<Acts::ActsExtension>(barrelExtension); + Acts::ActsExtension::Config volConfig; + volConfig.isBarrel = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + cylinderVolume.addExtension<Acts::IActsExtension>(detvolume); // make Volume dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); Tube tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); @@ -109,7 +111,7 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) x_trd.length(), x_trd.thickness()); Tube tubs_shape(x_tubs.rmin(), x_tubs.rmax(), x_tubs.dz()); - // create the subtraction + // create the substraction Volume sub_vol("subtraction_components", SubtractionSolid(trap_shape, tubs_shape, @@ -160,6 +162,7 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) component_det.setPlacement(sensComp); comp_num++; } + // Place Module Box Volumes in layer PlacedVolume placedmodule = layer_vol.placeVolume( mod_vol, @@ -189,11 +192,16 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) } // set granularity of layer material mapping and where material should be - // mapped hand over modules to ACTS - - Acts::ActsExtension* layerExtension = new Acts::ActsExtension(); - layerExtension->addType("sensitive cylinder", "layer"); - lay_det.addExtension<Acts::ActsExtension>(layerExtension); + // mapped + // hand over modules to ACTS + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; + ///@todo re-enable material mapping + // layConfig.materialBins1 = 100; + // layConfig.materialBins2 = 100; + // layConfig.layerMaterialPosition = Acts::LayerMaterialPos::inner; + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + lay_det.addExtension<Acts::IActsExtension>(detlayer); // Place layer volume PlacedVolume placedLayer = tube_vol.placeVolume(layer_vol); placedLayer.addPhysVolID("layer", layer_num); diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDCylinder_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDCylinder_geo.cpp deleted file mode 100644 index 9f1c7d0a075bfb5d3126e7f79555846ae3f1ee73..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDCylinder_geo.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2019 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#include "Acts/Plugins/DD4hep/ActsExtension.hpp" -#include "DD4hep/DetFactoryHelper.h" - -using namespace std; -using namespace dd4hep; - -static Ref_t -create_element(Detector& oddd, xml_h xml, SensitiveDetector sens) -{ - - xml_det_t x_det = xml; - string detName = x_det.nameStr(); - - // Make DetElement - DetElement cylinderElement(detName, x_det.id()); - - // add Extension to Detlement for the RecoGeometry - Acts::ActsExtension* pcExtension = new Acts::ActsExtension(); - bool isBeamPipe = x_det.hasChild(_U(beampipe)); - pcExtension->addType("passive cylinder", "layer"); - if (isBeamPipe) { pcExtension->addType("beampipe", "layer"); } - cylinderElement.addExtension<Acts::ActsExtension>(pcExtension); - - // Make Volume - xml_comp_t x_det_tubs = x_det.child(_U(tubs)); - string shapeName = x_det_tubs.nameStr(); - Tube tubeShape( - shapeName, x_det_tubs.rmin(), x_det_tubs.rmax(), x_det_tubs.dz()); - Volume tube_vol(detName, tubeShape, oddd.material(x_det_tubs.materialStr())); - tube_vol.setVisAttributes(oddd, x_det.visStr()); - - // Place it in the mother - Volume mother_vol = oddd.pickMotherVolume(cylinderElement); - PlacedVolume placedTube = mother_vol.placeVolume(tube_vol); - placedTube.addPhysVolID(detName, cylinderElement.id()); - cylinderElement.setPlacement(placedTube); - - // And return the element for further parsing - return cylinderElement; -} - -DECLARE_DETELEMENT(ODDCylinder, create_element) diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDModuleHelper.hpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDModuleHelper.hpp deleted file mode 100644 index 2a4687f800796760729b97edd9484b001fa3e70e..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDModuleHelper.hpp +++ /dev/null @@ -1,238 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2019 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#pragma once - -#include "DD4hep/DetFactoryHelper.h" - -using namespace std; -using namespace dd4hep; - -/// This method assemples a trapezoidal module for the -/// strip detectors -/// -/// @param odd is the top level detector -/// @param sens is the top level sensitive detector container -/// @param x_module is the xml component describing the module -/// -/// It excpects `module_component` xml childs -/// -// @return a pair for a template module assembly and detector element -static std::pair<Assembly, DetElement> -assembleTrapezoidalModule(Detector& oddd, - SensitiveDetector& sens, - const xml_comp_t& x_module) -{ - // The Module envelope volume - Assembly moduleAssembly("module"); - // Visualization - moduleAssembly.setVisAttributes(oddd, x_module.visStr()); - - // The module detector element - DetElement moduleElement("ModuleElementTemplate", 0); - - // Place the components inside the module - unsigned int compNum = 0; - unsigned int sensorNum = 0; - - for (xml_coll_t comp(x_module, _U(module_component)); comp; - ++comp, ++compNum) { - xml_comp_t x_comp = comp; - - // create the component volume - string compName - = _toString((int)compNum, "component%d") + x_comp.materialStr(); - - Trapezoid trapShape(x_comp.x1(), - x_comp.x2(), - 0.5 * x_comp.thickness(), - 0.5 * x_comp.thickness(), - x_comp.length()); - - Volume componentVolume( - compName, trapShape, oddd.material(x_comp.materialStr())); - componentVolume.setVisAttributes(oddd, x_comp.visStr()); - - // overwrite if you have a subtraction - if (x_comp.hasChild(_U(subtraction))) { - - xml_comp_t x_sub = x_comp.child(_U(subtraction)); - Tube tubeCutout(x_sub.rmin(), x_sub.rmax(), 1.1 * x_comp.length()); - - // Create the subtraction - componentVolume = Volume( - compName, - SubtractionSolid( - trapShape, - tubeCutout, - Position(x_sub.x_offset(), x_sub.y_offset(), x_sub.z_offset())), - oddd.material(x_comp.materialStr())); - - // place a fitting pipe if available - if (x_comp.hasChild(_U(tube))) { - xml_comp_t x_pipe = x_comp.child(_U(tube)); - Tube coolingPipe(x_pipe.rmin(), x_pipe.rmax(), x_comp.length()); - // Create the subtraction - Volume pipeVolume( - "CoolingPipe", coolingPipe, oddd.material(x_pipe.materialStr())); - pipeVolume.setVisAttributes(oddd, x_pipe.visStr()); - - PlacedVolume pacedPipe = componentVolume.placeVolume( - pipeVolume, - Position(x_pipe.x_offset(), x_pipe.y_offset(), x_pipe.z_offset())); - } - } - - // Place the component - double stereoAlpha = x_comp.alpha(); - PlacedVolume placedComponent = moduleAssembly.placeVolume( - componentVolume, - Transform3D( - RotationY(stereoAlpha), - Position(x_comp.x_offset(), x_comp.y_offset(), x_comp.z_offset()))); - - // Deal with the sensitive sensor - if (x_comp.isSensitive()) { - - componentVolume.setSensitiveDetector(sens); - placedComponent.addPhysVolID("sensor", sensorNum++); - - // Create the sensor element and place it - string sensorName = _toString((int)sensorNum, "sensor%d"); - DetElement sensorElement(moduleElement, sensorName, sensorNum); - sensorElement.setPlacement(placedComponent); - - // Add the sensor extension - Acts::ActsExtension* sensorExtension = new Acts::ActsExtension(); - sensorExtension->addType("sensor", "detector"); - sensorExtension->addType("axes", "definitions", "XZY"); - // Set the extension - sensorElement.addExtension<Acts::ActsExtension>(sensorExtension); - } - } - - // return the module assembly - return std::pair<Assembly, DetElement>(moduleAssembly, moduleElement); -} - -/// This method assemples a rectangular module for the -/// pixel and strip detectors -/// -/// @param odd is the top level detector -/// @param sens is the top level sensitive detector container -/// @param x_module is the xml component describing the module -/// @param ylength[in,out] is the maximal length in y of all components -/// to be used for stave building -/// -/// It excpects `module_component` xml childs -/// -// @return a pair for a template module assembly and detector element -static std::pair<Assembly, DetElement> -assembleRectangularModule(Detector& oddd, - SensitiveDetector& sens, - const xml_comp_t& x_module, - double& ylength) -{ - - // The Module envelope volume - Assembly moduleAssembly("module"); - // Visualization - moduleAssembly.setVisAttributes(oddd, x_module.visStr()); - - // The module detector element - DetElement moduleElement("ModuleElementTemplate", 0); - - // Place the components inside the module - unsigned int compNum = 0; - unsigned int sensorNum = 0; - - for (xml_coll_t comp(x_module, _U(module_component)); comp; - ++comp, ++compNum) { - xml_comp_t x_comp = comp; - - // Component volume - string componentName = _toString((int)compNum, "component%d"); - Box boxShape(0.5 * x_comp.dx(), 0.5 * x_comp.dy(), 0.5 * x_comp.dz()); - // Standard component volume without cutout - Volume componentVolume( - componentName, boxShape, oddd.material(x_comp.materialStr())); - - // overwrite if you have a subtraction - if (x_comp.hasChild(_U(subtraction))) { - xml_comp_t x_sub = x_comp.child(_U(subtraction)); - Tube tubeCutout(x_sub.rmin(), x_sub.rmax(), x_comp.dy()); - - // Create the subtraction - componentVolume - = Volume(componentName, - SubtractionSolid(boxShape, - tubeCutout, - Transform3D(RotationX(0.5 * M_PI), - Position(x_sub.x_offset(), - x_sub.y_offset(), - x_sub.z_offset()))), - oddd.material(x_comp.materialStr())); - - // place a fitting pipe if available - if (x_comp.hasChild(_U(tube))) { - xml_comp_t x_pipe = x_comp.child(_U(tube)); - Tube coolingPipe(x_pipe.rmin(), x_pipe.rmax(), 0.5 * x_comp.dy()); - // Create the subtraction - Volume pipeVolume( - "CoolingPipe", coolingPipe, oddd.material(x_pipe.materialStr())); - pipeVolume.setVisAttributes(oddd, x_pipe.visStr()); - - PlacedVolume pacedPipe = componentVolume.placeVolume( - pipeVolume, - Transform3D(RotationX(0.5 * M_PI), - Position(x_pipe.x_offset(), - x_pipe.y_offset(), - x_pipe.z_offset()))); - } - } - componentVolume.setVisAttributes(oddd, x_comp.visStr()); - - // Calculate the module dimension - double cylength = 2. - * abs(std::copysign(0.5 * x_comp.dy(), x_comp.y_offset()) - + x_comp.y_offset()); - ylength = cylength > ylength ? cylength : ylength; - - // Visualization - componentVolume.setVisAttributes(oddd, x_comp.visStr()); - // Place Module Box Volumes in layer - double stereoAlpha = x_comp.alpha(); - PlacedVolume placedComponent = moduleAssembly.placeVolume( - componentVolume, - Transform3D( - RotationZ(stereoAlpha), - Position(x_comp.x_offset(), x_comp.y_offset(), x_comp.z_offset()))); - - // Deal with the sensitive sensor - if (x_comp.isSensitive()) { - - componentVolume.setSensitiveDetector(sens); - placedComponent.addPhysVolID("sensor", sensorNum++); - - // Create the sensor element and place it - string sensorName = _toString((int)sensorNum, "sensor%d"); - DetElement sensorElement(moduleElement, sensorName, sensorNum); - sensorElement.setPlacement(placedComponent); - - // Add the sensor extension - Acts::ActsExtension* sensorExtension = new Acts::ActsExtension(); - sensorExtension->addType("sensor", "detector"); - sensorExtension->addType("axes", "definitions", "XYZ"); - // Set the extension - sensorElement.addExtension<Acts::ActsExtension>(sensorExtension); - } - } - - // return the module assembly - return std::pair<Assembly, DetElement>(moduleAssembly, moduleElement); -} diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelBarrel_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelBarrel_geo.cpp deleted file mode 100644 index 6eb4246f85db6c6c4e622e3a01af67cbb6ac7a91..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelBarrel_geo.cpp +++ /dev/null @@ -1,257 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2019 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#include "Acts/Plugins/DD4hep/ActsExtension.hpp" -#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" -#include "DD4hep/DetFactoryHelper.h" -#include "ODDModuleHelper.hpp" -#include "ODDServiceHelper.hpp" - -using namespace std; -using namespace dd4hep; -static void -completeStaveStructure(Detector& oddd, - xml_comp_t& x_stave, - Assembly& staveAssembly, - double staveHlength, - double ylength) -{ - - unsigned int nModules = x_stave.nmodules(); - - // Place carbon foam structure - if (x_stave.hasChild(_U(subtraction)) and x_stave.hasChild(_U(tube))) { - xml_comp_t x_sub = x_stave.child(_U(subtraction)); - xml_comp_t x_trd = x_sub.child(_U(trd)); - xml_comp_t x_tubs = x_sub.child(_U(tubs)); - xml_comp_t x_pipe = x_stave.child(_U(tube)); - - // Create the two shapes first - Trapezoid foamShape(x_trd.x1(), - x_trd.x2(), - staveHlength + x_trd.dz(), - staveHlength + x_trd.dz(), - x_trd.thickness()); - - Tube foamCutout(x_tubs.rmin(), x_tubs.rmax(), staveHlength + x_tubs.dz()); - - // Create the subtraction - Volume foamVolume("CarbonFoam", - SubtractionSolid(foamShape, - foamCutout, - Transform3D(RotationX(0.5 * M_PI))), - oddd.material(x_sub.materialStr())); - foamVolume.setVisAttributes(oddd, x_sub.visStr()); - // Place the volume in the stave - PlacedVolume placedFoam = staveAssembly.placeVolume( - foamVolume, - Position(x_sub.x_offset(), x_sub.y_offset(), x_sub.z_offset())); - - Tube coolingPipe(x_pipe.rmin(), x_pipe.rmax(), staveHlength + x_pipe.dz()); - // Create the subtraction - Volume pipeVolume( - "CoolingPipe", coolingPipe, oddd.material(x_pipe.materialStr())); - pipeVolume.setVisAttributes(oddd, x_pipe.visStr()); - - // Place the pipe in the stave - PlacedVolume placedPipe = staveAssembly.placeVolume( - pipeVolume, - Transform3D( - RotationX(0.5 * M_PI), - Position(x_pipe.x_offset(), x_pipe.y_offset(), x_pipe.z_offset()))); - - xml_comp_t x_cable = x_stave.child(_U(eltube)); - // Place the support cables for the modules - for (unsigned int modCable = 0; modCable < 0.5 * nModules; ++modCable) { - - double cableLength = staveHlength - modCable * ylength; - - for (int side = -1; side < 2; side += 2) { - Tube cable(x_cable.rmin(), x_cable.rmax(), 0.5 * cableLength); - // Create the cable volume - Volume cableVolume( - "Cable", cable, oddd.material(x_cable.materialStr())); - cableVolume.setVisAttributes(oddd, x_cable.visStr()); - - // Place the pipe in the stave - PlacedVolume placedCable = staveAssembly.placeVolume( - cableVolume, - Transform3D( - RotationX(0.5 * M_PI), - Position( - x_cable.x_offset() + 2.05 * modCable * x_cable.rmax(), - side * (staveHlength - 0.5 * cableLength + x_cable.dz()), - x_cable.z_offset()))); - } - } - } -} - -static Ref_t -create_element(Detector& oddd, xml_h xml, SensitiveDetector sens) -{ - - xml_det_t x_det = xml; - string detName = x_det.nameStr(); - - // Make DetElement - DetElement barrelDetector(detName, x_det.id()); - - // Add Extension to DetElement for the RecoGeometry - Acts::ActsExtension* barrelExtension = new Acts::ActsExtension(); - barrelExtension->addType("barrel", "detector"); - barrelDetector.addExtension<Acts::ActsExtension>(barrelExtension); - - // Make Volume - dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); - string barrelShapeName = x_det_dim.nameStr(); - - // The Shape and Volume - Tube barrelShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); - Volume barrelVolume(detName, barrelShape, oddd.air()); - barrelVolume.setVisAttributes(oddd, x_det.visStr()); - - // Create the stave volume and DetElement tree - xml_comp_t x_stave = x_det.child(_U(stave)); - Assembly staveAssembly("stave"); - // Visualization - staveAssembly.setVisAttributes(oddd, x_stave.visStr()); - // DetElement tree - DetElement staveElementTemplate("StaveElementTemplate", 0); - - // Create the module components - xml_comp_t x_module = x_det.child(_U(module)); - double ylength = 0.; - auto module = assembleRectangularModule(oddd, sens, x_module, ylength); - - // Place the modules into the stave - double gap = x_stave.gap(); - unsigned int nModules = x_stave.nmodules(); - double ystep = ylength + gap; - double ymin = (nModules * 0.5 - 0.5) * ylength; - double staveHlength = ymin + 0.5 * ylength; - - // Loop over the modules and place them in the stave - for (unsigned int moduleNum = 0; moduleNum < nModules; ++moduleNum) { - // Place them along local y - PlacedVolume placedModule = staveAssembly.placeVolume( - module.first, Position(0., -ymin + moduleNum * ystep, 0.)); - placedModule.addPhysVolID("module", moduleNum); - - string moduleName = _toString((int)moduleNum, "module%d"); - // Clone the detector element - auto moduleElement = module.second.clone(moduleName, moduleNum); - moduleElement.setPlacement(placedModule); - // Assign it as child to the stave template - staveElementTemplate.add(moduleElement); - } - - // Complete the staveStructure - completeStaveStructure(oddd, x_stave, staveAssembly, staveHlength, ylength); - - std::vector<double> layerR; - - // Loop over the layers to build staves - size_t layerNum = 0; - for (xml_coll_t lay(xml, _U(layer)); lay; ++lay, ++layerNum) { - xml_comp_t x_layer = lay; - - // The Layer envelope volume - string layerName = detName + std::to_string(layerNum); - Volume layerVolume( - layerName, - Tube(x_layer.rmin(), x_layer.rmax(), staveHlength + x_layer.outer_z()), - oddd.air()); - // Visualization - layerVolume.setVisAttributes(oddd, x_layer.visStr()); - - // The DetElement tree, keep it flat - DetElement layerElement(barrelDetector, layerName, layerNum); - - // Place the staves in the layer - unsigned int nStaves = x_layer.nphi(); - double phiStep = 2. * M_PI / nStaves; - double phiTilt = x_layer.phi_tilt(); - double phi0 = x_layer.phi0(); - double r = x_layer.r(); - layerR.push_back(r); - - // Loop over the staves and place them - for (unsigned int staveNum = 0; staveNum < nStaves; ++staveNum) { - string staveName = _toString((int)staveNum, "stave%d"); - // position of the stave - double phi = phi0 + staveNum * phiStep; - double x = r * cos(phi); - double y = r * sin(phi); - // Now place the stave - PlacedVolume placedStave = layerVolume.placeVolume( - staveAssembly, - Transform3D(RotationY(0.5 * M_PI) * RotationZ(0.5 * M_PI) - * RotationY(phi + phiTilt), - Position(x, y, 0.))); - placedStave.addPhysVolID("stave", staveNum); - - // Clone the stave element from the template - DetElement staveElement = staveElementTemplate.clone(staveName, staveNum); - staveElement.setPlacement(placedStave); - // Add to the layer element - layerElement.add(staveElement); - } - - // Place the support cylinder per layer - buildSupportCylinder(oddd, layerVolume, x_layer, layerR); - - // Cleanup the templates - // dd4hep::detail::destroyHandle(staveElementTemplate); - // dd4hep::detail::destroyHandle(module.second); - - // Place the layer with appropriate Acts::Extension - // Configure the ACTS extension - Acts::ActsExtension* layerExtension = new Acts::ActsExtension(); - layerExtension->addType("active cylinder", "layer"); - Acts::xml2CylinderProtoMaterial(x_layer, *layerExtension); - layerElement.addExtension<Acts::ActsExtension>(layerExtension); - - PlacedVolume placedLayer = barrelVolume.placeVolume(layerVolume); - placedLayer.addPhysVolID("layer", layerNum); - - // Assign layer DetElement to layer volume - layerElement.setPlacement(placedLayer); - } - - // Place the additional support cylinders per detector - buildSupportCylinder(oddd, barrelVolume, x_det, layerR); - - if (x_det.hasChild(_Unicode(services))) { - // Grab the services - xml_comp_t x_services = x_det.child(_Unicode(services)); - if (x_services.hasChild(_Unicode(cable_routing))) { - xml_comp_t x_cable_routing = x_services.child(_Unicode(cable_routing)); - buildBarrelRouting(oddd, barrelVolume, x_cable_routing, layerR); - } - if (x_services.hasChild(_Unicode(cooling_routing))) { - xml_comp_t x_cooling_routing - = x_services.child(_Unicode(cooling_routing)); - buildBarrelRouting(oddd, barrelVolume, x_cooling_routing, layerR); - } - } - - // Place Volume - Volume motherVolume = oddd.pickMotherVolume(barrelDetector); - Position translation(0., 0., x_det_dim.z()); - PlacedVolume placedBarrel - = motherVolume.placeVolume(barrelVolume, translation); - // "system" is hard coded in the DD4Hep::VolumeManager - placedBarrel.addPhysVolID("system", barrelDetector.id()); - barrelDetector.setPlacement(placedBarrel); - - // And return the detector element - return barrelDetector; -} - -DECLARE_DETELEMENT(ODDPixelBarrel, create_element) diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelEndcap_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelEndcap_geo.cpp deleted file mode 100644 index bf28efc391eb51f887296f278ac29affb1feea72..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDPixelEndcap_geo.cpp +++ /dev/null @@ -1,224 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2019 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#include "Acts/Plugins/DD4hep/ActsExtension.hpp" -#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" -#include "DD4hep/DetFactoryHelper.h" -#include "ODDModuleHelper.hpp" -#include "ODDServiceHelper.hpp" - -using namespace std; -using namespace dd4hep; - -static Ref_t -create_element(Detector& oddd, xml_h xml, SensitiveDetector sens) -{ - - xml_det_t x_det = xml; - string detName = x_det.nameStr(); - - // Make DetElement - DetElement endcapDetector(detName, x_det.id()); - - // Add Extension to DetElement for the RecoGeometry - Acts::ActsExtension* endcapExtension = new Acts::ActsExtension(); - endcapExtension->addType("endcap", "detector"); - endcapDetector.addExtension<Acts::ActsExtension>(endcapExtension); - - // Make Volume - dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); - string endcapShapeName = x_det_dim.nameStr(); - - Tube endcapShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); - Volume endcapVolume(detName, endcapShape, oddd.air()); - endcapVolume.setVisAttributes(oddd, x_det.visStr()); - - // Place Volume - Volume motherVolume = oddd.pickMotherVolume(endcapDetector); - Position translation(0., 0., x_det_dim.z()); - PlacedVolume placedEndcap - = motherVolume.placeVolume(endcapVolume, translation); - - // Create the module components - xml_comp_t x_module = x_det.child(_U(module)); - double ylength = 0.; - auto module = assembleRectangularModule(oddd, sens, x_module, ylength); - - Assembly diskAssembly("disk"); - - // DetElement tree - DetElement diskElementTemplate("DiskElementTemplate", 0); - - // Loop over the rings to create a template disk - size_t ringNum = 0; - for (xml_coll_t ring(xml, _U(ring)); ring; ++ring, ++ringNum) { - - // Get the ring - xml_comp_t x_ring = ring; - - // The ring name - string ringName = _toString((int)ringNum, "ring%d"); - Assembly ringAssembly(ringName); - ringAssembly.setVisAttributes(oddd, x_ring.visStr()); - - // DetElement tree - DetElement ringElement(ringName, ringNum); - - double r = x_ring.r(); - double phi0 = x_ring.phi0(); - unsigned int nModules = x_ring.nphi(); - double zgap = x_ring.gap(); - double phiStep = 2. * M_PI / nModules; - - // Loop over modules - for (unsigned int modNum = 0; modNum < nModules; ++modNum) { - // The module name - string moduleName = _toString((int)modNum, "module%d"); - bool odd = bool(modNum % 2); - // Position it - double phi = phi0 + modNum * phiStep; - double z = odd ? -zgap : zgap; - Position trans(r * cos(phi), r * sin(phi), z); - // Place Module Box Volumes, flip if necessary - double flip = x_det_dim.z() < 0. ? M_PI : 0.; - if (ringNum != 0) { flip += M_PI; } - PlacedVolume placedModule = ringAssembly.placeVolume( - module.first, - Transform3D(RotationZ(phi + 1.5 * M_PI) * RotationY(flip), trans)); - placedModule.addPhysVolID("module", modNum); - // Clone the detector element - auto moduleElement = module.second.clone(moduleName, modNum); - moduleElement.setPlacement(placedModule); - // Assign it as child to the stave template - ringElement.add(moduleElement); - } - - // Place Ring assembly into disk - PlacedVolume placedRing = diskAssembly.placeVolume( - ringAssembly, Position(0., 0., x_ring.z_offset())); - placedRing.addPhysVolID("ring", ringNum); - ringElement.setPlacement(placedRing); - // Add it to the Disk element template - diskElementTemplate.add(ringElement); - } - - xml_comp_t x_support = x_det.child(_Unicode(ring_support)); - // The support shape - Tube supportShape(x_support.rmin(), x_support.rmax(), x_support.dz()); - Volume supportVolume( - "DiskSupport", supportShape, oddd.material(x_support.materialStr())); - supportVolume.setVisAttributes(oddd, x_support.visStr()); - diskAssembly.placeVolume(supportVolume); - - // Cooling rings - buildCoolingRings(oddd, diskAssembly, x_det); - - // Loop over the layers and place the disk - size_t layNum = 0; - // Remember the layers for the service routing - std::vector<double> endcapZ; - for (xml_coll_t lay(xml, _U(layer)); lay; ++lay, ++layNum) { - // Get the layer - xml_comp_t x_layer = lay; - - // The Layer envelope volume - string layerName = detName + std::to_string(layNum); - Volume layerVolume(layerName, - Tube(x_layer.rmin(), x_layer.rmax(), x_layer.dz()), - oddd.air()); - - layerVolume.setVisAttributes(oddd, x_layer.visStr()); - - string diskElName = _toString((int)layNum, "disk%d"); - - // The DetElement tree - DetElement layerElement(layerName, layNum); - auto diskElement = diskElementTemplate.clone(diskElName, layNum); - - // Place the disk into the layer - PlacedVolume placedDisk = layerVolume.placeVolume(diskAssembly); - diskElement.setPlacement(placedDisk); - layerElement.add(diskElement); - - // Place Ring assembly into disk - double zeff = x_layer.z_offset() - x_det_dim.z(); - endcapZ.push_back(zeff); - - PlacedVolume placedLayer - = endcapVolume.placeVolume(layerVolume, Position(0., 0., zeff)); - placedLayer.addPhysVolID("layer", layNum); - - // Place the layer with appropriate Acts::Extension - // Configure the ACTS extension - Acts::ActsExtension* layerExtension = new Acts::ActsExtension(); - layerExtension->addType("sensitive disk", "layer"); - layerElement.addExtension<Acts::ActsExtension>(layerExtension); - Acts::xml2DiscProtoMaterial(x_layer, *layerExtension); - // Finish up the DetElement tree - layerElement.setPlacement(placedLayer); - endcapDetector.add(layerElement); - } - - // Close up the detector - if (x_det.hasChild(_U(disk))) { - - // Endplate disk - xml_comp_t x_endplate = x_det.child(_U(disk)); - - // The Shape and Volume - Tube endplateShape(x_endplate.rmin(), x_endplate.rmax(), x_endplate.dz()); - Volume endplateVolume( - "Endplate", endplateShape, oddd.material(x_endplate.materialStr())); - endplateVolume.setVisAttributes(oddd, x_endplate.visStr()); - - double zeff = x_endplate.z_offset() - x_det_dim.z(); - endcapZ.push_back(zeff); - PlacedVolume placedEndplate - = endcapVolume.placeVolume(endplateVolume, Position(0., 0., zeff)); - - DetElement endplateElement("Endplate", 0); - - // Place the layer with appropriate Acts::Extension - // Configure the ACTS extension - Acts::ActsExtension* endplateExtension = new Acts::ActsExtension(); - endplateExtension->addType("passive disk", "layer"); - endplateElement.addExtension<Acts::ActsExtension>(endplateExtension); - Acts::xml2DiscProtoMaterial(x_endplate, *endplateExtension); - - // Finish up the DetElement tree - endplateElement.setPlacement(placedEndplate); - endcapDetector.add(endplateElement); - } - - if (x_det.hasChild(_Unicode(services))) { - // Grab the services - xml_comp_t x_services = x_det.child(_Unicode(services)); - if (x_services.hasChild(_Unicode(cable_routing))) { - xml_comp_t x_cable_routing = x_services.child(_Unicode(cable_routing)); - buildEndcapRouting(oddd, endcapVolume, x_cable_routing, endcapZ); - } - if (x_services.hasChild(_Unicode(cooling_routing))) { - xml_comp_t x_cooling_routing - = x_services.child(_Unicode(cooling_routing)); - buildEndcapRouting(oddd, endcapVolume, x_cooling_routing, endcapZ); - } - } - - // Place the additional support cylinders per detector - std::vector<double> layerR; - buildSupportCylinder(oddd, endcapVolume, x_det, layerR); - - // "system" is hard coded in the DD4Hep::VolumeManager - placedEndcap.addPhysVolID("system", endcapDetector.id()); - endcapDetector.setPlacement(placedEndcap); - - // And return it - return endcapDetector; -} - -DECLARE_DETELEMENT(ODDPixelEndcap, create_element) diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDServiceHelper.hpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDServiceHelper.hpp deleted file mode 100644 index c32946071f47f53662c4a42268cb171918c947a1..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDServiceHelper.hpp +++ /dev/null @@ -1,248 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2019 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#pragma once - -#include "DD4hep/DetFactoryHelper.h" - -using namespace std; -using namespace dd4hep; - -/// Helper method to build service routing for the Barrel type -/// -/// @tparam volume_t the Type of volume (Volume, Assembly) -/// -/// @param odd the top level detector -/// @param barrelVolume the volume to put the routing on -/// @param x_routing the xml description of the routing -/// @param layerR the layer radii to connect -template <typename volume_t> -void -buildBarrelRouting(Detector& oddd, - volume_t& barrelVolume, - const xml_comp_t& x_routing, - const std::vector<double>& layerR) -{ - - // Grab the cables & route them outwards - unsigned int nphi = x_routing.nphi(); - - double phiStep = 2 * M_PI / nphi; - double phi0 = x_routing.phi0(); - double rmin = x_routing.rmin(); - double rmax = x_routing.rmax(); - double n = x_routing.number(); - - for (int side = -1; side < 2; side += 2) { - // Loop over the layer routings - for (unsigned int ib = 1; ib < layerR.size(); ++ib) { - for (unsigned int iphi = 0; iphi < nphi; ++iphi) { - // Calculate the phi - double phi = phi0 + iphi * phiStep; - - // The layer position - double gap = x_routing.gap(); - double clength = layerR[ib] - layerR[ib - 1] - 2. * gap; - double rpos = 0.5 * (layerR[ib] + layerR[ib - 1]); - double xpos = rpos * cos(phi); - double ypos = rpos * sin(phi); - double zpos = side * x_routing.z_offset(); - - Assembly cableboxAssembly("CableBox"); - if (x_routing.hasChild(_U(box))) { - // The box plate for the cables - xml_comp_t x_box = x_routing.child(_U(box)); - Box box(x_box.dz(), n * ib * rmax, 0.5 * clength); - Volume boxVolume( - "CableBand", box, oddd.material(x_routing.materialStr())); - boxVolume.setVisAttributes(oddd, x_box.visStr()); - - PlacedVolume pacedBox = cableboxAssembly.placeVolume( - boxVolume, Position(side * (rmax + x_box.dz()), 0., 0.)); - } - - Tube cable(rmin, rmax, 0.5 * clength); - Volume cableVolume( - "Cable", cable, oddd.material(x_routing.materialStr())); - cableVolume.setVisAttributes(oddd, x_routing.visStr()); - - for (unsigned int icable = 0; icable < n * ib; ++icable) { - - // Place the pipe in the stave - PlacedVolume placedCable = cableboxAssembly.placeVolume( - cableVolume, Position(0., (-n * ib + 1 + 2 * icable) * rmax, 0.)); - } - // Place the pipe in the stave - PlacedVolume placedCableBox = barrelVolume.placeVolume( - cableboxAssembly, - Transform3D(RotationZ(phi) * RotationY(0.5 * M_PI), - Position(xpos, ypos, zpos))); - } - } - } -} - -/// Helper method to build service routing for the Endcap type -/// -/// @tparam volume_t the Type of volume (Volume, Assembly) -/// -/// @param odd the top level detector -/// @param endcapVolume the volume to put the routing on -/// @param x_routing the xml description of the routing -/// @param endcapZ the layer z positions to connect -template <typename volume_t> -void -buildEndcapRouting(Detector& oddd, - volume_t& endcapVolume, - const xml_comp_t& x_routing, - const std::vector<double>& endcapZ) -{ - - // Grab the cables & route them outwards - unsigned int nphi = x_routing.nphi(); - - double phiStep = 2 * M_PI / nphi; - double phi0 = x_routing.phi0(); - double rmin = x_routing.rmin(); - double rmax = x_routing.rmax(); - double r = x_routing.r(); - double n = x_routing.number(); - - // Loop over the layer routings - for (unsigned int iec = 1; iec < endcapZ.size(); ++iec) { - for (unsigned int iphi = 0; iphi < nphi; ++iphi) { - // Calculate the phi - double phi = phi0 + iphi * phiStep; - - // The layer position - double gap = x_routing.gap(); - double clength = std::abs(endcapZ[iec] - endcapZ[iec - 1]) - 2. * gap; - double xpos = r * cos(phi); - double ypos = r * sin(phi); - double zpos = 0.5 * (endcapZ[iec] + endcapZ[iec - 1]); - - Assembly cableboxAssembly("CableBox"); - if (x_routing.hasChild(_U(box))) { - // The box plate for the cables - xml_comp_t x_box = x_routing.child(_U(box)); - Box box(x_box.dz(), n * iec * rmax, 0.5 * clength); - Volume boxVolume( - "CableBand", box, oddd.material(x_routing.materialStr())); - boxVolume.setVisAttributes(oddd, x_box.visStr()); - - PlacedVolume pacedBox = cableboxAssembly.placeVolume( - boxVolume, Position(rmax + x_box.dz(), 0., 0.)); - } - - Tube cable(rmin, rmax, 0.5 * clength); - Volume cableVolume( - "Cable", cable, oddd.material(x_routing.materialStr())); - cableVolume.setVisAttributes(oddd, x_routing.visStr()); - - for (unsigned int icable = 0; icable < n * iec; ++icable) { - - // Place the pipe in the stave - PlacedVolume placedCable = cableboxAssembly.placeVolume( - cableVolume, Position(0., (-n * iec + 1 + 2 * icable) * rmax, 0.)); - } - // Place the pipe in the stave - PlacedVolume placedCableBox = endcapVolume.placeVolume( - cableboxAssembly, - Transform3D(RotationZ(+phi), Position(xpos, ypos, zpos))); - } - } -} - -/// Helper method to build a cyoindrical like passive structure -/// -/// @tparam volume_t the Type of volume (Volume, Assembly) -/// -/// @param odd the top level detector -/// @param endcapVolume the volume to put the routing on -/// @param x_mother_comp the xml description of teh mother component -/// @param layerR the layer radii contaienr to add the new one -template <typename volume_t> -void -buildSupportCylinder(Detector& oddd, - volume_t& motherVolume, - const xml_comp_t& x_mother_comp, - std::vector<double>& layerR) -{ - size_t supportNum = 0; - for (xml_coll_t sup(x_mother_comp, _U(support)); sup; ++sup, ++supportNum) { - - xml_comp_t x_support = sup; - // Create the volume of the support structure - string supportName = _toString((int)supportNum, "SupportCylinder%d"); - - // Remember the layer radius if it is needed for operation - if (x_support.hasChild(_Unicode(connector))) { - layerR.push_back(0.5 * (x_support.rmin() + x_support.rmax())); - } - // If nz is not set to 0, build 2 symmetric ones - for (int side = -1; side < x_support.nsides(); side += 2) { - // Create the support volume - Volume supportVolume( - supportName, - Tube(x_support.rmin(), x_support.rmax(), x_support.dz()), - oddd.material(x_support.materialStr())); - supportVolume.setVisAttributes(oddd, x_support.visStr()); - // Place the support structure - PlacedVolume placedSupport = motherVolume.placeVolume( - supportVolume, Position(0., 0., side * x_support.z_offset())); - } - } -} - -/// Helper method to build a cyoindrical like passive structure -/// -/// @tparam volume_t the Type of volume (Volume, Assembly) -/// -/// @param odd the top level detector -/// @param endcapVolume the volume to put the routing on -/// @param x_mother_comp the xml description of teh mother component -/// @param layerR the layer radii contaienr to add the new one -template <typename volume_t> -void -buildCoolingRings(Detector& oddd, - volume_t& motherVolume, - const xml_comp_t& x_mother_comp) -{ - size_t cringNum = 0; - for (xml_coll_t cring(x_mother_comp, _Unicode(cooling_ring)); cring; - ++cring, ++cringNum) { - - xml_comp_t x_cooling_ring = cring; - - double r = x_cooling_ring.r(); - double nPhi = x_cooling_ring.nphi(); - double phiStep = 2. * M_PI / nPhi; - double zpos = x_cooling_ring.z_offset(); - double rmin = x_cooling_ring.rmin(); - double rmax = x_cooling_ring.rmax(); - double dz = 2 * (r * M_PI / nPhi - x_cooling_ring.gap()); - - // Create the segments around the ring - for (unsigned int iphi = 0; iphi < nPhi; ++iphi) { - Volume coolingSegement( - "CoolingRingSegment", - Tube(x_cooling_ring.rmin(), x_cooling_ring.rmax(), dz), - oddd.material(x_cooling_ring.materialStr())); - coolingSegement.setVisAttributes(oddd, x_cooling_ring.visStr()); - - // position & orientation - double phi = iphi * phiStep; - Position segementPos(r * cos(phi), r * sin(phi), zpos); - // Place the support structure - PlacedVolume placedSegment = motherVolume.placeVolume( - coolingSegement, - Transform3D(RotationY(0.5 * M_PI) * RotationX(0.5 * M_PI - phi), - segementPos)); - } - } -} \ No newline at end of file diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripBarrel_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripBarrel_geo.cpp deleted file mode 100644 index 6c283902d3a54d3a15a86e54661f3b20d54c90e1..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripBarrel_geo.cpp +++ /dev/null @@ -1,203 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2019 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#include "Acts/Plugins/DD4hep/ActsExtension.hpp" -#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" -#include "DD4hep/DetFactoryHelper.h" -#include "ODDModuleHelper.hpp" -#include "ODDServiceHelper.hpp" - -using namespace std; -using namespace dd4hep; - -static Ref_t -create_element(Detector& oddd, xml_h xml, SensitiveDetector sens) -{ - - xml_det_t x_det = xml; - string detName = x_det.nameStr(); - - // Make DetElement - DetElement barrelDetector(detName, x_det.id()); - - // Add Extension to DetElement for the RecoGeometry - Acts::ActsExtension* barrelExtension = new Acts::ActsExtension(); - barrelExtension->addType("barrel", "detector"); - barrelDetector.addExtension<Acts::ActsExtension>(barrelExtension); - - // Make Volume - dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); - string barrelShapeName = x_det_dim.nameStr(); - - Tube barrelShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); - Volume barrelVolume(detName, barrelShape, oddd.air()); - barrelVolume.setVisAttributes(oddd, x_det.visStr()); - - // Create the stave volume and DetElement tree - xml_comp_t x_stave = x_det.child(_U(stave)); - Assembly staveAssembly("stave"); - // Visualization - staveAssembly.setVisAttributes(oddd, x_stave.visStr()); - // DetElement tree - DetElement staveElementTemplate("StaveElementTemplate", 0); - - // Build a template module for the Barrel - xml_comp_t x_module = x_det.child(_U(module)); - double length = 0.; - auto module = assembleRectangularModule(oddd, sens, x_module, length); - - // Place the modules into the stave - double gap = x_stave.gap(); - unsigned int nModules = x_stave.nmodules(); - double ystep = length + gap; - double ymin = (nModules * 0.5 - 0.5) * length; - double staveHlength = ymin + 0.5 * length; - - // Loop over the modules and place them in the stave - for (unsigned int moduleNum = 0; moduleNum < nModules; ++moduleNum) { - - double positionY = -ymin + moduleNum * ystep; - // Place the cable bundle, one per stave - if (x_stave.hasChild(_U(eltube))) { - // Retrieve cable parameters - xml_comp_t x_cable = x_stave.child(_U(eltube)); - - double rMin = x_cable.rmin(); - double rMax = x_cable.rmax(); - - // For an odd number of modules this will create an asymmetric powering - // (as it should) - double rStep = (rMax - rMin) / (0.5 * nModules); - double rCable = rMin + abs(moduleNum - 0.5 * nModules) * rStep; - - Tube cable(0., rCable, 0.495 * ystep); - // Create the scable volume - Volume cableVolume("Cable", cable, oddd.material(x_cable.materialStr())); - cableVolume.setVisAttributes(oddd, x_cable.visStr()); - - // Place the pipe in the stave - PlacedVolume placedCable = staveAssembly.placeVolume( - cableVolume, - Transform3D( - RotationX(0.5 * M_PI), - Position(x_cable.x_offset(), positionY, x_cable.z_offset()))); - } - - // Place them along local y - PlacedVolume placedModule - = staveAssembly.placeVolume(module.first, Position(0., positionY, 0.)); - placedModule.addPhysVolID("module", moduleNum); - - string moduleName = _toString((int)moduleNum, "module%d"); - // Clone the detector element - auto moduleElement = module.second.clone(moduleName, moduleNum); - moduleElement.setPlacement(placedModule); - // Assign it as child to the stave template - staveElementTemplate.add(moduleElement); - } - - // Remember the layer radii - std::vector<double> layerR; - - // Loop over the layers to build staves - size_t layerNum = 0; - for (xml_coll_t lay(xml, _U(layer)); lay; ++lay, ++layerNum) { - xml_comp_t x_layer = lay; - - string layerName = detName + std::to_string(layerNum); - // The Module envelope volume - Volume layerVolume( - layerName, - Tube(x_layer.rmin(), x_layer.rmax(), staveHlength + x_layer.outer_z()), - oddd.air()); - // Visualization - layerVolume.setVisAttributes(oddd, x_layer.visStr()); - - // The DetElement tree, keep it flat - DetElement layerElement(barrelDetector, layerName, layerNum); - - // Place the staves in the layer - unsigned int nStaves = x_layer.nphi(); - double phiStep = 2. * M_PI / nStaves; - double phiTilt = x_layer.phi_tilt(); - double phi0 = x_layer.phi0(); - double r = x_layer.r(); - layerR.push_back(r); - - // Loop over the staves and place them - for (unsigned int staveNum = 0; staveNum < nStaves; ++staveNum) { - string staveName = _toString((int)staveNum, "stave%d"); - // position of the stave - double phi = phi0 + staveNum * phiStep; - double x = r * cos(phi); - double y = r * sin(phi); - // Now place the stave - PlacedVolume placedStave = layerVolume.placeVolume( - staveAssembly, - Transform3D(RotationY(0.5 * M_PI) * RotationZ(0.5 * M_PI) - * RotationY(phi + phiTilt), - Position(x, y, 0.))); - placedStave.addPhysVolID("stave", staveNum); - - // Clone the stave element from the template - DetElement staveElement = staveElementTemplate.clone(staveName, staveNum); - staveElement.setPlacement(placedStave); - // Add to the layer element - layerElement.add(staveElement); - } - - // Place the support cylinder - std::vector<double> dummyR; - buildSupportCylinder(oddd, barrelVolume, x_layer, dummyR); - - // Place the layer with appropriate Acts::Extension - // Configure the ACTS extension - Acts::ActsExtension* layerExtension = new Acts::ActsExtension(); - layerExtension->addType("sensitive cylinder", "layer"); - layerElement.addExtension<Acts::ActsExtension>(layerExtension); - Acts::xml2CylinderProtoMaterial(x_layer, *layerExtension); - PlacedVolume placedLayer = barrelVolume.placeVolume(layerVolume); - placedLayer.addPhysVolID("layer", layerNum); - - // Assign layer DetElement to layer volume - layerElement.setPlacement(placedLayer); - - } // loop over layers - - // Place the support rails - buildSupportCylinder(oddd, barrelVolume, x_det, layerR); - - // Route the services out on both sides - if (x_det.hasChild(_Unicode(services))) { - // Grab the services - xml_comp_t x_services = x_det.child(_Unicode(services)); - if (x_services.hasChild(_Unicode(cable_routing))) { - xml_comp_t x_cable_routing = x_services.child(_Unicode(cable_routing)); - buildBarrelRouting(oddd, barrelVolume, x_cable_routing, layerR); - } - if (x_services.hasChild(_Unicode(cooling_routing))) { - xml_comp_t x_cooling_routing - = x_services.child(_Unicode(cooling_routing)); - buildBarrelRouting(oddd, barrelVolume, x_cooling_routing, layerR); - } - } - - // Place Volume - Volume motherVolume = oddd.pickMotherVolume(barrelDetector); - Position translation(0., 0., x_det_dim.z()); - PlacedVolume placedBarrel - = motherVolume.placeVolume(barrelVolume, translation); - // "system" is hard coded in the DD4Hep::VolumeManager - placedBarrel.addPhysVolID("system", barrelDetector.id()); - barrelDetector.setPlacement(placedBarrel); - - // And return it - return barrelDetector; -} - -DECLARE_DETELEMENT(ODDStripBarrel, create_element) diff --git a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripEndcap_geo.cpp b/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripEndcap_geo.cpp deleted file mode 100644 index 8a2b2bbd30cb19ab4c82af9cb40b4567c1e021b8..0000000000000000000000000000000000000000 --- a/Detectors/DD4hepDetector/src/OpenDataDetector/ODDStripEndcap_geo.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// This file is part of the Acts project. -// -// Copyright (C) 2019 CERN for the benefit of the Acts project -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -#include "Acts/Plugins/DD4hep/ActsExtension.hpp" -#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" -#include "DD4hep/DetFactoryHelper.h" -#include "ODDModuleHelper.hpp" -#include "ODDServiceHelper.hpp" - -using namespace std; -using namespace dd4hep; - -static Ref_t -create_element(Detector& oddd, xml_h xml, SensitiveDetector sens) -{ - - xml_det_t x_det = xml; - string detName = x_det.nameStr(); - - // Make DetElement - DetElement endcapDetector(detName, x_det.id()); - - // Add Extension to DetElement for the RecoGeometry - Acts::ActsExtension* endcapExtension = new Acts::ActsExtension(); - endcapExtension->addType("endcap", "detector"); - endcapDetector.addExtension<Acts::ActsExtension>(endcapExtension); - - // Make Volume - dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); - string endcapShapeName = x_det_dim.nameStr(); - - Tube endcapShape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); - Volume endcapVolume(detName, endcapShape, oddd.air()); - endcapVolume.setVisAttributes(oddd, x_det.visStr()); - - Assembly diskAssembly("Disk"); - - // DetElement tree - DetElement diskElementTemplate("DiskElementTemplate", 0); - - // build the ring templates - size_t ringNum = 0; - for (xml_coll_t ring(x_det, _U(ring)); ring; ++ring, ++ringNum) { - - xml_comp_t x_ring = ring; - - string ringName = "Ring" + std::to_string(ringNum); - Assembly ringAssembly(ringName); - - // DetElement tree - DetElement ringElement(ringName, ringNum); - - if (x_ring.hasChild(_U(module))) { - - xml_comp_t x_module = x_ring.child(_U(module)); - auto module = assembleTrapezoidalModule(oddd, sens, x_module); - - // place the modules - unsigned int nPhi = x_ring.nphi(); - double phiStep = 2 * M_PI / nPhi; - double phi0 = x_ring.phi0(); - double r = x_ring.r(); - double zgap = x_ring.gap(); - bool reflect = x_ring.reflect(); - - for (unsigned int modNum = 0; modNum < nPhi; ++modNum) { - // The module name - string moduleName = _toString((int)modNum, "module%d"); - - bool odd = bool(modNum % 2); - - // Position parameters - double phi = phi0 + modNum * phiStep; - double x = r * cos(phi); - double y = r * sin(phi); - double z = odd ? -zgap : zgap; - - // Place Module Box Volumes, flip if necessary - Position trans(x, y, z); - double flip = odd ? M_PI : 0.; - - double angX = 0.5 * M_PI + flip; - double angY = odd ? 0.5 * M_PI - phi : 0.5 * M_PI + phi; - - PlacedVolume placedModule = ringAssembly.placeVolume( - module.first, - Transform3D( - RotationX(angX) * RotationY(angY), - trans)); // RotationZ(phi + 1.5 * M_PI) * RotationY(flip) - placedModule.addPhysVolID("module", modNum); - // Clone the detector element - auto moduleElement = module.second.clone(moduleName, modNum); - moduleElement.setPlacement(placedModule); - // Assign it as child to the stave template - ringElement.add(moduleElement); - } - - // Now add the ring detector Element to the disk - diskElementTemplate.add(ringElement); - - size_t supportNum = 0; - for (xml_coll_t sup(x_ring, _U(support)); sup; ++sup, ++supportNum) { - xml_comp_t x_support = sup; - // Create the volume of the support structure - string supportName = _toString((int)supportNum, "RingSupport%d"); - Volume supportVolume( - supportName, - Tube(x_support.rmin(), x_support.rmax(), x_support.dz()), - oddd.material(x_support.materialStr())); - supportVolume.setVisAttributes(oddd, x_support.visStr()); - // Place the support structure - PlacedVolume placedSupport = ringAssembly.placeVolume( - supportVolume, Position(0., 0., x_support.z_offset())); - } - - // Cooling rings - buildCoolingRings(oddd, ringAssembly, x_ring); - - PlacedVolume placedRing = diskAssembly.placeVolume( - ringAssembly, Position(0., 0., x_ring.z_offset())); - - placedRing.addPhysVolID("ring", ringNum); - ringElement.setPlacement(placedRing); - } - } - - // Loop over the layers and place the disk, remember the z positions - std::vector<double> endcapZ; - size_t layNum = 0; - for (xml_coll_t lay(xml, _U(layer)); lay; ++lay, ++layNum) { - - xml_comp_t x_layer = lay; - // The Layer envelope volume - string layerName = detName + std::to_string(layNum); - Volume layerVolume(layerName, - Tube(x_layer.rmin(), x_layer.rmax(), x_layer.dz()), - oddd.air()); - - layerVolume.setVisAttributes(oddd, x_layer.visStr()); - - string diskElName = _toString((int)layNum, "disk%d"); - - // The DetElement tree - DetElement layerElement(layerName, layNum); - auto diskElement = diskElementTemplate.clone(diskElName, layNum); - - // Place the disk into the layer - PlacedVolume placedDisk = layerVolume.placeVolume(diskAssembly); - diskElement.setPlacement(placedDisk); - layerElement.add(diskElement); - - // Place Ring assembly into disk - double zeff = x_layer.z_offset() - x_det_dim.z(); - PlacedVolume placedLayer - = endcapVolume.placeVolume(layerVolume, Position(0., 0., zeff)); - placedLayer.addPhysVolID("layer", layNum); - endcapZ.push_back(zeff); - - // Place the layer with appropriate Acts::Extension - // Configure the ACTS extension - Acts::ActsExtension* layerExtension = new Acts::ActsExtension(); - layerExtension->addType("sensitive disk", "layer"); - layerElement.addExtension<Acts::ActsExtension>(layerExtension); - Acts::xml2DiscProtoMaterial(x_layer, *layerExtension); - // Finish up the DetElement tree - layerElement.setPlacement(placedLayer); - endcapDetector.add(layerElement); - } - - if (x_det.hasChild(_Unicode(services))) { - // Grab the services - cables - xml_comp_t x_services = x_det.child(_Unicode(services)); - for (xml_coll_t crout(x_services, _Unicode(cable_routing)); crout; - ++crout) { - xml_comp_t x_cable_routing = crout; - buildEndcapRouting(oddd, endcapVolume, x_cable_routing, endcapZ); - } - // Grab for services - cooling - for (xml_coll_t crout(x_services, _Unicode(cooling_routing)); crout; - ++crout) { - xml_comp_t x_cooling_routing = crout; - buildEndcapRouting(oddd, endcapVolume, x_cooling_routing, endcapZ); - } - } - - // Place Volume - Volume motherVolume = oddd.pickMotherVolume(endcapDetector); - Position translation(0., 0., x_det_dim.z()); - PlacedVolume placedEndcap - = motherVolume.placeVolume(endcapVolume, translation); - // "system" is hard coded in the DD4Hep::VolumeManager - placedEndcap.addPhysVolID("system", endcapDetector.id()); - endcapDetector.setPlacement(placedEndcap); - - // And return it - return endcapDetector; -} - -DECLARE_DETELEMENT(ODDStripEndcap, create_element) diff --git a/Detectors/DD4hepDetector/src/TestTracker/SimpleLayeredCylinder_geo.cpp b/Detectors/DD4hepDetector/src/SimpleLayeredCylinder_geo.cpp similarity index 87% rename from Detectors/DD4hepDetector/src/TestTracker/SimpleLayeredCylinder_geo.cpp rename to Detectors/DD4hepDetector/src/SimpleLayeredCylinder_geo.cpp index 17a9b8c83524a63164241fba2efe208dd03a52be..a1a07575cef6eb517b1e685b8328b4faeced962a 100644 --- a/Detectors/DD4hepDetector/src/TestTracker/SimpleLayeredCylinder_geo.cpp +++ b/Detectors/DD4hepDetector/src/SimpleLayeredCylinder_geo.cpp @@ -7,11 +7,11 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" #include "DD4hep/DetFactoryHelper.h" #include "XML/XMLElements.h" namespace det { - /** Factory for a shape from multiple cylinders. Meant for material approximations. Expected xml structure: @@ -23,7 +23,6 @@ Expected xml structure: </detector> @author: Joschka Lingemann */ - static dd4hep::Ref_t createSimpleLayeredCylinder(dd4hep::Detector& lcdd, dd4hep::xml::Handle_t xmlElement, @@ -34,9 +33,10 @@ createSimpleLayeredCylinder(dd4hep::Detector& lcdd, std::string name = xmlDet.nameStr(); dd4hep::DetElement detElement(name, xmlDet.id()); // add Extension to Detlement for the RecoGeometry - Acts::ActsExtension* detvolume = new Acts::ActsExtension(); - detvolume->addType("barrel", "detector"); - detElement.addExtension<Acts::ActsExtension>(detvolume); + Acts::ActsExtension::Config volConfig; + volConfig.isBarrel = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + detElement.addExtension<Acts::IActsExtension>(detvolume); // Create volume dd4hep::Volume experimentalHall = lcdd.pickMotherVolume(detElement); xml_comp_t dimensions(xmlDet.dimensions()); @@ -66,9 +66,10 @@ createSimpleLayeredCylinder(dd4hep::Detector& lcdd, layerVolume.setSensitiveDetector(sensDet); } // Set Acts Extension - Acts::ActsExtension* detlayer = new Acts::ActsExtension(); - detlayer->addType("passive cylinder", "layer"); - lay_det.addExtension<Acts::ActsExtension>(detlayer); + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + lay_det.addExtension<Acts::IActsExtension>(detlayer); // place the layer into the mother volume with a possible translation dd4hep::Position transLayer(0., 0., layerDet.z_offset()); diff --git a/Detectors/DD4hepDetector/src/TKLayout/TKLayoutBarrel_geo.cpp b/Detectors/DD4hepDetector/src/TKLayoutBarrel_geo.cpp similarity index 89% rename from Detectors/DD4hepDetector/src/TKLayout/TKLayoutBarrel_geo.cpp rename to Detectors/DD4hepDetector/src/TKLayoutBarrel_geo.cpp index 2f74b9b3b51a07007b6155c48a9d4bdcd99e18a5..64d1c4e51003ef6eb1a68e09234860fd0b51eb66 100644 --- a/Detectors/DD4hepDetector/src/TKLayout/TKLayoutBarrel_geo.cpp +++ b/Detectors/DD4hepDetector/src/TKLayoutBarrel_geo.cpp @@ -7,6 +7,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" #include "DD4hep/DetFactoryHelper.h" using namespace std; @@ -25,9 +26,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) // Make DetElement DetElement cylinderVolume(det_name, x_det.id()); // add Extension to Detlement for the RecoGeometry - Acts::ActsExtension* detvolume = new Acts::ActsExtension(); - detvolume->addType("barrel", "detector"); - cylinderVolume.addExtension<Acts::ActsExtension>(detvolume); + Acts::ActsExtension::Config volConfig; + volConfig.isBarrel = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + cylinderVolume.addExtension<Acts::IActsExtension>(detvolume); // make Volume dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); Tube tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); @@ -82,9 +84,6 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) Position trans(radius * cos(phi), radius * sin(phi), k * dz); // Create the module DetElement DetElement mod_det(lay_det, module_name, module_num); - // Create and attach the extension for DD4Hep/Acts conversion - Acts::ActsExtension* moduleExtension = new Acts::ActsExtension(); - mod_det.addExtension<Acts::ActsExtension>(moduleExtension); // Set Sensitive Volmes sensitive if (x_module.isSensitive()) { mod_vol.setSensitiveDetector(sens); } // Place Module Box Volumes in layer @@ -103,9 +102,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) // set granularity of layer material mapping and where material should be // mapped // hand over modules to ACTS - Acts::ActsExtension* detlayer = new Acts::ActsExtension(); - detlayer->addType("sensitive cylinder", "layer"); - lay_det.addExtension<Acts::ActsExtension>(detlayer); + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + lay_det.addExtension<Acts::IActsExtension>(detlayer); // Place layer volume PlacedVolume placedLayer = tube_vol.placeVolume(layer_vol); placedLayer.addPhysVolID("layer", layer_num); diff --git a/Detectors/DD4hepDetector/src/TKLayout/TKLayoutEndcap_geo.cpp b/Detectors/DD4hepDetector/src/TKLayoutEndcap_geo.cpp similarity index 89% rename from Detectors/DD4hepDetector/src/TKLayout/TKLayoutEndcap_geo.cpp rename to Detectors/DD4hepDetector/src/TKLayoutEndcap_geo.cpp index b7c29db9736930fdf018ea2eca90931df30046e9..ce792ef585afa7401ccc8dd360da1e3dc110dd82 100644 --- a/Detectors/DD4hepDetector/src/TKLayout/TKLayoutEndcap_geo.cpp +++ b/Detectors/DD4hepDetector/src/TKLayoutEndcap_geo.cpp @@ -7,6 +7,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" #include "DD4hep/DetFactoryHelper.h" using namespace std; @@ -26,9 +27,10 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) // Make DetElement DetElement cylinderVolume(det_name, x_det.id()); // add Extension to Detlement for the RecoGeometry - Acts::ActsExtension* detvolume = new Acts::ActsExtension(); - detvolume->addType("endcap", "detector"); - cylinderVolume.addExtension<Acts::ActsExtension>(detvolume); + Acts::ActsExtension::Config volConfig; + volConfig.isEndcap = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + cylinderVolume.addExtension<Acts::IActsExtension>(detvolume); // make Volume dd4hep::xml::Dimension x_det_dim(x_det.dimensions()); Tube tube_shape(x_det_dim.rmin(), x_det_dim.rmax(), x_det_dim.dz()); @@ -82,9 +84,6 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) // Create the module DetElement DetElement mod_det( lay_det, module_name, repeat * module_num_num + module_num); - // Create and attach the extension for DD4Hep/Acts conversion - Acts::ActsExtension* moduleExtension = new Acts::ActsExtension(); - mod_det.addExtension<Acts::ActsExtension>(moduleExtension); // Set Sensitive Volmes sensitive if (x_module.isSensitive()) { mod_vol.setSensitiveDetector(sens); } // Place Module Box Volumes in layer @@ -104,10 +103,11 @@ create_element(Detector& lcdd, xml_h xml, SensitiveDetector sens) // set granularity of layer material mapping and where material should be // mapped // hand over modules to ACTS - Acts::ActsExtension* detlayer = new Acts::ActsExtension(); - detlayer->addType("axes", "definitions", "XZy"); - detlayer->addType("sensitive disk", "layer"); - lay_det.addExtension<Acts::ActsExtension>(detlayer); + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; + layConfig.axes = "XZy"; + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + lay_det.addExtension<Acts::IActsExtension>(detlayer); double layerZpos = x_layer.z(); // Placed Layer Volume Position layer_pos(0., 0., layerZpos); diff --git a/Detectors/DD4hepDetector/src/TestTracker/ZPlanarTracker_geo.cpp b/Detectors/DD4hepDetector/src/ZPlanarTracker_geo.cpp similarity index 93% rename from Detectors/DD4hepDetector/src/TestTracker/ZPlanarTracker_geo.cpp rename to Detectors/DD4hepDetector/src/ZPlanarTracker_geo.cpp index f6a3681e824a1442b292b262f085d2970620d8cd..5bfebaf99786f8fdbcae77a1bc23020bfae1e4c9 100644 --- a/Detectors/DD4hepDetector/src/TestTracker/ZPlanarTracker_geo.cpp +++ b/Detectors/DD4hepDetector/src/ZPlanarTracker_geo.cpp @@ -30,6 +30,7 @@ using namespace dd4hep; // using namespace DDSurfaces; #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/IActsExtension.hpp" #include "Acts/Utilities/Units.hpp" static Ref_t @@ -46,9 +47,10 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector sens) DetElement tracker(name, x_det.id()); // add Extension to Detlement for the RecoGeometry of ACTS - Acts::ActsExtension* detvolume = new Acts::ActsExtension(); - detvolume->addType("barrel", "detector"); - tracker.addExtension<Acts::ActsExtension>(detvolume); + Acts::ActsExtension::Config volConfig; + volConfig.isBarrel = true; + Acts::ActsExtension* detvolume = new Acts::ActsExtension(volConfig); + tracker.addExtension<Acts::IActsExtension>(detvolume); PlacedVolume pv; @@ -88,11 +90,13 @@ create_element(Detector& lcdd, xml_h e, SensitiveDetector sens) DetElement layerDE(tracker, _toString(layer_id, "layer_%d"), x_det.id()); // add Extension for translation to ACTS TrackingGeometry - Acts::ActsExtension* detlayer = new Acts::ActsExtension("zyx"); - detlayer->addValue(10. * Acts::units::_mm, "r", "envelope"); - detlayer->addValue(10. * Acts::units::_mm, "z", "envelope"); - detlayer->addType("sensitive plane", "layer"); - layerDE.addExtension<Acts::ActsExtension>(detlayer); + Acts::ActsExtension::Config layConfig; + layConfig.isLayer = true; + layConfig.axes = "zyx"; + layConfig.envelopeR = 10. * Acts::units::_mm; + layConfig.envelopeZ = 10. * Acts::units::_mm; + Acts::ActsExtension* detlayer = new Acts::ActsExtension(layConfig); + layerDE.addExtension<Acts::IActsExtension>(detlayer); pv = assembly.placeVolume(layer_assembly); diff --git a/Examples/MaterialMapping/src/ParticleRecordingExample.cpp b/Examples/MaterialMapping/src/ParticleRecordingExample.cpp index 8ef7ad355f91c698ad89659203dcaba9a72a87ad..753dc989e045f1259c4182c8ec1f402d7bf028be 100644 --- a/Examples/MaterialMapping/src/ParticleRecordingExample.cpp +++ b/Examples/MaterialMapping/src/ParticleRecordingExample.cpp @@ -7,6 +7,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. #include <string> +#include <fstream> #include <boost/program_options.hpp> #include "ACTFW/DD4hepDetector/DD4hepDetectorOptions.hpp" #include "ACTFW/DD4hepDetector/DD4hepGeometryService.hpp" @@ -33,7 +34,9 @@ namespace po = boost::program_options; -using PartRec = std::vector<std::vector<FW::Geant4::ParticleRecord>>; +using PartRec = FW::Geant4::Collection; +//~ using PartRec = std::map<int, std::vector<FW::Geant4::ParticleRecord>>; +//~ using PartRec = std::map<int, std::vector<FW::Data::SimVertex<FW::Data::SimParticle>>; using WriteIt = FW::WriterT<PartRec>; namespace FW @@ -54,10 +57,16 @@ public: /// @param cfg Configuration struct /// @param level Message level declaration ParticleRecordWriting(const Config& cfg, - Acts::Logging::Level level = Acts::Logging::INFO) : WriteIt(cfg.collection, "ParticleRecordWriter", level), m_cfg(cfg) {} + Acts::Logging::Level level = Acts::Logging::INFO) : WriteIt(cfg.collection, "ParticleRecordWriter", level), m_cfg(cfg) + { + ofs.open("geantOut.txt"); + } /// Virtual destructor - ~ParticleRecordWriting() override {} + ~ParticleRecordWriting() override + { + ofs.close(); + } /// End-of-run hook ProcessCode @@ -73,31 +82,75 @@ public: /// particles to be attached ProcessCode writeT(const AlgorithmContext& context, - const PartRec& vertices) final override + const PartRec& collection) final override { int eventNr = context.eventNumber; - std::cout << "evtNr: " << eventNr << std::endl; - for(const auto& evt : vertices) + std::cout << "Writing event " << eventNr << std::endl; + ofs << eventNr << " " << collection.pdg << " " << collection.momentum << " " << collection.phi << " " << -log(tan(collection.theta * 0.5)) << "\n"; + + std::set<std::string> procsElse; + for(const auto& part : collection.particles) { - std::cout << "New Track: " << std::endl; - for(const auto& p : evt) + //~ check the number of charged particles in the event, the type of particles, their energy spectrum, the angular distribution + if(part.second.back().volume == "No volume") + { + writeToFile(part.second.back()); + + std::set<std::string> procs; + for(const auto& p : part.second) + { + procs.insert(p.process); + } + for(auto it = procs.cbegin(); it != procs.cend(); it++) + ofs << " " << *it; + ofs << "\n"; + } + else { - //~ if(p.volume == "No volume") - std::cout << "TID: " << p.trackid << ",Parent: " << p.parentid << ", PID: " << p.pdg << - ", Position: (" << p.position[0] << ", " << p.position[1] << ", " << p.position[2] << - "), Momentum: (" << p.momentum[0] << ", " << p.momentum[1] << ", " << p.momentum[2] << "), Volume: " << p.volume << ", Process: " << p.process << std::endl; + for(const auto& p : part.second) + { + procsElse.insert(p.process); + } } + //~ std::cout << "TID: " << part.second.back().trackid << ",Parent: " << part.second.back().parentid << ", PID: " << part.second.back().pdg << + //~ ", Position: (" << part.second.back().position[0] << ", " << part.second.back().position[1] << ", " << part.second.back().position[2] << + //~ "), Momentum: (" << part.second.back().momentum[0] << ", " << part.second.back().momentum[1] << ", " << part.second.back().momentum[2] << "), Volume: " << part.second.back().volume << ", Process: " << part.second.back().process << std::endl; + } + if(procsElse.empty()) + ofs << "#\n"; + else + { + ofs << "999 "; + for(auto it = procsElse.cbegin(); it != procsElse.cend(); it++) + ofs << *it << " "; + ofs << "\n#\n"; } + return ProcessCode::SUCCESS; } private: Config m_cfg; ///< The config class + std::ofstream ofs; + + void + writeToFile(const FW::Geant4::ParticleRecord& p) + { + const double r = sqrt(p.momentum[0] * p.momentum[0] + p.momentum[1] * p.momentum[1] + p.momentum[2] * p.momentum[2]); + Acts::Vector3D dir; + dir << p.momentum[0] / r, p.momentum[1] / r, p.momentum[2] / r; + + const double theta = acos(dir.z()); + const double eta = -log(tan(theta * 0.5)); + + const double phi = atan2(dir.y(), dir.x()); + + ofs << p.pdg << " " << p.charge << " " << r << " " << phi << " " << eta; + } }; } -//~ FW::Sequencer void fatrasSequencerBuild(boost::program_options::variables_map& vm, DD4hepDetector& detector) { @@ -137,11 +190,9 @@ fatrasSequencerBuild(boost::program_options::variables_map& vm, DD4hepDetector& // (E) PATTERN RECOGNITION - //~ return fatrasSequencer; - //~ fatrasSequencer.run(); + fatrasSequencer.run(); } -//~ FW::Sequencer void g4SequencerBuild(boost::program_options::variables_map& vm) { @@ -199,8 +250,7 @@ g4SequencerBuild(boost::program_options::variables_map& vm) // Append the algorithm and run g4Sequencer.addAlgorithm(g4rAlgorithm); - //~ return g4Sequencer; - //~ g4Sequencer.run(); + g4Sequencer.run(); } int @@ -234,13 +284,8 @@ main(int argc, char* argv[]) } std::cout << "Building fatras sequencer" << std::endl; - //~ FW::Sequencer fatrasSequencer = fatrasSequencerBuild(vm, detector); fatrasSequencerBuild(vm, detector); std::cout << "Building g4 sequencer" << std::endl; - //~ FW::Sequencer g4Sequencer = g4SequencerBuild(vm); - g4SequencerBuild(vm); + //~ g4SequencerBuild(vm); std::cout << "Done" << std::endl; - - //~ fatrasSequencer.run(); - //~ g4Sequencer.run(); } \ No newline at end of file diff --git a/Plugins/Geant4/include/ACTFW/Plugins/Geant4/OREventAction.hpp b/Plugins/Geant4/include/ACTFW/Plugins/Geant4/OREventAction.hpp index 4c8dee48518db786f8108a0be8b2d428eebdb494..45bc592e0972b77cbfbe57a129d4ba625d893138 100644 --- a/Plugins/Geant4/include/ACTFW/Plugins/Geant4/OREventAction.hpp +++ b/Plugins/Geant4/include/ACTFW/Plugins/Geant4/OREventAction.hpp @@ -36,6 +36,13 @@ namespace Geant4 { std::string volume, process; }; + struct Collection + { + std::map<int, std::vector<ParticleRecord>> particles; + int pdg; + double momentum, phi, theta; + }; + class ORSteppingAction; /// @class OREventAction @@ -69,36 +76,19 @@ namespace Geant4 { void AddParticle(ParticleRecord& p) { - Acts::Vector3D pos(p.position[0], p.position[1], p.position[2]); - Acts::Vector3D mom(p.momentum[0], p.momentum[1], p.momentum[2]); - Data::SimParticle particle(pos, mom, p.mass, p.charge, p.pdg); - - if(m_vertex.find(p.globalTime) == m_vertex.end()) - { - Acts::Vector3D vertex(p.vertex[0], p.vertex[1], p.vertex[2]); - Data::SimVertex vtx(vertex, {}, {particle}); - m_vertex[p.globalTime] = vtx; - } - else - if(m_particles.find(p.trackid) == m_particles.end()) - { - m_vertex[p.globalTime].out.push_back(particle); - } - else - { - m_vertex[p.globalTime].in.push_back(particle); - } - m_particles[p.trackid].push_back(p); } - std::vector<Data::SimVertex<Data::SimParticle>> - outcomingParticles() const + Collection + outcomingParticles(const int pdg, const double momentum, const double phi, const double theta) const { - std::vector<Data::SimVertex<Data::SimParticle>> out; - for(const auto& vtx : m_vertex) - out.push_back(vtx.second); - return out; + Collection c; + c.particles = m_particles; + c.pdg = pdg; + c.momentum = momentum; + c.phi = phi; + c.theta = theta; + return c; } /// Interface method @@ -106,16 +96,11 @@ namespace Geant4 { void Reset(); - private: /// Instance of the EventAction static OREventAction* fgInstance; std::map<int, std::vector<ParticleRecord>> m_particles; - std::vector<std::vector<ParticleRecord>> m_events; - std::map<double, Data::SimVertex<Data::SimParticle>> m_vertex; - }; - - + }; } // namespace Geant4 } // namespace FW diff --git a/Plugins/Geant4/src/OREventAction.cpp b/Plugins/Geant4/src/OREventAction.cpp index ea30a77fd1c30dcee5cab22c3e822583af384916..0fd816bec320f2ea781d30087508f5aadc1f0296 100644 --- a/Plugins/Geant4/src/OREventAction.cpp +++ b/Plugins/Geant4/src/OREventAction.cpp @@ -47,16 +47,10 @@ FW::Geant4::OREventAction::BeginOfEventAction(const G4Event*) void FW::Geant4::OREventAction::EndOfEventAction(const G4Event*) { - std::vector<ParticleRecord> outgoing; - for(std::map<int, std::vector<ParticleRecord>>::iterator it = m_particles.begin(); it != m_particles.end(); it++) - for(const ParticleRecord& pr : it->second) - outgoing.push_back(pr); - m_events.push_back(outgoing); } void FW::Geant4::OREventAction::Reset() { m_particles.clear(); - m_events.clear(); } \ No newline at end of file diff --git a/Plugins/Geant4/src/ORSteppingAction.cpp b/Plugins/Geant4/src/ORSteppingAction.cpp index fc397e360651eb850b8d7fe3029bcba0cf8e3375..b5a0fc83e5786dc590e9dc20e22945cfc78f10db 100644 --- a/Plugins/Geant4/src/ORSteppingAction.cpp +++ b/Plugins/Geant4/src/ORSteppingAction.cpp @@ -12,6 +12,7 @@ #include "Acts/Utilities/Units.hpp" #include "G4Step.hh" #include "G4VProcess.hh" +//~ #include "SystemOfUnits.h" FW::Geant4::ORSteppingAction* FW::Geant4::ORSteppingAction::fgInstance = nullptr; @@ -47,18 +48,18 @@ void FW::Geant4::ORSteppingAction::UserSteppingAction(const G4Step* step) { ParticleRecord p; - p.position[0] = step->GetPostStepPoint()->GetPosition().x(); - p.position[1] = step->GetPostStepPoint()->GetPosition().y(); - p.position[2] = step->GetPostStepPoint()->GetPosition().z(); - p.momentum[0] = step->GetPostStepPoint()->GetMomentum().x(); - p.momentum[1] = step->GetPostStepPoint()->GetMomentum().y(); - p.momentum[2] = step->GetPostStepPoint()->GetMomentum().z(); + p.position[0] = step->GetPostStepPoint()->GetPosition().x() / CLHEP::mm; + p.position[1] = step->GetPostStepPoint()->GetPosition().y() / CLHEP::mm; + p.position[2] = step->GetPostStepPoint()->GetPosition().z() / CLHEP::mm; + p.momentum[0] = step->GetPostStepPoint()->GetMomentum().x() / CLHEP::GeV; + p.momentum[1] = step->GetPostStepPoint()->GetMomentum().y() / CLHEP::GeV; + p.momentum[2] = step->GetPostStepPoint()->GetMomentum().z() / CLHEP::GeV; p.globalTime = step->GetPostStepPoint()->GetGlobalTime(); p.pdg = step->GetTrack()->GetDynamicParticle()->GetPDGcode(); p.vertex[0] = step->GetTrack()->GetVertexPosition().x(); p.vertex[1] = step->GetTrack()->GetVertexPosition().y(); p.vertex[2] = step->GetTrack()->GetVertexPosition().z(); - p.energy = step->GetPostStepPoint()->GetTotalEnergy(); + p.energy = step->GetPostStepPoint()->GetTotalEnergy() / CLHEP::GeV; p.mass = step->GetPostStepPoint()->GetMass(); p.charge = step->GetPostStepPoint()->GetCharge(); p.trackid = step->GetTrack()->GetTrackID();