diff --git a/Detector/DetCRD/compact/CRD_common_v01/SET_SimplePlanar_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/SET_SimplePlanar_v01_01.xml index 82071ac2591c17718373cb53e88abbb6313702bd..1c9ec38ccd46841dde89ef090ab4ab9dee316751 100644 --- a/Detector/DetCRD/compact/CRD_common_v01/SET_SimplePlanar_v01_01.xml +++ b/Detector/DetCRD/compact/CRD_common_v01/SET_SimplePlanar_v01_01.xml @@ -1,34 +1,31 @@ <lccdd> <define> - <constant name="SET_inner_radius" value="OuterTracker_outer_radius + env_safety"/> - <constant name="SET_outer_radius" value="Ecal_barrel_inner_radius - env_safety "/> - <constant name="SET_half_length" value="DC_half_length"/> + <!--0.17mm silicon + 1.0mm carbon -> 0.65% of X0--> + <constant name="SET_sensitive_thickness" value="0.17*mm"/> + <constant name="SET_support_thickness" value="1.0*mm"/> + <constant name="SET_ladder_number" value="24"/> + <constant name="SET_outer_radius" value="(SET_inner_radius+SET_sensitive_thickness*2+SET_support_thickness*2)/cos(pi/SET_ladder_number) + env_safety"/> + <constant name="SET_half_length" value="OuterTracker_half_length"/> + <constant name="SET_distance_from_tpc" value="SET_inner_radius-OuterTracker_outer_radius+0.5*SET_sensitive_thickness"/> </define> <detectors> <detector id="DetID_SET" name="SET" type="SET_Simple_Planar" vis="SETVis" readout="SETCollection" insideTrackingVolume="true"> - <envelope vis="SETVis"> - <shape type="Tube" rmin="SET_inner_radius" rmax="SET_outer_radius" dz="SET_half_length" material = "Air" /> + <envelope> + <shape type="Tube" rmin="SET_inner_radius" rmax="SET_outer_radius" dz="SET_half_length" material = "Air" /> </envelope> <type_flags type="DetType_TRACKER + DetType_BARREL + DetType_STRIP "/> - <!-- database : set_simple_planar_sensors_01 --> - - <!-- SQL command: "select * from extended_reconstruction_parameters;" --> <reconstruction strip_width="0.0125*mm" strip_length="92*mm" strip_pitch="0.05*mm" strip_angle="7*deg" /> - <!-- SQL command: "select * from global;" --> - <global sensitive_thickness="0.2*mm" support_thickness="1*mm" sensor_length="92*mm" sensitive_mat="G4_Si" + <global sensitive_thickness="SET_sensitive_thickness" support_thickness="SET_support_thickness" sensor_length="92*mm" sensitive_mat="G4_Si" support_mat="G4_C" sensitive_threshold_KeV="64*keV" /> - <!-- SQL command: "select * from set_layers;" --> - - <layer layer_id="0" sensitive_distance_from_tpc="3*mm" coverage_of_TPC_Ecal_Hcal_barrel="0.98" - n_ladders="24" ladder_clearance="0.1*mm" faces_IP="1" /> - - <layer layer_id="1" sensitive_distance_from_tpc="5.5*mm" coverage_of_TPC_Ecal_Hcal_barrel="0.98" - n_ladders="24" ladder_clearance="0.1*mm" faces_IP="0" /> + <layer layer_id="0" sensitive_distance_from_tpc="SET_distance_from_tpc" coverage_of_TPC_Ecal_Hcal_barrel="1.0" + n_ladders="SET_ladder_number" ladder_clearance="0.1*mm" faces_IP="1" /> + <layer layer_id="1" sensitive_distance_from_tpc="SET_distance_from_tpc+SET_support_thickness*2+SET_sensitive_thickness" coverage_of_TPC_Ecal_Hcal_barrel="1.0" + n_ladders="SET_ladder_number" ladder_clearance="0.1*mm" faces_IP="0" /> </detector> diff --git a/Detector/DetCRD/compact/CRD_common_v01/SIT_SimplePixel_v01_01.xml b/Detector/DetCRD/compact/CRD_common_v01/SIT_SimplePixel_v01_01.xml index 02a49d5eaa5a5fd32f68e2d51987d7c64505680f..45c2060d9cf4f9abf51b4a01162d73e45485bae1 100644 --- a/Detector/DetCRD/compact/CRD_common_v01/SIT_SimplePixel_v01_01.xml +++ b/Detector/DetCRD/compact/CRD_common_v01/SIT_SimplePixel_v01_01.xml @@ -1,42 +1,46 @@ <lccdd> <define> - <constant name="SIT_sensitive_thickness" value="0.2*mm"/> - <constant name="SIT_inner_radius" value="SIT1_inner_radius"/> + <!--0.17mm silicon + 1.0mm carbon -> 0.65% of X0--> + <constant name="SIT_sensitive_thickness" value="0.17*mm"/> + <constant name="SIT_support_thickness" value="1*mm"/> + <constant name="SIT_sensor_length" value="92*mm"/> + <!--constant name="SIT_inner_radius" value="SIT1_inner_radius"/> <constant name="SIT_inner_radius_1" value="SIT_inner_radius + env_safety"/> <constant name="SIT_outer_radius_1" value="SIT_inner_radius_1/cos(pi/8)"/> <constant name="SIT_inner_radius_2" value="SIT2_inner_radius"/> <constant name="SIT_outer_radius" value="OuterTracker_inner_radius"/> <constant name="SIT_half_length" value="SIT2_half_length"/> <constant name="SIT_half_length_1" value="SIT1_half_length"/> - <constant name="SIT_layer_gap" value="2.5*mm"/> + <constant name="SIT_layer_gap" value="2.5*mm"/--> </define> <detectors> - <detector id="DetID_SIT" name="SIT" type="SIT_Simple_Planar" vis="SITVis" readout="SITCollection" insideTrackingVolume="true"> - <envelope vis="SeeThrough"> - <shape type="BooleanShape" operation="Union" material="Air" > + <detector id="DetID_SIT" name="SIT" type="SIT_Simple_Pixel" vis="SITVis" readout="SITCollection" insideTrackingVolume="true"> + <envelope> + <shape type="Assembly"/> + <!--shape type="BooleanShape" operation="Union" material="Air" > <shape type="Tube" rmin="SIT_inner_radius" rmax="SIT_outer_radius_1" dz="SIT_half_length_1" /> <shape type="Tube" rmin="SIT_inner_radius_2" rmax="SIT_outer_radius" dz="SIT_half_length" /> - </shape> + </shape--> </envelope> - <type_flags type="DetType_TRACKER + DetType_BARREL + DetType_STRIP "/> + <type_flags type="DetType_TRACKER + DetType_BARREL + DetType_PIXEL "/> - <!-- database : sit_simple_planar_sensors_03 --> - - <!-- SQL command: "select * from extended_reconstruction_parameters;" --> <reconstruction strip_width="0." strip_length="92*mm" strip_pitch="0." strip_angle="0*deg" /> - <!-- SQL command: "select * from global;" --> - <global sensitive_thickness="SIT_sensitive_thickness" support_thickness="1*mm" sensor_length="92*mm" + <global sensitive_thickness="SIT_sensitive_thickness" support_thickness="SIT_support_thickness" sensor_length="SIT_sensor_length" sensitive_mat="G4_Si" support_mat="G4_C" sensitive_threshold_KeV="64*keV" /> + <display ladder="SeeThrough" support="SITSupportVis" sens_env="SeeThrough" sens="SITSensitiveVis" /> - <!-- SQL command: "select * from sit_layers;" --> - <layer layer_id="0" sensitive_radius="SIT_inner_radius_1+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="8" n_ladders="10" - ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="1" is_SIT2="0" /> + <layer layer_id="0" sensitive_radius="SIT1_inner_radius+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="SIT1_half_length*2/SIT_sensor_length" + n_ladders="2*pi*SIT1_inner_radius/SIT_sensor_length" ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="1" is_SIT2="0" /> + <layer layer_id="1" sensitive_radius="SIT2_inner_radius+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="SIT2_half_length*2/SIT_sensor_length" + n_ladders="2*pi*SIT2_inner_radius/SIT_sensor_length" ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="0" is_SIT2="1" /> + <layer layer_id="2" sensitive_radius="SIT3_inner_radius+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="SIT3_half_length*2/SIT_sensor_length" + n_ladders="2*pi*SIT3_inner_radius/SIT_sensor_length" ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="0" is_SIT2="0" /> + <layer layer_id="3" sensitive_radius="SIT4_inner_radius+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="SIT4_half_length*2/SIT_sensor_length" + n_ladders="2*pi*SIT4_inner_radius/SIT_sensor_length" ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="0" is_SIT2="0" /> - <layer layer_id="1" sensitive_radius="SIT_inner_radius_2+0.5*SIT_sensitive_thickness" n_sensors_per_ladder="48" n_ladders="16" - ladder_clearance="0.1*mm" faces_IP="1" is_SIT1="0" is_SIT2="1" /> </detector> </detectors> diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp index 06822bb910b8138d387f1a85e24aebf690941e8b..88d71d3c05c70a4e57d64454cc8f2ed7847d44e3 100644 --- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp +++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp @@ -3,6 +3,7 @@ #include "EventSeeder/IEventSeeder.h" #include "TrackSystemSvc/ITrackSystemSvc.h" #include "DataHelper/Navigation.h" +#include "DataHelper/TrackerHitHelper.h" #include "edm4hep/MCParticle.h" #include "edm4hep/TrackerHit.h" //#include "edm4hep/TrackerHitPlane.h" @@ -420,7 +421,7 @@ int SiliconTrackingAlg::InitialiseFTD() { } catch ( GaudiException &e ) { debug() << "Collection " << _inFTDPixelColHdl.fullKey() << " is unavailable in event " << _nEvt << endmsg; - success = 0; + //success = 0; } if(hitFTDPixelCol){ @@ -520,7 +521,7 @@ int SiliconTrackingAlg::InitialiseFTD() { } catch ( GaudiException &e ) { debug() << "Collection " << _inFTDSpacePointColHdl.fullKey() << " is unavailable in event " << _nEvt << endmsg; - success = 0; + //success = 0; } const edm4hep::TrackerHitCollection* rawHitCol = nullptr; @@ -626,6 +627,8 @@ int SiliconTrackingAlg::InitialiseFTD() { } } + if(hitFTDPixelCol==nullptr&&hitFTDSpacePointCol==nullptr) success = 0; + debug() << "FTD initialized" << endmsg; return success; } @@ -771,7 +774,6 @@ int SiliconTrackingAlg::InitialiseVTX() { // v) Must be standard TrackerHit //const edm4hep::ConstTrackerHit trkhit = hitSITCol->at(ielem); - int layer = getLayerID(trkhit); // VXD and SIT are treated as one system so SIT layers start from _nLayersVTX @@ -2671,7 +2673,7 @@ void SiliconTrackingAlg::FinalRefit(edm4hep::TrackCollection* trk_col) { // check if the hit has been rejected as being on the same layer and further from the helix lh==0 if (lh[i] == 1) { edm4hep::ConstTrackerHit trkHit = hitVec[i]->getTrackerHit(); - debug() << "TrackerHit " << i << " address = " << trkHit << endmsg; + debug() << "TrackerHit " << i << " id = " << trkHit.id() << endmsg; nFit++; if(trkHit.isAvailable()) { trkHits.push_back(trkHit); @@ -2791,7 +2793,7 @@ void SiliconTrackingAlg::FinalRefit(edm4hep::TrackCollection* trk_col) { marlinTrk->getHitsInFit(hits_in_fit); for ( unsigned ihit = 0; ihit < hits_in_fit.size(); ++ihit) { - debug() << "Hit address=" << hits_in_fit[ihit].first << endmsg; + debug() << "Hit id =" << hits_in_fit[ihit].first.id() << endmsg; edm4hep::ConstTrackerHit trk = hits_in_fit[ihit].first; all_hits.push_back(trk);//hits_in_fit[ihit].first); }