From c8403f5a2ce8ea7cfb88cb902e1af5e61614d1f5 Mon Sep 17 00:00:00 2001 From: myliu <201916234@mail.sdu.edu.cn> Date: Wed, 28 Oct 2020 22:27:24 +0800 Subject: [PATCH] Improve the phiFormXY functionand the calculation of DCA --- .../DetSegmentation/DetSegmentation/GridDriftChamber.h | 6 ++++-- Detector/DetSegmentation/src/GridDriftChamber.cpp | 10 +++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Detector/DetSegmentation/DetSegmentation/GridDriftChamber.h b/Detector/DetSegmentation/DetSegmentation/GridDriftChamber.h index 188a1f40..769b6716 100644 --- a/Detector/DetSegmentation/DetSegmentation/GridDriftChamber.h +++ b/Detector/DetSegmentation/DetSegmentation/GridDriftChamber.h @@ -44,7 +44,7 @@ public: virtual Vector3D position(const CellID& aCellID) const; virtual CellID cellID(const Vector3D& aLocalPosition, const Vector3D& aGlobalPosition, const VolumeID& aVolumeID) const; - virtual double distanceTrackWire(const CellID& cID, const TVector3& hit_start, const TVector3& hit_end) const; + virtual double distanceTrackWire(const CellID& cID, const TVector3& hit_start/*, const TVector3& hit_end*/) const; double phi(const CellID& cID) const; inline double cell_Size() const { return m_cellSize; } @@ -55,7 +55,9 @@ public: // Setters inline double phiFromXY(const Vector3D& aposition) const { - return std::atan2(aposition.Y, aposition.X) ; + double beta = std::atan2(aposition.Y, aposition.X) ; + if( beta < 0 ) { beta = beta + 2 * M_PI; } + return beta; } inline void setGeomParams(int layer, double layerphi, double R, double eps, double offset) { diff --git a/Detector/DetSegmentation/src/GridDriftChamber.cpp b/Detector/DetSegmentation/src/GridDriftChamber.cpp index 09432fb8..d2ca3196 100644 --- a/Detector/DetSegmentation/src/GridDriftChamber.cpp +++ b/Detector/DetSegmentation/src/GridDriftChamber.cpp @@ -79,8 +79,8 @@ double GridDriftChamber::phi(const CellID& cID) const { return (_currentLayerphi * 0.5) + binToPosition(phiValue, _currentLayerphi, m_offsetPhi); } -double GridDriftChamber::distanceTrackWire(const CellID& cID, const TVector3& hit_start, - const TVector3& hit_end) const { +double GridDriftChamber::distanceTrackWire(const CellID& cID, const TVector3& hit_start/*, + const TVector3& hit_end*/) const { auto layerIndex = _decoder->get(cID, "layer"); updateParams(layerIndex); @@ -88,10 +88,10 @@ double GridDriftChamber::distanceTrackWire(const CellID& cID, const TVector3& hi double phi_start = phi(cID); double phi_end = phi_start + returnAlpha(); - TVector3 Wstart = returnWirePosition(phi_start, 1); - TVector3 Wend = returnWirePosition(phi_end, -1); + TVector3 Wstart = 10*returnWirePosition(phi_start, -1); // Convert from cm to mm + TVector3 Wend = 10*returnWirePosition(phi_end, 1); // Convert from cm to mm - TVector3 a = hit_end - hit_start; +// TVector3 a = hit_end - hit_start; TVector3 b = Wend - Wstart; TVector3 c = Wstart - hit_start; -- GitLab