From 970ddf223e23e43bc559f420e6f6e16a1d073c11 Mon Sep 17 00:00:00 2001 From: Chengdong Fu <fucd@ihep.ac.cn> Date: Thu, 27 Mar 2025 16:05:45 +0800 Subject: [PATCH 1/5] gap between sensors --- .../compact/CRD_common_v02/ITK_EndCap_v01.xml | 4 +- .../DetCRD/src/Tracker/ITK_EndCap_v01.cpp | 138 +++++++++++------- .../src/ild/ftd/CEPCITKEndcapKalDetector.cc | 37 +++-- 3 files changed, 111 insertions(+), 68 deletions(-) diff --git a/Detector/DetCRD/compact/CRD_common_v02/ITK_EndCap_v01.xml b/Detector/DetCRD/compact/CRD_common_v02/ITK_EndCap_v01.xml index 9a57883b..c5b06909 100644 --- a/Detector/DetCRD/compact/CRD_common_v02/ITK_EndCap_v01.xml +++ b/Detector/DetCRD/compact/CRD_common_v02/ITK_EndCap_v01.xml @@ -28,7 +28,7 @@ <slice name="Carbon_fiber_back" material="CF_ITK" thickness="150*um" vis="GrayVis"/> </support> - <sensor> + <sensor size="20*mm" side="0.3*mm" dead="2.0*mm"> <slice name="GlueF" material="CER_ITK" thickness="200*um" vis="SeeThrough"/> <slice name="Sensor" material="G4_Si" thickness="150*um" sensitive="true" vis="OrangeVis"/> <slice name="GlueB" material="CER_ITK" thickness="100*um" vis="SeeThrough"/> @@ -64,7 +64,7 @@ <readouts> <readout name="ITKEndcapCollection"> - <id>system:5,side:-2,layer:9,module:8,sensor:8</id> + <id>system:5,side:-2,layer:9,module:8,ring:3,sensor:5</id> </readout> </readouts> diff --git a/Detector/DetCRD/src/Tracker/ITK_EndCap_v01.cpp b/Detector/DetCRD/src/Tracker/ITK_EndCap_v01.cpp index 67bff078..a8f9e8ed 100644 --- a/Detector/DetCRD/src/Tracker/ITK_EndCap_v01.cpp +++ b/Detector/DetCRD/src/Tracker/ITK_EndCap_v01.cpp @@ -38,6 +38,11 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s const xml::Component supports = x_det.child("support"); const xml::Component sensor = x_det.child("sensor"); + const double sensor_size = sensor.attr<double>("size"); + const double sensor_side = sensor.attr<double>("side"); + const double sensor_dead = sensor.attr<double>("dead"); + const double sensor_width = sensor_size - sensor_dead - sensor_side; + const double sensor_length = sensor_size - sensor_side * 2; const xml::Component layers_xml = x_det.child("layers"); for (xml_coll_t layer(layers_xml, "layer"); layer; ++layer) @@ -115,6 +120,11 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s const auto nmodule = ring.attr<double>("nmodule"); const auto vis = ring.attr<std::string>("vis"); + int nrow = std::floor(module_dr/sensor_size); + int ncolumn = std::floor(module_dphi/sensor_size); + double gap_dr = (module_dr - sensor_size*nrow) / (nrow - 1); + double gap_dphi = (module_dphi - sensor_size*ncolumn) / (ncolumn - 1); + std::string ring_vol_name = layer_name + "_ring" + ring_id; Tube ring_tube(ring_inner_r, ring_outer_r, SiliconThickness / 2.0, 0.0, 2 * M_PI); Volume ringPosF_vol(ring_vol_name + "PF", ring_tube, air); @@ -131,58 +141,80 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s ringNegR_vol.setVisAttributes(description.visAttributes(vis)); // populate sensor - Box sensor_box(module_dr / 2.0, module_dphi / 2.0, SiliconThickness / 2.0); - std::string sensor_name = ring_vol_name + "_petal"; - Volume sensor_vol(sensor_name, sensor_box, air); - DetElement sensor_det(sensor_name, det_id); - sensor_vol = sensor_vol.setVisAttributes(description.visAttributes(vis)); + Box module_box(module_dr / 2.0, module_dphi / 2.0, SiliconThickness / 2.0); + std::string module_name = ring_vol_name + "_petal"; + Volume module_vol(module_name, module_box, air); + DetElement module_det(module_name, det_id); + module_vol = module_vol.setVisAttributes(description.visAttributes(vis)); double sensitive_thickness = 0; double glue_thickness = 0; double service_thickness = 0; //const xml::Component sensor = x_det.child("sensor"); - double sensor_z = -SiliconThickness / 2.0; + double module_z = -SiliconThickness / 2.0; for (xml_coll_t sensor_layer(sensor, "slice"); sensor_layer; ++sensor_layer) { - const auto sensor_layer_name = sensor_layer.attr<std::string>("name"); - const auto sensor_layer_material = sensor_layer.attr<std::string>("material"); - const auto sensor_layer_thickness = sensor_layer.attr<double>("thickness"); - const auto sensor_layer_vis = sensor_layer.attr<std::string>("vis"); + const auto module_layer_name = sensor_layer.attr<std::string>("name"); + const auto module_layer_material = sensor_layer.attr<std::string>("material"); + const auto module_layer_thickness = sensor_layer.attr<double>("thickness"); + const auto module_layer_vis = sensor_layer.attr<std::string>("vis"); auto is_sensitive = sensor_layer.hasAttr(_U(sensitive)); - std::string sensor_layer_vol_name = sensor_name + "_" + sensor_layer_name; - Box sensor_layer_box(module_dr / 2.0, module_dphi / 2.0, sensor_layer_thickness / 2.0); - Volume sensor_layer_vol(sensor_layer_vol_name, sensor_layer_box, description.material(sensor_layer_material)); - DetElement sensor_layer_det(sensor_layer_vol_name, det_id); - sensor_layer_vol = sensor_layer_vol.setVisAttributes(description.visAttributes(sensor_layer_vis)); + std::string module_layer_vol_name = module_name + "_" + module_layer_name; + Box module_layer_box(module_dr / 2.0, module_dphi / 2.0, module_layer_thickness / 2.0); + Volume module_layer_vol(module_layer_vol_name, module_layer_box, description.material(module_layer_material)); + DetElement module_layer_det(module_layer_vol_name, det_id); + module_layer_vol = module_layer_vol.setVisAttributes(description.visAttributes(module_layer_vis)); rec::SurfaceType surf_type; + rec::Vector3D u(0.,-1., 0.); + rec::Vector3D v(1., 0., 0.); + rec::Vector3D n(0., 0., 1.); if (is_sensitive) { - sensor_layer_vol = sensor_layer_vol.setSensitiveDetector(sens); - surf_type = rec::SurfaceType(rec::SurfaceType::Sensitive,rec::SurfaceType::Plane); - sensitive_thickness += sensor_layer_thickness; + surf_type = rec::SurfaceType(rec::SurfaceType::Sensitive,rec::SurfaceType::Plane); + + Box sensor_box(sensor_length / 2.0, sensor_width / 2.0, module_layer_thickness / 2.0); + Volume sensor_vol(module_layer_vol_name + "_sensor", sensor_box, description.material(module_layer_material)); + sensor_vol = sensor_vol.setVisAttributes(description.visAttributes(module_layer_vis)); + sensor_vol = sensor_vol.setSensitiveDetector(sens); + for (int irow = 0; irow < nrow; irow++) { + for (int icolumn = 0; icolumn < ncolumn; icolumn++) { + int sensor_id = icolumn*nrow + irow; + double xpos = -module_dr/2.0 + (irow+0.5)*sensor_size + (irow-1)*gap_dr; + double ypos = -module_dphi/2.0 + sensor_dead + (icolumn+0.5)*sensor_width + icolumn*(gap_dphi+sensor_side*2); + DetElement sensor_det(module_layer_det, module_layer_vol_name + "_sensor" + std::to_string(sensor_id), det_id); + auto pv = module_layer_vol.placeVolume(sensor_vol, Position(xpos, ypos, 0)); + pv.addPhysVolID("sensor", sensor_id); + sensor_det.setPlacement(pv); + + rec::VolPlane surf(sensor_vol, surf_type, module_layer_thickness / 2.0, module_layer_thickness / 2.0, u, v, n); + rec::volSurfaceList(sensor_det)->push_back(surf); + } + } + + sensitive_thickness += module_layer_thickness; } else { surf_type = rec::SurfaceType(rec::SurfaceType::Helper,rec::SurfaceType::Plane); - if (sensitive_thickness==0) glue_thickness += sensor_layer_thickness; - else service_thickness += sensor_layer_thickness; + rec::VolPlane surf(module_layer_vol, surf_type, module_layer_thickness / 2.0, module_layer_thickness / 2.0, u, v, n); + rec::volSurfaceList(module_layer_det)->push_back(surf); + + if (sensitive_thickness==0) glue_thickness += module_layer_thickness; + else service_thickness += module_layer_thickness; } - sensor_layer_det.setPlacement( - sensor_vol.placeVolume(sensor_layer_vol, Position(0, 0, sensor_z + sensor_layer_thickness / 2.0))); - sensor_z += sensor_layer_thickness; + module_layer_det.setPlacement( + module_vol.placeVolume(module_layer_vol, Position(0, 0, module_z + module_layer_thickness / 2.0))); + module_z += module_layer_thickness; - sensor_det.add(sensor_layer_det); - rec::Vector3D u(0.,-1., 0.); - rec::Vector3D v(1., 0., 0.); - rec::Vector3D n(0., 0., 1.); - rec::VolPlane surf(sensor_layer_vol, surf_type, sensor_layer_thickness / 2.0, - sensor_layer_thickness / 2.0, u, v, - n); - rec::volSurfaceList(sensor_layer_det)->push_back(surf); + module_det.add(module_layer_det); + //rec::VolPlane surf(module_layer_vol, surf_type, module_layer_thickness / 2.0, + // module_layer_thickness / 2.0, u, v, + // n); + //rec::volSurfaceList(module_layer_det)->push_back(surf); } PlacedVolume pv; - // place all the sensors into ring + // place all the modules into ring double r_offset = ring_inner_r + module_dr / 2.0; for (int i = 0; i < nmodule; ++i) { @@ -191,52 +223,52 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s double rotated_y = r_offset * sin(angle); auto transform = Transform3D(RotationZ(angle), Position(rotated_x, rotated_y, 0)); - DetElement negative_even_sensor_det = i > 0 ? sensor_det.clone(ring_vol_name + "_petalN" + std::to_string(2 * i)) : sensor_det; - pv = ringNegF_vol.placeVolume(sensor_vol, transform).addPhysVolID("module", 2 * i); - negative_even_sensor_det.setPlacement(pv); - ringNegF_det.add(negative_even_sensor_det); + DetElement negative_even_module_det = i > 0 ? module_det.clone(ring_vol_name + "_petalN" + std::to_string(2 * i)) : module_det; + pv = ringNegF_vol.placeVolume(module_vol, transform).addPhysVolID("module", 2 * i); + negative_even_module_det.setPlacement(pv); + ringNegF_det.add(negative_even_module_det); transform = Transform3D(RotationZYX(-angle, 0, M_PI), Position(rotated_x, rotated_y, 0)); - DetElement positive_even_sensor_det = sensor_det.clone(ring_vol_name + "_petalP" + std::to_string(2 * i)); - pv = ringPosF_vol.placeVolume(sensor_vol, transform).addPhysVolID("module", 2 * i); - positive_even_sensor_det.setPlacement(pv); - ringPosF_det.add(positive_even_sensor_det); + DetElement positive_even_module_det = module_det.clone(ring_vol_name + "_petalP" + std::to_string(2 * i)); + pv = ringPosF_vol.placeVolume(module_vol, transform).addPhysVolID("module", 2 * i); + positive_even_module_det.setPlacement(pv); + ringPosF_det.add(positive_even_module_det); angle += M_PI / nmodule; rotated_x = r_offset * cos(angle); rotated_y = r_offset * sin(angle); transform = Transform3D(RotationZ(angle), Position(rotated_x, rotated_y, 0)); - DetElement positive_odd_sensor_det = sensor_det.clone(ring_vol_name + "_petalP" + std::to_string(2 * i)); - pv = ringPosR_vol.placeVolume(sensor_vol, transform).addPhysVolID("module", 2 * i + 1); - positive_odd_sensor_det.setPlacement(pv); - ringPosR_det.add(positive_odd_sensor_det); + DetElement positive_odd_module_det = module_det.clone(ring_vol_name + "_petalP" + std::to_string(2 * i)); + pv = ringPosR_vol.placeVolume(module_vol, transform).addPhysVolID("module", 2 * i + 1); + positive_odd_module_det.setPlacement(pv); + ringPosR_det.add(positive_odd_module_det); transform = Transform3D(RotationZYX(-angle, 0, M_PI), Position(rotated_x, rotated_y, 0)); - DetElement negative_odd_sensor_det = sensor_det.clone(ring_vol_name + "_petalN" + std::to_string(2 * i)); - pv = ringNegR_vol.placeVolume(sensor_vol, transform).addPhysVolID("module", 2 * i + 1); - negative_odd_sensor_det.setPlacement(pv); - ringNegR_det.add(negative_odd_sensor_det); + DetElement negative_odd_module_det = module_det.clone(ring_vol_name + "_petalN" + std::to_string(2 * i)); + pv = ringNegR_vol.placeVolume(module_vol, transform).addPhysVolID("module", 2 * i + 1); + negative_odd_module_det.setPlacement(pv); + ringNegR_det.add(negative_odd_module_det); } // place ring into layer pv = layer_vol.placeVolume(ringPosR_vol, Position(0, 0, +(SupportThickness + SiliconThickness) / 2.0)); - pv = pv.addPhysVolID("sensor", std::stoi(ring_id)); + pv = pv.addPhysVolID("ring", std::stoi(ring_id)); ringPosR_det.setPlacement(pv); layer_det.add(ringPosR_det); pv = layer_vol.placeVolume(ringPosF_vol, Position(0, 0, -(SupportThickness + SiliconThickness) / 2.0)); - pv = pv.addPhysVolID("sensor", std::stoi(ring_id)); + pv = pv.addPhysVolID("ring", std::stoi(ring_id)); ringPosF_det.setPlacement(pv); layer_det.add(ringPosF_det); pv = layerNeg_vol.placeVolume(ringNegR_vol, Position(0, 0, -(SupportThickness + SiliconThickness) / 2.0)); - pv = pv.addPhysVolID("sensor", std::stoi(ring_id)); + pv = pv.addPhysVolID("ring", std::stoi(ring_id)); ringNegR_det.setPlacement(pv); layerNeg_det.add(ringNegR_det); pv = layerNeg_vol.placeVolume(ringNegF_vol, Position(0, 0, +(SupportThickness + SiliconThickness) / 2.0)); - pv = pv.addPhysVolID("sensor", std::stoi(ring_id)); + pv = pv.addPhysVolID("ring", std::stoi(ring_id)); ringNegF_det.setPlacement(pv); layerNeg_det.add(ringNegF_det); // rotate and reflect ring @@ -262,7 +294,7 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s */ dd4hep::rec::MultiRingsZDiskData::Ring ringData; ringData.petalNumber = 2 * nmodule; - ringData.sensorsPerPetal = 1; + ringData.sensorsPerPetal = nrow*ncolumn; ringData.phi0 = phi0; ringData.phiOffsetOdd = 2 * M_PI / nmodule; ringData.distance = ring_inner_r; diff --git a/Utilities/KalDet/src/ild/ftd/CEPCITKEndcapKalDetector.cc b/Utilities/KalDet/src/ild/ftd/CEPCITKEndcapKalDetector.cc index 22d54a1f..10ef634e 100644 --- a/Utilities/KalDet/src/ild/ftd/CEPCITKEndcapKalDetector.cc +++ b/Utilities/KalDet/src/ild/ftd/CEPCITKEndcapKalDetector.cc @@ -159,17 +159,25 @@ void CEPCITKEndcapKalDetector::create_segmented_disk_layers(int idisk, int iring int zsign = zpos > 0 ? 1 : -1; int start_index = even_petals ? 0 : 1; + int nsensor = _disksData.layers[idisk].rings[iring].sensorsPerPetal; + std::vector<int> module_ids; dd4hep::DDSegmentation::BitField64 encoder("system:5,side:-2,layer:9,module:8,sensor:8"); encoder.reset(); encoder[CEPCConf::DetCellID::system] = CEPCConf::DetID::ITKEndcap; encoder[CEPCConf::DetCellID::side] = zsign; encoder[CEPCConf::DetCellID::layer] = idisk; - encoder[CEPCConf::DetCellID::sensor] = iring; - - std::vector<int> module_ids; for (int i = 0; i < nsegments; i++) { encoder[CEPCConf::DetCellID::module] = even_petals ? 2*i : 2*i+1; - module_ids.push_back(encoder.lowWord()); + if (nsensor == 1) { + encoder[CEPCConf::DetCellID::sensor] = iring; + module_ids.push_back(encoder.lowWord()); + } + else { + for (int isensor = 0; isensor < nsensor; isensor++) { + encoder[CEPCConf::DetCellID::sensor] = iring + (isensor<<3); + module_ids.push_back(encoder.lowWord()); + } + } } // create segmented disk @@ -241,6 +249,7 @@ void CEPCITKEndcapKalDetector::setupGearGeom(const gear::GearMgr& gearMgr) { std::vector<double> tGlues = params.getDoubleVals("ThicknessGlues"); std::vector<double> tServices = params.getDoubleVals("ThicknessServices"); std::vector<std::string> petalParNames = params.getStringVals("PetalNumberNames"); + std::vector<std::string> petalNSenParNames = params.getStringVals("PetalNSensorNames"); std::vector<std::string> phi0ParNames = params.getStringVals("PetalPhi0Names"); std::vector<std::string> distanceParNames = params.getStringVals("PetalDistanceNames"); std::vector<std::string> widthInnerParNames = params.getStringVals("PetalInnerWidthNames"); @@ -261,7 +270,8 @@ void CEPCITKEndcapKalDetector::setupGearGeom(const gear::GearMgr& gearMgr) { //std::string widthInnerParName = widthInnerParNames[idisk]; //std::string widthOuterParName = widthOuterParNames[idisk]; //std::string lengthParName = lengthParNames[idisk]; - std::vector<int> petals = params.getIntVals(petalParNames[idisk]); + std::vector<int> petals = params.getIntVals(petalParNames[idisk]); + std::vector<int> nsensors = params.getIntVals(petalNSenParNames[idisk]); std::vector<double> phi0s = params.getDoubleVals(phi0ParNames[idisk]); std::vector<double> distances = params.getDoubleVals(distanceParNames[idisk]); std::vector<double> widthInners = params.getDoubleVals(widthInnerParNames[idisk]); @@ -270,15 +280,16 @@ void CEPCITKEndcapKalDetector::setupGearGeom(const gear::GearMgr& gearMgr) { int nrings = petals.size(); for (int iring = 0; iring < nrings; iring++) { dd4hep::rec::MultiRingsZDiskData::Ring ring; - ring.petalNumber = petals[iring]; - ring.phi0 = phi0s[iring]; - ring.distance = distances[iring]; - ring.widthInner = widthInners[iring]; - ring.widthOuter = widthOuters[iring]; - ring.length = lengths[iring]; + ring.petalNumber = petals[iring]; + ring.sensorsPerPetal = nsensors[iring]; + ring.phi0 = phi0s[iring]; + ring.distance = distances[iring]; + ring.widthInner = widthInners[iring]; + ring.widthOuter = widthOuters[iring]; + ring.length = lengths[iring]; ring.thicknessSensitive = tSensitives[idisk]; - ring.thicknessGlue = tGlues[idisk]; - ring.thicknessService = tServices[idisk]; + ring.thicknessGlue = tGlues[idisk]; + ring.thicknessService = tServices[idisk]; disk.rings.push_back(ring); } _disksData.layers.push_back(disk); -- GitLab From d66d0cbae0eea127c690ac10c673de3bacf42bfc Mon Sep 17 00:00:00 2001 From: Chengdong Fu <fucd@ihep.ac.cn> Date: Thu, 27 Mar 2025 16:06:59 +0800 Subject: [PATCH 2/5] change position of sensor --- .../DetCRD/src/Tracker/SiTrackerStaggeredLadder_v03_geo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Detector/DetCRD/src/Tracker/SiTrackerStaggeredLadder_v03_geo.cpp b/Detector/DetCRD/src/Tracker/SiTrackerStaggeredLadder_v03_geo.cpp index 9a268d29..eea42eb3 100644 --- a/Detector/DetCRD/src/Tracker/SiTrackerStaggeredLadder_v03_geo.cpp +++ b/Detector/DetCRD/src/Tracker/SiTrackerStaggeredLadder_v03_geo.cpp @@ -254,7 +254,7 @@ static dd4hep::Ref_t create_element(dd4hep::Detector& theDetector, xml_h e, dd4h for (int sensor_id = 0; sensor_id < sensor_n; sensor_id++) { int irow = std::floor(sensor_id/sensor_column_n); int icolumn = sensor_id%sensor_column_n; - double ypos = module_y0 - module_width/2.0 + sensor_dead + sensor_side + irow*sensor_gap + (irow + 0.5)*sensor_width; + double ypos = module_y0 - module_width/2.0 + sensor_dead + irow*(sensor_gap + sensor_side*2) + (irow + 0.5)*sensor_width; double zpos = module_z0 - sensor_total_length/2.0 + sensor_side + icolumn*(sensor_gap + sensor_side*2) + (icolumn + 0.5)*sensor_length; pv = moduleLogical.placeVolume(sensorLogical, Position(0, ypos, zpos)); pv.addPhysVolID("sensor", sensor_id); -- GitLab From 52d185b03350bab1f77c2cc8b84d9d2b6b461e7d Mon Sep 17 00:00:00 2001 From: Chengdong Fu <fucd@ihep.ac.cn> Date: Thu, 27 Mar 2025 16:07:32 +0800 Subject: [PATCH 3/5] gap between sensors --- Service/GearSvc/src/GearSvc.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Service/GearSvc/src/GearSvc.cpp b/Service/GearSvc/src/GearSvc.cpp index 9d0fab4c..66bc402b 100644 --- a/Service/GearSvc/src/GearSvc.cpp +++ b/Service/GearSvc/src/GearSvc.cpp @@ -474,7 +474,7 @@ StatusCode GearSvc::convertMultiRingsZDisk(dd4hep::DetElement& ftd) { std::vector<double> alphaPetals, zPositions, zOffsetSupports, rminSupports, rmaxSupports, thicknessSupports; std::vector<double> thicknessSensitives, thicknessGlues, thicknessServices; - std::vector<std::string> petalParNames, phi0ParNames, distanceParNames, widthInnerParNames, widthOuterParNames, lengthParNames; + std::vector<std::string> petalParNames, petalNSensorNames, phi0ParNames, distanceParNames, widthInnerParNames, widthOuterParNames, lengthParNames; for (int layer = 0; layer < nLayers; layer++) { dd4hep::rec::MultiRingsZDiskData::LayerLayout& ftdlayer = ftdlayers[layer]; @@ -489,19 +489,20 @@ StatusCode GearSvc::convertMultiRingsZDisk(dd4hep::DetElement& ftd) { auto& rings = ftdlayer.rings; petalParNames.push_back(std::string("PetalNumber_")+std::to_string(layer)); + petalNSensorNames.push_back(std::string("PetalNSensor_")+std::to_string(layer)); phi0ParNames.push_back(std::string("PetalPhi0_")+std::to_string(layer)); distanceParNames.push_back(std::string("PetalDistance_")+std::to_string(layer)); widthInnerParNames.push_back(std::string("PetalInnerWidth_")+std::to_string(layer)); widthOuterParNames.push_back(std::string("PetalOuterWidth_")+std::to_string(layer)); lengthParNames.push_back(std::string("PetalLength_")+std::to_string(layer)); - std::vector<int> petalNumbers; + std::vector<int> petalNumbers, petalNSensors; std::vector<double> phi0s, distances, widthInners, widthOuters, lengths; for (unsigned iring = 0; iring < rings.size(); iring++) { auto& ring = rings[iring]; petalNumbers.push_back(ring.petalNumber); - //int sensorsPerPetal; + petalNSensors.push_back(ring.sensorsPerPetal); phi0s.push_back(ring.phi0); //double phiOffsetOdd; distances.push_back(ring.distance*CLHEP::cm); @@ -516,6 +517,7 @@ StatusCode GearSvc::convertMultiRingsZDisk(dd4hep::DetElement& ftd) { } } ftdParam->setIntVals(std::string("PetalNumber_")+std::to_string(layer), petalNumbers); + ftdParam->setIntVals(std::string("PetalNSensor_")+std::to_string(layer), petalNSensors); ftdParam->setDoubleVals(std::string("PetalPhi0_")+std::to_string(layer), phi0s); ftdParam->setDoubleVals(std::string("PetalDistance_")+std::to_string(layer), distances); ftdParam->setDoubleVals(std::string("PetalInnerWidth_")+std::to_string(layer), widthInners); @@ -554,6 +556,7 @@ StatusCode GearSvc::convertMultiRingsZDisk(dd4hep::DetElement& ftd) { ftdParam->setDoubleVals("ThicknessGlues", thicknessGlues); ftdParam->setDoubleVals("ThicknessServices", thicknessServices); ftdParam->setStringVals("PetalNumberNames", petalParNames); + ftdParam->setStringVals("PetalNSensorNames", petalNSensorNames); ftdParam->setStringVals("PetalPhi0Names", phi0ParNames); ftdParam->setStringVals("PetalDistanceNames", distanceParNames); ftdParam->setStringVals("PetalInnerWidthNames", widthInnerParNames); -- GitLab From 12ac6e1bd51c1e8eacc11f352e235ba6b0137bfc Mon Sep 17 00:00:00 2001 From: Chengdong Fu <fucd@ihep.ac.cn> Date: Thu, 27 Mar 2025 16:23:14 +0800 Subject: [PATCH 4/5] modify support thickness of stitching to design --- .../CRD_common_v02/VXD_Composite_v01_03.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Detector/DetCRD/compact/CRD_common_v02/VXD_Composite_v01_03.xml b/Detector/DetCRD/compact/CRD_common_v02/VXD_Composite_v01_03.xml index e9279e61..94c77774 100644 --- a/Detector/DetCRD/compact/CRD_common_v02/VXD_Composite_v01_03.xml +++ b/Detector/DetCRD/compact/CRD_common_v02/VXD_Composite_v01_03.xml @@ -44,7 +44,7 @@ <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> <flex vis="GrayVis"> <!--slice thickness="0.4*um" material="G4_Al"/--> - <slice thickness="VXD_flex_thickness+45*um" material="CFRP_CMS"/> + <slice thickness="VXD_flex_thickness+57.3*um" material="CFRP_CMS"/> </flex> <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> <driver thickness="50*um" width="1.385*mm" material="Kapton" vis="BlueVis"/> @@ -55,7 +55,7 @@ <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> <flex vis="GrayVis"> <!--slice thickness="0.4*um" material="G4_Al"/--> - <slice thickness="VXD_flex_thickness+45*um" material="CFRP_CMS"/> + <slice thickness="VXD_flex_thickness+57.3*um" material="CFRP_CMS"/> </flex> <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> <driver thickness="50*um" width="1.385*mm" material="Kapton" vis="BlueVis"/> @@ -68,7 +68,7 @@ <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> <flex vis="GrayVis"> <!--slice thickness="0.4*um" material="G4_Al"/--> - <slice thickness="VXD_flex_thickness+32*um" material="CFRP_CMS"/> + <slice thickness="VXD_flex_thickness+33.7*um" material="CFRP_CMS"/> </flex> <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> <driver thickness="50*um" width="1.385*mm" material="Kapton" vis="BlueVis"/> @@ -79,7 +79,7 @@ <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> <flex vis="GrayVis"> <!--slice thickness="0.4*um" material="G4_Al"/--> - <slice thickness="VXD_flex_thickness+32*um" material="CFRP_CMS"/> + <slice thickness="VXD_flex_thickness+33.7*um" material="CFRP_CMS"/> </flex> <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> <driver thickness="50*um" width="1.385*mm" material="Kapton" vis="BlueVis"/> @@ -92,7 +92,7 @@ <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> <flex vis="GrayVis"> <!--slice thickness="0.4*um" material="G4_Al"/--> - <slice thickness="VXD_flex_thickness+31*um" material="CFRP_CMS"/> + <slice thickness="VXD_flex_thickness+31.8*um" material="CFRP_CMS"/> </flex> <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> <driver thickness="50*um" width="4.155*mm" material="Kapton" vis="BlueVis"/> @@ -103,7 +103,7 @@ <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> <flex vis="GrayVis"> <!--slice thickness="0.4*um" material="G4_Al"/--> - <slice thickness="VXD_flex_thickness+31*um" material="CFRP_CMS"/> + <slice thickness="VXD_flex_thickness+31.8*um" material="CFRP_CMS"/> </flex> <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> <driver thickness="50*um" width="4.155*mm" material="Kapton" vis="BlueVis"/> @@ -116,7 +116,7 @@ <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> <flex vis="GrayVis"> <!--slice thickness="0.4*um" material="G4_Al"/--> - <slice thickness="VXD_flex_thickness+29*um" material="CFRP_CMS"/> + <slice thickness="VXD_flex_thickness+40*um" material="CFRP_CMS"/> </flex> <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> <driver thickness="50*um" width="4.155*mm" material="Kapton" vis="BlueVis"/> @@ -127,7 +127,7 @@ <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> <flex vis="GrayVis"> <!--slice thickness="0.4*um" material="G4_Al"/--> - <slice thickness="VXD_flex_thickness+29*um" material="CFRP_CMS"/> + <slice thickness="VXD_flex_thickness+40*um" material="CFRP_CMS"/> </flex> <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> <driver thickness="50*um" width="4.155*mm" material="Kapton" vis="BlueVis"/> -- GitLab From 745c8682268c0f7a4ec6018f6a827018d0bcf7dd Mon Sep 17 00:00:00 2001 From: Chengdong Fu <fucd@ihep.ac.cn> Date: Mon, 28 Apr 2025 20:03:00 +0800 Subject: [PATCH 5/5] change MDI support --- .../CRD_common_v02/VXD_Composite_v01_04.xml | 178 ++++++++++++++++++ .../compact/CRD_common_v02/materials.xml | 7 + .../TDR_o1_v01/TDR_o1_v01-onlyTracker.xml | 11 +- .../DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml | 19 +- 4 files changed, 190 insertions(+), 25 deletions(-) create mode 100644 Detector/DetCRD/compact/CRD_common_v02/VXD_Composite_v01_04.xml diff --git a/Detector/DetCRD/compact/CRD_common_v02/VXD_Composite_v01_04.xml b/Detector/DetCRD/compact/CRD_common_v02/VXD_Composite_v01_04.xml new file mode 100644 index 00000000..f0fa59d3 --- /dev/null +++ b/Detector/DetCRD/compact/CRD_common_v02/VXD_Composite_v01_04.xml @@ -0,0 +1,178 @@ +<lccdd> + <info name="VXD_Composite_v01_03" + title="CepC VXD with stitch and ladder module" + author="" + url="http://cepc.ihep.ac.cn" + status="developing" + version="v01"> + <comment>CepC vertex detector</comment> + </info> + <define> + <constant name="VXD_inner_radius" value="Vertex_inner_radius"/> + <constant name="VXD_outer_radius" value="Vertex_outer_radius"/> + <constant name="VXD_half_length" value="Vertex_half_length"/> + <!--ladder parameter--> + <constant name="VXD_ladder_length" value="682*mm"/> + <constant name="VXD_ladder_width" value="17.3*mm"/> + <constant name="VXD_ladder_flex_width" value="VXD_ladder_width"/> + <!--stitching parameter--> + <constant name="VXD_sensor_backbone" value="0.055*mm"/> + <constant name="VXD_sensor_switches" value="0.019*mm"/> + <constant name="VXD_sensor_bias" value="0.106*mm"/> + <constant name="VXD_sensor_periphery" value="0.177*mm"/> + <!--equivalent to CFRP_CMS--> + <constant name="VXD_flex_thickness" value="1.3*um"/> + </define> + + <detectors> + <detector id="DetID_VXD" name="VXD" type="SiTrackerComposite_v03" vis="VXDVis" readout="VXDCollection" combineHits="true" insideTrackingVolume="true" printLevel="INFO"> + <envelope> + <shape type="Assembly"/> + </envelope> + + <type_flags type="DetType_TRACKER + DetType_BARREL + DetType_PIXEL "/> + + <global sensitive_thickness="VXD_sensitive_thickness" support_thickness="VXD_support_thickness" sensor_length="VXD_sensor_length" + sensitive_mat="G4_Si" support_mat="G4_C" sensitive_threshold_KeV="64*keV" /> + <display ladder="SeeThrough" support="VXDSupportVis" flex="VXDFlexVis" sens_env="SeeThrough" sens="GrayVis" deadsensor="GreenVis" deadwire="RedVis"/> + + <shell rmin="70*mm" rmax="70.5*mm" zhalf="510*mm" material="CFRP_M55J" vis="LightGrayVis"/> + + <layer id="0" phi0="0" isBent="true"> + <module offset="0" phi="0" radius="11.06254*mm" nx="48" ny="4" backbone="VXD_sensor_backbone" switches="VXD_sensor_switches" + bias="VXD_sensor_bias" periphery="VXD_sensor_periphery" mechanical_gap="0*mm" material="G4_Si"> + <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> + <flex vis="GrayVis"> + <!--slice thickness="0.4*um" material="G4_Al"/--> + <slice thickness="VXD_flex_thickness+57.3*um" material="CFRP_CMS"/> + </flex> + <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> + <driver thickness="50*um" width="1.385*mm" material="Kapton" vis="BlueVis"/> + </module> + + <module offset="0" phi="180*degree" radius="11.06254*mm" nx="48" ny="4" backbone="VXD_sensor_backbone" switches="VXD_sensor_switches" + bias="VXD_sensor_bias" periphery="VXD_sensor_periphery" mechanical_gap="0*mm" material="G4_Si"> + <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> + <flex vis="GrayVis"> + <!--slice thickness="0.4*um" material="G4_Al"/--> + <slice thickness="VXD_flex_thickness+57.3*um" material="CFRP_CMS"/> + </flex> + <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> + <driver thickness="50*um" width="1.385*mm" material="Kapton" vis="BlueVis"/> + </module> + </layer> + + <layer id="1" phi0="11.4375*degree" isBent="true"> + <module offset="0" phi="0" radius="16.56198*mm" nx="72" ny="6" backbone="VXD_sensor_backbone" switches="VXD_sensor_switches" + bias="VXD_sensor_bias" periphery="VXD_sensor_periphery" mechanical_gap="0.5*mm" material="G4_Si"> + <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> + <flex vis="GrayVis"> + <!--slice thickness="0.4*um" material="G4_Al"/--> + <slice thickness="VXD_flex_thickness+33.7*um" material="CFRP_CMS"/> + </flex> + <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> + <driver thickness="50*um" width="1.385*mm" material="Kapton" vis="BlueVis"/> + </module> + + <module offset="0" phi="180*degree" radius="16.56198*mm" nx="72" ny="6" backbone="VXD_sensor_backbone" switches="VXD_sensor_switches" + bias="VXD_sensor_bias" periphery="VXD_sensor_periphery" mechanical_gap="0.5*mm" material="G4_Si"> + <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> + <flex vis="GrayVis"> + <!--slice thickness="0.4*um" material="G4_Al"/--> + <slice thickness="VXD_flex_thickness+33.7*um" material="CFRP_CMS"/> + </flex> + <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> + <driver thickness="50*um" width="1.385*mm" material="Kapton" vis="BlueVis"/> + </module> + </layer> + + <layer id="2" phi0="-1.6875*degree" isBent="true"> + <module offset="0" phi="0" radius="22.06142*mm" nx="96" ny="8" backbone="VXD_sensor_backbone" switches="VXD_sensor_switches" + bias="VXD_sensor_bias" periphery="VXD_sensor_periphery" mechanical_gap="0.5*mm" material="G4_Si"> + <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> + <flex vis="GrayVis"> + <!--slice thickness="0.4*um" material="G4_Al"/--> + <slice thickness="VXD_flex_thickness+31.8*um" material="CFRP_CMS"/> + </flex> + <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> + <driver thickness="50*um" width="4.155*mm" material="Kapton" vis="BlueVis"/> + </module> + + <module offset="0" phi="180*degree" radius="22.06142*mm" nx="96" ny="8" backbone="VXD_sensor_backbone" switches="VXD_sensor_switches" + bias="VXD_sensor_bias" periphery="VXD_sensor_periphery" mechanical_gap="0.5*mm" material="G4_Si"> + <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> + <flex vis="GrayVis"> + <!--slice thickness="0.4*um" material="G4_Al"/--> + <slice thickness="VXD_flex_thickness+31.8*um" material="CFRP_CMS"/> + </flex> + <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> + <driver thickness="50*um" width="4.155*mm" material="Kapton" vis="BlueVis"/> + </module> + </layer> + + <layer id="3" phi0="-6.75*degree" isBent="true"> + <module offset="0" phi="0" radius="27.56086*mm" nx="120" ny="10" backbone="VXD_sensor_backbone" switches="VXD_sensor_switches" + bias="VXD_sensor_bias" periphery="VXD_sensor_periphery" mechanical_gap="0.5*mm" material="G4_Si"> + <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> + <flex vis="GrayVis"> + <!--slice thickness="0.4*um" material="G4_Al"/--> + <slice thickness="VXD_flex_thickness+40*um" material="CFRP_CMS"/> + </flex> + <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> + <driver thickness="50*um" width="4.155*mm" material="Kapton" vis="BlueVis"/> + </module> + + <module offset="0" phi="180*degree" radius="27.56086*mm" nx="120" ny="10" backbone="VXD_sensor_backbone" switches="VXD_sensor_switches" + bias="VXD_sensor_bias" periphery="VXD_sensor_periphery" mechanical_gap="0.5*mm" material="G4_Si"> + <sensor thickness="50*um" width="8.409*mm" length="3.296*mm" material="G4_Si" vis="VXDVis"/> + <flex vis="GrayVis"> + <!--slice thickness="0.4*um" material="G4_Al"/--> + <slice thickness="VXD_flex_thickness+40*um" material="CFRP_CMS"/> + </flex> + <readout thickness="50*um" width="4.155*mm" material="Kapton" vis="RedVis"/> + <driver thickness="50*um" width="4.155*mm" material="Kapton" vis="BlueVis"/> + </module> + </layer> + + <layer id="4" support_rmin="39.5*mm" rotate="13.5*degree" phi0="13.5*degree" n_ladders="24" n_sensors_per_side="0"> + <ladder isDoubleSided="true"> + <ladderSupport height="3.1988*mm" length="VXD_ladder_length" thickness="370*um" width="VXD_ladder_width" mat="CFRP_CMS"/> + <flex> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Acrylicglue"/> <!--glue between flex and sensor/support--> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Kapton"/> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Acrylicglue"/> + <slice length="VXD_ladder_length" thickness=" 8.0*um" width="VXD_ladder_flex_width" mat="G4_Al"/> + <slice length="VXD_ladder_length" thickness="13.0*um" width="VXD_ladder_flex_width" mat="Kapton"/> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Acrylicglue"/> + <slice length="VXD_ladder_length" thickness=" 8.0*um" width="VXD_ladder_flex_width" mat="G4_Al"/> + <slice length="VXD_ladder_length" thickness="13.0*um" width="VXD_ladder_flex_width" mat="Kapton"/> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Acrylicglue"/> + <slice length="VXD_ladder_length" thickness="12.0*um" width="VXD_ladder_flex_width" mat="G4_Al"/> + <slice length="VXD_ladder_length" thickness="25.0*um" width="VXD_ladder_flex_width" mat="Kapton"/> + <slice length="VXD_ladder_length" thickness="12.0*um" width="VXD_ladder_flex_width" mat="G4_Al"/> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Acrylicglue"/> + <slice length="VXD_ladder_length" thickness="13.0*um" width="VXD_ladder_flex_width" mat="Kapton"/> + <slice length="VXD_ladder_length" thickness=" 8.0*um" width="VXD_ladder_flex_width" mat="G4_Al"/> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Acrylicglue"/> + <slice length="VXD_ladder_length" thickness="13.0*um" width="VXD_ladder_flex_width" mat="Kapton"/> + <slice length="VXD_ladder_length" thickness=" 8.0*um" width="VXD_ladder_flex_width" mat="G4_Al"/> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Acrylicglue"/> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Kapton"/> + <slice length="VXD_ladder_length" thickness="12.5*um" width="VXD_ladder_flex_width" mat="Acrylicglue"/> <!--glue between flex and sensor/support--> + </flex> + <sensor n_sensors="26" gap="0.1*mm" thickness="50*um" active_length="25.6*mm" active_width="12.8*mm" dead_width="2*mm" sensor_mat="G4_Si" + deadwire_length="(26*(25.6+0.1)-0.1)*mm" deadwire_width="2.5*mm" deadwire_thickness="(50/10)*um" deadwire_mat="G4_Al"/> + </ladder> + </layer> + </detector> + </detectors> + + <readouts> + <readout name="VXDCollection"> + <!--segmentation type="CartesianGridYZ" grid_size_y="0.016*mm" grid_size_z="0.016*mm"/> + <id>system:5,side:-2,layer:9,module:8,sensor:32:8,y:-12,z:-12</id--> + <!-- old tracking not use senor id: 24-31 bit--> + <id>system:5,side:-2,layer:9,module:8,sensor:32:16</id> + </readout> + </readouts> +</lccdd> diff --git a/Detector/DetCRD/compact/CRD_common_v02/materials.xml b/Detector/DetCRD/compact/CRD_common_v02/materials.xml index 0a89e4af..69b68c28 100644 --- a/Detector/DetCRD/compact/CRD_common_v02/materials.xml +++ b/Detector/DetCRD/compact/CRD_common_v02/materials.xml @@ -704,6 +704,13 @@ <fraction n="0.29" ref="CH2OCN" /> </material> + <material name="CFRP_M55J"> + <D type="density" value="1.91" unit="g/cm3" /> + <!--total 99% of C, 0.8% in CH2OCN--> + <fraction n="0.982" ref="C" /> + <fraction n="0.018" ref="CH2OCN" /> + </material> + <material name="Acrylicglue"> <D type="density" value="1.16" unit="g/cm3" /> <composite n="5" ref="C" /> diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01-onlyTracker.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01-onlyTracker.xml index 777e636f..3bace007 100644 --- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01-onlyTracker.xml +++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01-onlyTracker.xml @@ -27,21 +27,12 @@ <include ref="./TDR_Dimensions_v01_01.xml"/> <include ref="../CRD_common_v02/Beampipe_v01_07.xml"/> - <!--preliminary vertex and tracker, to update/--> - <!--include ref="../CRD_common_v02/VXD_StaggeredLadder_v02_01.xml"/--> - <include ref="../CRD_common_v02/VXD_Composite_v01_03.xml"/> - <!--include ref="../CRD_common_v02/FTD_SkewRing_v01_09.xml"/--> - <!--include ref="../CRD_common_v02/SIT_SimplePixel_v01_04.xml"/--> - <!--include ref="../CRD_common_v02/SIT_StaggeredStave_v02.xml"/--> + <include ref="../CRD_common_v02/VXD_Composite_v01_04.xml"/> <include ref="../CRD_common_v02/ITK_StaggeredStave_v03_01.xml"/> <include ref="../CRD_common_v02/ITK_EndCap_v01.xml"/> - <!--include ref="../CRD_common_v01/TPC_Simple_v10_02.xml"/--> <!-- use 10 rows clustering version--> <include ref="../CRD_common_v02/TPC_ModularEndcap_o1_v02.xml"/> - <!--include ref="../CRD_common_v01/SET_SimplePixel_v01_01.xml"/--> - <!--include ref="../CRD_common_v01/OTKBarrel_v01_01.xml"/--> <include ref="../CRD_common_v01/OTKBarrel_v02.xml"/> - <!--include ref="../CRD_common_v01/OTKEndcap_v01_01.xml"/--> <include ref="../CRD_common_v01/OTKEndcap_v02.xml"/> <fields> diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml index b6d1bb89..33ee447a 100644 --- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml +++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_o1_v01.xml @@ -28,21 +28,13 @@ <include ref="./TDR_Dimensions_v01_01.xml"/> <include ref="../CRD_common_v02/Beampipe_v01_07.xml"/> - <!--preliminary vertex and tracker, to update/--> - <!--include ref="../CRD_common_v02/VXD_StaggeredLadder_v02_01.xml"/--> - <include ref="../CRD_common_v02/VXD_Composite_v01_03.xml"/> - <!--include ref="../CRD_common_v02/FTD_SkewRing_v01_07.xml"/--> - <!--include ref="../CRD_common_v02/SIT_SimplePixel_v01_04.xml"/--> - <!--include ref="../CRD_common_v02/SIT_StaggeredStave_v02.xml"/--> + + <include ref="../CRD_common_v02/VXD_Composite_v01_04.xml"/> <include ref="../CRD_common_v02/ITK_StaggeredStave_v03_01.xml"/> <include ref="../CRD_common_v02/ITK_EndCap_v01.xml"/> - <!--include ref="../CRD_common_v01/TPC_Simple_v10_02.xml"/--> <!-- use 10 rows clustering version--> <include ref="../CRD_common_v02/TPC_ModularEndcap_o1_v02.xml"/> - <!--include ref="../CRD_common_v01/SET_SimplePixel_v01_01.xml"/--> - <!--include ref="../CRD_common_v01/OTKBarrel_v01_01.xml"/--> <include ref="../CRD_common_v01/OTKBarrel_v02.xml"/> - <!--include ref="../CRD_common_v01/OTKEndcap_v01_01.xml"/--> <include ref="../CRD_common_v01/OTKEndcap_v02.xml"/> <include ref="../CRD_common_v01/Ecal_Crystal_Barrel_v02_02.xml"/> @@ -50,13 +42,10 @@ <include ref="../CRD_common_v01/SHcalGlass_Barrel_v05.xml"/> <include ref="../CRD_common_v01/SHcalGlass_Endcaps_v01.xml"/> - <!--Lumical to update--> + <!--Lumical--> <include ref="../CRD_common_v01/Lumical_o1_v01.xml"/> - <!--preliminary Magnet, to update/--> + <!--Magnet/--> <include ref="../CRD_common_v02/Coil_Simple_v01_03.xml"/> - <!--preliminary Muon, obselete/--> - <!--include ref="../CRD_common_v02/Yoke_Polyhedra_Barrel_v01_01.xml"/> - <include ref="../CRD_common_v02/Yoke_Polyhedra_Endcaps_v01_01.xml"/--> <!--muon detector--> <include ref="../CRD_common_v01/Muon_Barrel_v01_04.xml"/> -- GitLab