From 6775c20fdf24826880b5176e7cd43555c2248d8f Mon Sep 17 00:00:00 2001
From: Stefano Rosati <stefano.rosati@cern.ch>
Date: Wed, 3 Oct 2018 01:06:41 +0200
Subject: [PATCH] Sweep modifications to STGC RDO's and Digit->RDO converters
 from 21.3 to master 	modified:  
 MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/STGC_DigitToRDO.cxx 
 modified:   MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawData.h 	modified:  
 MuonSpectrometer/MuonRDO/src/STGC_RawData.cxx

---
 .../src/STGC_DigitToRDO.cxx                      |  3 ++-
 MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawData.h  | 16 +++++++++-------
 MuonSpectrometer/MuonRDO/src/STGC_RawData.cxx    |  6 +++---
 3 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/STGC_DigitToRDO.cxx b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/STGC_DigitToRDO.cxx
index 85f7dabc32e..2d190d262ce 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/STGC_DigitToRDO.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/STGC_DigitToRDO.cxx
@@ -61,8 +61,9 @@ StatusCode STGC_DigitToRDO::execute()
       for (const sTgcDigit* digit : *digitColl ){
         Identifier id = digit->identify();
 	uint16_t bcTag = digit->bcTag();
+	// keep the time as a float for now, but it should also become an int
 	float time   = digit->time();
-	float charge = digit->charge();
+	uint16_t charge = (uint16_t) digit->charge_10bit();
 	bool isDead = digit->isDead();
         STGC_RawData* rdo = new STGC_RawData(id, bcTag, time, charge, isDead);
         coll->push_back(rdo);
diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawData.h b/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawData.h
index 0a89306cd43..b8329c5e572 100755
--- a/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawData.h
+++ b/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawData.h
@@ -17,12 +17,13 @@ class STGC_RawData {
  private:
 
  // offline identifier
-   Identifier m_id;
+   const Identifier m_id;
 
-   // readout data ( not sure whether time and charge should be float )
-   uint16_t m_bcTag;
+   // readout data
+   // keeping time as a float for now, but it should also become an int
    float m_time;
-   float m_charge;
+   uint16_t m_charge;
+   uint16_t m_bcTag;
    
    bool m_isDead;
    
@@ -31,15 +32,16 @@ class STGC_RawData {
    STGC_RawData (const Identifier id);
    STGC_RawData () {} //!< TODO remove this. Currently have problems with convertor if I do though.
 
-   STGC_RawData (const Identifier id, const uint16_t bcTag, const float time, const float charge, 
+   STGC_RawData (const Identifier id, const uint16_t bcTag, const float time, const uint16_t charge, 
 		 const bool isDead );
  
    virtual ~STGC_RawData() {}
-   const Identifier& identify() const { return m_id; }
+
+   const Identifier identify() const { return m_id; }
 
    // access functions
    float time() const {return m_time;}
-   float charge() const {return m_charge;}
+   uint16_t charge() const {return m_charge;}
    uint16_t bcTag() const {return m_bcTag;}
 
    bool isDead() const {return m_isDead;}
diff --git a/MuonSpectrometer/MuonRDO/src/STGC_RawData.cxx b/MuonSpectrometer/MuonRDO/src/STGC_RawData.cxx
index 8e7eac35881..99612285173 100755
--- a/MuonSpectrometer/MuonRDO/src/STGC_RawData.cxx
+++ b/MuonSpectrometer/MuonRDO/src/STGC_RawData.cxx
@@ -10,13 +10,13 @@
 // P1 ------------------------
 // Constructor for Hit
 Muon::STGC_RawData::STGC_RawData(const Identifier id)
-  :m_id(id), m_bcTag(0), m_time(0.0), m_charge(0.0), m_isDead(false)
+  :m_id(id), m_time(0.0), m_charge(0), m_bcTag(0), m_isDead(false)
 {
 }
 
 Muon::STGC_RawData::STGC_RawData(const Identifier id, const uint16_t bcTag, const float time, 
-				 const float charge, const bool isDead)
-  :m_id(id), m_bcTag(bcTag), m_time(time), m_charge(charge), m_isDead(isDead)
+				 const uint16_t charge, const bool isDead)
+  :m_id(id), m_time(time), m_charge(charge), m_bcTag(bcTag), m_isDead(isDead)
 {
 }
 
-- 
GitLab