From 293b1f939ce189eb7540c25cec4cd7d228ac2159 Mon Sep 17 00:00:00 2001 From: Chengdong Fu <fucd@ihep.ac.cn> Date: Tue, 11 Mar 2025 10:08:20 +0800 Subject: [PATCH 1/3] improve resolution --- .../src/FitterTool/KalTestTool.cpp | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/Reconstruction/RecTrkGlobal/src/FitterTool/KalTestTool.cpp b/Reconstruction/RecTrkGlobal/src/FitterTool/KalTestTool.cpp index 56074e6e..03846ba1 100644 --- a/Reconstruction/RecTrkGlobal/src/FitterTool/KalTestTool.cpp +++ b/Reconstruction/RecTrkGlobal/src/FitterTool/KalTestTool.cpp @@ -326,7 +326,13 @@ int KalTestTool::finaliseTrack(MarlinTrk::IMarlinTrack* marlintrk, edm4hep::Muta marlintrk->getTrackerHitAtPositiveNDF(last_constrained_hit); + debug() << "finaliseLCIOTrack: firstHit: " << firstHit.getCellID() << " " << firstHit.getPosition() + << " lastHit: " << lastHit.getCellID() << " " << lastHit.getPosition() + << " last constrained hit: " << last_constrained_hit.getCellID() << " " << last_constrained_hit.getPosition() + << " fit direction is backward : " << fit_backwards << endmsg; + return_error = marlintrk->smooth(lastHit); + //return_error = marlintrk->smooth(last_constrained_hit); if (return_error != MarlinTrk::IMarlinTrack::success) { debug() << "return_code for smoothing to " << lastHit << " = " << MarlinTrk::errorCode(return_error) << " NDF = " << ndf << endmsg; @@ -366,21 +372,21 @@ int KalTestTool::finaliseTrack(MarlinTrk::IMarlinTrack* marlintrk, edm4hep::Muta double chi2Tmp = 0; int ndfTmp = 0; - return_error = marlintrk->getTrackState( last_constrained_hit, ts, chi2, ndf); - //return_error = marlintrk->getTrackState( lastHit, ts, chi2, ndf); + //return_error = marlintrk->getTrackState( last_constrained_hit, ts, chi2, ndf); + return_error = marlintrk->getTrackState( lastHit, ts, chi2, ndf); debug() << "-- TrackState at last constrained hit : " << ts << endmsg; //need to add a dummy hit to the track - mTrk->addHit(last_constrained_hit); - //mTrk->addHit(lastHit); + //mTrk->addHit(last_constrained_hit); + mTrk->addHit(lastHit); double _bfield = m_magneticField; // fixme: the implementation for DDKalTest does no longer need this value but the IMarlinTrk interface is not yet changed mTrk->initialise(ts, _bfield, fit_backwards); - while (hI->first.id() != last_constrained_hit.id()) { - //while (hI->first.id() != lastHit.id()) { + //while (hI->first.id() != last_constrained_hit.id()) { + while (hI->first.id() != lastHit.id()) { debug() << "-- hit in reverse_iterator : " << hI->first.getCellID() << " " << hI->first.getPosition() << endmsg; ++hI; } @@ -457,8 +463,8 @@ int KalTestTool::finaliseTrack(MarlinTrk::IMarlinTrack* marlintrk, edm4hep::Muta // @ last hit /////////////////////////////////////////////////////// - debug() << ">>>> create TrackState AtLastHit : using from trkhit " - << last_constrained_hit.getCellID() << " " << last_constrained_hit.getPosition() << endmsg; + debug() << ">>>> create TrackState AtLastHit : using trkhit " << lastHit.getCellID() << " " << lastHit.getPosition() + << " from last_constrained_hit " << last_constrained_hit.getCellID() << " " << last_constrained_hit.getPosition() << endmsg; edm4hep::Vector3d last_hit_pos(lastHit.getPosition()); -- GitLab From 323c69ba09f2ecfba761cb2a4298a51d25b991a3 Mon Sep 17 00:00:00 2001 From: Chengdong Fu <fucd@ihep.ac.cn> Date: Tue, 11 Mar 2025 10:08:52 +0800 Subject: [PATCH 2/3] minor print info change --- .../RecTrkGlobal/src/FullLDCTracking/FullLDCTrackingAlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Reconstruction/RecTrkGlobal/src/FullLDCTracking/FullLDCTrackingAlg.cpp b/Reconstruction/RecTrkGlobal/src/FullLDCTracking/FullLDCTrackingAlg.cpp index 7a256ff7..249513b2 100755 --- a/Reconstruction/RecTrkGlobal/src/FullLDCTracking/FullLDCTrackingAlg.cpp +++ b/Reconstruction/RecTrkGlobal/src/FullLDCTracking/FullLDCTrackingAlg.cpp @@ -465,7 +465,7 @@ fitstart: unsigned long cellID = hit.getCellID(); const edm4hep::Vector3d& pos = hit.getPosition(); double r = sqrt(pos.x*pos.x+pos.y*pos.y); - debug() << "Hit " << iHit << ": r= " << r << " id = " << hit.id() << " cellID = " << cellID << " det = " << (cellID&0x1F) << endmsg; + debug() << "Hit " << iHit << ": r = " << r << " z = " << pos.z << " id = " << hit.id() << " cellID = " << cellID << " det = " << (cellID&0x1F) << endmsg; } } -- GitLab From f54f6f8d9c9b2354c00d0aee287c434adb622c48 Mon Sep 17 00:00:00 2001 From: Chengdong Fu <fucd@ihep.ac.cn> Date: Tue, 11 Mar 2025 10:09:45 +0800 Subject: [PATCH 3/3] add shell --- .../KalDet/include/kaldet/CEPCVTXKalDetector.h | 4 ++++ .../KalDet/src/ild/vxd/CEPCVTXKalDetector.cc | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/Utilities/KalDet/include/kaldet/CEPCVTXKalDetector.h b/Utilities/KalDet/include/kaldet/CEPCVTXKalDetector.h index 9da9598d..cb70319b 100644 --- a/Utilities/KalDet/include/kaldet/CEPCVTXKalDetector.h +++ b/Utilities/KalDet/include/kaldet/CEPCVTXKalDetector.h @@ -35,6 +35,10 @@ private: double _relative_position_of_measurement_surface; + double _shellInnerR; + double _shellOuterR; + double _shellHalfZ; + struct VXD_Layer { int nLadders; double phi0; diff --git a/Utilities/KalDet/src/ild/vxd/CEPCVTXKalDetector.cc b/Utilities/KalDet/src/ild/vxd/CEPCVTXKalDetector.cc index b49d6c07..ecf708d7 100644 --- a/Utilities/KalDet/src/ild/vxd/CEPCVTXKalDetector.cc +++ b/Utilities/KalDet/src/ild/vxd/CEPCVTXKalDetector.cc @@ -308,6 +308,18 @@ CEPCVTXKalDetector::CEPCVTXKalDetector( const gear::GearMgr& gearMgr, IGeomSvc* } } + if (_shellInnerR > 0 && _shellOuterR > _shellInnerR) { + TMaterial& shell = *MaterialDataBase::Instance().getMaterial("VXDShellMaterial"); + + Add(new ILDCylinderMeasLayer(air, shell, _shellInnerR, _shellHalfZ, 0, 0, 0, _bZ, dummy, -1, "VXDShellInnerWall")); + Add(new ILDCylinderMeasLayer(shell, air, _shellOuterR, _shellHalfZ, 0, 0, 0, _bZ, dummy, -1, "VXDShellOuterWall")); + + TVector3 normal(0, 0, 1); + TVector3 xc(0.0, 0.0, _shellHalfZ); + Add(new ILDDiscMeasLayer(shell, air, xc, normal, _bZ, _shellOuterR + eps, _shellInnerR, _shellOuterR, dummy, -1, "VXDShellSidePositiveZ")); + Add(new ILDDiscMeasLayer(shell, air, -xc, -normal, _bZ, _shellOuterR + eps, _shellInnerR, _shellOuterR, dummy, -1, "VXDShellSideNegativeZ")); + } + SetOwner(); } @@ -317,6 +329,10 @@ void CEPCVTXKalDetector::setupGearGeom( const gear::GearMgr& gearMgr ){ _bZ = gearMgr.getBField().at( gear::Vector3D( 0.,0.,0.) ).z() ; + _shellInnerR = pVXDDetMain.getShellInnerRadius(); + _shellOuterR = pVXDDetMain.getShellOuterRadius(); + _shellHalfZ = pVXDDetMain.getShellHalfLength(); + _nLayers[0] = pVXDLayerLayout.getNLayers(); _VXDgeo.resize(_nLayers[0]); -- GitLab