diff --git a/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml index a5dc0d51ca8a73f446e883c0456897adb590b8fe..2e29ac9cb3c92c394e7987695154c46882a47988 100644 --- a/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml +++ b/Detector/DetCRD/compact/CRD_common_v01/Muon_Barrel_v01_01.xml @@ -12,15 +12,15 @@ <define> <!--Muon Barrel--> - <constant name="Muon_barrel_superlayer_num" value="8"/> - <constant name="Muon_barrel_strip_num_0" value="17"/> - <constant name="Muon_barrel_strip_num_1" value="29"/> - <constant name="Muon_barrel_strip_num_2" value="41"/> - <constant name="Muon_barrel_strip_num_3" value="53"/> - <constant name="Muon_barrel_strip_num_4" value="65"/> - <constant name="Muon_barrel_strip_num_5" value="77"/> - <constant name="Muon_barrel_strip_num_6" value="89"/> - <constant name="Muon_barrel_strip_num_7" value="101"/> + <constant name="Muon_barrel_superlayer_num" value="6"/> + <constant name="Muon_barrel_strip_num_0" value="26"/> + <constant name="Muon_barrel_strip_num_1" value="38"/> + <constant name="Muon_barrel_strip_num_2" value="50"/> + <constant name="Muon_barrel_strip_num_3" value="62"/> + <constant name="Muon_barrel_strip_num_4" value="74"/> + <constant name="Muon_barrel_strip_num_5" value="86"/> + <!--constant name="Muon_barrel_strip_num_6" value="89"/> + <constant name="Muon_barrel_strip_num_7" value="101"/--> <constant name="Muon_barrel_strip_num_fixed_0" value="106"/> <constant name="Muon_barrel_strip_num_fixed_1" value="115"/> @@ -32,7 +32,7 @@ <constant name="Muon_barrel_barrel_y" value="Muon_barrel_iron_y"/> <constant name="Muon_barrel_barrel_posy" value="0.5*Muon_barrel_barrel_y"/> - <constant name="Muon_barrel_superlayer_init" value="-48*cm"/> + <constant name="Muon_barrel_superlayer_init" value="-35*cm"/> <constant name="Muon_barrel_superlayer_gap" value="14*cm"/> <constant name="Muon_barrel_superlayer_endcap_gap" value="10*cm"/> <constant name="Muon_barrel_superlayer_air_gap" value="1*cm"/> @@ -42,7 +42,7 @@ <!--constant name="Muon_barrel_superlayer_z" value="Muon_strip_z+2*Muon_strip_surf+2*Muon_barrel_superlayer_air_gap"/--> <!--Checkout--> - <constant name="Muon_barrel_inner_radius" value="4245*mm"/> + <!--constant name="Muon_barrel_inner_radius" value="4245*mm"/--> <constant name="Muon_barrel_barrel_num" value="2"/> <constant name="Muon_barrel_iron_part_num" value="12"/> diff --git a/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_02.xml b/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_02.xml index 9825031c3ecfc89893f22eaf60a1836a34189114..e5d09a40410e2ffb690051cbbf9fa1ae68568c09 100644 --- a/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_02.xml +++ b/Detector/DetCRD/compact/CRD_common_v01/Muon_Endcap_v01_02.xml @@ -15,14 +15,14 @@ <constant name="Muon_endcap_part_num" value="4"/> <constant name="Muon_endcap_superlayer_num" value="6"/> <constant name="Muon_endcap_layer_num" value="2"/> - <constant name="Muon_endcap_strip_num_1" value="72"/> - <constant name="Muon_endcap_strip_num_2" value="128"/> - <constant name="Muon_endcap_strip_num_cut_1" value="17"/> - <constant name="Muon_endcap_strip_num_cut_2" value="74"/> - <constant name="Muon_endcap_endcap_rmin" value="68*cm"/> - <constant name="Muon_endcap_length_cut_1" value="288*cm"/> - <constant name="Muon_endcap_length_cut_gap" value="296*cm"/> - <constant name="Muon_endcap_length_cut_2" value="512*cm"/> + <constant name="Muon_endcap_strip_num_1" value="68"/> + <constant name="Muon_endcap_strip_num_2" value="125"/> + <constant name="Muon_endcap_strip_num_cut_1" value="15"/> + <constant name="Muon_endcap_strip_num_cut_2" value="70"/> + <constant name="Muon_endcap_endcap_rmin" value="60*cm"/> + <constant name="Muon_endcap_length_cut_1" value="272*cm"/> + <constant name="Muon_endcap_length_cut_gap" value="280*cm"/> + <constant name="Muon_endcap_length_cut_2" value="500*cm"/> <constant name="Muon_endcap_gap" value="5*cm"/> <constant name="Muon_endcap_iron_gap" value="14*cm"/> diff --git a/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml b/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml index 263b3642e13a3dfbfdc9fe7f56cb762f709d9daf..82ea958e652ab2dc1e00ed12cca47e1f52cc7c4b 100644 --- a/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml +++ b/Detector/DetCRD/compact/TDR_o1_v01/TDR_Dimensions_v01_01.xml @@ -260,7 +260,7 @@ <constant name="Muon_strip_cut2_posz" value="0"/> <!--standard scale--> - <constant name="Muon_standard_scale" value="124*cm"/> + <constant name="Muon_standard_scale" value="94*cm"/> <!--constant name="Muon_total_length" value="8950*mm"/--><!--overlap with coil and hcal--> <constant name="Muon_total_length" value="Yoke_endcap_zmin*2"/> diff --git a/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp b/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp index 77204c116772d9394483ce4828acba16839fb2d3..ef3fbc19be41f6dea3ac43f4293b904785eacbc9 100644 --- a/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp +++ b/Detector/DetCRD/src/Muon/Muon_Barrel_v01_01.cpp @@ -56,12 +56,13 @@ static dd4hep::Ref_t create_detector(dd4hep::Detector& theDetector, xml_dim_t Fe_pos(x_Fe.child(_U(position))); xml_dim_t Fe_dim(x_Fe.child(_U(dimensions))); - double Fe_halfX1 = (theDetector.constant<double>("Muon_barrel_inner_radius") + theDetector.constant<double>("Muon_barrel_iron_z")) / ( 2 + std::sqrt(3) ) - theDetector.constant<double>("Muon_barrel_iron_z"); + //double Fe_halfX1 = (theDetector.constant<double>("Muon_barrel_inner_radius") + theDetector.constant<double>("Muon_barrel_iron_z")) / ( 2 + std::sqrt(3) ) - theDetector.constant<double>("Muon_barrel_iron_z"); + double Fe_halfX1 = 0.5 * theDetector.constant<double>("Muon_standard_scale"); double Fe_halfX2 = Fe_halfX1 + theDetector.constant<double>("Muon_barrel_iron_z") * std::sqrt(3); //double Fe_halfX1 = 0.5 * 459.403*dd4hep::mm; //double Fe_halfX2 = 0.5 * 4754.889 * dd4hep::mm; - //double Fe_posZ = -1 * theDetector.constant<double>("Muon_barrel_iron_x1") * ( 2.5 + 1.5 * std::sqrt(3) ); - double Fe_posZ = -1 * ( theDetector.constant<double>("Muon_barrel_inner_radius") + 0.5 * theDetector.constant<double>("Muon_barrel_iron_z") ); + double Fe_posZ = -1 * theDetector.constant<double>("Muon_standard_scale") * ( 2.5 + 1.5 * std::sqrt(3) ); + //double Fe_posZ = -1 * ( theDetector.constant<double>("Muon_barrel_inner_radius") + 0.5 * theDetector.constant<double>("Muon_barrel_iron_z") ); dd4hep::Assembly env_vol(env_name); double env_rot = i0 * 360 * dd4hep::degree / x_env.id(); dd4hep::Transform3D env_transform(dd4hep::Rotation3D(dd4hep::RotationY(env_rot)),dd4hep::Position(env_pos.x(), 0,env_pos.z())); diff --git a/Digitization/DigiMuon/src/MuonDigiAlg.cpp b/Digitization/DigiMuon/src/MuonDigiAlg.cpp index 17703c2f861c3cb1ca6dfe50d4c121a1b1838ec5..800b07625c80f9be59c96e1f94e309b7d506c3dc 100644 --- a/Digitization/DigiMuon/src/MuonDigiAlg.cpp +++ b/Digitization/DigiMuon/src/MuonDigiAlg.cpp @@ -143,7 +143,9 @@ StatusCode MuonDigiAlg::execute() debug() << m_inputMuonBarrel.fullKey() << " has SimTrackerHit "<< STHCol->size() << endmsg; - int strip_length[8] = {17, 29, 41, 53, 65, 77, 89, 101}; + // number of strips parallel to beam direction + // in each slayer, each strip width=4cm, so + int strip_length[6] = {26, 38, 50, 62, 74, 86}; // define variables to be repeatedly used later unsigned long long cellid; @@ -167,7 +169,7 @@ StatusCode MuonDigiAlg::execute() debug() << "Position:: " << ddpos.x() << " " << ddpos.y() << " " << ddpos.z() << endmsg; // if not satisfy energy requirement, skip this hit - if ( Edep>0.01 || Edep<0.0001 ) continue; + //if ( Edep>0.01 || Edep<0.0001 ) continue; //calculate hit strip length double hit_strip_length = std::sqrt((ddpos.x()-pos[0]*0.1)*(ddpos.x()-pos[0]*0.1)+(ddpos.y()-pos[1]*0.1)*(ddpos.y()-pos[1]*0.1)+(ddpos.z()-pos[2]*0.1)*(ddpos.z()-pos[2]*0.1)); @@ -178,16 +180,24 @@ StatusCode MuonDigiAlg::execute() int tempnum = Env + slayer; if(tempnum%2 == 0) { - hit_sipm_length = 115 * 2 - hit_strip_length; + // 115 is the number of strips parpendicular + // to the beam axis in long-half-barrel + hit_sipm_length = (115 * 4.0)/2 - hit_strip_length; } else { - hit_sipm_length = 106 * 2 - hit_strip_length; + // 106 is the number of strips parpendicular + // to the beam axis in short-half-barrel + hit_sipm_length = (106 * 4.0)/2 - hit_strip_length; } } if(layer == 2) { - hit_sipm_length = strip_length[slayer-1] * 2 - hit_strip_length; + // number of strips parallel to beam direction + // in each slayer, each strip width=4cm, so + // the number * 4 cm gives the length of strips + // in each slayer parpendicular to the beam axis + hit_sipm_length = (strip_length[slayer-1] * 4)/2 - hit_strip_length; } // digitize to ADC