From b3a3f2ac538e87096f9ae1f05beb9093e8b5aa42 Mon Sep 17 00:00:00 2001
From: John Derek Chapman <chapman@hep.phy.cam.ac.uk>
Date: Thu, 18 Apr 2019 18:09:28 +0000
Subject: [PATCH] Merge branch 'nsw_prd' into '21.3'

Modifying MM EDM for microTPC

See merge request atlas/athena!22741

(cherry picked from commit 30165b99ca534b43320614ffdf1550fa59cf6e7d)

a82883c7 Modifying MM EDM for microTPC
3b439bb3 updating microTPC configuration
33c31102 fix copy and move
---
 .../MuonPrepRawData/MMPrepData.h              | 23 +++++++++++++++
 .../MuonPrepRawData/src/MMPrepData.cxx        | 28 +++++++++++++++----
 2 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MMPrepData.h b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MMPrepData.h
index daa638e3c8a7..dbc77dd42305 100755
--- a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MMPrepData.h
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MMPrepData.h
@@ -67,6 +67,9 @@ namespace Muon
     /** @brief Destructor: */
     virtual ~MMPrepData();
 
+    /** @brief set microTPC parameters */
+    void setMicroTPC(double angle, double chisqProb);
+
     /** @brief Returns the global position*/
     const Amg::Vector3D& globalPosition() const;
 
@@ -80,6 +83,12 @@ namespace Muon
     /** @brief Returns the ADC counts */
     int charge() const;
 
+    /** @brief Returns the microTPC angle */
+    int angle() const;
+
+    /** @brief Returns the microTPC chisq Prob. */
+    int chisqProb() const;
+
     /** @brief Dumps information about the PRD*/
     MsgStream&    dump( MsgStream&    stream) const;
 
@@ -97,6 +106,10 @@ namespace Muon
     /** @brief measured charge */
     int m_charge;
 
+    /** @angle and chisquare from micro-TPC fit */
+    double m_angle;
+    double m_chisqProb;
+
   };
 
   inline const MuonGM::MMReadoutElement* MMPrepData::detectorElement() const
@@ -122,6 +135,16 @@ namespace Muon
     return m_charge;
   }
 
+  inline int MMPrepData::angle() const 
+  {
+    return m_angle;
+  }
+
+  inline int MMPrepData::chisqProb() const 
+  {
+    return m_chisqProb;
+  }
+
 }
 
 #endif // MUONPREPRAWDATA_MMREPDATA_H
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/src/MMPrepData.cxx b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/src/MMPrepData.cxx
index f9ae7e523198..851b306fb4c0 100755
--- a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/src/MMPrepData.cxx
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/src/MMPrepData.cxx
@@ -19,7 +19,9 @@ namespace Muon
     MuonCluster(RDOId, idDE, locpos, rdoList, locErrMat), //call base class constructor
     m_detEl(detEl),
     m_time(time),
-    m_charge(charge)
+    m_charge(charge),
+    m_angle(0),
+    m_chisqProb(0)
   { }
 
   MMPrepData::MMPrepData( const Identifier& RDOId,
@@ -31,7 +33,9 @@ namespace Muon
     MuonCluster(RDOId, idDE, locpos, rdoList, locErrMat), //call base class constructor
     m_detEl(detEl),
     m_time(0),
-    m_charge(0)
+    m_charge(0),
+    m_angle(0),
+    m_chisqProb(0)
   { }
 
   // Destructor:
@@ -45,7 +49,9 @@ namespace Muon
     MuonCluster(),
     m_detEl(0),
     m_time(0),
-    m_charge(0)
+    m_charge(0),
+    m_angle(0),
+    m_chisqProb(0)
   { }
 
   //copy constructor:
@@ -53,7 +59,9 @@ namespace Muon
     MuonCluster(RIO),
     m_detEl( RIO.m_detEl ),
     m_time(RIO.m_time),
-    m_charge(RIO.m_charge)
+    m_charge(RIO.m_charge),
+    m_angle(RIO.m_angle),
+    m_chisqProb(RIO.m_chisqProb)
   { }
 
   //move constructor:
@@ -61,9 +69,19 @@ namespace Muon
     MuonCluster(std::move(RIO)),
     m_detEl( RIO.m_detEl ),
     m_time(RIO.m_time),
-    m_charge(RIO.m_charge)
+    m_charge(RIO.m_charge),
+    m_angle(RIO.m_angle),
+    m_chisqProb(RIO.m_chisqProb)
   { }
 
+  /// set the micro-tpc quantities
+  void MMPrepData::setMicroTPC(double angle, double chisqProb)
+  {
+    m_angle = angle;
+    m_chisqProb = chisqProb;
+  }
+
+
   //assignment operator
   MMPrepData&
   MMPrepData::operator=(const MMPrepData& RIO)
-- 
GitLab