From 1a94d85e763af66c7db10bec299e63101635a731 Mon Sep 17 00:00:00 2001
From: Jan de Cuveland <cuveland@compeng.uni-frankfurt.de>
Date: Fri, 10 Dec 2021 11:54:26 +0000
Subject: [PATCH] Migrate core/data to C/C++ std integer types

---
 core/data/CbmAddress.h                        |  10 +-
 core/data/CbmCluster.cxx                      |   6 +-
 core/data/CbmCluster.h                        |  24 +-
 core/data/CbmErrorMessage.cxx                 |   3 +-
 core/data/CbmErrorMessage.h                   |  20 +-
 core/data/CbmEvent.cxx                        |   8 +-
 core/data/CbmEvent.h                          |  45 ++--
 core/data/CbmEventStore.cxx                   |  26 +-
 core/data/CbmEventStore.h                     |  25 +-
 core/data/CbmHit.cxx                          |   3 +-
 core/data/CbmHit.h                            |  46 ++--
 core/data/CbmLink.cxx                         |   2 +-
 core/data/CbmLink.h                           |  36 +--
 core/data/CbmMCEvent.cxx                      |  14 +-
 core/data/CbmMCEvent.h                        |  64 ++---
 core/data/CbmMCEventInfo.cxx                  |   2 +-
 core/data/CbmMCEventInfo.h                    |  16 +-
 core/data/CbmMCEventList.cxx                  |  47 ++--
 core/data/CbmMCEventList.h                    |  33 ++-
 core/data/CbmMCTrack.cxx                      |  25 +-
 core/data/CbmMCTrack.h                        |  68 +++---
 core/data/CbmMatch.cxx                        |  16 +-
 core/data/CbmMatch.h                          |  14 +-
 core/data/CbmModuleList.h                     |   2 +-
 core/data/CbmPixelHit.cxx                     |   8 +-
 core/data/CbmPixelHit.h                       |  36 +--
 core/data/CbmRawEvent.h                       |   8 +-
 core/data/CbmStripHit.cxx                     |   8 +-
 core/data/CbmStripHit.h                       |  34 +--
 core/data/CbmTimeSlice.cxx                    |  46 ++--
 core/data/CbmTimeSlice.h                      |  62 ++---
 core/data/CbmTrack.cxx                        |   2 +-
 core/data/CbmTrack.h                          |  53 ++--
 core/data/CbmTrackMatch.cxx                   |   2 +-
 core/data/CbmTrackMatch.h                     |  25 +-
 core/data/CbmTrackMatchNew.cxx                |   4 +-
 core/data/CbmTrackMatchNew.h                  |  24 +-
 core/data/CbmTsEventHeader.h                  |   2 -
 core/data/DataLinkDef.h                       |  21 +-
 core/data/base/CbmDigiBranch.h                |  18 +-
 core/data/base/CbmDigiBranchBase.h            |  19 +-
 core/data/base/CbmDigiContainer.h             |  16 +-
 core/data/base/CbmDigiVector.h                |  22 +-
 core/data/global/CbmGlobalTrack.h             |  60 ++---
 core/data/global/CbmTofTrack.h                |  49 ++--
 core/data/global/CbmTrackParam.cxx            |  47 ++--
 core/data/global/CbmTrackParam.h              |  37 ++-
 core/data/global/CbmVertex.cxx                |  40 +--
 core/data/global/CbmVertex.h                  |  28 +--
 core/data/much/CbmMuchAddress.cxx             |  46 ++--
 core/data/much/CbmMuchAddress.h               |  45 ++--
 core/data/much/CbmMuchBeamTimeDigi.cxx        |   2 +-
 core/data/much/CbmMuchBeamTimeDigi.h          |  40 +--
 core/data/much/CbmMuchDigi.cxx                |   8 +-
 core/data/much/CbmMuchDigi.h                  |  39 +--
 core/data/much/CbmMuchPixelHit.cxx            |  12 +-
 core/data/much/CbmMuchPixelHit.h              |  24 +-
 core/data/much/CbmMuchPoint.cxx               |  29 +--
 core/data/much/CbmMuchPoint.h                 |  36 +--
 core/data/mvd/CbmMvdCluster.cxx               |   4 +-
 core/data/mvd/CbmMvdCluster.h                 |  26 +-
 core/data/mvd/CbmMvdDetectorId.h              |  11 +-
 core/data/mvd/CbmMvdDigi.cxx                  |  31 +--
 core/data/mvd/CbmMvdDigi.h                    |  94 ++++----
 core/data/mvd/CbmMvdHit.cxx                   |  18 +-
 core/data/mvd/CbmMvdHit.h                     |  33 +--
 core/data/mvd/CbmMvdHitMatch.cxx              |   2 +-
 core/data/mvd/CbmMvdHitMatch.h                |  31 +--
 core/data/mvd/CbmMvdPoint.cxx                 |   8 +-
 core/data/mvd/CbmMvdPoint.h                   |  46 ++--
 core/data/psd/CbmPsdAddress.h                 |  29 ++-
 core/data/psd/CbmPsdDigi.cxx                  |   2 +-
 core/data/psd/CbmPsdDigi.h                    |  32 +--
 core/data/psd/CbmPsdDsp.cxx                   |  34 +--
 core/data/psd/CbmPsdDsp.h                     |  66 ++---
 core/data/psd/CbmPsdHit.cxx                   |   6 +-
 core/data/psd/CbmPsdHit.h                     |  21 +-
 core/data/psd/CbmPsdMCbmHit.cxx               |   2 +-
 core/data/psd/CbmPsdMCbmHit.h                 |  28 +--
 core/data/psd/CbmPsdPoint.cxx                 |   4 +-
 core/data/psd/CbmPsdPoint.h                   |  10 +-
 core/data/raw/CriGet4Mess001.cxx              |   8 +-
 core/data/raw/CriGet4Mess001.h                |   3 +-
 core/data/raw/PsdGbtDataFormat-v0.00.h        |   7 +-
 core/data/raw/PsdGbtDataFormat-v1.00.h        |   7 +-
 core/data/raw/PsdGbtReader-v0.00.cxx          |   2 +-
 core/data/raw/PsdGbtReader-v0.00.h            |   3 +-
 core/data/raw/PsdGbtReader-v1.00.h            |   4 +-
 core/data/raw/StsXyterFinalHit.h              |   3 +-
 core/data/raw/StsXyterMessage.h               |   3 +-
 core/data/raw/TimesliceMetaData.cxx           |   2 +-
 core/data/raw/TimesliceMetaData.h             |  49 ++--
 core/data/raw/gDpbMessv100.cxx                |   8 +-
 core/data/raw/gDpbMessv100.h                  |   3 +-
 core/data/rich/CbmRichDigi.cxx                |   2 +-
 core/data/rich/CbmRichDigi.h                  |  22 +-
 core/data/rich/CbmRichHit.cxx                 |   4 +-
 core/data/rich/CbmRichHit.h                   |  36 +--
 core/data/rich/CbmRichPoint.cxx               |   4 +-
 core/data/rich/CbmRichPoint.h                 |   5 +-
 core/data/rich/CbmRichRing.cxx                |  45 ++--
 core/data/rich/CbmRichRing.h                  | 158 ++++++------
 core/data/rich/CbmRichRingLight.h             |   1 -
 core/data/rich/CbmRichTrbDigi.cxx             |   8 +-
 core/data/rich/CbmRichTrbDigi.h               |  37 +--
 core/data/sts/CbmStsCluster.h                 |  39 ++-
 core/data/sts/CbmStsHit.cxx                   |   4 +-
 core/data/sts/CbmStsHit.h                     |  26 +-
 core/data/sts/CbmStsPoint.cxx                 |  30 +--
 core/data/sts/CbmStsPoint.h                   |  51 ++--
 core/data/sts/CbmStsTrack.cxx                 |   2 +-
 core/data/sts/CbmStsTrack.h                   |  35 +--
 core/data/test/_GTestCbmAddress.cxx           |   2 +-
 core/data/test/_GTestCbmCluster.cxx           |  28 +--
 core/data/test/_GTestCbmConstants.cxx         |   6 +-
 core/data/test/_GTestCbmDefs.cxx              |   2 +-
 core/data/test/_GTestCbmDigi.cxx              |   6 +-
 core/data/test/_GTestCbmEvent.cxx             |  36 +--
 core/data/test/_GTestCbmHit.cxx               |   2 +-
 core/data/test/compareCluster.h               |   8 +-
 core/data/test/compareDigi.h                  |   6 +-
 core/data/test/compareErrorMessage.h          |   4 +-
 core/data/test/compareFairMCPoint.h           |   8 +-
 core/data/test/compareHit.h                   |   8 +-
 core/data/test/compareLink.h                  |   6 +-
 core/data/test/compareMatch.h                 |   6 +-
 core/data/test/comparePixelHit.h              |   8 +-
 core/data/test/compareStripHit.h              |   8 +-
 core/data/test/compareVertex.h                |   8 +-
 core/data/test/global/_GTestCbmVertex.cxx     |  32 +--
 core/data/test/much/compareMuchBeamTimeDigi.h |   8 +-
 core/data/test/much/compareMuchDigi.h         |  11 +-
 core/data/test/psd/_GTestCbmPsdAddress.cxx    |  18 +-
 core/data/test/psd/_GTestCbmPsdPoint.cxx      | 112 ++++-----
 core/data/test/psd/comparePsdAddress.h        |   4 +-
 core/data/test/psd/comparePsdDigi.h           |   6 +-
 core/data/test/psd/comparePsdHit.h            |   6 +-
 core/data/test/psd/comparePsdPoint.h          |   6 +-
 core/data/test/rich/compareRichDigi.h         |   6 +-
 core/data/test/sts/_GTestCbmStsDigi.cxx       |   4 +-
 core/data/test/sts/compareStsDigi.h           |  12 +-
 core/data/test/tof/compareTofDigi.h           |   6 +-
 core/data/test/trd/_GTestCbmTrdDetectorId.cxx |  42 ++--
 .../trd/_GTestCbmTrdDetectorId_simple.cxx     |  16 +-
 .../trd/_GTestCbmTrdDetectorId_simple1.cxx    |  18 +-
 .../trd/_GTestCbmTrdDetectorId_simple2.cxx    |  18 +-
 .../trd/_GTestCbmTrdDetectorId_simple3.cxx    |   6 +-
 core/data/test/trd/_GTestCbmTrdDigi.cxx       |  10 +-
 core/data/test/trd/_GTestCbmTrdHit.cxx        |  32 +--
 core/data/test/trd/_GTestCbmTrdPoint.cxx      |  96 ++++----
 core/data/test/trd/compareTrdDigi.h           |  28 +--
 core/data/test/trd/compareTrdHit.h            |  10 +-
 core/data/test/trd/compareTrdPoint.h          |  10 +-
 core/data/tof/CbmTofAddress.cxx               |  15 +-
 core/data/tof/CbmTofAddress.h                 |  90 +++----
 core/data/tof/CbmTofDetectorId.h              |  47 ++--
 core/data/tof/CbmTofDetectorId_v07a.cxx       |  34 +--
 core/data/tof/CbmTofDetectorId_v07a.h         |  34 +--
 core/data/tof/CbmTofDetectorId_v12b.cxx       |  34 +--
 core/data/tof/CbmTofDetectorId_v12b.h         |  34 +--
 core/data/tof/CbmTofDetectorId_v14a.cxx       |  42 ++--
 core/data/tof/CbmTofDetectorId_v14a.h         |  42 ++--
 core/data/tof/CbmTofDetectorId_v21a.cxx       |  46 ++--
 core/data/tof/CbmTofDetectorId_v21a.h         |  42 ++--
 core/data/tof/CbmTofDigi.cxx                  |   7 +-
 core/data/tof/CbmTofDigi.h                    |  41 ++--
 core/data/tof/CbmTofHit.cxx                   |  11 +-
 core/data/tof/CbmTofHit.h                     |  47 ++--
 core/data/tof/CbmTofPoint.cxx                 |  26 +-
 core/data/tof/CbmTofPoint.h                   |  26 +-
 core/data/tof/CbmTofTracklet.cxx              | 228 +++++++++---------
 core/data/tof/CbmTofTracklet.h                | 188 +++++++--------
 core/data/tof/CbmTofTrackletParam.cxx         |  10 +-
 core/data/tof/CbmTofTrackletParam.h           |  92 +++----
 core/data/trd/CbmTrdAddress.h                 |  64 ++---
 core/data/trd/CbmTrdCluster.cxx               |  64 ++---
 core/data/trd/CbmTrdCluster.h                 |  50 ++--
 core/data/trd/CbmTrdDigi.cxx                  |  97 ++++----
 core/data/trd/CbmTrdDigi.h                    | 122 +++++-----
 core/data/trd/CbmTrdHit.cxx                   |   4 +-
 core/data/trd/CbmTrdHit.h                     |  37 +--
 core/data/trd/CbmTrdPoint.cxx                 |   4 +-
 core/data/trd/CbmTrdPoint.h                   |  36 +--
 core/data/trd/CbmTrdRawMessageSpadic.h        |   3 +-
 core/data/trd/CbmTrdTrack.h                   |  49 ++--
 core/detectors/trd/CbmTrdFASP.cxx             |  10 +-
 186 files changed, 2515 insertions(+), 2486 deletions(-)

diff --git a/core/data/CbmAddress.h b/core/data/CbmAddress.h
index c56f7c2547..5ef983adc8 100644
--- a/core/data/CbmAddress.h
+++ b/core/data/CbmAddress.h
@@ -10,7 +10,7 @@
 #ifndef CBMADDRESS_H
 #define CBMADDRESS_H 1
 
-#include <RtypesCore.h>  // for ROOT data classes
+#include <cstdint>
 
 /** @class CbmAddress
  ** @brief Base class for interfaces to the unique address
@@ -18,7 +18,7 @@
  ** @version 1.0
  **
  ** CbmAddress is the base class for the concrete interfaces to the
- ** unique address, which is encoded in a 32-bit field (Int_t).
+ ** unique address, which is encoded in a 32-bit field (int32_t).
  ** The definition of this bit field is different for the various
  ** detector systems; common for all is that the first four bits are
  ** reserved for the system identifier.
@@ -37,19 +37,19 @@ public:
   /** Number of bits for system Id in the address field
      ** @return Number of bits
      **/
-  static Int_t GetNofSystemBits() { return fgkSystemBits; }
+  static int32_t GetNofSystemBits() { return fgkSystemBits; }
 
 
   /** Get the system Id from the address
      ** @param address  Unique address
      ** @return  systemId
      **/
-  static Int_t GetSystemId(UInt_t address) { return address & ((1 << fgkSystemBits) - 1); }
+  static int32_t GetSystemId(uint32_t address) { return address & ((1 << fgkSystemBits) - 1); }
 
 
 protected:
   /** Number of bits for system Id in the address field  **/
-  static const Int_t fgkSystemBits = 4;
+  static const int32_t fgkSystemBits = 4;
 };
 
 #endif /* CBMADDRESS_H */
diff --git a/core/data/CbmCluster.cxx b/core/data/CbmCluster.cxx
index 29ac6ba556..029d149137 100644
--- a/core/data/CbmCluster.cxx
+++ b/core/data/CbmCluster.cxx
@@ -20,7 +20,7 @@
 using namespace std;
 
 CbmCluster::CbmCluster() : TObject(), fDigis(), fAddress(0), fMatch(nullptr) {}
-CbmCluster::CbmCluster(const std::vector<Int_t>& indices, Int_t address)
+CbmCluster::CbmCluster(const std::vector<int32_t>& indices, int32_t address)
   : TObject()
   , fDigis()
   , fAddress(address)
@@ -88,9 +88,9 @@ string CbmCluster::ToString() const
 {
   stringstream ss;
   ss << "CbmCluster: ";
-  Int_t nofDigis = GetNofDigis();
+  int32_t nofDigis = GetNofDigis();
   ss << "nofDigis=" << nofDigis << " | ";
-  for (Int_t i = 0; i < nofDigis; i++) {
+  for (int32_t i = 0; i < nofDigis; i++) {
     ss << fDigis[i] << " ";
   }
   ss << " | address=" << fAddress << endl;
diff --git a/core/data/CbmCluster.h b/core/data/CbmCluster.h
index 4fb507b0e0..d69b210885 100644
--- a/core/data/CbmCluster.h
+++ b/core/data/CbmCluster.h
@@ -13,9 +13,9 @@
 #define CBMCLUSTER_H_
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Int_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
 #include <string>  // for string
 #include <vector>  // for vector
 
@@ -33,7 +33,7 @@ public:
 	 * \brief Constructor.
 	 */
   CbmCluster();
-  CbmCluster(const std::vector<Int_t>& indices, Int_t address);
+  CbmCluster(const std::vector<int32_t>& indices, int32_t address);
   CbmCluster(const CbmCluster&);
   CbmCluster(CbmCluster&& other) noexcept;
   CbmCluster& operator=(const CbmCluster&);
@@ -48,38 +48,38 @@ public:
 	 * \brief Add digi to cluster.
 	 * \param[in] index Digi index in TClonesArray.
 	 */
-  void AddDigi(Int_t index) { fDigis.push_back(index); }
+  void AddDigi(int32_t index) { fDigis.push_back(index); }
 
   /**
 	 * \brief Add array of digi to cluster.
 	 * \param[in] indices Array of digi indices in TClonesArray.
 	 */
-  void AddDigis(const std::vector<Int_t>& indices) { fDigis.insert(fDigis.end(), indices.begin(), indices.end()); }
+  void AddDigis(const std::vector<int32_t>& indices) { fDigis.insert(fDigis.end(), indices.begin(), indices.end()); }
 
   /**
 	 * \brief Set array of digi to cluster. Overwrites existing array.
 	 * \param[in] indices Array of digi indices in TClonesArray.
 	 */
-  void SetDigis(const std::vector<Int_t>& indices) { fDigis.assign(indices.begin(), indices.end()); }
+  void SetDigis(const std::vector<int32_t>& indices) { fDigis.assign(indices.begin(), indices.end()); }
 
   /**
 	 * \brief Number of digis in cluster.
 	 * \return Number of digis in cluster.
 	 */
-  Int_t GetNofDigis() const { return fDigis.size(); }
+  int32_t GetNofDigis() const { return fDigis.size(); }
 
   /**
 	 * \brief Get digi at position index.
 	 * \param[in] index Position of digi in array.
 	 * \return Digi index in TClonesArray.
 	 */
-  Int_t GetDigi(Int_t index) const { return fDigis[index]; }
+  int32_t GetDigi(int32_t index) const { return fDigis[index]; }
 
   /**
 	 * \brief Get array of digi indices.
 	 * \return Array of digi indices in TClonesArray.
 	 */
-  const std::vector<Int_t>& GetDigis() const { return fDigis; }
+  const std::vector<int32_t>& GetDigis() const { return fDigis; }
 
   /**
 	 * \brief Remove all digis.
@@ -87,11 +87,11 @@ public:
   void ClearDigis() { fDigis.clear(); }
 
   /** Accessors **/
-  Int_t GetAddress() const { return fAddress; }
+  int32_t GetAddress() const { return fAddress; }
   CbmMatch* GetMatch() const { return fMatch; }
 
   /** Modifiers **/
-  void SetAddress(Int_t address) { fAddress = address; }
+  void SetAddress(int32_t address) { fAddress = address; }
   void SetMatch(CbmMatch* match);
 
   /**
@@ -101,8 +101,8 @@ public:
   virtual std::string ToString() const;
 
 private:
-  std::vector<Int_t> fDigis;  ///< Array of digi indices
-  Int_t fAddress;             ///< Unique detector ID
+  std::vector<int32_t> fDigis;  ///< Array of digi indices
+  int32_t fAddress;             ///< Unique detector ID
   CbmMatch* fMatch;           ///< link to Monte-Carlo information
 
   ClassDef(CbmCluster, 2);
diff --git a/core/data/CbmErrorMessage.cxx b/core/data/CbmErrorMessage.cxx
index 8dd4393a9c..4c8ea13259 100644
--- a/core/data/CbmErrorMessage.cxx
+++ b/core/data/CbmErrorMessage.cxx
@@ -13,7 +13,8 @@
 #include <string>   // for char_traits
 
 // -----   Standard constructor   ------------------------------------------
-CbmErrorMessage::CbmErrorMessage(ECbmModuleId sysId, Double_t dTime, UInt_t uAddress, UInt_t uFlags, UInt_t uPayload)
+CbmErrorMessage::CbmErrorMessage(ECbmModuleId sysId, double dTime, uint32_t uAddress, uint32_t uFlags,
+                                 uint32_t uPayload)
   : fModuleId(sysId)
   , fdTime(dTime)
   , fuAddress(uAddress)
diff --git a/core/data/CbmErrorMessage.h b/core/data/CbmErrorMessage.h
index 9fc1f6304e..4a5d9e3007 100644
--- a/core/data/CbmErrorMessage.h
+++ b/core/data/CbmErrorMessage.h
@@ -18,12 +18,12 @@
 
 /// Fairsoft (Root, Boost, ...) headers
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for UInt_t, Double_t, Int_t
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/base_object.hpp>
 
 /// C/C++ headers
+#include <cstdint>
 #include <memory>  // for unique_ptr
 #include <string>  // for string
 
@@ -55,7 +55,7 @@ public:
        * \param[in] uFlags   Flags/error pattern, 32b available.
        * \param[in] uPayload Optional error payload, 32b available.
        **/
-  CbmErrorMessage(ECbmModuleId sysId, Double_t dTime, UInt_t uAddress, UInt_t uFlags, UInt_t uPayload = 0);
+  CbmErrorMessage(ECbmModuleId sysId, double dTime, uint32_t uAddress, uint32_t uFlags, uint32_t uPayload = 0);
 
 
   /** Destructor  **/
@@ -73,19 +73,19 @@ public:
 
 
   /** @brief Absolute time [ns]  **/
-  Double_t GetTime() const { return fdTime; }
+  double GetTime() const { return fdTime; }
 
 
   /** @brief Origin address  **/
-  UInt_t GetAddress() const { return fuAddress; }
+  uint32_t GetAddress() const { return fuAddress; }
 
 
   /** @brief Flags (bitfield)  **/
-  UInt_t GetFlags() const { return fuFlags; }
+  uint32_t GetFlags() const { return fuFlags; }
 
 
   /** @brief Payload (optional)  **/
-  UInt_t GetPayload() const { return fuPayload; }
+  uint32_t GetPayload() const { return fuPayload; }
 
 
   /** @brief Output information **/
@@ -106,10 +106,10 @@ private:
   friend class boost::serialization::access;
 
   ECbmModuleId fModuleId = ECbmModuleId::kLastModule;
-  Double_t fdTime        = -1.0;
-  UInt_t fuAddress       = 0;
-  UInt_t fuFlags         = 0;
-  UInt_t fuPayload       = 0;
+  double fdTime          = -1.0;
+  uint32_t fuAddress     = 0;
+  uint32_t fuFlags       = 0;
+  uint32_t fuPayload     = 0;
 
 
   ClassDefNV(CbmErrorMessage, 1);
diff --git a/core/data/CbmEvent.cxx b/core/data/CbmEvent.cxx
index 3f4117d41b..0146f3b783 100644
--- a/core/data/CbmEvent.cxx
+++ b/core/data/CbmEvent.cxx
@@ -16,7 +16,7 @@
 
 
 // -----   Add data to event   ---------------------------------------------
-void CbmEvent::AddData(ECbmDataType type, UInt_t index)
+void CbmEvent::AddData(ECbmDataType type, uint32_t index)
 {
 
   fIndexMap[type].push_back(index);
@@ -26,7 +26,7 @@ void CbmEvent::AddData(ECbmDataType type, UInt_t index)
 
 
 // -----   Get a data index   ----------------------------------------------
-UInt_t CbmEvent::GetIndex(ECbmDataType type, UInt_t iData)
+uint32_t CbmEvent::GetIndex(ECbmDataType type, uint32_t iData)
 {
 
   if (fIndexMap.find(type) == fIndexMap.end()) return -1;
@@ -37,7 +37,7 @@ UInt_t CbmEvent::GetIndex(ECbmDataType type, UInt_t iData)
 
 
 // -----   Get number of data of a type in this event   --------------------
-Int_t CbmEvent::GetNofData(ECbmDataType type) const
+int32_t CbmEvent::GetNofData(ECbmDataType type) const
 {
 
   if (fIndexMap.find(type) == fIndexMap.end()) return -1;
@@ -48,7 +48,7 @@ Int_t CbmEvent::GetNofData(ECbmDataType type) const
 
 
 // -----   Set the vertex parameters   -------------------------------------
-void CbmEvent::SetVertex(Double_t x, Double_t y, Double_t z, Double_t chi2, Int_t ndf, Int_t nTracks,
+void CbmEvent::SetVertex(double x, double y, double z, double chi2, int32_t ndf, int32_t nTracks,
                          const TMatrixFSym& covMat)
 {
   fVertex.SetVertex(x, y, z, chi2, ndf, nTracks, covMat);
diff --git a/core/data/CbmEvent.h b/core/data/CbmEvent.h
index 00208ba571..dbeeb141fb 100644
--- a/core/data/CbmEvent.h
+++ b/core/data/CbmEvent.h
@@ -16,10 +16,10 @@
 #include "CbmVertex.h"  // for CbmVertex, found in core/data/global
 
 #include <Rtypes.h>          // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>      // for Double_t, UInt_t, Int_t
 #include <TMatrixFSymfwd.h>  // for TMatrixFSym
 #include <TObject.h>         // for TObject
 
+#include <cstdint>
 #include <map>     // for map, map<>::mapped_type
 #include <string>  // for string
 #include <vector>  // for vector
@@ -42,7 +42,7 @@ public:
 		 ** @param[in] startTime Event start time [ns]
 		 ** @param[in] endTime   Event start time [ns]
 		 **/
-  CbmEvent(Int_t number, Double_t startTime = 0., Double_t endTime = 0.)
+  CbmEvent(int32_t number, double startTime = 0., double endTime = 0.)
     : TObject()
     , fNumber(number)
     , fTimeStart(startTime)
@@ -70,13 +70,13 @@ public:
 		 ** @param DataType  Type of data (for values see CbmDetectorList.h)
 		 ** @param Index     Index of the data object in its TClonesArray
 		 */
-  void AddData(ECbmDataType type, UInt_t index);
+  void AddData(ECbmDataType type, uint32_t index);
 
 
   /** Add an STS track to the event
 		 ** @param Index of STS track in its TClonesArray
 		 **/
-  void AddStsTrack(UInt_t index) { AddData(ECbmDataType::kStsTrack, index); }
+  void AddStsTrack(uint32_t index) { AddData(ECbmDataType::kStsTrack, index); }
 
 
   /** Get the index of a data object in its TClonesArray
@@ -84,7 +84,7 @@ public:
 		 ** @param iData     Running number of data object in event
 		 ** @value Index of data object in its TClonesArray
 		 **/
-  UInt_t GetIndex(ECbmDataType type, UInt_t iData);
+  uint32_t GetIndex(ECbmDataType type, uint32_t iData);
 
 
   /** Get match object
@@ -94,7 +94,7 @@ public:
 
 
   /** Get total number of data (of all types) in the event **/
-  Int_t GetNofData() const { return fNofData; }
+  int32_t GetNofData() const { return fNofData; }
 
 
   /** Get number of data objects of a given type in this event
@@ -102,48 +102,48 @@ public:
 		 ** @value Number of objects of type DataType in the event.
 		 ** -1 is data type is not registered.
 		 **/
-  Int_t GetNofData(ECbmDataType type) const;
+  int32_t GetNofData(ECbmDataType type) const;
 
 
   /** Get number of STS tracks
 		 ** @value Number of STS tracks in the event. -1 if not registered.
 		 **/
-  Int_t GetNofStsTracks() const { return GetNofData(ECbmDataType::kStsTrack); }
+  int32_t GetNofStsTracks() const { return GetNofData(ECbmDataType::kStsTrack); }
 
 
   /** Get event number
 		 ** @value Event number
 		 **/
-  Int_t GetNumber() const { return fNumber; }
+  int32_t GetNumber() const { return fNumber; }
 
 
   /** Get STS track index
 		 ** @param iTrack  Running number of STS track in the event
 		 ** @value index   Index of STS track in TClonesArray
 		 **/
-  Int_t GetStsTrackIndex(Int_t iTrack) { return GetIndex(ECbmDataType::kStsTrack, iTrack); }
+  int32_t GetStsTrackIndex(int32_t iTrack) { return GetIndex(ECbmDataType::kStsTrack, iTrack); }
 
 
   /** Get event end time
 		 ** @value End time of event [ns]
 		 **/
-  Double_t GetEndTime() const { return fTimeEnd; }
+  double GetEndTime() const { return fTimeEnd; }
 
 
   /** Get event start time
 		 ** @value Start time of event [ns]
 		 **/
-  Double_t GetStartTime() const { return fTimeStart; }
+  double GetStartTime() const { return fTimeStart; }
 
   /** Set event number
 		 ** @value Event number
 		 **/
-  void SetNumber(Int_t number) { fNumber = number; }
+  void SetNumber(int32_t number) { fNumber = number; }
 
   /** Set end time
 		 ** @param endTime  End time of event [ns]
 		 **/
-  void SetEndTime(Double_t endTime) { fTimeEnd = endTime; }
+  void SetEndTime(double endTime) { fTimeEnd = endTime; }
 
 
   /** Set a match object
@@ -155,7 +155,7 @@ public:
   /** Set start time
 		 ** @param endTime  Start time of event [ns]
 		 **/
-  void SetStartTime(Double_t startTime) { fTimeStart = startTime; }
+  void SetStartTime(double startTime) { fTimeStart = startTime; }
 
 
   /** Set the STS track index array
@@ -163,7 +163,7 @@ public:
 		 ** Old content will be overwritten.
 		 ** @param indexVector  Vector with indices of STS tracks
 	     **/
-  void SetStsTracks(std::vector<UInt_t>& indexVector)
+  void SetStsTracks(std::vector<uint32_t>& indexVector)
   {
     fNofData -= fIndexMap[ECbmDataType::kStsTrack].size();
     fIndexMap[ECbmDataType::kStsTrack] = indexVector;
@@ -180,8 +180,7 @@ public:
 	   *@param nTracks   Number of tracks used for vertex fit
 	   *@param covMat    Covariance Matrix (symmetric, 3x3)
 	   **/
-  void SetVertex(Double_t x, Double_t y, Double_t z, Double_t chi2, Int_t ndf, Int_t nTracks,
-                 const TMatrixFSym& covMat);
+  void SetVertex(double x, double y, double z, double chi2, int32_t ndf, int32_t nTracks, const TMatrixFSym& covMat);
 
 
   /** String output **/
@@ -198,15 +197,15 @@ public:
 
 private:
   /** Event meta data **/
-  Int_t fNumber;        ///< Event number
-  Double_t fTimeStart;  ///< Event start time [ns]
-  Double_t fTimeEnd;    ///< Event end time [ns]
-  Int_t fNofData;       ///< Number of data objects in the event
+  int32_t fNumber;      ///< Event number
+  double fTimeStart;    ///< Event start time [ns]
+  double fTimeEnd;      ///< Event end time [ns]
+  int32_t fNofData;     ///< Number of data objects in the event
   CbmVertex fVertex;    ///< Primary Vertex
   CbmMatch* fMatch;     ///< Match object to MCEvent
 
   /** Arrays of indices to data types **/
-  std::map<ECbmDataType, std::vector<UInt_t>> fIndexMap;
+  std::map<ECbmDataType, std::vector<uint32_t>> fIndexMap;
 
   CbmEvent(const CbmEvent&);
   CbmEvent& operator=(const CbmEvent&);
diff --git a/core/data/CbmEventStore.cxx b/core/data/CbmEventStore.cxx
index 1d97d169df..14211c0b36 100644
--- a/core/data/CbmEventStore.cxx
+++ b/core/data/CbmEventStore.cxx
@@ -13,13 +13,11 @@
 #include "CbmMatch.h"       // for CbmMatch
 #include "CbmModuleList.h"  // for CbmModuleList
 
-#include <TString.h>  // for operator<<
-
 #include <iostream>  // for operator<<, basic_ostream, stringstream
 
 
 // -----   Constructor   ---------------------------------------------------
-CbmEventStore::CbmEventStore(UInt_t eventId, Bool_t hasMatches) : fEventId(eventId), fHasMatches(hasMatches)
+CbmEventStore::CbmEventStore(uint32_t eventId, bool hasMatches) : fEventId(eventId), fHasMatches(hasMatches)
 {
   //  fDigis = new TObjArray(ToIntegralType(ECbmModuleId::kNofSystems));
 }
@@ -50,27 +48,27 @@ CbmEventStore::~CbmEventStore()
 
 
 // -----   Test for being empty   ------------------------------------------
-Bool_t CbmEventStore::IsEmpty() const
+bool CbmEventStore::IsEmpty() const
 {
-  UInt_t nDigis = 0;
+  uint32_t nDigis = 0;
   for (auto system : fDigis) {
     auto* digis = dynamic_cast<CbmDigiContainer*>(system.second);
     nDigis += digis->GetNofDigis();
   }
 
   /*
-for ( Int_t system = 0; system < fDigis->GetEntriesFast(); system++) {
+for ( int32_t system = 0; system < fDigis->GetEntriesFast(); system++) {
     auto* digis = dynamic_cast<CbmDigiContainer*>(fDigis->At(system));
     if ( digis ) nDigis += digis->GetNofDigis();
   }
 */
-  return (nDigis > 0 ? kFALSE : kTRUE);
+  return (nDigis > 0 ? false : true);
 }
 // -------------------------------------------------------------------------
 
 
 // -----   Get number of data for a given system   -------------------------
-UInt_t CbmEventStore::GetNofDigis(ECbmModuleId system) const
+uint32_t CbmEventStore::GetNofDigis(ECbmModuleId system) const
 {
   if (system >= ECbmModuleId::kNofSystems) return 0;
   auto* digis = dynamic_cast<CbmDigiContainer*>(fDigis.at(system));
@@ -88,10 +86,10 @@ void CbmEventStore::MatchToMC(CbmMatch& result) const
   for (auto system : fDigis) {
     auto* digis = dynamic_cast<CbmDigiContainer*>(system.second);
     if (!digis) continue;
-    for (UInt_t index = 0; index < digis->GetNofDigis(); index++) {
+    for (uint32_t index = 0; index < digis->GetNofDigis(); index++) {
       const CbmMatch* match = digis->GetDigiMatch(index);
       assert(match);
-      for (Int_t iLink = 0; iLink < match->GetNofLinks(); iLink++) {
+      for (int32_t iLink = 0; iLink < match->GetNofLinks(); iLink++) {
         const CbmLink& link = match->GetLink(iLink);
         result.AddLink(link.GetWeight(), 0, link.GetEntry(), link.GetFile());
       }  //# Links in match
@@ -100,13 +98,13 @@ void CbmEventStore::MatchToMC(CbmMatch& result) const
 
 
   /*
-  for (Int_t system = 0; system < fDigis->GetEntriesFast(); system++) {
+  for (int32_t system = 0; system < fDigis->GetEntriesFast(); system++) {
     auto* digis = dynamic_cast<CbmDigiContainer*>(fDigis->At(system));
     if ( ! digis ) continue;
-    for (UInt_t index = 0; index < digis->GetNofDigis(); index++) {
+    for (uint32_t index = 0; index < digis->GetNofDigis(); index++) {
       const CbmMatch* match = digis->GetDigiMatch(index);
       assert(match);
-      for (Int_t iLink = 0; iLink < match->GetNofLinks(); iLink++) {
+      for (int32_t iLink = 0; iLink < match->GetNofLinks(); iLink++) {
         const CbmLink& link = match->GetLink(iLink);
         result.AddLink(link.GetWeight(), 0, link.GetEntry(), link.GetFile());
       } //# Links in match
@@ -127,7 +125,7 @@ std::string CbmEventStore::ToString() const
     ss << " Data: ";
     for (auto system : fDigis) {
       auto* vec = dynamic_cast<CbmDigiContainer*>(system.second);
-      //     for ( Int_t system = 0; system < fDigis->GetEntriesFast(); system++) {
+      //     for ( int32_t system = 0; system < fDigis->GetEntriesFast(); system++) {
       //       if ( fDigis->At(system) ) {
       //         auto vec = static_cast<CbmDigiContainer*>(fDigis->At(system));
       assert(vec);
diff --git a/core/data/CbmEventStore.h b/core/data/CbmEventStore.h
index cdd8a1603b..6f49b6fec0 100644
--- a/core/data/CbmEventStore.h
+++ b/core/data/CbmEventStore.h
@@ -18,16 +18,15 @@
 #include <Logger.h>  // for LOG
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for UInt_t, Bool_t, kFALSE, kTRUE
 #include <TObjArray.h>   // for TObjArray
 #include <TObject.h>     // for TObject
 
 #include <boost/any.hpp>  // for any_cast
 
+#include <cassert>  // for assert
+#include <cstdint>
 #include <string>  // for string
 
-#include <assert.h>  // for assert
-
 class CbmMatch;
 
 /** @class CbmEventStore
@@ -48,7 +47,7 @@ public:
 		 ** @param eventId  Unique event identifier
 		 ** @param has Matches  True if matches to MC are stored
 		 **/
-  CbmEventStore(UInt_t eventId = 0, Bool_t hasMatches = kFALSE);
+  CbmEventStore(uint32_t eventId = 0, bool hasMatches = false);
 
 
   /** @brief Copy constructor **/
@@ -81,7 +80,7 @@ public:
     assert(digi);
     ECbmModuleId system = Digi::GetSystem();
     assert(system < ECbmModuleId::kNofSystems);
-    if (!fDigis[system]) fDigis[system] = new CbmDigiVector<Digi>(kFALSE);
+    if (!fDigis[system]) fDigis[system] = new CbmDigiVector<Digi>(false);
     auto digis = static_cast<CbmDigiContainer*>(fDigis.at(system));
     assert(digis);
     digis->AddDigi(digi, nullptr);
@@ -108,7 +107,7 @@ public:
     assert(match);
     ECbmModuleId system = Digi::GetSystem();
     assert(system < ECbmModuleId::kNofSystems);
-    if (!fDigis[system]) fDigis[system] = new CbmDigiVector<Digi>(kTRUE);
+    if (!fDigis[system]) fDigis[system] = new CbmDigiVector<Digi>(true);
     auto digis = static_cast<CbmDigiContainer*>(fDigis.at(system));
     assert(digis);
     digis->AddDigi(digi, match);
@@ -123,7 +122,7 @@ public:
 		 ** present or the index is out of range.
 		 **/
   template<class Digi>
-  const Digi* GetDigi(UInt_t index) const
+  const Digi* GetDigi(uint32_t index) const
   {
     ECbmModuleId system = Digi::GetSystem();
     assert(system < ECbmModuleId::kNofSystems);
@@ -136,26 +135,26 @@ public:
   /** @brief Get event ID
      ** @return Event identifier
      **/
-  UInt_t GetEventId() const { return fEventId; }
+  uint32_t GetEventId() const { return fEventId; }
 
 
   /** @brief Number of digis for a given system
      ** @param system System identifier [ECbmModuleId]
      ** @return Number of digis for system in event
      **/
-  UInt_t GetNofDigis(ECbmModuleId system) const;
+  uint32_t GetNofDigis(ECbmModuleId system) const;
 
 
   /** @brief Presence of match objects
 		 ** @param If true, match objects are stored
 		 **/
-  Bool_t HasMatches() const { return fHasMatches; }
+  bool HasMatches() const { return fHasMatches; }
 
 
   /** @brief Indicate whether event contains no digis
 		 ** @return True is event is empty
 		 **/
-  Bool_t IsEmpty() const;
+  bool IsEmpty() const;
 
 
   /** @brief Match to MC event
@@ -176,8 +175,8 @@ public:
 
 
 private:
-  UInt_t fEventId    = -1;      ///< Event identifier
-  Bool_t fHasMatches = kFALSE;  ///< Presence of matches to MC
+  uint32_t fEventId = -1;     ///< Event identifier
+  bool fHasMatches  = false;  ///< Presence of matches to MC
   //		TObjArray* fDigis = nullptr;   ///< Array of CbmDigiVector
   std::map<ECbmModuleId, TObject*> fDigis;  ///< Map of CbmDigiVector
 
diff --git a/core/data/CbmHit.cxx b/core/data/CbmHit.cxx
index 1a9914a8cd..8a44d925e1 100644
--- a/core/data/CbmHit.cxx
+++ b/core/data/CbmHit.cxx
@@ -17,8 +17,7 @@
 
 CbmHit::CbmHit() : CbmHit(kHIT, 0., 0., -1, -1, -1., -1.) {}
 
-CbmHit::CbmHit(HitType _type, Double_t _z, Double_t _dz, Int_t _refId, Int_t _address, Double_t _time,
-               Double_t _timeError)
+CbmHit::CbmHit(HitType _type, double _z, double _dz, int32_t _refId, int32_t _address, double _time, double _timeError)
   : TObject()
   , fType(_type)
   , fZ(_z)
diff --git a/core/data/CbmHit.h b/core/data/CbmHit.h
index 2c086c88be..da47e229b3 100644
--- a/core/data/CbmHit.h
+++ b/core/data/CbmHit.h
@@ -33,9 +33,9 @@ enum HitType
 };
 
 #include <Rtypes.h>  // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t
 #include <TObject.h>  // for TObject
 
+#include <cstdint>
 #include <string>  // for string, basic_string
 
 class CbmMatch;
@@ -57,8 +57,8 @@ public:
 	 * \param[in] _time Hit time [ns].   
 	 * \param[in] _timeError Error of hit time [ns].	 
 	 */
-  CbmHit(HitType _type, Double_t _z, Double_t _dz, Int_t _refId, Int_t _address, Double_t _time = -1.,
-         Double_t _timeError = -1.);
+  CbmHit(HitType _type, double _z, double _dz, int32_t _refId, int32_t _address, double _time = -1.,
+         double _timeError = -1.);
 
   /**
 	 * \brief Destructor.
@@ -67,27 +67,27 @@ public:
 
   /* Accessors */
   HitType GetType() const { return fType; }
-  Double_t GetZ() const { return fZ; }
-  Double_t GetDz() const { return fDz; }
-  Int_t GetRefId() const { return fRefId; }
-  Int_t GetAddress() const { return fAddress; }
+  double GetZ() const { return fZ; }
+  double GetDz() const { return fDz; }
+  int32_t GetRefId() const { return fRefId; }
+  int32_t GetAddress() const { return fAddress; }
   CbmMatch* GetMatch() const { return fMatch; }
-  Double_t GetTime() const { return fTime; }
-  Double_t GetTimeError() const { return fTimeError; }
+  double GetTime() const { return fTime; }
+  double GetTimeError() const { return fTimeError; }
 
   /* Setters */
-  void SetZ(Double_t z) { fZ = z; }
-  void SetDz(Double_t dz) { fDz = dz; }
-  void SetRefId(Int_t refId) { fRefId = refId; }
-  void SetAddress(Int_t address) { fAddress = address; }
+  void SetZ(double z) { fZ = z; }
+  void SetDz(double dz) { fDz = dz; }
+  void SetRefId(int32_t refId) { fRefId = refId; }
+  void SetAddress(int32_t address) { fAddress = address; }
   void SetMatch(CbmMatch* match);
-  void SetTime(Double_t time) { fTime = time; }
-  void SetTime(Double_t time, Double_t error)
+  void SetTime(double time) { fTime = time; }
+  void SetTime(double time, double error)
   {
     fTime      = time;
     fTimeError = error;
   }
-  void SetTimeError(Double_t error) { fTimeError = error; }
+  void SetTimeError(double error) { fTimeError = error; }
 
   /**
 	 * Virtual function. Must be implemented in derived class.
@@ -95,7 +95,7 @@ public:
 	 * number of the detector. Can be calculated using unique detector identifier
 	 * or can use additional class member from the derived class to store the plane identifier.
 	 **/
-  virtual Int_t GetPlaneId() const { return -1; }
+  virtual int32_t GetPlaneId() const { return -1; }
 
   /**
 	 * \brief Virtual function. Must be implemented in derived class.
@@ -115,12 +115,12 @@ protected:
 
 private:
   HitType fType;        ///< hit type
-  Double_t fZ;          ///< Z position of hit [cm]
-  Double_t fDz;         ///< Z position error [cm]
-  Int_t fRefId;         ///< some reference id (usually to cluster, digi or MC point)
-  Int_t fAddress;       ///< detector unique identifier
-  Double_t fTime;       ///< Hit time [ns]
-  Double_t fTimeError;  ///< Error of hit time [ns]
+  double fZ;            ///< Z position of hit [cm]
+  double fDz;           ///< Z position error [cm]
+  int32_t fRefId;       ///< some reference id (usually to cluster, digi or MC point)
+  int32_t fAddress;     ///< detector unique identifier
+  double fTime;         ///< Hit time [ns]
+  double fTimeError;    ///< Error of hit time [ns]
   CbmMatch* fMatch;     ///< Monte-Carlo information
 
   ClassDef(CbmHit, 3);
diff --git a/core/data/CbmLink.cxx b/core/data/CbmLink.cxx
index 5879185c19..a82c54eeda 100644
--- a/core/data/CbmLink.cxx
+++ b/core/data/CbmLink.cxx
@@ -18,7 +18,7 @@ using std::stringstream;
 
 CbmLink::CbmLink() : TObject(), fFile(-1), fEntry(-1), fIndex(-1), fWeight(-1.) {}
 
-CbmLink::CbmLink(Float_t weight, Int_t index, Int_t entry, Int_t file)
+CbmLink::CbmLink(float weight, int32_t index, int32_t entry, int32_t file)
   : TObject()
   , fFile(file)
   , fEntry(entry)
diff --git a/core/data/CbmLink.h b/core/data/CbmLink.h
index 1ca2563482..0692ca7925 100644
--- a/core/data/CbmLink.h
+++ b/core/data/CbmLink.h
@@ -14,9 +14,9 @@
 #define CBMLINK_H_
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Int_t, Float_t, Bool_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmLink : public TObject {
@@ -29,7 +29,7 @@ public:
   /**
     * \brief Standard constructor.
     */
-  CbmLink(Float_t weight, Int_t index, Int_t entry = -1, Int_t file = -1);
+  CbmLink(float weight, int32_t index, int32_t entry = -1, int32_t file = -1);
 
   /**
     * \brief Destructor.
@@ -37,18 +37,18 @@ public:
   virtual ~CbmLink();
 
   /* Modifiers */
-  Int_t GetFile() const { return fFile; }
-  Int_t GetEntry() const { return fEntry; }
-  Int_t GetIndex() const { return fIndex; }
-  Float_t GetWeight() const { return fWeight; }
+  int32_t GetFile() const { return fFile; }
+  int32_t GetEntry() const { return fEntry; }
+  int32_t GetIndex() const { return fIndex; }
+  float GetWeight() const { return fWeight; }
 
   /* Accessors */
-  void SetFile(Int_t file) { fFile = file; }
-  void SetEntry(Int_t entry) { fEntry = entry; }
-  void SetIndex(Int_t index) { fIndex = index; }
-  void SetWeight(Float_t weight) { fWeight = weight; }
+  void SetFile(int32_t file) { fFile = file; }
+  void SetEntry(int32_t entry) { fEntry = entry; }
+  void SetIndex(int32_t index) { fIndex = index; }
+  void SetWeight(float weight) { fWeight = weight; }
 
-  void AddWeight(Float_t weight) { fWeight += weight; }
+  void AddWeight(float weight) { fWeight += weight; }
 
   /**
     * \brief Return string representation of the object.
@@ -56,7 +56,7 @@ public:
     **/
   virtual std::string ToString() const;
 
-  friend Bool_t operator==(const CbmLink& lhs, const CbmLink& rhs)
+  friend bool operator==(const CbmLink& lhs, const CbmLink& rhs)
   {
     return (lhs.GetFile() == rhs.GetFile() && lhs.GetEntry() == rhs.GetEntry() && lhs.GetIndex() == rhs.GetIndex());
   }
@@ -64,7 +64,7 @@ public:
   friend Bool_t operator!=(const CbmLink& lhs, const CbmLink& rhs) { return !(lhs == rhs); }
 
   /** Comparison operators by //Dr.Sys **/
-  friend Bool_t operator<(const CbmLink& l, const CbmLink& r)
+  friend bool operator<(const CbmLink& l, const CbmLink& r)
   {
     if (l.GetFile() == r.GetFile()) {
       if (l.GetEntry() == r.GetEntry()) return l.GetIndex() < r.GetIndex();
@@ -73,7 +73,7 @@ public:
     return l.GetFile() < r.GetFile();
   }
 
-  friend Bool_t operator>(const CbmLink& l, const CbmLink& r)
+  friend bool operator>(const CbmLink& l, const CbmLink& r)
   {
     if (l.GetFile() == r.GetFile()) {
       if (l.GetEntry() == r.GetEntry()) return l.GetIndex() > r.GetIndex();
@@ -84,10 +84,10 @@ public:
 
 
 private:
-  Int_t fFile;      // File ID
-  Int_t fEntry;     // Entry number
-  Int_t fIndex;     // Index in array
-  Float_t fWeight;  // Weight
+  int32_t fFile;   // File ID
+  int32_t fEntry;  // Entry number
+  int32_t fIndex;  // Index in array
+  float fWeight;   // Weight
 
   ClassDef(CbmLink, 1)
 };
diff --git a/core/data/CbmMCEvent.cxx b/core/data/CbmMCEvent.cxx
index 83b3467e0c..20433c7ead 100644
--- a/core/data/CbmMCEvent.cxx
+++ b/core/data/CbmMCEvent.cxx
@@ -25,7 +25,7 @@ CbmMCEvent::CbmMCEvent()
   , fPhi(0.)
   , fB(0.)
   , fNPrim(0)
-  , fIsSet(kFALSE)
+  , fIsSet(false)
 
 {
 }
@@ -33,7 +33,7 @@ CbmMCEvent::CbmMCEvent()
 
 
 // -----   Constructor with run identifier   ------------------------------
-CbmMCEvent::CbmMCEvent(UInt_t runId)
+CbmMCEvent::CbmMCEvent(uint32_t runId)
   : TNamed("MC Event", "CBM MC Event")
   , fRunId(runId)
   , fEventId(0)
@@ -44,7 +44,7 @@ CbmMCEvent::CbmMCEvent(UInt_t runId)
   , fB(0.)
   , fPhi(0.)
   , fNPrim(0)
-  , fIsSet(kFALSE)
+  , fIsSet(false)
 
 {
 }
@@ -52,8 +52,8 @@ CbmMCEvent::CbmMCEvent(UInt_t runId)
 
 
 // -----   Standard constructor   -----------------------------------------
-CbmMCEvent::CbmMCEvent(UInt_t runId, Int_t iEvent, Double_t x, Double_t y, Double_t z, Double_t t, Double_t b,
-                       Double_t phi, Int_t nPrim)
+CbmMCEvent::CbmMCEvent(uint32_t runId, int32_t iEvent, double x, double y, double z, double t, double b, double phi,
+                       int32_t nPrim)
   : TNamed("MCEvent", "MC")
   , fRunId(0)
   , fEventId(iEvent)
@@ -64,7 +64,7 @@ CbmMCEvent::CbmMCEvent(UInt_t runId, Int_t iEvent, Double_t x, Double_t y, Doubl
   , fB(b)
   , fPhi(phi)
   , fNPrim(nPrim)
-  , fIsSet(kFALSE)
+  , fIsSet(false)
 
 {
 }
@@ -81,7 +81,7 @@ void CbmMCEvent::Reset()
 {
   fEventId = fNPrim = 0;
   fX = fY = fZ = fT = fB = fPhi = 0.;
-  fIsSet                        = kFALSE;
+  fIsSet                        = false;
 }
 // ------------------------------------------------------------------------
 
diff --git a/core/data/CbmMCEvent.h b/core/data/CbmMCEvent.h
index afdc557765..f1dcd302f6 100644
--- a/core/data/CbmMCEvent.h
+++ b/core/data/CbmMCEvent.h
@@ -18,6 +18,8 @@
 #include <TNamed.h>
 #include <TVector3.h>
 
+#include <cstdint>
+
 
 class CbmMCEvent : public TNamed {
 
@@ -36,12 +38,12 @@ public:
    *@param phi      event plane angle [rad]
    *@param nPrim    number of input tracks
    **/
-  CbmMCEvent(UInt_t runId, Int_t iEvent, Double_t x, Double_t y, Double_t z, Double_t t, Double_t b, Double_t phi,
-             Int_t nPrim);
+  CbmMCEvent(uint32_t runId, int32_t iEvent, double x, double y, double z, double t, double b, double phi,
+             int32_t nPrim);
 
 
   /** Standard constructor with run identifier **/
-  CbmMCEvent(UInt_t runId);
+  CbmMCEvent(uint32_t runId);
 
 
   /** Destructor **/
@@ -49,27 +51,27 @@ public:
 
 
   /** Accessors **/
-  UInt_t GetRunID() const { return fRunId; }     // run identifier
-  Int_t GetEventID() const { return fEventId; }  // event identifier
-  Double_t GetX() const { return fX; }           // vertex x [cm]
-  Double_t GetY() const { return fY; }           // vertex y [cm]
-  Double_t GetZ() const { return fZ; }           // vertex z [cm]
-  Double_t GetT() const { return fT; }           // event time [ns]
-  Double_t GetB() const { return fB; }           // impact parameter [fm]
-  Double_t GetPhi() const { return fPhi; }       // event plane angle [rad]
-  Int_t GetNPrim() const { return fNPrim; }      // number of input tracks
-  Bool_t IsSet() const { return fIsSet; }        // Flag
+  uint32_t GetRunID() const { return fRunId; }     // run identifier
+  int32_t GetEventID() const { return fEventId; }  // event identifier
+  double GetX() const { return fX; }               // vertex x [cm]
+  double GetY() const { return fY; }               // vertex y [cm]
+  double GetZ() const { return fZ; }               // vertex z [cm]
+  double GetT() const { return fT; }               // event time [ns]
+  double GetB() const { return fB; }               // impact parameter [fm]
+  double GetPhi() const { return fPhi; }           // event plane angle [rad]
+  int32_t GetNPrim() const { return fNPrim; }      // number of input tracks
+  bool IsSet() const { return fIsSet; }            // Flag
   void GetVertex(TVector3& vertex) { vertex.SetXYZ(fX, fY, fZ); }
 
 
   /** Modifiers **/
-  void SetEventID(Int_t eventId) { fEventId = eventId; }
-  void SetTime(Double_t t) { fT = t; }
-  void SetB(Double_t b) { fB = b; }
-  void SetPhi(Double_t phi) { fPhi = phi; }
-  void SetNPrim(Int_t nPrim) { fNPrim = nPrim; }
-  void MarkSet(Bool_t isSet) { fIsSet = isSet; }
-  void SetVertex(Double_t x, Double_t y, Double_t z);
+  void SetEventID(int32_t eventId) { fEventId = eventId; }
+  void SetTime(double t) { fT = t; }
+  void SetB(double b) { fB = b; }
+  void SetPhi(double phi) { fPhi = phi; }
+  void SetNPrim(int32_t nPrim) { fNPrim = nPrim; }
+  void MarkSet(bool isSet) { fIsSet = isSet; }
+  void SetVertex(double x, double y, double z);
   void SetVertex(const TVector3& vertex);
 
 
@@ -78,23 +80,23 @@ public:
 
 
 private:
-  UInt_t fRunId;    //  Run identifier
-  UInt_t fEventId;  //  Event identifier
-  Double32_t fX;    //  Primary vertex x [cm]
-  Double32_t fY;    //  Primary vertex y [cm]
-  Double32_t fZ;    //  Primary vertex z [cm]
-  Double32_t fT;    //  Event time [s]
-  Double32_t fB;    //  Impact parameter [fm] (if relevant)
-  Double32_t fPhi;  //  Event plane angle [rad] (if relevant)
-  Int_t fNPrim;     //  Number of input tracks
-  Bool_t fIsSet;    //  Flag whether variables are filled
+  uint32_t fRunId;    //  Run identifier
+  uint32_t fEventId;  //  Event identifier
+  Double32_t fX;      //  Primary vertex x [cm]
+  Double32_t fY;      //  Primary vertex y [cm]
+  Double32_t fZ;      //  Primary vertex z [cm]
+  Double32_t fT;      //  Event time [s]
+  Double32_t fB;      //  Impact parameter [fm] (if relevant)
+  Double32_t fPhi;    //  Event plane angle [rad] (if relevant)
+  int32_t fNPrim;     //  Number of input tracks
+  bool fIsSet;        //  Flag whether variables are filled
 
 
   ClassDef(CbmMCEvent, 1);
 };
 
 
-inline void CbmMCEvent::SetVertex(Double_t x, Double_t y, Double_t z)
+inline void CbmMCEvent::SetVertex(double x, double y, double z)
 {
   fX = x;
   fY = y;
diff --git a/core/data/CbmMCEventInfo.cxx b/core/data/CbmMCEventInfo.cxx
index 9606cdd165..637b599c03 100644
--- a/core/data/CbmMCEventInfo.cxx
+++ b/core/data/CbmMCEventInfo.cxx
@@ -15,7 +15,7 @@ using std::string;
 using std::stringstream;
 
 // -----   Constructor   ------------------------------------------------------
-CbmMCEventInfo::CbmMCEventInfo(Int_t fileId, Int_t eventId, Double_t time)
+CbmMCEventInfo::CbmMCEventInfo(int32_t fileId, int32_t eventId, double time)
   : fFileId(fileId)
   , fEventId(eventId)
   , fTime(time)
diff --git a/core/data/CbmMCEventInfo.h b/core/data/CbmMCEventInfo.h
index 98dc16d87f..ccce17e4e9 100644
--- a/core/data/CbmMCEventInfo.h
+++ b/core/data/CbmMCEventInfo.h
@@ -11,8 +11,8 @@
 #define CBMMCEVENTINFO_H 1
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t
 
+#include <cstdint>
 #include <string>  // for string
 
 /** @class CbmMCEventInfo
@@ -36,7 +36,7 @@ public:
      ** @param eventId  MC event index (entry in ROOT tree)
      ** @param time     Event start time [ns]
      **/
-  CbmMCEventInfo(Int_t fileId = -1, Int_t eventId = -1, Double_t time = 0.);
+  CbmMCEventInfo(int32_t fileId = -1, int32_t eventId = -1, double time = 0.);
 
 
   /** @brief Destructor **/
@@ -46,19 +46,19 @@ public:
   /** @brief File index
      ** @value File index
      **/
-  Int_t GetFileId() const { return fFileId; }
+  int32_t GetFileId() const { return fFileId; }
 
 
   /** @brief Event index
      ** @value Event index
      **/
-  Int_t GetEventId() const { return fEventId; }
+  int32_t GetEventId() const { return fEventId; }
 
 
   /** @brief Event time
      ** @value Event time [ns]
      **/
-  Double_t GetTime() const { return fTime; }
+  double GetTime() const { return fTime; }
 
 
   /** Status to string **/
@@ -74,9 +74,9 @@ public:
 
 
 private:
-  Int_t fFileId;
-  Int_t fEventId;
-  Double_t fTime;
+  int32_t fFileId;
+  int32_t fEventId;
+  double fTime;
 
   ClassDef(CbmMCEventInfo, 1);
 };
diff --git a/core/data/CbmMCEventList.cxx b/core/data/CbmMCEventList.cxx
index 8dd8e851ae..3858c5c7a4 100644
--- a/core/data/CbmMCEventList.cxx
+++ b/core/data/CbmMCEventList.cxx
@@ -15,18 +15,17 @@
 
 #include <algorithm>  // for lower_bound, sort
 #include <cassert>    // for assert
+#include <cstring>    // for strcmp, size_t
 #include <iostream>   // for operator<<, basic_ostream, stringstream
 #include <string>     // for char_traits
 
-#include <string.h>  // for strcmp, size_t
-
 using std::lower_bound;
 using std::string;
 using std::stringstream;
 using std::vector;
 
 // -----   Constructor   ------------------------------------------------------
-CbmMCEventList::CbmMCEventList() : TNamed("MCEventList", "List of MC events"), fEvents(), fIsSorted(kFALSE) {}
+CbmMCEventList::CbmMCEventList() : TNamed("MCEventList", "List of MC events"), fEvents(), fIsSorted(false) {}
 // ----------------------------------------------------------------------------
 
 
@@ -36,15 +35,15 @@ CbmMCEventList::~CbmMCEventList() {}
 
 
 // -----   Check double occurrences of events   -------------------------------
-Bool_t CbmMCEventList::Check()
+bool CbmMCEventList::Check()
 {
 
-  Int_t lastFile    = -1;
-  Int_t lastEvent   = -1;
-  Double_t lastTime = 0.;
-  Int_t thisFile    = -1;
-  Int_t thisEvent   = -1;
-  Double_t thisTime = 0.;
+  int32_t lastFile  = -1;
+  int32_t lastEvent = -1;
+  double lastTime   = 0.;
+  int32_t thisFile  = -1;
+  int32_t thisEvent = -1;
+  double thisTime   = 0.;
 
   for (auto& eventInfo : fEvents) {
     thisFile  = eventInfo.GetFileId();
@@ -53,31 +52,31 @@ Bool_t CbmMCEventList::Check()
     if (thisFile == lastFile && thisEvent == lastEvent) {
       LOG(error) << fName << ": double entry for event " << thisEvent << ", file " << thisFile << ", first time "
                  << lastTime << ", second time " << thisTime;
-      return kFALSE;
+      return false;
     }
     lastFile  = thisFile;
     lastEvent = thisEvent;
     lastTime  = thisTime;
   }
-  return kTRUE;
+  return true;
 }
 // ----------------------------------------------------------------------------
 
 
 // -----   Find an event in the list   ----------------------------------------
-vector<CbmMCEventInfo>::iterator CbmMCEventList::Find(UInt_t file, UInt_t event)
+vector<CbmMCEventInfo>::iterator CbmMCEventList::Find(uint32_t file, uint32_t event)
 {
   if (!fIsSorted) Sort();
   auto it = lower_bound(fEvents.begin(), fEvents.end(), CbmMCEventInfo(file, event, -1.));
-  if (it->GetFileId() != Int_t(file)) return fEvents.end();
-  if (it->GetEventId() != Int_t(event)) return fEvents.end();
+  if (it->GetFileId() != int32_t(file)) return fEvents.end();
+  if (it->GetEventId() != int32_t(event)) return fEvents.end();
   return (it);
 }
 // ----------------------------------------------------------------------------
 
 
 // -----   Get event number for event at index in list   ----------------------
-Int_t CbmMCEventList::GetEventIdByIndex(UInt_t index)
+int32_t CbmMCEventList::GetEventIdByIndex(uint32_t index)
 {
   if (!fIsSorted) Sort();
   if (index >= GetNofEvents()) return -1;
@@ -87,7 +86,7 @@ Int_t CbmMCEventList::GetEventIdByIndex(UInt_t index)
 
 
 // -----   Get event time of a MC event   -------------------------------------
-Double_t CbmMCEventList::GetEventTime(UInt_t eventId, UInt_t fileId)
+double CbmMCEventList::GetEventTime(uint32_t eventId, uint32_t fileId)
 {
   if (!fIsSorted) Sort();
   auto it = Find(fileId, eventId);
@@ -109,7 +108,7 @@ Int_t CbmMCEventList::GetEventIndex(UInt_t eventId, UInt_t fileId)
 
 
 // -----   Get event time for event at index in list   ------------------------
-Double_t CbmMCEventList::GetEventTimeByIndex(UInt_t index)
+double CbmMCEventList::GetEventTimeByIndex(uint32_t index)
 {
   if (!fIsSorted) Sort();
   if (index >= GetNofEvents()) return -1.;
@@ -120,7 +119,7 @@ Double_t CbmMCEventList::GetEventTimeByIndex(UInt_t index)
 
 
 // -----   Get file number for event at index in list   -----------------------
-Int_t CbmMCEventList::GetFileIdByIndex(UInt_t index)
+int32_t CbmMCEventList::GetFileIdByIndex(uint32_t index)
 {
   if (!fIsSorted) Sort();
   if (index >= GetNofEvents()) return -1;
@@ -131,12 +130,12 @@ Int_t CbmMCEventList::GetFileIdByIndex(UInt_t index)
 
 
 // -----   Insert an event   --------------------------------------------------
-Bool_t CbmMCEventList::Insert(UInt_t event, UInt_t file, Double_t time)
+bool CbmMCEventList::Insert(uint32_t event, uint32_t file, double time)
 {
-  if (time < 0.) return kFALSE;
+  if (time < 0.) return false;
   fEvents.push_back(CbmMCEventInfo(file, event, time));
-  fIsSorted = kFALSE;
-  return kTRUE;
+  fIsSorted = false;
+  return true;
 }
 // ----------------------------------------------------------------------------
 
@@ -152,7 +151,7 @@ void CbmMCEventList::Sort()
   if (fIsSorted) return;
   std::sort(fEvents.begin(), fEvents.end());
   assert(Check());
-  fIsSorted = kTRUE;
+  fIsSorted = true;
 }
 // ----------------------------------------------------------------------------
 
diff --git a/core/data/CbmMCEventList.h b/core/data/CbmMCEventList.h
index ae5ef757aa..8430761f2f 100644
--- a/core/data/CbmMCEventList.h
+++ b/core/data/CbmMCEventList.h
@@ -13,15 +13,14 @@
 #include "CbmLink.h"
 #include "CbmMCEventInfo.h"  // for CbmMCEventInfo
 
-#include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for UInt_t, Bool_t, Double_t, Int_t, Option_t
-#include <TNamed.h>      // for TNamed
+#include <Rtypes.h>  // for THashConsistencyHolder, ClassDef
+#include <TNamed.h>  // for TNamed
 
+#include <cstddef>  // for size_t
+#include <cstdint>
 #include <string>  // for string
 #include <vector>  // for vector, vector<>::iterator
 
-#include <stddef.h>  // for size_t
-
 /* Implementation note (VF/180618):
  * Both indexed access (for loops over all MC events in a time slice)
  * and random access (to get the event time for a given fileId and EventId)
@@ -61,7 +60,7 @@ public:
      **
      ** Returns -1 if the index is out of bounds.
      **/
-  Int_t GetEventIdByIndex(UInt_t index);
+  int32_t GetEventIdByIndex(uint32_t index);
 
 
   /** @brief Event start time
@@ -71,7 +70,7 @@ public:
      **
      ** Returns -1. if the event is not present in the list.
      **/
-  Double_t GetEventTime(UInt_t event, UInt_t file);
+  double GetEventTime(uint32_t event, uint32_t file);
 
   /** @brief Event start time
    * * @param link link to the MC event
@@ -83,7 +82,7 @@ public:
      **
      ** Returns -1. if the index is out of bounds.
      **/
-  Double_t GetEventTimeByIndex(UInt_t index);
+  double GetEventTimeByIndex(uint32_t index);
 
 
   /** @brief File number by index
@@ -91,7 +90,7 @@ public:
      **
      ** Returns -1 if the index is out of bounds.
      **/
-  Int_t GetFileIdByIndex(UInt_t index);
+  int32_t GetFileIdByIndex(uint32_t index);
 
   /** @brief Event index
      ** @param event  MC event number
@@ -117,15 +116,15 @@ public:
      ** @param event  MC event number
      ** @param file   MC input file number
      ** @param time   MC event start time [ns]
-     ** @value kFALSE if (file, event) is already in the list. Else kTRUE.
+     ** @value false if (file, event) is already in the list. Else true.
      **
      ** If the event from the given file is already in the list, the list
-     ** will not be modified and kFALSE is returned.
+     ** will not be modified and false is returned.
      **
-     ** Negative event times are not allowed. In that case, kFALSE is
+     ** Negative event times are not allowed. In that case, false is
      ** returned and the list will not be modified.
      */
-  Bool_t Insert(UInt_t event, UInt_t file, Double_t time);
+  bool Insert(uint32_t event, uint32_t file, double time);
 
 
   /** Print to screen **/
@@ -151,20 +150,20 @@ private:
   std::vector<CbmMCEventInfo> fEvents;
 
   /** Flag whether list has been sorted **/
-  Bool_t fIsSorted;
+  bool fIsSorted;
 
 
   /** @brief Check for double occurrences of events in list
-     ** @value kTRUE is no double occurrences, else kFALSE
+     ** @value true is no double occurrences, else false
      **/
-  Bool_t Check();
+  bool Check();
 
 
   /** @brief Find an element in the list
      ** @param file  Input file ID
      ** @param event MC event number (index)
      **/
-  std::vector<CbmMCEventInfo>::iterator Find(UInt_t file, UInt_t event);
+  std::vector<CbmMCEventInfo>::iterator Find(uint32_t file, uint32_t event);
 
 
   ClassDef(CbmMCEventList, 3);
diff --git a/core/data/CbmMCTrack.cxx b/core/data/CbmMCTrack.cxx
index d32cdd4b19..03974b9178 100644
--- a/core/data/CbmMCTrack.cxx
+++ b/core/data/CbmMCTrack.cxx
@@ -12,7 +12,6 @@
 
 #include <TDatabasePDG.h>  // for TDatabasePDG
 #include <TMCProcess.h>    // for kPNoProcess, TMCProcessName
-#include <TMath.h>         // for Log
 #include <TObject.h>       // for TObject
 #include <TParticle.h>     // for TParticle
 #include <TParticlePDG.h>  // for TParticlePDG
@@ -44,8 +43,8 @@ CbmMCTrack::CbmMCTrack()
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmMCTrack::CbmMCTrack(Int_t pdgCode, Int_t motherId, Double_t px, Double_t py, Double_t pz, Double_t x, Double_t y,
-                       Double_t z, Double_t t, Int_t nPoints = 0)
+CbmMCTrack::CbmMCTrack(int32_t pdgCode, int32_t motherId, double px, double py, double pz, double x, double y, double z,
+                       double t, int32_t nPoints = 0)
   : TObject()
   , fProcessId(kPNoProcess)
   , fPdgCode(pdgCode)
@@ -113,7 +112,7 @@ CbmMCTrack::~CbmMCTrack() {}
 
 
 // -----   Public method GetMass   -----------------------------------------
-Double_t CbmMCTrack::GetMass() const
+double CbmMCTrack::GetMass() const
 {
 
   if (TDatabasePDG::Instance()) {
@@ -126,8 +125,8 @@ Double_t CbmMCTrack::GetMass() const
     // in the PDG code like 10LZZZAAAI, where L is strangeness, Z is charge,
     // A is number of nucleons, and I is isomer level.
     else if (fPdgCode > 1000000000) {
-      Int_t a = (fPdgCode % 10000) / 10;
-      return Double_t(a) * CbmProtonMass();
+      int32_t a = (fPdgCode % 10000) / 10;
+      return double(a) * CbmProtonMass();
     }
 
     // Cherenkov photons
@@ -148,7 +147,7 @@ Double_t CbmMCTrack::GetMass() const
 
 
 // -----   Public method GetCharge   ---------------------------------------
-Double_t CbmMCTrack::GetCharge() const
+double CbmMCTrack::GetCharge() const
 {
 
   if (TDatabasePDG::Instance()) {
@@ -161,7 +160,7 @@ Double_t CbmMCTrack::GetCharge() const
     // in the PDG code like 10LZZZAAAI, where L is strangeness, Z is charge,
     // A is number of nucleons, and I is isomer level.
     else if (fPdgCode > 1000000000) {
-      return Double_t((fPdgCode % 10000000) / 10000);
+      return double((fPdgCode % 10000000) / 10000);
     }
 
     // Cherenkov photons
@@ -182,17 +181,17 @@ Double_t CbmMCTrack::GetCharge() const
 
 
 // -----   Public method GetRapidity   -------------------------------------
-Double_t CbmMCTrack::GetRapidity() const
+double CbmMCTrack::GetRapidity() const
 {
-  Double_t e = GetEnergy();
-  Double_t y = 0.5 * TMath::Log((e + fPz) / (e - fPz));
+  double e = GetEnergy();
+  double y = 0.5 * log((e + fPz) / (e - fPz));
   return y;
 }
 // -------------------------------------------------------------------------
 
 
 // -----   Public method GetNPoints   --------------------------------------
-Int_t CbmMCTrack::GetNPoints(ECbmModuleId detId) const
+int32_t CbmMCTrack::GetNPoints(ECbmModuleId detId) const
 {
   if (detId == ECbmModuleId::kRef) return (fNPoints & 1);
   else if (detId == ECbmModuleId::kMvd)
@@ -220,7 +219,7 @@ Int_t CbmMCTrack::GetNPoints(ECbmModuleId detId) const
 
 
 // -----   Public method SetNPoints   --------------------------------------
-void CbmMCTrack::SetNPoints(ECbmModuleId iDet, Int_t nPoints)
+void CbmMCTrack::SetNPoints(ECbmModuleId iDet, int32_t nPoints)
 {
 
   if (iDet == ECbmModuleId::kRef) {
diff --git a/core/data/CbmMCTrack.h b/core/data/CbmMCTrack.h
index 7fc3a8ff5b..d7c7ca95a0 100644
--- a/core/data/CbmMCTrack.h
+++ b/core/data/CbmMCTrack.h
@@ -25,14 +25,16 @@
 #include "CbmDefs.h"  // for ECbmModuleId, ECbmModuleId::kMvd, ECbmModuleId::kPsd, ECbmModuleId::kSts
 
 #include <Rtypes.h>          // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>      // for Double_t, Int_t, Double32_t, UInt_t
+#include <RtypesCore.h>      // for Double32_t
 #include <TLorentzVector.h>  // for TLorentzVector
-#include <TMath.h>           // for Sqrt
 #include <TObject.h>         // for TObject
 #include <TVector3.h>        // for TVector3
 
+#include <cstdint>
 #include <string>  // for string
 
+#include <cmath>
+
 class TParticle;
 
 class CbmMCTrack : public TObject {
@@ -43,8 +45,8 @@ public:
 
 
   /**  Standard constructor  **/
-  CbmMCTrack(Int_t pdgCode, Int_t motherID, Double_t px, Double_t py, Double_t pz, Double_t x, Double_t y, Double_t z,
-             Double_t t, Int_t nPoints);
+  CbmMCTrack(int32_t pdgCode, int32_t motherID, double px, double py, double pz, double x, double y, double z, double t,
+             int32_t nPoints);
 
   /**  Copy constructor  **/
   CbmMCTrack(const CbmMCTrack& track);
@@ -57,21 +59,21 @@ public:
   /**  Destructor  **/
   virtual ~CbmMCTrack();
 
-  Int_t AccMVD() const { return GetNPoints(ECbmModuleId::kMvd); }
-  Int_t AccSTS() const { return GetNPoints(ECbmModuleId::kSts); }
-  Int_t AccPSD() const { return GetNPoints(ECbmModuleId::kPsd); }
+  int32_t AccMVD() const { return GetNPoints(ECbmModuleId::kMvd); }
+  int32_t AccSTS() const { return GetNPoints(ECbmModuleId::kSts); }
+  int32_t AccPSD() const { return GetNPoints(ECbmModuleId::kPsd); }
 
   /**  Accessors  **/
-  UInt_t GetGeantProcessId() const { return fProcessId; }
-  Int_t GetPdgCode() const { return fPdgCode; }
-  Int_t GetMotherId() const { return fMotherId; }
-  Double_t GetPx() const { return fPx; }
-  Double_t GetPy() const { return fPy; }
-  Double_t GetPz() const { return fPz; }
-  Double_t GetStartX() const { return fStartX; }
-  Double_t GetStartY() const { return fStartY; }
-  Double_t GetStartZ() const { return fStartZ; }
-  Double_t GetStartT() const { return fStartT; }
+  uint32_t GetGeantProcessId() const { return fProcessId; }
+  int32_t GetPdgCode() const { return fPdgCode; }
+  int32_t GetMotherId() const { return fMotherId; }
+  double GetPx() const { return fPx; }
+  double GetPy() const { return fPy; }
+  double GetPz() const { return fPz; }
+  double GetStartX() const { return fStartX; }
+  double GetStartY() const { return fStartY; }
+  double GetStartZ() const { return fStartZ; }
+  double GetStartT() const { return fStartT; }
 
   /** @brief Mass of the associated particle
    ** @return Particle mass [GeV]
@@ -80,7 +82,7 @@ public:
    ** For ions, the mass is calculated from the PDG code. The method
    ** throws an error for unknown PDG codes.
    **/
-  Double_t GetMass() const;
+  double GetMass() const;
 
   /** @brief Charge of the associated particle
    ** @return Particle charge [e]
@@ -89,24 +91,24 @@ public:
    ** For ions, the charge is calculated from the PDG code. The method
    ** throws an error for unknown PDG codes.
    **/
-  Double_t GetCharge() const;
+  double GetCharge() const;
 
-  Double_t GetEnergy() const;
-  Double_t GetPt() const { return TMath::Sqrt(fPx * fPx + fPy * fPy); }
-  Double_t GetP() const { return TMath::Sqrt(fPx * fPx + fPy * fPy + fPz * fPz); }
-  Double_t GetRapidity() const;
+  double GetEnergy() const;
+  double GetPt() const { return sqrt(fPx * fPx + fPy * fPy); }
+  double GetP() const { return sqrt(fPx * fPx + fPy * fPy + fPz * fPz); }
+  double GetRapidity() const;
   void GetMomentum(TVector3& momentum) const;
   void Get4Momentum(TLorentzVector& momentum) const;
   void GetStartVertex(TVector3& vertex) const;
 
 
   /** Accessors to the number of MCPoints in the detectors **/
-  Int_t GetNPoints(ECbmModuleId detId) const;
+  int32_t GetNPoints(ECbmModuleId detId) const;
 
 
   /**  Modifiers  **/
-  void SetMotherId(Int_t id) { fMotherId = id; }
-  void SetNPoints(ECbmModuleId iDet, Int_t np);
+  void SetMotherId(int32_t id) { fMotherId = id; }
+  void SetNPoints(ECbmModuleId iDet, int32_t np);
 
 
   /** String output **/
@@ -115,13 +117,13 @@ public:
 
 private:
   /**  TMCProcess code  **/
-  UInt_t fProcessId;
+  uint32_t fProcessId;
 
   /**  PDG particle code  **/
-  Int_t fPdgCode;
+  int32_t fPdgCode;
 
   /**  Index of mother track. -1 for primary particles.  **/
-  Int_t fMotherId;
+  int32_t fMotherId;
 
   /** Momentum components at start vertex [GeV]  **/
   Double32_t fPx, fPy, fPz;
@@ -147,7 +149,7 @@ private:
    **  with the inline functions. 
    **  Bits 26-31 are spare for potential additional detectors.
    **/
-  Int_t fNPoints;
+  int32_t fNPoints;
 
 
   ClassDef(CbmMCTrack, 3)
@@ -156,11 +158,11 @@ private:
 
 // ==========   Inline functions   ========================================
 
-inline Double_t CbmMCTrack::GetEnergy() const
+inline double CbmMCTrack::GetEnergy() const
 {
   if (fE > 0.) return fE;
-  Double_t mass = GetMass();
-  return TMath::Sqrt(mass * mass + fPx * fPx + fPy * fPy + fPz * fPz);
+  double mass = GetMass();
+  return sqrt(mass * mass + fPx * fPx + fPy * fPy + fPz * fPz);
 }
 
 
diff --git a/core/data/CbmMatch.cxx b/core/data/CbmMatch.cxx
index ed9a67aace..3c73bdc99a 100644
--- a/core/data/CbmMatch.cxx
+++ b/core/data/CbmMatch.cxx
@@ -26,9 +26,9 @@ string CbmMatch::ToString() const
 {
   stringstream ss;
   ss << "CbmMatch: ";
-  Int_t nofLinks = GetNofLinks();
+  int32_t nofLinks = GetNofLinks();
   ss << "nofLinks=" << nofLinks << "\n";
-  for (Int_t i = 0; i < nofLinks; i++) {
+  for (int32_t i = 0; i < nofLinks; i++) {
     const CbmLink& link = fLinks[i];
     ss << link.ToString();
   }
@@ -38,17 +38,17 @@ string CbmMatch::ToString() const
 
 void CbmMatch::AddLinks(const CbmMatch& match)
 {
-  Int_t nofLinks = match.GetNofLinks();
-  for (Int_t i = 0; i < nofLinks; i++) {
+  int32_t nofLinks = match.GetNofLinks();
+  for (int32_t i = 0; i < nofLinks; i++) {
     AddLink(match.GetLink(i));
   }
 }
 
 void CbmMatch::AddLink(const CbmLink& newLink)
 {
-  Int_t addedIndex = -1;
-  Int_t nofLinks   = GetNofLinks();
-  for (Int_t i = 0; i < nofLinks; i++) {
+  int32_t addedIndex = -1;
+  int32_t nofLinks   = GetNofLinks();
+  for (int32_t i = 0; i < nofLinks; i++) {
     CbmLink& link = fLinks[i];
     if (link == newLink) {
       link.AddWeight(newLink.GetWeight());
@@ -68,7 +68,7 @@ void CbmMatch::AddLink(const CbmLink& newLink)
   }
 }
 
-void CbmMatch::AddLink(Double_t weight, Int_t index, Int_t entry, Int_t file)
+void CbmMatch::AddLink(double weight, int32_t index, int32_t entry, int32_t file)
 {
   CbmLink link(weight, index, entry, file);
   AddLink(link);
diff --git a/core/data/CbmMatch.h b/core/data/CbmMatch.h
index f7fcb7e400..9c4336cc38 100644
--- a/core/data/CbmMatch.h
+++ b/core/data/CbmMatch.h
@@ -16,9 +16,9 @@
 #include "CbmLink.h"  // for CbmLink
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
 #include <memory>  // for unique_ptr
 #include <string>  // for string
 #include <vector>  // for vector
@@ -36,16 +36,16 @@ public:
   virtual ~CbmMatch();
 
   /* Accessors */
-  const CbmLink& GetLink(Int_t i) const { return fLinks[i]; }
+  const CbmLink& GetLink(int32_t i) const { return fLinks[i]; }
   const std::vector<CbmLink>& GetLinks() const { return fLinks; }
   const CbmLink& GetMatchedLink() const { return fLinks[fMatchedIndex]; }
-  Int_t GetNofLinks() const { return fLinks.size(); }
-  Double_t GetTotalWeight() const { return fTotalWeight; }
+  int32_t GetNofLinks() const { return fLinks.size(); }
+  double GetTotalWeight() const { return fTotalWeight; }
 
   /* Modifiers */
   void AddLinks(const CbmMatch& match);
   void AddLink(const CbmLink& newLink);
-  void AddLink(Double_t weight, Int_t index, Int_t entry = -1, Int_t file = -1);
+  void AddLink(double weight, int32_t index, int32_t entry = -1, int32_t file = -1);
   void ClearLinks();
 
   /**
@@ -56,8 +56,8 @@ public:
 
 protected:
   std::vector<CbmLink> fLinks;  // List of links to MC
-  Double_t fTotalWeight;        // Sum of all reference weights
-  Int_t fMatchedIndex;          // Index of the matched reference in fReferences array
+  double fTotalWeight;          // Sum of all reference weights
+  int32_t fMatchedIndex;        // Index of the matched reference in fReferences array
 
   ClassDef(CbmMatch, 1);
 };
diff --git a/core/data/CbmModuleList.h b/core/data/CbmModuleList.h
index e59e4711e7..a30cef3b65 100644
--- a/core/data/CbmModuleList.h
+++ b/core/data/CbmModuleList.h
@@ -14,9 +14,9 @@
 
 #include "CbmDefs.h"  // for ECbmModuleId
 
-#include <RtypesCore.h>  // for ROOT data types
 #include <TString.h>     // for TString
 
+#include <cstdint>
 #include <map>  // for map
 
 /** @class CbmModuleList
diff --git a/core/data/CbmPixelHit.cxx b/core/data/CbmPixelHit.cxx
index f5ec9be18e..ea28bc257c 100644
--- a/core/data/CbmPixelHit.cxx
+++ b/core/data/CbmPixelHit.cxx
@@ -18,14 +18,14 @@ using std::stringstream;
 
 CbmPixelHit::CbmPixelHit() : CbmPixelHit(-1, 0., 0., 0., 0., 0., 0., 0., -1) {}
 
-CbmPixelHit::CbmPixelHit(Int_t address, const TVector3& pos, const TVector3& err, Double_t dxy, Int_t refId,
-                         Double_t time, Double_t timeError)
+CbmPixelHit::CbmPixelHit(int32_t address, const TVector3& pos, const TVector3& err, double dxy, int32_t refId,
+                         double time, double timeError)
   : CbmPixelHit(address, pos.X(), pos.Y(), pos.Z(), err.X(), err.Y(), err.Z(), dxy, refId, time, timeError)
 {
 }
 
-CbmPixelHit::CbmPixelHit(Int_t address, Double_t x, Double_t y, Double_t z, Double_t dx, Double_t dy, Double_t dz,
-                         Double_t dxy, Int_t refId, Double_t time, Double_t timeError)
+CbmPixelHit::CbmPixelHit(int32_t address, double x, double y, double z, double dx, double dy, double dz, double dxy,
+                         int32_t refId, double time, double timeError)
   : CbmHit(kPIXELHIT, z, dz, refId, address, time, timeError)
   , fX(x)
   , fY(y)
diff --git a/core/data/CbmPixelHit.h b/core/data/CbmPixelHit.h
index fe4b7ece57..070a61f479 100644
--- a/core/data/CbmPixelHit.h
+++ b/core/data/CbmPixelHit.h
@@ -17,9 +17,9 @@
 #include "CbmHit.h"  // for CbmHit
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t
 #include <TVector3.h>    // for TVector3
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmPixelHit : public CbmHit {
@@ -43,8 +43,8 @@ public:
          * \param[in] time Hit time [ns].   
          * \param[in] timeError Error of hit time [ns].         
  	 **/
-  CbmPixelHit(Int_t address, Double_t x, Double_t y, Double_t z, Double_t dx, Double_t dy, Double_t dz, Double_t dxy,
-              Int_t refId, Double_t time = -1., Double_t timeError = -1.);
+  CbmPixelHit(int32_t address, double x, double y, double z, double dx, double dy, double dz, double dxy, int32_t refId,
+              double time = -1., double timeError = -1.);
 
   /**
 	 * \breif Standard constructor.
@@ -56,8 +56,8 @@ public:
          * \param[in] time Hit time [ns].   
          * \param[in] timeError Error of hit time [ns].         
 	 **/
-  CbmPixelHit(Int_t address, const TVector3& pos, const TVector3& err, Double_t dxy, Int_t refId, Double_t time = -1.,
-              Double_t timeError = -1.);
+  CbmPixelHit(int32_t address, const TVector3& pos, const TVector3& err, double dxy, int32_t refId, double time = -1.,
+              double timeError = -1.);
 
   /**
 	 * brief Destructor.
@@ -70,11 +70,11 @@ public:
   virtual std::string ToString() const;
 
   /* Accessors */
-  Double_t GetX() const { return fX; }
-  Double_t GetY() const { return fY; }
-  Double_t GetDx() const { return fDx; }
-  Double_t GetDy() const { return fDy; }
-  Double_t GetDxy() const { return fDxy; }
+  double GetX() const { return fX; }
+  double GetY() const { return fY; }
+  double GetDx() const { return fDx; }
+  double GetDy() const { return fDy; }
+  double GetDxy() const { return fDxy; }
 
   /**
 	 * \brief Copies hit position to pos.
@@ -89,11 +89,11 @@ public:
   void PositionError(TVector3& dpos) const;
 
   /* Setters */
-  void SetX(Double_t x) { fX = x; }
-  void SetY(Double_t y) { fY = y; }
-  void SetDx(Double_t dx) { fDx = dx; }
-  void SetDy(Double_t dy) { fDy = dy; }
-  void SetDxy(Double_t dxy) { fDxy = dxy; }
+  void SetX(double x) { fX = x; }
+  void SetY(double y) { fY = y; }
+  void SetDx(double dx) { fDx = dx; }
+  void SetDy(double dy) { fDy = dy; }
+  void SetDxy(double dxy) { fDxy = dxy; }
 
   /**
 	 * \brief Sets position of the hit.
@@ -108,9 +108,9 @@ public:
   void SetPositionError(const TVector3& dpos);
 
 private:
-  Double_t fX, fY;    ///< X, Y positions of hit [cm]
-  Double_t fDx, fDy;  ///< X, Y errors [cm]
-  Double_t fDxy;      ///< XY correlation
+  double fX, fY;    ///< X, Y positions of hit [cm]
+  double fDx, fDy;  ///< X, Y errors [cm]
+  double fDxy;      ///< XY correlation
 
   ClassDef(CbmPixelHit, 1);
 };
diff --git a/core/data/CbmRawEvent.h b/core/data/CbmRawEvent.h
index eafff7d8e0..81e9e806c5 100644
--- a/core/data/CbmRawEvent.h
+++ b/core/data/CbmRawEvent.h
@@ -23,11 +23,11 @@
 //#include "CbmVertex.h"  // for CbmVertex, found in core/data/global
 
 //#include <Rtypes.h>          // for THashConsistencyHolder, ClassDef
-//#include <RtypesCore.h>      // for Double_t, UInt_t, Int_t
 //#include <TMatrixFSymfwd.h>  // for TMatrixFSym
 //#include <TObject.h>         // for TObject
 
 
+//#include <cstdint>
 //#include <map>  // for map, map<>::mapped_type
 //#include <span>
 //#include <string>  // for string
@@ -52,7 +52,7 @@ public:
    ** @param number    Event number
    ** @param time      Event trigger time [ns]
    **/
-  CbmRawEvent(uint64_t number, Double_t time = 0) : fNumber(number), fTime(time) {};
+  CbmRawEvent(uint64_t number, double time = 0) : fNumber(number), fTime(time) {};
 
 
   /** @brief Copy constructor **/
@@ -163,13 +163,13 @@ public:
   /** @brief Event time
    ** @return Event trigger time [ns]
    **/
-  Double_t GetTime() const { return fTime; }
+  double GetTime() const { return fTime; }
 
 
   /** @brief Set event time
    ** @param time  Event trigger time [ns]
 	 **/
-  void SetTime(Double_t time) { fTime = time; }
+  void SetTime(double time) { fTime = time; }
 
 
   /** @brief String output **/
diff --git a/core/data/CbmStripHit.cxx b/core/data/CbmStripHit.cxx
index 9d236877c6..77233f2429 100644
--- a/core/data/CbmStripHit.cxx
+++ b/core/data/CbmStripHit.cxx
@@ -19,15 +19,15 @@ using std::stringstream;
 
 CbmStripHit::CbmStripHit() : CbmStripHit(-1, 0., 0., 0., 0., 0., 0., -1) {}
 
-CbmStripHit::CbmStripHit(Int_t address, const TVector3& pos, const TVector3& err, Int_t refId, Double_t time,
-                         Double_t timeError)
+CbmStripHit::CbmStripHit(int32_t address, const TVector3& pos, const TVector3& err, int32_t refId, double time,
+                         double timeError)
   : CbmStripHit(address, pos.X(), pos.Y(), pos.Z(), err.X(), err.Y(), err.Z(), refId, time, timeError)
 {
 }
 
 
-CbmStripHit::CbmStripHit(Int_t address, Double_t u, Double_t phi, Double_t z, Double_t du, Double_t dphi, Double_t dz,
-                         Int_t refId, Double_t time, Double_t timeError)
+CbmStripHit::CbmStripHit(int32_t address, double u, double phi, double z, double du, double dphi, double dz,
+                         int32_t refId, double time, double timeError)
   : CbmHit(kSTRIPHIT, z, dz, refId, address, time, timeError)
   , fU(u)
   , fDu(du)
diff --git a/core/data/CbmStripHit.h b/core/data/CbmStripHit.h
index 0e67c80d5d..08600e8756 100644
--- a/core/data/CbmStripHit.h
+++ b/core/data/CbmStripHit.h
@@ -17,8 +17,8 @@
 #include "CbmHit.h"  // for CbmHit
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t
 
+#include <cstdint>
 #include <string>  // for string
 
 class TVector3;
@@ -44,8 +44,8 @@ public:
 	 * \param[in] timeError Error of hit time [ns].
 
 	 **/
-  CbmStripHit(Int_t address, Double_t u, Double_t phi, Double_t z, Double_t du, Double_t dphi, Double_t dz, Int_t refId,
-              Double_t time = -1., Double_t timeError = -1.);
+  CbmStripHit(int32_t address, double u, double phi, double z, double du, double dphi, double dz, int32_t refId,
+              double time = -1., double timeError = -1.);
 
   /**
 	 * \brief Standard constructor.
@@ -56,8 +56,8 @@ public:
 	 * \param[in] time Hit time [ns].
 	 * \param[in] timeError Error of hit time [ns].
 	 **/
-  CbmStripHit(Int_t address, const TVector3& pos, const TVector3& err, Int_t refId, Double_t time = -1.,
-              Double_t timeError = -1.);
+  CbmStripHit(int32_t address, const TVector3& pos, const TVector3& err, int32_t refId, double time = -1.,
+              double timeError = -1.);
 
   /**
 	 * \brief Destructor.
@@ -70,22 +70,22 @@ public:
   virtual std::string ToString() const;
 
   /* Accessors */
-  Double_t GetU() const { return fU; }
-  Double_t GetPhi() const { return fPhi; }
-  Double_t GetDu() const { return fDu; }
-  Double_t GetDphi() const { return fDphi; }
+  double GetU() const { return fU; }
+  double GetPhi() const { return fPhi; }
+  double GetDu() const { return fDu; }
+  double GetDphi() const { return fDphi; }
 
   /* Setters */
-  void SetU(Double_t u) { fU = u; }
-  void SetPhi(Double_t phi) { fPhi = phi; }
-  void SetDu(Double_t du) { fDu = du; }
-  void SetDphi(Double_t dphi) { fDphi = dphi; }
+  void SetU(double u) { fU = u; }
+  void SetPhi(double phi) { fPhi = phi; }
+  void SetDu(double du) { fDu = du; }
+  void SetDphi(double dphi) { fDphi = dphi; }
 
 private:
-  Double_t fU;     ///< U coordinate in the rotated c.s [cm]
-  Double_t fDu;    ///< U error [cm]
-  Double_t fPhi;   ///< strip rotation angle [rad]
-  Double_t fDphi;  ///< strip rotation error [rad]
+  double fU;     ///< U coordinate in the rotated c.s [cm]
+  double fDu;    ///< U error [cm]
+  double fPhi;   ///< strip rotation angle [rad]
+  double fDphi;  ///< strip rotation error [rad]
 
   ClassDef(CbmStripHit, 1);
 };
diff --git a/core/data/CbmTimeSlice.cxx b/core/data/CbmTimeSlice.cxx
index 5da4a5ade3..fd756a977c 100644
--- a/core/data/CbmTimeSlice.cxx
+++ b/core/data/CbmTimeSlice.cxx
@@ -16,15 +16,13 @@
 #include <Logger.h>  // for Logger, LOG
 
 #include <TNamed.h>   // for TNamed
-#include <TString.h>  // for operator<<
 
+#include <cassert>  // for assert
 #include <iomanip>  // for operator<<, setprecision
 #include <sstream>  // for operator<<, basic_ostream, stringstream
 #include <string>   // for char_traits
 #include <utility>  // for pair
 
-#include <assert.h>  // for assert
-
 using std::fixed;
 using std::setprecision;
 using std::string;
@@ -37,7 +35,7 @@ CbmTimeSlice::CbmTimeSlice(EType type)
   , fType(type)
   , fStartTime(-1.)
   , fLength(-1.)
-  , fIsEmpty(kTRUE)
+  , fIsEmpty(true)
   , fNofData()
   , fTimeDataFirst(0.)
   , fTimeDataLast(0.)
@@ -48,12 +46,12 @@ CbmTimeSlice::CbmTimeSlice(EType type)
 
 
 // -----   Constructor for fixed-length time-slice   -------------------------
-CbmTimeSlice::CbmTimeSlice(Double_t start, Double_t duration)
+CbmTimeSlice::CbmTimeSlice(double start, double duration)
   : TNamed()
   , fType(kRegular)
   , fStartTime(start)
   , fLength(duration)
-  , fIsEmpty(kTRUE)
+  , fIsEmpty(true)
   , fNofData()
   , fTimeDataFirst(0.)
   , fTimeDataLast(0.)
@@ -69,7 +67,7 @@ CbmTimeSlice::~CbmTimeSlice() {}
 
 
 // -----   Add data with time stamp   ----------------------------------------
-Bool_t CbmTimeSlice::AddData(ECbmModuleId detector, Double_t time)
+bool CbmTimeSlice::AddData(ECbmModuleId detector, double time)
 {
 
   // Check for out of bounds
@@ -77,7 +75,7 @@ Bool_t CbmTimeSlice::AddData(ECbmModuleId detector, Double_t time)
     if (time < fStartTime || time > GetEndTime()) {
       LOG(error) << "Trying to add data at t = " << time << " ns to "
                  << "time slice [ " << fStartTime << ", " << GetEndTime() << " ] ns !";
-      return kFALSE;
+      return false;
     }  //? out of bounds
   }    //? fixed-length
 
@@ -92,17 +90,17 @@ Bool_t CbmTimeSlice::AddData(ECbmModuleId detector, Double_t time)
   }  //? time-slice not empty
 
   fNofData[detector]++;
-  fIsEmpty = kFALSE;
+  fIsEmpty = false;
 
-  return kTRUE;
+  return true;
 }
 // ---------------------------------------------------------------------------
 
 
 // -----   End time of time slice   ------------------------------------------
-Double_t CbmTimeSlice::GetEndTime() const
+double CbmTimeSlice::GetEndTime() const
 {
-  Double_t value = -1.;
+  double value = -1.;
   switch (fType) {
     case kRegular: value = fStartTime + fLength; break;
     case kFlexible: value = -1.; break;
@@ -115,7 +113,7 @@ Double_t CbmTimeSlice::GetEndTime() const
 
 
 // -----   Get data array size   ---------------------------------------------
-Int_t CbmTimeSlice::GetNofData(ECbmModuleId detector) const
+int32_t CbmTimeSlice::GetNofData(ECbmModuleId detector) const
 {
   auto it = fNofData.find(detector);
   if (it == fNofData.end()) return 0;
@@ -125,7 +123,7 @@ Int_t CbmTimeSlice::GetNofData(ECbmModuleId detector) const
 
 
 // -----   Register data   ---------------------------------------------------
-Bool_t CbmTimeSlice::RegisterData(ECbmModuleId system, Double_t time)
+bool CbmTimeSlice::RegisterData(ECbmModuleId system, double time)
 {
 
   // Check for out of bounds
@@ -133,7 +131,7 @@ Bool_t CbmTimeSlice::RegisterData(ECbmModuleId system, Double_t time)
     if (time < fStartTime || time > GetEndTime()) {
       LOG(error) << "Trying to add data at t = " << time << " ns to "
                  << "time slice [ " << fStartTime << ", " << GetEndTime() << " ] ns !";
-      return kFALSE;
+      return false;
     }  //? out of bounds
   }    //? fixed-length
 
@@ -147,23 +145,23 @@ Bool_t CbmTimeSlice::RegisterData(ECbmModuleId system, Double_t time)
     if (time > fTimeDataLast) fTimeDataLast = time;
   }  //? time-slice not empty
   fNofData[system]++;
-  fIsEmpty = kFALSE;
+  fIsEmpty = false;
 
-  return kTRUE;
+  return true;
 }
 // ---------------------------------------------------------------------------
 
 
 // -----   Register data   ---------------------------------------------------
-Bool_t CbmTimeSlice::RegisterData(ECbmModuleId system, Double_t time, const CbmMatch& match)
+bool CbmTimeSlice::RegisterData(ECbmModuleId system, double time, const CbmMatch& match)
 {
 
   // Update match object
   CbmLink link;
-  for (Int_t iLink = 0; iLink < match.GetNofLinks(); iLink++) {
-    Int_t input     = match.GetLink(iLink).GetFile();
-    Int_t event     = match.GetLink(iLink).GetEntry();
-    Double_t weight = match.GetLink(iLink).GetWeight();
+  for (int32_t iLink = 0; iLink < match.GetNofLinks(); iLink++) {
+    int32_t input = match.GetLink(iLink).GetFile();
+    int32_t event = match.GetLink(iLink).GetEntry();
+    double weight = match.GetLink(iLink).GetWeight();
     fMatch.AddLink(weight, -1, event, input);
   }
 
@@ -183,7 +181,7 @@ void CbmTimeSlice::Reset()
 
 
 // ----- Reset time slice   --------------------------------------------------
-void CbmTimeSlice::Reset(Double_t start, Double_t length)
+void CbmTimeSlice::Reset(double start, double length)
 {
   fStartTime = start;
   fLength    = length;
@@ -197,7 +195,7 @@ void CbmTimeSlice::Reset(Double_t start, Double_t length)
 void CbmTimeSlice::ResetCounters()
 {
   fNofData.clear();
-  fIsEmpty       = kTRUE;
+  fIsEmpty       = true;
   fTimeDataFirst = 0.;
   fTimeDataLast  = 0.;
   fMatch.ClearLinks();
diff --git a/core/data/CbmTimeSlice.h b/core/data/CbmTimeSlice.h
index 3481630a4c..85010c36b9 100644
--- a/core/data/CbmTimeSlice.h
+++ b/core/data/CbmTimeSlice.h
@@ -14,9 +14,9 @@
 #include "CbmMatch.h"  // for CbmMatch
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t, Bool_t, kFALSE
 #include <TNamed.h>      // for TNamed
 
+#include <cstdint>
 #include <map>     // for map
 #include <string>  // for string
 
@@ -53,7 +53,7 @@ public:
      ** @param start    Start time of time slice [ns]
      ** @param duration Duration of time slice [ns]
      */
-  CbmTimeSlice(Double_t start, Double_t duration);
+  CbmTimeSlice(double start, double duration);
 
 
   /** Destructor **/
@@ -68,20 +68,20 @@ public:
   void AddData(ECbmModuleId detector)
   {
     fNofData[detector]++;
-    fIsEmpty = kFALSE;
+    fIsEmpty = false;
   }
   // TODO: Obsolete, remove
 
   /** @brief Add data with time to time-slice
      ** @param detector  System ID (ECbmModuleId)
      ** @param time      Data time [ns]
-     ** @value kFALSE if time is out of time-slice bounds; else kTRUE
+     ** @value false if time is out of time-slice bounds; else true
      **
      ** The respective counter will be incremented.
      ** Time of data is checked with time-slice bounds.
      ** Time of first and last data are updated.
      **/
-  Bool_t AddData(ECbmModuleId detector, Double_t time);
+  bool AddData(ECbmModuleId detector, double time);
   // TODO: Obsolete, remove
 
 
@@ -89,14 +89,14 @@ public:
      ** @param detector  system ID (ECbmModuleId)
      ** @value Size of raw data container (number of digis)
      **/
-  Int_t GetNofData(ECbmModuleId detector) const;
+  int32_t GetNofData(ECbmModuleId detector) const;
 
 
   /** Duration of time slice
      **
      ** @return duration [ns]
      **/
-  Double_t GetLength() const { return fLength; }
+  double GetLength() const { return fLength; }
 
 
   /** Get match object
@@ -111,7 +111,7 @@ public:
      ** If the type of the time slice is kEvent, the method returns the
      ** event time.
      **/
-  Double_t GetStartTime() const { return fStartTime; }
+  double GetStartTime() const { return fStartTime; }
 
 
   /** End time of time slice
@@ -120,69 +120,69 @@ public:
      ** If the type of the time slice is kEvent, the method returns the
      ** event time.
      **/
-  Double_t GetEndTime() const;
+  double GetEndTime() const;
 
 
   /** @brief Time stamp of first data
      ** @return Time stamp of first data [ns]
      **/
-  Double_t GetTimeDataFirst() const { return fTimeDataFirst; }
+  double GetTimeDataFirst() const { return fTimeDataFirst; }
 
 
   /** @brief Time stamp of last data
      ** @return Time stamp of last data [ns]
      **/
-  Double_t GetTimeDataLast() const { return fTimeDataLast; }
+  double GetTimeDataLast() const { return fTimeDataLast; }
 
 
   /** Check whether time slice contains data
-     ** @return kTRUE if time slice contains data
+     ** @return true if time slice contains data
      **/
-  Bool_t IsEmpty() const { return fNofData.empty(); }
+  bool IsEmpty() const { return fNofData.empty(); }
 
 
   /** Check for being of type regular
-     ** @return kTRUE if type is regular
+     ** @return true if type is regular
      **/
-  Bool_t IsEvent() const { return fType == kEvent; }
+  bool IsEvent() const { return fType == kEvent; }
 
 
   /** Check for being of type regular
-     ** @return kTRUE if type is regular
+     ** @return true if type is regular
      **/
-  Bool_t IsFlexible() const { return fType == kFlexible; }
+  bool IsFlexible() const { return fType == kFlexible; }
 
 
   /** Check for being of type regular
-     ** @return kTRUE if type is regular
+     ** @return true if type is regular
      **/
-  Bool_t IsRegular() const { return fType == kRegular; }
+  bool IsRegular() const { return fType == kRegular; }
 
 
   /** @brief Register data to time-slice header
      ** @param system    System ID (ECbmModuleId)
      ** @param time      Data time [ns]
-     ** @value kFALSE if time is out of time-slice bounds; else kTRUE
+     ** @value false if time is out of time-slice bounds; else true
      **
      ** The respective counter will be incremented.
      ** Time of data is checked with time-slice bounds.
      ** Time of first and last data are updated.
      **/
-  Bool_t RegisterData(ECbmModuleId system, Double_t time);
+  bool RegisterData(ECbmModuleId system, double time);
 
 
   /** @brief Register data to time-slice header (with match object)
      ** @param system    System ID (ECbmModuleId)
      ** @param time      Data time [ns]
      ** @param match     Reference to digi match object
-     ** @value kFALSE if time is out of time-slice bounds; else kTRUE
+     ** @value false if time is out of time-slice bounds; else true
      **
      ** The respective counter will be incremented.
      ** Time of data is checked with time-slice bounds.
      ** Time of first and last data are updated.
      ** The match objects of the time slice is updated.
      **/
-  Bool_t RegisterData(ECbmModuleId system, Double_t time, const CbmMatch& match);
+  bool RegisterData(ECbmModuleId system, double time, const CbmMatch& match);
 
 
   /** @brief Reset the time slice
@@ -199,13 +199,13 @@ public:
      ** Reset start time, length and counters.
      ** If used in mode kFlexible or kEvent, the arguments are ignored.
      **/
-  void Reset(Double_t start, Double_t length);
+  void Reset(double start, double length);
 
 
   /** @brief Set start time
      ** @param time Start time [ns]
      **/
-  void SetStartTime(Double_t time) { fStartTime = time; }
+  void SetStartTime(double time) { fStartTime = time; }
 
 
   /** Status to string **/
@@ -221,12 +221,12 @@ public:
 
 private:
   EType fType;                             ///< Time-slice type
-  Double_t fStartTime;                     ///< Start time [ns]
-  Double_t fLength;                        ///< Length of time-slice [ns]
-  Bool_t fIsEmpty;                         ///< Flag for containing no data
-  std::map<ECbmModuleId, Int_t> fNofData;  ///< SystemId -> Number of digis
-  Double_t fTimeDataFirst;                 ///< Time of first data object
-  Double_t fTimeDataLast;                  ///< Time of last data object
+  double fStartTime;                       ///< Start time [ns]
+  double fLength;                          ///< Length of time-slice [ns]
+  bool fIsEmpty;                           ///< Flag for containing no data
+  std::map<ECbmModuleId, int32_t> fNofData;  ///< SystemId -> Number of digis
+  double fTimeDataFirst;                     ///< Time of first data object
+  double fTimeDataLast;                      ///< Time of last data object
   CbmMatch fMatch;                         ///< Link time slice to events
 
 
diff --git a/core/data/CbmTrack.cxx b/core/data/CbmTrack.cxx
index 13e41489c1..2f3385eeb5 100644
--- a/core/data/CbmTrack.cxx
+++ b/core/data/CbmTrack.cxx
@@ -82,7 +82,7 @@ CbmTrack::~CbmTrack()
   if (fMatch) delete fMatch;
 }
 
-void CbmTrack::AddHit(Int_t index, HitType type)
+void CbmTrack::AddHit(int32_t index, HitType type)
 {
   fHitIndex.push_back(index);
   fHitType.push_back(type);
diff --git a/core/data/CbmTrack.h b/core/data/CbmTrack.h
index 0c17507186..5419d752c7 100644
--- a/core/data/CbmTrack.h
+++ b/core/data/CbmTrack.h
@@ -25,9 +25,10 @@
 #include <FairTrackParam.h>  // for FairTrackParam
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t, Double32_t
+#include <RtypesCore.h>  // for Double32_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
 #include <string>  // for string
 #include <vector>  // for vector
 
@@ -51,64 +52,64 @@ public:
 	 * @param index Index of the hit in the array
 	 * @param type Type of the hit to be added
 	 **/
-  void AddHit(Int_t index, HitType type);
+  void AddHit(int32_t index, HitType type);
 
   /** Accessors  **/
-  virtual Int_t GetNofHits() const { return fHitIndex.size(); }
-  Int_t GetHitIndex(Int_t iHit) const { return fHitIndex[iHit]; }
-  HitType GetHitType(Int_t iHit) const { return fHitType[iHit]; }
-  Int_t GetPidHypo() const { return fPidHypo; }
-  Int_t GetFlag() const { return fFlag; }
-  Double_t GetChiSq() const { return fChiSq; }
-  Int_t GetNDF() const { return fNDF; }
-  Int_t GetPreviousTrackId() const { return fPreviousTrackId; }
+  virtual int32_t GetNofHits() const { return fHitIndex.size(); }
+  int32_t GetHitIndex(int32_t iHit) const { return fHitIndex[iHit]; }
+  HitType GetHitType(int32_t iHit) const { return fHitType[iHit]; }
+  int32_t GetPidHypo() const { return fPidHypo; }
+  int32_t GetFlag() const { return fFlag; }
+  double GetChiSq() const { return fChiSq; }
+  int32_t GetNDF() const { return fNDF; }
+  int32_t GetPreviousTrackId() const { return fPreviousTrackId; }
   const FairTrackParam* GetParamFirst() const { return &fParamFirst; }
   const FairTrackParam* GetParamLast() const { return &fParamLast; }
   CbmMatch* GetMatch() const { return fMatch; }
-  Double_t GetTime() const { return fTime; }
-  Double_t GetTimeError() const { return fTimeError; }
+  double GetTime() const { return fTime; }
+  double GetTimeError() const { return fTimeError; }
 
   /** Modifiers  **/
-  void SetPidHypo(Int_t pid) { fPidHypo = pid; }
-  void SetFlag(Int_t flag) { fFlag = flag; }
-  void SetChiSq(Double_t chiSq) { fChiSq = chiSq; }
-  void SetNDF(Int_t ndf) { fNDF = ndf; }
-  void SetPreviousTrackId(Int_t previousTrackId) { fPreviousTrackId = previousTrackId; }
+  void SetPidHypo(int32_t pid) { fPidHypo = pid; }
+  void SetFlag(int32_t flag) { fFlag = flag; }
+  void SetChiSq(double chiSq) { fChiSq = chiSq; }
+  void SetNDF(int32_t ndf) { fNDF = ndf; }
+  void SetPreviousTrackId(int32_t previousTrackId) { fPreviousTrackId = previousTrackId; }
   void SetParamFirst(const FairTrackParam* par) { fParamFirst = *par; }
   void SetParamLast(const FairTrackParam* par) { fParamLast = *par; }
   void SetMatch(CbmMatch* match);
-  void SetTime(Double_t time) { fTime = time; }
-  void SetTimeError(Double_t error) { fTimeError = error; }
+  void SetTime(double time) { fTime = time; }
+  void SetTimeError(double error) { fTimeError = error; }
 
   virtual std::string ToString() const;
 
 protected:
   /** Array contains the hit indices of the hits attached to the track **/
-  std::vector<Int_t> fHitIndex;
+  std::vector<int32_t> fHitIndex;
 
   /** Array contains the hit types of the hits attached to the track **/
   std::vector<HitType> fHitType;
 
   /** PID hypothesis used by the track fitter **/
-  Int_t fPidHypo;
+  int32_t fPidHypo;
 
   /** Track parameters at first and last fitted hit **/
   FairTrackParam fParamFirst;
   FairTrackParam fParamLast;
 
   /** Track start time **/
-  Double_t fTime;
-  Double_t fTimeError;
+  double fTime;
+  double fTimeError;
 
   /** Quality flag **/
-  Int_t fFlag;
+  int32_t fFlag;
 
   /** Chi square and NDF of track fit **/
   Double32_t fChiSq;
-  Int_t fNDF;
+  int32_t fNDF;
 
   /** Index of previous track segment **/
-  Int_t fPreviousTrackId;
+  int32_t fPreviousTrackId;
 
   /** Monte-Carlo information **/
   CbmMatch* fMatch;
diff --git a/core/data/CbmTrackMatch.cxx b/core/data/CbmTrackMatch.cxx
index 8435c806f5..2ef920371d 100644
--- a/core/data/CbmTrackMatch.cxx
+++ b/core/data/CbmTrackMatch.cxx
@@ -17,7 +17,7 @@ CbmTrackMatch::CbmTrackMatch() : fMCTrackId(-1), fNofTrueHits(0), fNofWrongHits(
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmTrackMatch::CbmTrackMatch(Int_t mcTrackId, Int_t nTrue, Int_t nWrong, Int_t nFake, Int_t nTracks)
+CbmTrackMatch::CbmTrackMatch(int32_t mcTrackId, int32_t nTrue, int32_t nWrong, int32_t nFake, int32_t nTracks)
   : fMCTrackId(mcTrackId)
   , fNofTrueHits(nTrue)
   , fNofWrongHits(nWrong)
diff --git a/core/data/CbmTrackMatch.h b/core/data/CbmTrackMatch.h
index 15415ca438..9cf92aacb2 100644
--- a/core/data/CbmTrackMatch.h
+++ b/core/data/CbmTrackMatch.h
@@ -16,9 +16,10 @@
 #define CBMTRACKMATCH_H 1
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Int_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
+
 class CbmTrackMatch : public TObject {
 
 public:
@@ -33,7 +34,7 @@ public:
   *@param nFake       Number of fake hits (not belonging to any MCTrack)
   *@param nTracks     Number of MCTracks with common hits
   **/
-  CbmTrackMatch(Int_t mcTrackID, Int_t nTrue, Int_t nWrong, Int_t nFake, Int_t nTracks);
+  CbmTrackMatch(int32_t mcTrackID, int32_t nTrue, int32_t nWrong, int32_t nFake, int32_t nTracks);
 
 
   /** Destructor **/
@@ -41,36 +42,36 @@ public:
 
 
   /** Index of matched MC track **/
-  Int_t GetMCTrackId() const { return fMCTrackId; };
+  int32_t GetMCTrackId() const { return fMCTrackId; };
 
   /** Number of true hits on track (from matched MC track) **/
-  Int_t GetNofTrueHits() const { return fNofTrueHits; };
+  int32_t GetNofTrueHits() const { return fNofTrueHits; };
 
   /** Number of wrong hits on track (from other MC tracks) **/
-  Int_t GetNofWrongHits() const { return fNofWrongHits; };
+  int32_t GetNofWrongHits() const { return fNofWrongHits; };
 
   /** Number of fake hits on track (from no MC track) **/
-  Int_t GetNofFakeHits() const { return fNofFakeHits; };
+  int32_t GetNofFakeHits() const { return fNofFakeHits; };
 
   /** Number of MCTracks with common hits **/
-  Int_t GetNofMCTracks() const { return fNofMCTracks; };
+  int32_t GetNofMCTracks() const { return fNofMCTracks; };
 
 
 private:
   /** Index of matched CbmMCTrack  **/
-  Int_t fMCTrackId;
+  int32_t fMCTrackId;
 
   /** Number of true hits (belonging to the matched MCTrack) **/
-  Int_t fNofTrueHits;
+  int32_t fNofTrueHits;
 
   /** Number of wrong hits (belonging to other MCTracks) **/
-  Int_t fNofWrongHits;
+  int32_t fNofWrongHits;
 
   /** Number of fake hits (belonging to no MCTrack) **/
-  Int_t fNofFakeHits;
+  int32_t fNofFakeHits;
 
   /** Number of MCTrackx with common hits **/
-  Int_t fNofMCTracks;
+  int32_t fNofMCTracks;
 
 
   ClassDef(CbmTrackMatch, 1);
diff --git a/core/data/CbmTrackMatchNew.cxx b/core/data/CbmTrackMatchNew.cxx
index 0f95e839a3..48faed785e 100644
--- a/core/data/CbmTrackMatchNew.cxx
+++ b/core/data/CbmTrackMatchNew.cxx
@@ -27,9 +27,9 @@ std::string CbmTrackMatchNew::ToString() const
 {
   stringstream ss;
   ss << "CbmMatch: ";
-  Int_t nofLinks = GetNofLinks();
+  int32_t nofLinks = GetNofLinks();
   ss << "nofLinks=" << nofLinks << "\n";
-  for (Int_t i = 0; i < nofLinks; i++) {
+  for (int32_t i = 0; i < nofLinks; i++) {
     const CbmLink& link = fLinks[i];
     ss << link.ToString();
   }
diff --git a/core/data/CbmTrackMatchNew.h b/core/data/CbmTrackMatchNew.h
index b8a7191f25..7812880ef3 100644
--- a/core/data/CbmTrackMatchNew.h
+++ b/core/data/CbmTrackMatchNew.h
@@ -16,8 +16,8 @@
 #include "CbmMatch.h"  // for CbmMatch
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmTrackMatchNew : public CbmMatch {
@@ -33,23 +33,23 @@ public:
   virtual ~CbmTrackMatchNew();
 
   /* Accessors */
-  Int_t GetNofTrueHits() const { return fNofTrueHits; }
-  Int_t GetNofWrongHits() const { return fNofWrongHits; }
-  Int_t GetNofHits() const { return fNofTrueHits + fNofWrongHits; }
-  Double_t GetTrueOverAllHitsRatio() const
+  int32_t GetNofTrueHits() const { return fNofTrueHits; }
+  int32_t GetNofWrongHits() const { return fNofWrongHits; }
+  int32_t GetNofHits() const { return fNofTrueHits + fNofWrongHits; }
+  double GetTrueOverAllHitsRatio() const
   {
-    Double_t all = GetNofHits();
+    double all = GetNofHits();
     return (all == 0) ? 0. : (fNofTrueHits / all);
   }
-  Double_t GetWrongOverAllHitsRatio() const
+  double GetWrongOverAllHitsRatio() const
   {
-    Double_t all = GetNofHits();
+    double all = GetNofHits();
     return (all == 0) ? 0. : (fNofWrongHits / all);
   }
 
   /* Modifiers */
-  void SetNofTrueHits(Int_t nofTrueHits) { fNofTrueHits = nofTrueHits; }
-  void SetNofWrongHits(Int_t nofWrongHits) { fNofWrongHits = nofWrongHits; }
+  void SetNofTrueHits(int32_t nofTrueHits) { fNofTrueHits = nofTrueHits; }
+  void SetNofWrongHits(int32_t nofWrongHits) { fNofWrongHits = nofWrongHits; }
 
   /**
     * \brief Return string representation of the object.
@@ -58,8 +58,8 @@ public:
   virtual std::string ToString() const;
 
 private:
-  Int_t fNofTrueHits;   // Number of true hits in reconstructed track
-  Int_t fNofWrongHits;  // Number of wrong hits in reconstructed track
+  int32_t fNofTrueHits;   // Number of true hits in reconstructed track
+  int32_t fNofWrongHits;  // Number of wrong hits in reconstructed track
 
   ClassDef(CbmTrackMatchNew, 1);
 };
diff --git a/core/data/CbmTsEventHeader.h b/core/data/CbmTsEventHeader.h
index 343f95e136..932e2c8d0e 100644
--- a/core/data/CbmTsEventHeader.h
+++ b/core/data/CbmTsEventHeader.h
@@ -7,8 +7,6 @@
 
 #include <FairEventHeader.h>
 
-#include <RtypesCore.h>
-
 #include <cstddef>
 #include <cstdint>
 
diff --git a/core/data/DataLinkDef.h b/core/data/DataLinkDef.h
index d9c23c0b51..4a734aacf4 100644
--- a/core/data/DataLinkDef.h
+++ b/core/data/DataLinkDef.h
@@ -135,29 +135,28 @@
 
 /* clang-format off */
 #pragma read sourceClass="CbmStsDigi" version="[7]" targetClass="CbmStsDigi" \
-    source="Long64_t fTime; Int_t fAddress; UShort_t fChannel; UShort_t fCharge" \
+    source="int64_t fTime; int32_t fAddress; uint16_t fChannel; uint16_t fCharge" \
     target="" \
     include="Logger.h" \
     code="{ newObj->SetAddressAndTime(onfile.fAddress, onfile.fTime); \
             newObj->SetChannelAndCharge(onfile.fChannel, onfile.fCharge); \
           }"
 
-#pragma read sourceClass="CbmTofDigi" version="[1-2]" targetClass="CbmTofDigi" \
-   source="UInt_t fuAddress" target="fuAddress" \
-   include="Logger.h" \
-   code="{ UInt_t system = (onfile.fuAddress >> 0) & ((1 << 4) - 1); \
-           UInt_t smId = (onfile.fuAddress >> 4) & ((1 << 8) - 1); \
-           UInt_t smType = (onfile.fuAddress >> 12) & ((1 << 4) - 1); \
-           UInt_t rpcId = (onfile.fuAddress >> 16) & ((1 << 7) - 1); \
-           UInt_t chSide = (onfile.fuAddress >> 23) & ((1 << 1) - 1); \
-           UInt_t chId = (onfile.fuAddress >> 24) & ((1 << 8) - 1); \
+#pragma read sourceClass = "CbmTofDigi" version = "[1-2]" targetClass = "CbmTofDigi" source =                          \
+  "uint32_t fuAddress" target = "fuAddress" include = "Logger.h" code =                                                \
+    "{ uint32_t system = (onfile.fuAddress >> 0) & ((1 << 4) - 1); \
+           uint32_t smId = (onfile.fuAddress >> 4) & ((1 << 8) - 1); \
+           uint32_t smType = (onfile.fuAddress >> 12) & ((1 << 4) - 1); \
+           uint32_t rpcId = (onfile.fuAddress >> 16) & ((1 << 7) - 1); \
+           uint32_t chSide = (onfile.fuAddress >> 23) & ((1 << 1) - 1); \
+           uint32_t chId = (onfile.fuAddress >> 24) & ((1 << 8) - 1); \
            if ( smId > 127 || rpcId > 63 || chId > 63 ) { \
              LOG(error) << \"You are trying to read an outdated version of CbmTofDigi\"; \
              LOG(error) << \"where the unique tof address can't be converted\"; \
              LOG(error) << \"automatically to the new tof addressing scheme.\"; \
              LOG(fatal) << \"Stop execution.\"; \
            } \
-           UInt_t rpcType = 0; \
+           uint32_t rpcType = 0; \
            fuAddress = (system & ((1 << 4) - 1)) \
                      + ((smId & ((1 << 7) - 1)) << 4) \
                      + ((smType & ((1 << 4) - 1)) << 11) \
diff --git a/core/data/base/CbmDigiBranch.h b/core/data/base/CbmDigiBranch.h
index 3bcb83fde3..e66bda2c9a 100644
--- a/core/data/base/CbmDigiBranch.h
+++ b/core/data/base/CbmDigiBranch.h
@@ -58,7 +58,7 @@ public:
 		 ** A std::vector is first looked for; if not found, a TClonesArray
 		 ** is looked for.
 		 **/
-  virtual Bool_t ConnectToTree()
+  virtual bool ConnectToTree()
   {
 
     FairRootManager* frm = FairRootManager::Instance();
@@ -76,8 +76,8 @@ public:
     // Try to find a TClonesArray branch for the match
     if (!fMatchVector) { fMatchArray = dynamic_cast<TClonesArray*>(frm->GetObject(mBranch.Data())); }
 
-    if (fDigiVector || fDigiArray) return kTRUE;
-    return kFALSE;
+    if (fDigiVector || fDigiArray) return true;
+    return false;
   }
   // -----------------------------------------------------------------------
 
@@ -106,7 +106,7 @@ public:
 		 **
 		 ** Returns a null pointer if the branch is not present.
 		 **/
-  virtual boost::any GetDigi(UInt_t index)
+  virtual boost::any GetDigi(uint32_t index)
   {
     const Digi* digi = nullptr;
     if (index < GetNofDigis()) {
@@ -126,7 +126,7 @@ public:
 		 **
 		 ** Returns a null pointer if the branch is not present.
 		 **/
-  virtual const CbmMatch* GetDigiMatch(UInt_t index)
+  virtual const CbmMatch* GetDigiMatch(uint32_t index)
   {
     const CbmMatch* match = nullptr;
     if (index < GetNofDigis()) {
@@ -141,12 +141,12 @@ public:
 
   // -----------------------------------------------------------------------
   /** @brief Presence of match branch
-		 ** @return kTRUE if match branch is present
+		 ** @return true if match branch is present
 		 **/
-  virtual Bool_t HasMatches()
+  virtual bool HasMatches()
   {
-    if (fMatchVector || fMatchArray) return kTRUE;
-    return kFALSE;
+    if (fMatchVector || fMatchArray) return true;
+    return false;
   }
   // -----------------------------------------------------------------------
 
diff --git a/core/data/base/CbmDigiBranchBase.h b/core/data/base/CbmDigiBranchBase.h
index 7e9c06637f..d644eebe4f 100644
--- a/core/data/base/CbmDigiBranchBase.h
+++ b/core/data/base/CbmDigiBranchBase.h
@@ -10,15 +10,14 @@
 #ifndef CBMDIGIBRANCHBASE_H
 #define CBMDIGIBRANCHBASE_H 1
 
-#include <RtypesCore.h>  // for Bool_t, UInt_t
-#include <TString.h>     // for TString
+#include <TString.h>  // for TString
 
 #include <boost/any.hpp>  // for any
 
+#include <cstddef>  // for size_t
+#include <cstdint>
 #include <string>  // for string
 
-#include <stddef.h>  // for size_t
-
 class CbmMatch;
 
 /** @brief Abstract base class for CBM digi branches
@@ -43,29 +42,29 @@ public:
 
   /** @brief Connect the branch to the ROOT tree
 		 ** @param ioMan  Pointer to FairRootManager singleton instance
-		 ** @return kTRUE if branch was found
+		 ** @return true if branch was found
 		 **/
-  virtual Bool_t ConnectToTree() = 0;
+  virtual bool ConnectToTree() = 0;
 
 
   /** @brief Get a digi from the branch
 		 ** @param index Index of digi in branch
 		 ** @return Pointer to constant digi object
 		 **/
-  virtual boost::any GetDigi(UInt_t index) = 0;
+  virtual boost::any GetDigi(uint32_t index) = 0;
 
 
   /** @brief Get a digi from the branch
 		 ** @param index Index of digi in branch
 		 ** @return Pointer to constant digi object
 		 **/
-  virtual const CbmMatch* GetDigiMatch(UInt_t index) = 0;
+  virtual const CbmMatch* GetDigiMatch(uint32_t index) = 0;
 
 
   /** @brief Presence of match branch
-		 ** @return kTRUE if a match branch is connected
+		 ** @return true if a match branch is connected
 		 **/
-  virtual Bool_t HasMatches() = 0;
+  virtual bool HasMatches() = 0;
 
 
   /** @brief Name of branch **/
diff --git a/core/data/base/CbmDigiContainer.h b/core/data/base/CbmDigiContainer.h
index aea12cae0f..9561481a1b 100644
--- a/core/data/base/CbmDigiContainer.h
+++ b/core/data/base/CbmDigiContainer.h
@@ -11,12 +11,12 @@
 #define CBMDIGICONTAINER_H 1
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Bool_t, UInt_t, ULong64_t, kFALSE
 #include <TNamed.h>      // for TNamed
 #include <TString.h>     // for TString
 
 #include <boost/any.hpp>  // for any
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmMatch;
@@ -50,9 +50,9 @@ public:
 
 
   /** @brief Connect the container to ROOT tree branch
-     ** @return kTRUE if branch was found
+     ** @return true if branch was found
      **/
-  virtual Bool_t ConnectToTree() { return kFALSE; }
+  virtual bool ConnectToTree() { return false; }
 
 
   /** @brief Get a digi from the container
@@ -63,20 +63,20 @@ public:
      ** boost::any_cast. It is in the responsibility of the implementation
      ** of the derived classes to ensure the correct data type.
      **/
-  virtual boost::any GetDigi(UInt_t index) = 0;
+  virtual boost::any GetDigi(uint32_t index) = 0;
 
 
   /** @brief Get a match object from the container
      ** @param index Index of digi
      ** @return Pointer to constant match object
      **/
-  virtual const CbmMatch* GetDigiMatch(UInt_t index) = 0;
+  virtual const CbmMatch* GetDigiMatch(uint32_t index) = 0;
 
 
   /** @brief Presence of match branch
-     ** @return kTRUE if a match branch is connected
+     ** @return true if a match branch is connected
      **/
-  virtual Bool_t HasMatches() const = 0;
+  virtual bool HasMatches() const = 0;
 
 
   /** @brief Name of container **/
@@ -84,7 +84,7 @@ public:
 
 
   /** @brief Get the number of digis in the container **/
-  virtual ULong64_t GetNofDigis() const = 0;
+  virtual uint64_t GetNofDigis() const = 0;
 
 
   /** @brief String output **/
diff --git a/core/data/base/CbmDigiVector.h b/core/data/base/CbmDigiVector.h
index 23491448c4..65078faad3 100644
--- a/core/data/base/CbmDigiVector.h
+++ b/core/data/base/CbmDigiVector.h
@@ -31,7 +31,7 @@ public:
   /** @brief Constructor
      ** @param hasMatches  If true, a match vector will be managed.
      **/
-  CbmDigiVector(Bool_t hasMatches = kFALSE) : fHasMatches(hasMatches)
+  CbmDigiVector(bool hasMatches = false) : fHasMatches(hasMatches)
   {
     TString name = Digi::GetClassName();
     name += "_vector";
@@ -77,7 +77,7 @@ public:
      **
      ** Abstract from base class; no implementation here.
      **/
-  virtual Bool_t ConnectToTree()
+  virtual bool ConnectToTree()
   {
     LOG(fatal) << "Digi vector cannot be connected to a TTree!";
     return false;
@@ -90,9 +90,9 @@ public:
      **
      ** Returns a null pointer if index is out of range.
      **/
-  virtual boost::any GetDigi(UInt_t index)
+  virtual boost::any GetDigi(uint32_t index)
   {
-    fIsLocked          = kTRUE;
+    fIsLocked          = true;
     const Digi* result = nullptr;
     if (index < fDigis.size()) result = &(fDigis[index]);
     return boost::any(result);
@@ -106,9 +106,9 @@ public:
      ** Returns a null pointer if matches are not present or
      ** index is out of range.
      **/
-  virtual const CbmMatch* GetDigiMatch(UInt_t index)
+  virtual const CbmMatch* GetDigiMatch(uint32_t index)
   {
-    fIsLocked              = kTRUE;
+    fIsLocked              = true;
     const CbmMatch* result = nullptr;
     if (fHasMatches && index < fMatches.size()) result = &(fMatches[index]);
     return result;
@@ -118,16 +118,16 @@ public:
   /** @brief Presence of match objects
      ** @return True if matches are present; else false.
      **/
-  virtual Bool_t HasMatches() const { return fHasMatches; }
+  virtual bool HasMatches() const { return fHasMatches; }
 
 
   /** @brief Number of digis in the vector
      ** @return Number of digi objects
      **/
-  virtual ULong64_t GetNofDigis() const
+  virtual uint64_t GetNofDigis() const
   {
     if (fHasMatches) assert(fMatches.size() == fDigis.size());
-    return static_cast<ULong64_t>(fDigis.size());
+    return static_cast<uint64_t>(fDigis.size());
   }
 
 
@@ -146,8 +146,8 @@ public:
 private:
   std::vector<Digi> fDigis {};
   std::vector<CbmMatch> fMatches {};
-  Bool_t fHasMatches = kFALSE;
-  Bool_t fIsLocked   = kFALSE;
+  bool fHasMatches = false;
+  bool fIsLocked   = false;
 
 
   ClassDef(CbmDigiVector, 1);
diff --git a/core/data/global/CbmGlobalTrack.h b/core/data/global/CbmGlobalTrack.h
index eb583ccde3..483fad916c 100644
--- a/core/data/global/CbmGlobalTrack.h
+++ b/core/data/global/CbmGlobalTrack.h
@@ -24,9 +24,11 @@
 #include <FairTrackParam.h>  // for FairTrackParam
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t, Double32_t, Option_t
+#include <RtypesCore.h>  // for Double32_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
+
 class CbmGlobalTrack : public TObject {
 
 public:
@@ -39,35 +41,35 @@ public:
 
 
   /** Accessors **/
-  Int_t GetStsTrackIndex() const { return fStsTrack; }
-  Int_t GetTrdTrackIndex() const { return fTrdTrack; }
-  Int_t GetMuchTrackIndex() const { return fMuchTrack; }
-  Int_t GetRichRingIndex() const { return fRichRing; }
-  Int_t GetTofHitIndex() const { return fTofHit; }
+  int32_t GetStsTrackIndex() const { return fStsTrack; }
+  int32_t GetTrdTrackIndex() const { return fTrdTrack; }
+  int32_t GetMuchTrackIndex() const { return fMuchTrack; }
+  int32_t GetRichRingIndex() const { return fRichRing; }
+  int32_t GetTofHitIndex() const { return fTofHit; }
   const FairTrackParam* GetParamFirst() const { return &fParamFirst; }
   const FairTrackParam* GetParamLast() const { return &fParamLast; }
   const CbmTrackParam* GetParamVertex() const { return &fParamPrimaryVertex; }
-  Int_t GetPidHypo() const { return fPidHypo; }
-  Double_t GetChi2() const { return fChi2; }
-  Int_t GetNDF() const { return fNDF; }
-  Int_t GetFlag() const { return fFlag; }
-  Double_t GetLength() const { return fLength; }
+  int32_t GetPidHypo() const { return fPidHypo; }
+  double GetChi2() const { return fChi2; }
+  int32_t GetNDF() const { return fNDF; }
+  int32_t GetFlag() const { return fFlag; }
+  double GetLength() const { return fLength; }
 
 
   /** Modifiers **/
-  void SetStsTrackIndex(Int_t iSts) { fStsTrack = iSts; }
-  void SetTrdTrackIndex(Int_t iTrd) { fTrdTrack = iTrd; }
-  void SetMuchTrackIndex(Int_t iMuch) { fMuchTrack = iMuch; }
-  void SetRichRingIndex(Int_t iRing) { fRichRing = iRing; }
-  void SetTofHitIndex(Int_t iTofHit) { fTofHit = iTofHit; }
+  void SetStsTrackIndex(int32_t iSts) { fStsTrack = iSts; }
+  void SetTrdTrackIndex(int32_t iTrd) { fTrdTrack = iTrd; }
+  void SetMuchTrackIndex(int32_t iMuch) { fMuchTrack = iMuch; }
+  void SetRichRingIndex(int32_t iRing) { fRichRing = iRing; }
+  void SetTofHitIndex(int32_t iTofHit) { fTofHit = iTofHit; }
   void SetParamFirst(const FairTrackParam* parFirst) { fParamFirst = *parFirst; }
   void SetParamLast(const FairTrackParam* parLast) { fParamLast = *parLast; }
   void SetParamPrimaryVertex(const FairTrackParam* parPV) { fParamPrimaryVertex.Set(*parPV); }
-  void SetPidHypo(Int_t iPid) { fPidHypo = iPid; }
-  void SetChi2(Double_t chi2) { fChi2 = chi2; }
-  void SetNDF(Int_t ndf) { fNDF = ndf; }
-  void SetFlag(Int_t iFlag) { fFlag = iFlag; }
-  void SetLength(Double_t length) { fLength = length; }
+  void SetPidHypo(int32_t iPid) { fPidHypo = iPid; }
+  void SetChi2(double chi2) { fChi2 = chi2; }
+  void SetNDF(int32_t ndf) { fNDF = ndf; }
+  void SetFlag(int32_t iFlag) { fFlag = iFlag; }
+  void SetLength(double length) { fLength = length; }
 
 
   /** Output to screen **/
@@ -76,11 +78,11 @@ public:
 
 private:
   /** Indices of local StsTrack, TrdTrack, MuchTrack, RichRing and TofHit **/
-  Int_t fStsTrack;
-  Int_t fTrdTrack;
-  Int_t fMuchTrack;
-  Int_t fRichRing;
-  Int_t fTofHit;
+  int32_t fStsTrack;
+  int32_t fTrdTrack;
+  int32_t fMuchTrack;
+  int32_t fRichRing;
+  int32_t fTofHit;
 
   /** Global track parameters at first and last plane **/
   FairTrackParam fParamFirst;
@@ -88,16 +90,16 @@ private:
   CbmTrackParam fParamPrimaryVertex;
 
   /** PID hypothesis used for global track fit **/
-  Int_t fPidHypo;
+  int32_t fPidHypo;
 
   /** Chi2 of global track fit **/
   Double32_t fChi2;
 
   /** NDF of global track fit **/
-  Int_t fNDF;
+  int32_t fNDF;
 
   /** Quality flag **/
-  Int_t fFlag;
+  int32_t fFlag;
 
   /** Track length **/
   Double32_t fLength;
diff --git a/core/data/global/CbmTofTrack.h b/core/data/global/CbmTofTrack.h
index 9da87bdcfd..ddb46be52f 100644
--- a/core/data/global/CbmTofTrack.h
+++ b/core/data/global/CbmTofTrack.h
@@ -13,10 +13,13 @@
 #include <FairTrackParam.h>  // for FairTrackParam
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t, Float_t, Double32_t
-#include <TMath.h>       // for Sqrt
+#include <RtypesCore.h>  // for Double32_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
+
+#include <cmath>
+
 /** @class CbmTofTrack
  ** @brief Provides information on attaching a TofHit to a GlobalTrack
  ** @author V.Friese <v.friese@gsi.de>
@@ -36,8 +39,8 @@ public:
 	 ** @param pidHypo      PID hypothesis for track extrapolation
 	 **/
 
-  CbmTofTrack(Int_t trackIndex, Int_t hitIndex, Double_t trackLength, Float_t mass, const FairTrackParam& trackPar,
-              Int_t pidHypo)
+  CbmTofTrack(int32_t trackIndex, int32_t hitIndex, double trackLength, float mass, const FairTrackParam& trackPar,
+              int32_t pidHypo)
     : TObject()
     , fGlbTrack(trackIndex)
     , fTofHit(hitIndex)
@@ -54,43 +57,43 @@ public:
   virtual ~CbmTofTrack();
 
   /**  PID hypothesis for track extrapolation to TOF **/
-  Int_t GetPidHypo() const { return fPidHypo; }
+  int32_t GetPidHypo() const { return fPidHypo; }
 
   /**  mass hypothesis from TOF **/
-  Float_t GetMass() const { return fMass; }
+  float GetMass() const { return fMass; }
 
   /**  Index of TOF hit **/
-  Int_t GetTofHitIndex() const { return fTofHit; }
+  int32_t GetTofHitIndex() const { return fTofHit; }
 
   /**  Error of track x coordinate at TOF  **/
-  Double_t GetTrackDx() const { return TMath::Sqrt(fTrackPar.GetCovariance(1, 1)); }
+  double GetTrackDx() const { return sqrt(fTrackPar.GetCovariance(1, 1)); }
 
   /**  Error of track x coordinate at TOF  **/
-  Double_t GetTrackDy() const { return TMath::Sqrt(fTrackPar.GetCovariance(2, 2)); }
+  double GetTrackDy() const { return sqrt(fTrackPar.GetCovariance(2, 2)); }
 
   /**  Index of global track **/
-  Int_t GetTrackIndex() const { return fGlbTrack; }
+  int32_t GetTrackIndex() const { return fGlbTrack; }
 
   /**  Track length from primary vertex to TOF **/
-  Double_t GetTrackLength() const { return fTrackLength; }
+  double GetTrackLength() const { return fTrackLength; }
 
   /**  Track parameters at TOF **/
   const FairTrackParam* GetTrackParameter() const { return &fTrackPar; }
 
   /**  Track x position at TOF  **/
-  Double_t GetTrackX() const { return fTrackPar.GetX(); }
+  double GetTrackX() const { return fTrackPar.GetX(); }
 
   /**  Track y position at TOF  **/
-  Double_t GetTrackY() const { return fTrackPar.GetY(); }
+  double GetTrackY() const { return fTrackPar.GetY(); }
 
   /** Normalized distance from hit to track **/
-  Double_t GetDistance() const { return fDistance; }
+  double GetDistance() const { return fDistance; }
 
   /** Set track index **/
-  void SetTrackIndex(Int_t trackIndex) { fGlbTrack = trackIndex; }
+  void SetTrackIndex(int32_t trackIndex) { fGlbTrack = trackIndex; }
 
   /** Set TOF hit index **/
-  void SetTofHitIndex(Int_t tofHitIndex) { fTofHit = tofHitIndex; }
+  void SetTofHitIndex(int32_t tofHitIndex) { fTofHit = tofHitIndex; }
 
   /** Set track parameter **/
   void SetTrackParameter(const FairTrackParam* par) { fTrackPar = *par; }
@@ -99,21 +102,21 @@ public:
   void SetTrackLength(Double32_t trackLength) { fTrackLength = trackLength; }
 
   /** Set PID hypothesis for track extrapolation to TOF **/
-  void SetPidHypo(Int_t pid) { fPidHypo = pid; }
+  void SetPidHypo(int32_t pid) { fPidHypo = pid; }
 
   /** Set mass from TOF **/
-  void SetMass(Float_t mass) { fMass = mass; }
+  void SetMass(float mass) { fMass = mass; }
 
   /** Set normalized distance from hit to track **/
-  void SetDistance(Double_t distance) { fDistance = distance; }
+  void SetDistance(double distance) { fDistance = distance; }
 
 private:
-  Int_t fGlbTrack;           ///< Index of global track
-  Int_t fTofHit;             ///< Index of TofHit
+  int32_t fGlbTrack;         ///< Index of global track
+  int32_t fTofHit;           ///< Index of TofHit
   Double32_t fTrackLength;   ///< Track length from primary vertex to TOF [cm]
   FairTrackParam fTrackPar;  ///< Track parameters at z of TofHit
-  Int_t fPidHypo;            ///< PID hypothesis used for track extrapolation
-  Float_t fMass;             ///< Mass from Tof
+  int32_t fPidHypo;          ///< PID hypothesis used for track extrapolation
+  float fMass;               ///< Mass from Tof
   Double32_t fDistance;      ///< Normalized distance from hit to track
 
 
diff --git a/core/data/global/CbmTrackParam.cxx b/core/data/global/CbmTrackParam.cxx
index dd67806345..ffee739319 100644
--- a/core/data/global/CbmTrackParam.cxx
+++ b/core/data/global/CbmTrackParam.cxx
@@ -10,10 +10,9 @@
 
 #include <FairTrackParam.h>  // for FairTrackParam
 
-#include <TMath.h>      // for Sqrt
-#include <TMathBase.h>  // for Abs
+#include <cmath>
 
-void CbmTrackParam::Set(const FairTrackParam& ftp, Double_t time, Double_t timeError)
+void CbmTrackParam::Set(const FairTrackParam& ftp, double time, double timeError)
 {
   SetX(ftp.GetX());
   SetY(ftp.GetY());
@@ -23,32 +22,32 @@ void CbmTrackParam::Set(const FairTrackParam& ftp, Double_t time, Double_t timeE
   SetQp(ftp.GetQp());
   fTime  = time;
   fDTime = timeError;
-  Double_t cov[15];
+  double cov[15];
   ftp.CovMatrix(cov);
   SetCovMatrix(cov);
-  Double_t p        = (TMath::Abs(ftp.GetQp()) > 1.e-4) ? 1. / TMath::Abs(ftp.GetQp()) : 1.e4;
-  Double_t norma    = TMath::Sqrt(ftp.GetTx() * ftp.GetTx() + ftp.GetTy() * ftp.GetTy() + 1);
+  double p          = (abs(ftp.GetQp()) > 1.e-4) ? 1. / abs(ftp.GetQp()) : 1.e4;
+  double norma      = sqrt(ftp.GetTx() * ftp.GetTx() + ftp.GetTy() * ftp.GetTy() + 1);
   fPz               = p / norma;
   fPx               = ftp.GetTx() * fPz;
   fPy               = ftp.GetTy() * fPz;
-  Double_t DpzByDqp = -p * p / norma;
-  Double_t DpzByDtx = -p * ftp.GetTx() / (norma * norma * norma);
-  Double_t DpzByDty = -p * ftp.GetTy() / (norma * norma * norma);
-  fDpz = TMath::Sqrt(DpzByDqp * DpzByDqp * cov[14] + DpzByDtx * DpzByDtx * cov[9] + DpzByDty * DpzByDty * cov[12]
-                     + 2 * DpzByDqp * DpzByDtx * cov[11] + 2 * DpzByDqp * DpzByDty * cov[13]
-                     + 2 * DpzByDtx * DpzByDty * cov[10]);
-  Double_t DpxByDqp = ftp.GetTx() * DpzByDqp;
-  Double_t DpxByDtx = p * (ftp.GetTy() * ftp.GetTy() + 1) / (norma * norma * norma);
-  Double_t DpxByDty = -p * ftp.GetTx() * ftp.GetTy() / (norma * norma * norma);
-  fDpx = TMath::Sqrt(DpxByDqp * DpxByDqp * cov[14] + DpxByDtx * DpxByDtx * cov[9] + DpxByDty * DpxByDty * cov[12]
-                     + 2 * DpxByDqp * DpxByDtx * cov[11] + 2 * DpxByDqp * DpxByDty * cov[13]
-                     + 2 * DpxByDtx * DpxByDty * cov[10]);
-  Double_t DpyByDqp = ftp.GetTy() * DpzByDqp;
-  Double_t DpyByDtx = -p * ftp.GetTx() * ftp.GetTy() / (norma * norma * norma);
-  Double_t DpyByDty = p * (ftp.GetTx() * ftp.GetTx() + 1) / (norma * norma * norma);
-  fDpy = TMath::Sqrt(DpyByDqp * DpyByDqp * cov[14] + DpyByDtx * DpyByDtx * cov[9] + DpyByDty * DpyByDty * cov[12]
-                     + 2 * DpyByDqp * DpyByDtx * cov[11] + 2 * DpyByDqp * DpyByDty * cov[13]
-                     + 2 * DpyByDtx * DpyByDty * cov[10]);
+  double DpzByDqp   = -p * p / norma;
+  double DpzByDtx   = -p * ftp.GetTx() / (norma * norma * norma);
+  double DpzByDty   = -p * ftp.GetTy() / (norma * norma * norma);
+  fDpz =
+    sqrt(DpzByDqp * DpzByDqp * cov[14] + DpzByDtx * DpzByDtx * cov[9] + DpzByDty * DpzByDty * cov[12]
+         + 2 * DpzByDqp * DpzByDtx * cov[11] + 2 * DpzByDqp * DpzByDty * cov[13] + 2 * DpzByDtx * DpzByDty * cov[10]);
+  double DpxByDqp = ftp.GetTx() * DpzByDqp;
+  double DpxByDtx = p * (ftp.GetTy() * ftp.GetTy() + 1) / (norma * norma * norma);
+  double DpxByDty = -p * ftp.GetTx() * ftp.GetTy() / (norma * norma * norma);
+  fDpx =
+    sqrt(DpxByDqp * DpxByDqp * cov[14] + DpxByDtx * DpxByDtx * cov[9] + DpxByDty * DpxByDty * cov[12]
+         + 2 * DpxByDqp * DpxByDtx * cov[11] + 2 * DpxByDqp * DpxByDty * cov[13] + 2 * DpxByDtx * DpxByDty * cov[10]);
+  double DpyByDqp = ftp.GetTy() * DpzByDqp;
+  double DpyByDtx = -p * ftp.GetTx() * ftp.GetTy() / (norma * norma * norma);
+  double DpyByDty = p * (ftp.GetTx() * ftp.GetTx() + 1) / (norma * norma * norma);
+  fDpy =
+    sqrt(DpyByDqp * DpyByDqp * cov[14] + DpyByDtx * DpyByDtx * cov[9] + DpyByDty * DpyByDty * cov[12]
+         + 2 * DpyByDqp * DpyByDtx * cov[11] + 2 * DpyByDqp * DpyByDty * cov[13] + 2 * DpyByDtx * DpyByDty * cov[10]);
 }
 
 ClassImp(CbmTrackParam)
diff --git a/core/data/global/CbmTrackParam.h b/core/data/global/CbmTrackParam.h
index 95f1efe18b..9683feeabd 100644
--- a/core/data/global/CbmTrackParam.h
+++ b/core/data/global/CbmTrackParam.h
@@ -21,35 +21,34 @@
 #include <FairTrackParam.h>  // for FairTrackParam
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t
 
 class CbmTrackParam : public FairTrackParam {
 public:
   CbmTrackParam() : fPx(0), fPy(0), fPz(0), fDpx(0), fDpy(0), fDpz(0), fTime(0.), fDTime(0.) {}
-  void Set(const FairTrackParam& ftp, Double_t time = 0., Double_t timeError = 0.);
-  void SetTime(Double_t time, Double_t timeError = 0.)
+  void Set(const FairTrackParam& ftp, double time = 0., double timeError = 0.);
+  void SetTime(double time, double timeError = 0.)
   {
     fTime  = time;
     fDTime = timeError;
   }
-  Double_t GetPx() const { return fPx; }
-  Double_t GetPy() const { return fPy; }
-  Double_t GetPz() const { return fPz; }
-  Double_t GetDpx() const { return fDpx; }
-  Double_t GetDpy() const { return fDpy; }
-  Double_t GetDpz() const { return fDpz; }
-  Double_t GetTime() const { return fTime; }
-  Double_t GetDTime() const { return fDTime; }
+  double GetPx() const { return fPx; }
+  double GetPy() const { return fPy; }
+  double GetPz() const { return fPz; }
+  double GetDpx() const { return fDpx; }
+  double GetDpy() const { return fDpy; }
+  double GetDpz() const { return fDpz; }
+  double GetTime() const { return fTime; }
+  double GetDTime() const { return fDTime; }
 
 private:
-  Double_t fPx;
-  Double_t fPy;
-  Double_t fPz;
-  Double_t fDpx;
-  Double_t fDpy;
-  Double_t fDpz;
-  Double_t fTime;
-  Double_t fDTime;
+  double fPx;
+  double fPy;
+  double fPz;
+  double fDpx;
+  double fDpy;
+  double fDpz;
+  double fTime;
+  double fDTime;
   ClassDef(CbmTrackParam, 2);
 };
 
diff --git a/core/data/global/CbmVertex.cxx b/core/data/global/CbmVertex.cxx
index c7ac1992a5..dc77aaf3ef 100644
--- a/core/data/global/CbmVertex.cxx
+++ b/core/data/global/CbmVertex.cxx
@@ -32,7 +32,7 @@ CbmVertex::CbmVertex()
   , fNTracks(0)
   , fCovMatrix()
 {
-  for (Int_t i = 0; i < 6; i++)
+  for (int32_t i = 0; i < 6; i++)
     fCovMatrix[i] = 0;
 }
 // -------------------------------------------------------------------------
@@ -48,15 +48,15 @@ CbmVertex::CbmVertex(const char* name, const char* title)
   , fNTracks(0)
   , fCovMatrix()
 {
-  for (Int_t i = 0; i < 6; i++)
+  for (int32_t i = 0; i < 6; i++)
     fCovMatrix[i] = 0;
 }
 // -------------------------------------------------------------------------
 
 
 // -----   Constructor with all parameters   -------------------------------
-CbmVertex::CbmVertex(const char* name, const char* title, Double_t x, Double_t y, Double_t z, Double_t chi2, Int_t ndf,
-                     Int_t nTracks, const TMatrixFSym& covMat)
+CbmVertex::CbmVertex(const char* name, const char* title, double x, double y, double z, double chi2, int32_t ndf,
+                     int32_t nTracks, const TMatrixFSym& covMat)
   : TNamed(name, title)
   , fX(x)
   , fY(y)
@@ -69,13 +69,13 @@ CbmVertex::CbmVertex(const char* name, const char* title, Double_t x, Double_t y
   if ((covMat.GetNrows() != 3) && (covMat.GetNcols() != 3)) {
     LOG(error) << "Wrong dimension of passed covariance matrix. Clear the "
                   "covariance matrix.";
-    for (Int_t i = 0; i < 6; i++)
+    for (int32_t i = 0; i < 6; i++)
       fCovMatrix[i] = 0;
   }
   else {
-    Int_t index = 0;
-    for (Int_t i = 0; i < 3; i++) {
-      for (Int_t j = i; j < 3; j++)
+    int32_t index = 0;
+    for (int32_t i = 0; i < 3; i++) {
+      for (int32_t j = i; j < 3; j++)
         fCovMatrix[index++] = covMat[i][j];
     }
   }
@@ -91,8 +91,8 @@ CbmVertex::~CbmVertex() {}
 // -----   Public method Print   -------------------------------------------
 void CbmVertex::Print(Option_t*) const
 {
-  Double_t chi2ndf;
-  if (fNDF) chi2ndf = fChi2 / Double_t(fNDF);
+  double chi2ndf;
+  if (fNDF) chi2ndf = fChi2 / double(fNDF);
   else
     chi2ndf = 0.;
   LOG(info) << "Vertex coord. (" << fX << "," << fY << "," << fZ << ") cm, "
@@ -104,7 +104,7 @@ void CbmVertex::Print(Option_t*) const
 // -----   Accessor to covariance matrix    --------------------------------
 void CbmVertex::CovMatrix(TMatrixFSym& covMat) const
 {
-  Int_t index = 0;
+  int32_t index = 0;
   for (int i = 0; i < 3; i++) {
     for (int j = i; j < 3; j++) {
       covMat[i][j] = fCovMatrix[index];
@@ -117,11 +117,11 @@ void CbmVertex::CovMatrix(TMatrixFSym& covMat) const
 
 
 // -----   Accessor to covariance matrix elements   ------------------------
-Double_t CbmVertex::GetCovariance(Int_t i, Int_t j) const
+double CbmVertex::GetCovariance(int32_t i, int32_t j) const
 {
   TMatrixFSym* mat = new TMatrixFSym(3);
   CovMatrix(*mat);
-  Double_t element = (*mat)[i][j];
+  double element = (*mat)[i][j];
   delete mat;
   return element;
 }
@@ -129,7 +129,7 @@ Double_t CbmVertex::GetCovariance(Int_t i, Int_t j) const
 
 
 // -----   Public method SetVertex   ---------------------------------------
-void CbmVertex::SetVertex(Double_t x, Double_t y, Double_t z, Double_t chi2, Int_t ndf, Int_t nTracks,
+void CbmVertex::SetVertex(double x, double y, double z, double chi2, int32_t ndf, int32_t nTracks,
                           const TMatrixFSym& covMat)
 {
   fX       = x;
@@ -141,13 +141,13 @@ void CbmVertex::SetVertex(Double_t x, Double_t y, Double_t z, Double_t chi2, Int
   if ((covMat.GetNrows() != 3) && (covMat.GetNcols() != 3)) {
     LOG(error) << "Wrong dimension of passed covariance matrix. Clear the "
                   "covariance matrix.";
-    for (Int_t i = 0; i < 6; i++)
+    for (int32_t i = 0; i < 6; i++)
       fCovMatrix[i] = 0;
   }
   else {
-    Int_t index = 0;
-    for (Int_t i = 0; i < 3; i++) {
-      for (Int_t j = i; j < 3; j++)
+    int32_t index = 0;
+    for (int32_t i = 0; i < 3; i++) {
+      for (int32_t j = i; j < 3; j++)
         fCovMatrix[index++] = covMat[i][j];
     }
   }
@@ -160,7 +160,7 @@ void CbmVertex::Reset()
 {
   fX = fY = fZ = fChi2 = 0.;
   fNDF = fNTracks = 0;
-  for (Int_t i = 0; i < 6; i++)
+  for (int32_t i = 0; i < 6; i++)
     fCovMatrix[i] = 0;
 }
 // -------------------------------------------------------------------------
@@ -170,7 +170,7 @@ void CbmVertex::Reset()
 string CbmVertex::ToString() const
 {
 
-  Double_t chi2ndf = (fNDF ? fChi2 / Double_t(fNDF) : 0.);
+  double chi2ndf = (fNDF ? fChi2 / double(fNDF) : 0.);
   stringstream ss;
   ss << "Vertex: position (" << fixed << setprecision(4) << fX << ", " << fY << ", " << fZ
      << ") cm, chi2/ndf = " << chi2ndf << ", tracks used: " << fNTracks;
diff --git a/core/data/global/CbmVertex.h b/core/data/global/CbmVertex.h
index e4d18c36fb..4c73ffa939 100644
--- a/core/data/global/CbmVertex.h
+++ b/core/data/global/CbmVertex.h
@@ -20,11 +20,12 @@
 #define CBMVERTEX_H 1
 
 #include <Rtypes.h>          // for ClassDef
-#include <RtypesCore.h>      // for Double_t, Int_t, Double32_t, Option_t
+#include <RtypesCore.h>      // for Double32_t
 #include <TMatrixFSymfwd.h>  // for TMatrixFSym
 #include <TNamed.h>          // for TNamed
 #include <TVector3.h>        // for TVector3
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmVertex : public TNamed {
@@ -49,8 +50,8 @@ public:
    *@param nTracks   Number of tracks used for vertex fit
    *@param covMat    Covariance Matrix (symmetric, 3x3)
    **/
-  CbmVertex(const char* name, const char* title, Double_t x, Double_t y, Double_t z, Double_t chi2, Int_t ndf,
-            Int_t nTracks, const TMatrixFSym& covMat);
+  CbmVertex(const char* name, const char* title, double x, double y, double z, double chi2, int32_t ndf,
+            int32_t nTracks, const TMatrixFSym& covMat);
 
 
   /** Destructor **/
@@ -62,15 +63,15 @@ public:
 
 
   /** Accessors **/
-  Double_t GetX() const { return fX; };           // x position [cm]
-  Double_t GetY() const { return fY; };           // y position [cm]
-  Double_t GetZ() const { return fZ; };           // z posiiton [cm]
-  Double_t GetChi2() const { return fChi2; };     // chi2
-  Int_t GetNDF() const { return fNDF; };          // nof degrees of freedom
-  Int_t GetNTracks() const { return fNTracks; };  // nof tracks used
+  double GetX() const { return fX; };               // x position [cm]
+  double GetY() const { return fY; };               // y position [cm]
+  double GetZ() const { return fZ; };               // z posiiton [cm]
+  double GetChi2() const { return fChi2; };         // chi2
+  int32_t GetNDF() const { return fNDF; };          // nof degrees of freedom
+  int32_t GetNTracks() const { return fNTracks; };  // nof tracks used
   void Position(TVector3& pos) const { pos.SetXYZ(fX, fY, fZ); };
   void CovMatrix(TMatrixFSym& covMat) const;
-  Double_t GetCovariance(Int_t i, Int_t j) const;
+  double GetCovariance(int32_t i, int32_t j) const;
 
 
   /** Reset the member variables **/
@@ -86,8 +87,7 @@ public:
    *@param nTracks   Number of tracks used for vertex fit
    *@param covMat    Covariance Matrix (symmetric, 3x3)
    **/
-  void SetVertex(Double_t x, Double_t y, Double_t z, Double_t chi2, Int_t ndf, Int_t nTracks,
-                 const TMatrixFSym& covMat);
+  void SetVertex(double x, double y, double z, double chi2, int32_t ndf, int32_t nTracks, const TMatrixFSym& covMat);
 
 
   /** String output **/
@@ -102,10 +102,10 @@ private:
   Double32_t fChi2;
 
   /** Number of degrees of freedom of vertex fit **/
-  Int_t fNDF;
+  int32_t fNDF;
 
   /** Number of tracks used for the vertex fit **/
-  Int_t fNTracks;
+  int32_t fNTracks;
 
   /** Covariance matrix for x, y, and z stored in an array. The
    ** sequence is a[0,0], a[0,1], a[0,2], a[1,1], a[1,2], a[2,2]
diff --git a/core/data/much/CbmMuchAddress.cxx b/core/data/much/CbmMuchAddress.cxx
index 4c76800be8..2f569cc010 100644
--- a/core/data/much/CbmMuchAddress.cxx
+++ b/core/data/much/CbmMuchAddress.cxx
@@ -11,36 +11,36 @@
 
 
 // -----    Definition of the address field   -------------------------------
-const Int_t CbmMuchAddress::fgkBits[] = {fgkSystemBits,  // system = kMUCH
-                                         3,              // station
-                                         2,              // layer
-                                         1,              // layerside
-                                         5,              // module
-                                         8,              // sector
-                                         9};             // channel
+const int32_t CbmMuchAddress::fgkBits[] = {fgkSystemBits,  // system = kMUCH
+                                           3,              // station
+                                           2,              // layer
+                                           1,              // layerside
+                                           5,              // module
+                                           8,              // sector
+                                           9};             // channel
 // -------------------------------------------------------------------------
 
 // -----    Initialisation of bit shifts -----------------------------------
-const Int_t CbmMuchAddress::fgkShift[] = {0,
-                                          CbmMuchAddress::fgkShift[0] + CbmMuchAddress::fgkBits[0],
-                                          CbmMuchAddress::fgkShift[1] + CbmMuchAddress::fgkBits[1],
-                                          CbmMuchAddress::fgkShift[2] + CbmMuchAddress::fgkBits[2],
-                                          CbmMuchAddress::fgkShift[3] + CbmMuchAddress::fgkBits[3],
-                                          CbmMuchAddress::fgkShift[4] + CbmMuchAddress::fgkBits[4],
-                                          CbmMuchAddress::fgkShift[5] + CbmMuchAddress::fgkBits[5]};
+const int32_t CbmMuchAddress::fgkShift[] = {0,
+                                            CbmMuchAddress::fgkShift[0] + CbmMuchAddress::fgkBits[0],
+                                            CbmMuchAddress::fgkShift[1] + CbmMuchAddress::fgkBits[1],
+                                            CbmMuchAddress::fgkShift[2] + CbmMuchAddress::fgkBits[2],
+                                            CbmMuchAddress::fgkShift[3] + CbmMuchAddress::fgkBits[3],
+                                            CbmMuchAddress::fgkShift[4] + CbmMuchAddress::fgkBits[4],
+                                            CbmMuchAddress::fgkShift[5] + CbmMuchAddress::fgkBits[5]};
 // -------------------------------------------------------------------------
 
 
 // -----    Initialisation of bit masks  -----------------------------------
-const Int_t CbmMuchAddress::fgkMask[] = {(1 << fgkBits[0]) - 1, (1 << fgkBits[1]) - 1, (1 << fgkBits[2]) - 1,
-                                         (1 << fgkBits[3]) - 1, (1 << fgkBits[4]) - 1, (1 << fgkBits[5]) - 1,
-                                         (1 << fgkBits[6]) - 1};
+const int32_t CbmMuchAddress::fgkMask[] = {(1 << fgkBits[0]) - 1, (1 << fgkBits[1]) - 1, (1 << fgkBits[2]) - 1,
+                                           (1 << fgkBits[3]) - 1, (1 << fgkBits[4]) - 1, (1 << fgkBits[5]) - 1,
+                                           (1 << fgkBits[6]) - 1};
 // -------------------------------------------------------------------------
 
 
 // -----  Unique element address   -----------------------------------------
-UInt_t CbmMuchAddress::GetAddress(Int_t station, Int_t layer, Int_t layerside, Int_t module, Int_t sector,
-                                  Int_t channel)
+uint32_t CbmMuchAddress::GetAddress(int32_t station, int32_t layer, int32_t layerside, int32_t module, int32_t sector,
+                                    int32_t channel)
 {
 
   // Catch overrunning of allowed ranges
@@ -77,11 +77,11 @@ UInt_t CbmMuchAddress::GetAddress(Int_t station, Int_t layer, Int_t layerside, I
 
 
 // -----  Unique element address   -----------------------------------------
-UInt_t CbmMuchAddress::GetAddress(Int_t* elementId)
+uint32_t CbmMuchAddress::GetAddress(int32_t* elementId)
 {
 
-  UInt_t address = ToIntegralType(ECbmModuleId::kMuch) << fgkShift[kMuchSystem];
-  for (Int_t level = 1; level < kMuchNofLevels; level++) {
+  uint32_t address = ToIntegralType(ECbmModuleId::kMuch) << fgkShift[kMuchSystem];
+  for (int32_t level = 1; level < kMuchNofLevels; level++) {
     if (elementId[level] >= (1 << fgkBits[level])) {
       LOG(error) << "Id " << elementId[level] << " for MUCH level " << level << " exceeds maximum ("
                  << (1 << fgkBits[level]) - 1 << ")";
@@ -99,7 +99,7 @@ UInt_t CbmMuchAddress::GetAddress(Int_t* elementId)
 void CbmMuchAddress::Print()
 {
   LOG(info) << "Number of MUCH levels is " << kMuchNofLevels;
-  for (Int_t level = 0; level < kMuchNofLevels; level++)
+  for (int32_t level = 0; level < kMuchNofLevels; level++)
     LOG(info) << "Level " << std::setw(2) << std::right << level << ": bits " << std::setw(2) << fgkBits[level]
               << ", max. range " << std::setw(6) << fgkMask[level];
 }
diff --git a/core/data/much/CbmMuchAddress.h b/core/data/much/CbmMuchAddress.h
index 48445f67eb..b5fd0b0e26 100644
--- a/core/data/much/CbmMuchAddress.h
+++ b/core/data/much/CbmMuchAddress.h
@@ -9,8 +9,9 @@
 
 #include <Logger.h>  // for Logger, LOG
 
-#include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, UInt_t
+#include <Rtypes.h>  // for ClassDef
+
+#include <cstdint>
 
 /** Enumerator for MUCH element levels
  ** If this is changed, the initialisation of the static members
@@ -63,25 +64,25 @@ public:
      ** @param channel      Channel number
      ** @return Unique element address
      **/
-  static UInt_t GetAddress(Int_t station = 0, Int_t layer = 0, Int_t side = 0, Int_t module = 0, Int_t sector = 0,
-                           Int_t channel = 0);
+  static uint32_t GetAddress(int32_t station = 0, int32_t layer = 0, int32_t side = 0, int32_t module = 0,
+                             int32_t sector = 0, int32_t channel = 0);
 
 
-  static UInt_t GetAddress(Int_t* elementIds);
+  static uint32_t GetAddress(int32_t* elementIds);
 
 
   /** Get the number of hierarchy levels
      ** For use in macros which do not include this header file.
      ** @return       Number of hierarchy levels
      **/
-  static Int_t GetNofLevels() { return kMuchNofLevels; }
+  static int32_t GetNofLevels() { return kMuchNofLevels; }
 
 
   /** Get the number of bits for a given hierarchy level
      ** @param level  Requested element level
      ** @return       Number of bits in address field
      **/
-  static Int_t GetNofBits(Int_t level)
+  static int32_t GetNofBits(int32_t level)
   {
     if (level < 0 || level >= kMuchNofLevels) return 0;
     return fgkBits[level];
@@ -93,24 +94,24 @@ public:
      ** @param level Hierarchy level
      ** @return Element index
      **/
-  static Int_t GetElementId(UInt_t address, Int_t level)
+  static int32_t GetElementId(uint32_t address, int32_t level)
   {
     if (level < 0 || level >= kMuchNofLevels) return -1;
     return (address & (fgkMask[level] << fgkShift[level])) >> fgkShift[level];
   }
 
   /** Derivatives */
-  static Int_t GetSystemIndex(Int_t address) { return GetElementId(address, kMuchSystem); }
-  static Int_t GetStationIndex(Int_t address) { return GetElementId(address, kMuchStation); }
-  static Int_t GetLayerIndex(Int_t address) { return GetElementId(address, kMuchLayer); }
-  static Int_t GetLayerSideIndex(Int_t address) { return GetElementId(address, kMuchLayerSide); }
-  static Int_t GetModuleIndex(Int_t address) { return GetElementId(address, kMuchModule); }
-  static Int_t GetSectorIndex(Int_t address) { return GetElementId(address, kMuchSector); }
-  static Int_t GetChannelIndex(Int_t address) { return GetElementId(address, kMuchChannel); }
-
-  static Int_t GetElementAddress(Int_t address, Int_t level)
+  static int32_t GetSystemIndex(int32_t address) { return GetElementId(address, kMuchSystem); }
+  static int32_t GetStationIndex(int32_t address) { return GetElementId(address, kMuchStation); }
+  static int32_t GetLayerIndex(int32_t address) { return GetElementId(address, kMuchLayer); }
+  static int32_t GetLayerSideIndex(int32_t address) { return GetElementId(address, kMuchLayerSide); }
+  static int32_t GetModuleIndex(int32_t address) { return GetElementId(address, kMuchModule); }
+  static int32_t GetSectorIndex(int32_t address) { return GetElementId(address, kMuchSector); }
+  static int32_t GetChannelIndex(int32_t address) { return GetElementId(address, kMuchChannel); }
+
+  static int32_t GetElementAddress(int32_t address, int32_t level)
   {
-    Int_t mask = (1 << (CbmMuchAddress::fgkShift[level] + CbmMuchAddress::fgkBits[level])) - 1;
+    int32_t mask = (1 << (CbmMuchAddress::fgkShift[level] + CbmMuchAddress::fgkBits[level])) - 1;
     return address & mask;
   }
 
@@ -125,7 +126,7 @@ public:
      ** @param newId   New element index
      ** @return New address
      **/
-  static UInt_t SetElementId(UInt_t address, Int_t level, Int_t newId)
+  static uint32_t SetElementId(uint32_t address, int32_t level, int32_t newId)
   {
     if (level < 0 || level >= kMuchNofLevels) return address;
     if (newId >= (1 << fgkBits[level])) {
@@ -138,13 +139,13 @@ public:
 
 private:
   /** Number of bits for the different levels **/
-  static const Int_t fgkBits[kMuchNofLevels];
+  static const int32_t fgkBits[kMuchNofLevels];
 
   /** Bit shifts for the different levels **/
-  static const Int_t fgkShift[kMuchNofLevels];
+  static const int32_t fgkShift[kMuchNofLevels];
 
   /** Bit masks for the different levels **/
-  static const Int_t fgkMask[kMuchNofLevels];
+  static const int32_t fgkMask[kMuchNofLevels];
 
 
   ClassDef(CbmMuchAddress, 1);
diff --git a/core/data/much/CbmMuchBeamTimeDigi.cxx b/core/data/much/CbmMuchBeamTimeDigi.cxx
index a178c03b51..5d55a6efea 100644
--- a/core/data/much/CbmMuchBeamTimeDigi.cxx
+++ b/core/data/much/CbmMuchBeamTimeDigi.cxx
@@ -33,7 +33,7 @@ CbmMuchBeamTimeDigi::CbmMuchBeamTimeDigi()
 
 
 // -------------------------------------------------------------------------
-CbmMuchBeamTimeDigi::CbmMuchBeamTimeDigi(Int_t address, Int_t charge, ULong64_t time)
+CbmMuchBeamTimeDigi::CbmMuchBeamTimeDigi(int32_t address, int32_t charge, uint64_t time)
   : CbmMuchDigi(address, charge, time)
   , fPadX(-1)
   , fPadY(-1)
diff --git a/core/data/much/CbmMuchBeamTimeDigi.h b/core/data/much/CbmMuchBeamTimeDigi.h
index 422d5b2f69..7baa7c18bb 100644
--- a/core/data/much/CbmMuchBeamTimeDigi.h
+++ b/core/data/much/CbmMuchBeamTimeDigi.h
@@ -26,14 +26,14 @@
 #include "CbmMuchDigi.h"  // for CbmMuchDigi
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, ULong64_t
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmMuchBeamTimeDigi : public CbmMuchDigi {
 public:
   CbmMuchBeamTimeDigi();
-  CbmMuchBeamTimeDigi(Int_t address, Int_t charge = 0, ULong64_t time = 0);
+  CbmMuchBeamTimeDigi(int32_t address, int32_t charge = 0, uint64_t time = 0);
   CbmMuchBeamTimeDigi(CbmMuchBeamTimeDigi* digi);
   CbmMuchBeamTimeDigi(const CbmMuchBeamTimeDigi&);
   CbmMuchBeamTimeDigi& operator=(const CbmMuchBeamTimeDigi&);
@@ -41,19 +41,19 @@ public:
 
   virtual ~CbmMuchBeamTimeDigi() {}
 
-  void SetPadX(Int_t padX) { fPadX = padX; }
-  void SetPadY(Int_t padY) { fPadY = padY; }
-  void SetRocId(Int_t rocId) { fRocId = rocId; }
-  void SetNxId(Int_t nxId) { fNxId = nxId; }
-  void SetNxCh(Int_t nxCh) { fNxCh = nxCh; }
-  void SetElink(Int_t elink) { fElink = elink; }
+  void SetPadX(int32_t padX) { fPadX = padX; }
+  void SetPadY(int32_t padY) { fPadY = padY; }
+  void SetRocId(int32_t rocId) { fRocId = rocId; }
+  void SetNxId(int32_t nxId) { fNxId = nxId; }
+  void SetNxCh(int32_t nxCh) { fNxCh = nxCh; }
+  void SetElink(int32_t elink) { fElink = elink; }
 
-  Int_t GetPadX() const { return fPadX; }
-  Int_t GetPadY() const { return fPadY; }
-  Int_t GetRocId() const { return fRocId; }
-  Int_t GetNxId() const { return fNxId; }
-  Int_t GetNxCh() const { return fNxCh; }
-  Int_t GetElink() const { return fElink; }
+  int32_t GetPadX() const { return fPadX; }
+  int32_t GetPadY() const { return fPadY; }
+  int32_t GetRocId() const { return fRocId; }
+  int32_t GetNxId() const { return fNxId; }
+  int32_t GetNxCh() const { return fNxCh; }
+  int32_t GetElink() const { return fElink; }
 
   std::string ToString() const { return std::string {""}; }
 
@@ -65,12 +65,12 @@ public:
 
 
 private:
-  Int_t fPadX;
-  Int_t fPadY;
-  Int_t fRocId;
-  Int_t fNxId;
-  Int_t fNxCh;
-  Int_t fElink;
+  int32_t fPadX;
+  int32_t fPadY;
+  int32_t fRocId;
+  int32_t fNxId;
+  int32_t fNxCh;
+  int32_t fElink;
 
   ClassDef(CbmMuchBeamTimeDigi, 3);
 };
diff --git a/core/data/much/CbmMuchDigi.cxx b/core/data/much/CbmMuchDigi.cxx
index fccdf1795a..083c78975e 100644
--- a/core/data/much/CbmMuchDigi.cxx
+++ b/core/data/much/CbmMuchDigi.cxx
@@ -34,7 +34,7 @@ CbmMuchDigi& CbmMuchDigi::operator=(const CbmMuchDigi& rhs)
 }
 
 // -----   Set new charge   ------------------------------------------------
-void CbmMuchDigi::SetAdc(Int_t adc)
+void CbmMuchDigi::SetAdc(int32_t adc)
 {
   //ADC value should not be more than saturation
   if (adc < 0) { fCharge = 0; }
@@ -42,8 +42,8 @@ void CbmMuchDigi::SetAdc(Int_t adc)
     fCharge = adc;
   }
   // if Saturation
-  //       	Int_t saturation = (1<<12); //2 ^ 12 - 1;
-  Int_t saturation = (1 << 5);  //2 ^ 5 - 1; // 32 for 5 bit adc*** modified by Ekata Nandy on 25/06/19***
+  //       	int32_t saturation = (1<<12); //2 ^ 12 - 1;
+  int32_t saturation = (1 << 5);  //2 ^ 5 - 1; // 32 for 5 bit adc*** modified by Ekata Nandy on 25/06/19***
   if (fCharge >= saturation) {
     //fCharge=saturation-1;
     fCharge         = saturation;  //As ADC value starts from 1, so -1 removed. Modified by Ekata Nandy on 25/06/19
@@ -55,7 +55,7 @@ void CbmMuchDigi::SetAdc(Int_t adc)
 
 
 // -------------------------------------------------------------------------
-void CbmMuchDigi::SetTime(ULong64_t time) { fTime = time; }
+void CbmMuchDigi::SetTime(uint64_t time) { fTime = time; }
 // -------------------------------------------------------------------------
 
 ClassImp(CbmMuchDigi)
diff --git a/core/data/much/CbmMuchDigi.h b/core/data/much/CbmMuchDigi.h
index d462d441c7..dabf02b971 100644
--- a/core/data/much/CbmMuchDigi.h
+++ b/core/data/much/CbmMuchDigi.h
@@ -24,11 +24,11 @@
 #include "CbmMuchAddress.h"  // for CbmMuchAddress, kMuchModule
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, ULong64_t, UShort_t, Bool_t, Doub...
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/base_object.hpp>
 
+#include <cstdint>
 #include <string>  // for string
 
 
@@ -42,7 +42,10 @@ public:
 	** @param  time     Measurement time [ns]
 	** @param  charge   Charge [ADC units]
  	**/
-  CbmMuchDigi(UInt_t address, UShort_t charge = 0, ULong64_t time = 0) : fTime(time), fAddress(address), fCharge(charge)
+  CbmMuchDigi(uint32_t address, uint16_t charge = 0, uint64_t time = 0)
+    : fTime(time)
+    , fAddress(address)
+    , fCharge(charge)
   {
   }
   //fMatch will be created in the CbmMuchSignal and should be deleted by that class destructor only.
@@ -61,7 +64,7 @@ public:
          ** Alias for GetAdc, conversion factor should be added if needed.
          ** For compatibility with template methods
          **/
-  Double_t GetCharge() const { return fCharge; }
+  double GetCharge() const { return fCharge; }
 
   //GetSystem is required due to CbmDigiManager
   /** System ID (static)
@@ -76,24 +79,24 @@ public:
   static const char* GetClassName() { return "CbmMuchDigi"; }
 
 
-  UShort_t GetAdc() const { return fCharge; }
+  uint16_t GetAdc() const { return fCharge; }
 
 
-  virtual Int_t GetAddress() const { return static_cast<Int_t>(fAddress); }
-  virtual Double_t GetTime() const { return static_cast<Double_t>(fTime); }
+  virtual int32_t GetAddress() const { return static_cast<int32_t>(fAddress); }
+  virtual double GetTime() const { return static_cast<double>(fTime); }
 
   // Setters
-  void SetAdc(Int_t adc);
-  void SetTime(ULong64_t time);
-  void SetSaturation(Bool_t saturate) { fSaturationFlag = saturate; }
-  void SetAddress(Int_t address) { fAddress = address; }
+  void SetAdc(int32_t adc);
+  void SetTime(uint64_t time);
+  void SetSaturation(bool saturate) { fSaturationFlag = saturate; }
+  void SetAddress(int32_t address) { fAddress = address; }
 
   // Specially for littrack
   // TODO remove after littrack fix
-  Int_t GetDetectorId() const { return CbmMuchAddress::GetElementAddress(GetAddress(), kMuchModule); }
-  Int_t GetChannelId() const { return GetAddress(); }
-  Int_t GetADCCharge() const { return GetAdc(); }
-  Int_t GetDTime() const { return 0; }
+  int32_t GetDetectorId() const { return CbmMuchAddress::GetElementAddress(GetAddress(), kMuchModule); }
+  int32_t GetChannelId() const { return GetAddress(); }
+  int32_t GetADCCharge() const { return GetAdc(); }
+  int32_t GetDTime() const { return 0; }
 
   std::string ToString() const { return std::string {""}; }
 
@@ -110,12 +113,12 @@ public:
 private:
   friend class boost::serialization::access;
 
-  ULong64_t fTime;   // Absolute Time Stamp[ns]
-  UInt_t fAddress;   // Unique detector address
-  UShort_t fCharge;  // Charge [ADC Units]
+  uint64_t fTime;     // Absolute Time Stamp[ns]
+  uint32_t fAddress;  // Unique detector address
+  uint16_t fCharge;   // Charge [ADC Units]
 
   //Below flag has to be set during the CbmMuchDigi Creation only.
-  Bool_t fSaturationFlag =
+  bool fSaturationFlag =
     0;  //If adc value crosses the Maximum Adc value of actual electronics then SaturationFlag will be set.
 
   ClassDef(CbmMuchDigi, 4);
diff --git a/core/data/much/CbmMuchPixelHit.cxx b/core/data/much/CbmMuchPixelHit.cxx
index 44bf6ad3df..afb4ba292b 100644
--- a/core/data/much/CbmMuchPixelHit.cxx
+++ b/core/data/much/CbmMuchPixelHit.cxx
@@ -17,8 +17,8 @@ CbmMuchPixelHit::CbmMuchPixelHit() : CbmPixelHit(), fPlaneId(-1), fFlag(0) { Set
 
 CbmMuchPixelHit::~CbmMuchPixelHit() {}
 
-CbmMuchPixelHit::CbmMuchPixelHit(Int_t address, Double_t x, Double_t y, Double_t z, Double_t dx, Double_t dy,
-                                 Double_t dz, Double_t dxy, Int_t refId, Int_t planeId, Double_t t, Double_t dt)
+CbmMuchPixelHit::CbmMuchPixelHit(int32_t address, double x, double y, double z, double dx, double dy, double dz,
+                                 double dxy, int32_t refId, int32_t planeId, double t, double dt)
   : CbmPixelHit(address, x, y, z, dx, dy, dz, dxy, refId)
   , fPlaneId(planeId)
   , fFlag(0)
@@ -28,8 +28,8 @@ CbmMuchPixelHit::CbmMuchPixelHit(Int_t address, Double_t x, Double_t y, Double_t
   SetTimeError(dt);
 }
 
-CbmMuchPixelHit::CbmMuchPixelHit(Int_t address, const TVector3& pos, const TVector3& err, Double_t dxy, Int_t refId,
-                                 Int_t planeId)
+CbmMuchPixelHit::CbmMuchPixelHit(int32_t address, const TVector3& pos, const TVector3& err, double dxy, int32_t refId,
+                                 int32_t planeId)
   : CbmPixelHit(address, pos, err, dxy, refId)
   , fPlaneId(planeId)
   , fFlag(0)
@@ -39,8 +39,8 @@ CbmMuchPixelHit::CbmMuchPixelHit(Int_t address, const TVector3& pos, const TVect
   SetTimeError(-1.);
 }
 
-CbmMuchPixelHit::CbmMuchPixelHit(Int_t address, const TVector3& pos, const TVector3& err, Double_t dxy, Int_t refId,
-                                 Int_t planeId, Double_t /*time*/, Double_t /*dtime*/)
+CbmMuchPixelHit::CbmMuchPixelHit(int32_t address, const TVector3& pos, const TVector3& err, double dxy, int32_t refId,
+                                 int32_t planeId, double /*time*/, double /*dtime*/)
   : CbmPixelHit(address, pos, err, dxy, refId)
   , fPlaneId(planeId)
   , fFlag(0)
diff --git a/core/data/much/CbmMuchPixelHit.h b/core/data/much/CbmMuchPixelHit.h
index 8c7cd230f0..04a31ad984 100644
--- a/core/data/much/CbmMuchPixelHit.h
+++ b/core/data/much/CbmMuchPixelHit.h
@@ -14,7 +14,8 @@
 #include "CbmPixelHit.h"  // for CbmPixelHit
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t
+
+#include <cstdint>
 
 class TVector3;
 
@@ -38,8 +39,8 @@ public:
 	 * \param refId some reference ID
 	 * \param planeId detector plane identifier
 	 **/
-  CbmMuchPixelHit(Int_t address, Double_t x, Double_t y, Double_t z, Double_t dx, Double_t dy, Double_t dz,
-                  Double_t dxy, Int_t refId, Int_t planeId, Double_t time, Double_t dtime);
+  CbmMuchPixelHit(int32_t address, double x, double y, double z, double dx, double dy, double dz, double dxy,
+                  int32_t refId, int32_t planeId, double time, double dtime);
 
   /**
 	 * \brief Standard constructor
@@ -50,7 +51,8 @@ public:
 	 * \param refId Index of digi or cluster
 	 * \param planeId Detector plane identifier
 	 **/
-  CbmMuchPixelHit(Int_t address, const TVector3& pos, const TVector3& err, Double_t dxy, Int_t refId, Int_t planeId);
+  CbmMuchPixelHit(int32_t address, const TVector3& pos, const TVector3& err, double dxy, int32_t refId,
+                  int32_t planeId);
 
   /** Standard constructor
 	  *\param address     Unique detector ID (including module number)
@@ -62,8 +64,8 @@ public:
 	  *\param time      Time since event start [ns]
 	  *\param dTime     Time resolution [ns]
 	**/
-  CbmMuchPixelHit(Int_t address, const TVector3& pos, const TVector3& err, Double_t dxy, Int_t refId, Int_t planeId,
-                  Double_t time, Double_t dtime);
+  CbmMuchPixelHit(int32_t address, const TVector3& pos, const TVector3& err, double dxy, int32_t refId, int32_t planeId,
+                  double time, double dtime);
 
   /**
 	 * \brief Destructor.
@@ -73,18 +75,18 @@ public:
   /**
 	 * \brief Inherited from CbmBaseHit.
 	 */
-  virtual Int_t GetPlaneId() const { return fPlaneId; }
+  virtual int32_t GetPlaneId() const { return fPlaneId; }
 
   /** Accessors **/
-  Int_t GetFlag() const { return fFlag; }
+  int32_t GetFlag() const { return fFlag; }
 
 
   /** Modifiers **/
-  void SetFlag(Int_t flag) { fFlag = flag; }
+  void SetFlag(int32_t flag) { fFlag = flag; }
 
 private:
-  Int_t fPlaneId;  // Plane number
-  Int_t fFlag;     // Flag
+  int32_t fPlaneId;  // Plane number
+  int32_t fFlag;     // Flag
 
   ClassDef(CbmMuchPixelHit, 3);
 };
diff --git a/core/data/much/CbmMuchPoint.cxx b/core/data/much/CbmMuchPoint.cxx
index aa6e4ab847..afdacea1f0 100644
--- a/core/data/much/CbmMuchPoint.cxx
+++ b/core/data/much/CbmMuchPoint.cxx
@@ -17,9 +17,10 @@
 #include <FairMCPoint.h>  // for FairMCPoint
 #include <Logger.h>       // for Logger, LOG
 
-#include <TMathBase.h>  // for Abs
 #include <TVector3.h>   // for TVector3
 
+#include <cmath>
+
 // -----   Default constructor   -------------------------------------------
 CbmMuchPoint::CbmMuchPoint() : FairMCPoint(), fX_out(0.), fY_out(0.), fZ_out(0.), fPx_out(0.), fPy_out(0.), fPz_out(0.)
 {
@@ -28,8 +29,8 @@ CbmMuchPoint::CbmMuchPoint() : FairMCPoint(), fX_out(0.), fY_out(0.), fZ_out(0.)
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmMuchPoint::CbmMuchPoint(Int_t trackID, Int_t detID, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut,
-                           Double_t tof, Double_t length, Double_t eLoss, Int_t eventId)
+CbmMuchPoint::CbmMuchPoint(int32_t trackID, int32_t detID, TVector3 posIn, TVector3 posOut, TVector3 momIn,
+                           TVector3 momOut, double tof, double length, double eLoss, int32_t eventId)
   : FairMCPoint(trackID, detID, posIn, momIn, tof, length, eLoss, eventId)
   , fX_out(posOut.X())
   , fY_out(posOut.Y())
@@ -43,7 +44,7 @@ CbmMuchPoint::CbmMuchPoint(Int_t trackID, Int_t detID, TVector3 posIn, TVector3
 
 
 // -----   Copy constructor with event and epoch time   --------------------
-CbmMuchPoint::CbmMuchPoint(const CbmMuchPoint& point, Int_t eventId, Double_t eventTime, Double_t epochTime)
+CbmMuchPoint::CbmMuchPoint(const CbmMuchPoint& point, int32_t eventId, double eventTime, double epochTime)
   : FairMCPoint(point)
   , fX_out(point.fX_out)
   , fY_out(point.fY_out)
@@ -76,31 +77,31 @@ void CbmMuchPoint::Print(const Option_t* /*opt*/) const
 
 
 // -----   Point x coordinate from linear extrapolation   ------------------
-Double_t CbmMuchPoint::GetX(Double_t z) const
+double CbmMuchPoint::GetX(double z) const
 {
-  Double_t dz = fZ_out - fZ;
-  if (TMath::Abs(dz) < 1.e-3) return (fX_out + fX) / 2.;
+  double dz = fZ_out - fZ;
+  if (abs(dz) < 1.e-3) return (fX_out + fX) / 2.;
   return (fX + (z - fZ) / dz * (fX_out - fX));
 }
 // -------------------------------------------------------------------------
 
 
 // -----   Point y coordinate from linear extrapolation   ------------------
-Double_t CbmMuchPoint::GetY(Double_t z) const
+double CbmMuchPoint::GetY(double z) const
 {
-  Double_t dz = fZ_out - fZ;
-  if (TMath::Abs(dz) < 1.e-3) return (fY_out + fY) / 2.;
+  double dz = fZ_out - fZ;
+  if (abs(dz) < 1.e-3) return (fY_out + fY) / 2.;
   return (fY + (z - fZ) / dz * (fY_out - fY));
 }
 // -------------------------------------------------------------------------
 
 
 // -----   Public method IsUsable   ----------------------------------------
-Bool_t CbmMuchPoint::IsUsable() const
+bool CbmMuchPoint::IsUsable() const
 {
-  Double_t dz = fZ_out - fZ;
-  if (TMath::Abs(dz) < 1.e-4) return kFALSE;
-  return kTRUE;
+  double dz = fZ_out - fZ;
+  if (abs(dz) < 1.e-4) return false;
+  return true;
 }
 // -------------------------------------------------------------------------
 
diff --git a/core/data/much/CbmMuchPoint.h b/core/data/much/CbmMuchPoint.h
index 3ece1959ad..422ee5124c 100644
--- a/core/data/much/CbmMuchPoint.h
+++ b/core/data/much/CbmMuchPoint.h
@@ -19,9 +19,11 @@
 #include <FairMCPoint.h>  // for FairMCPoint
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t, Double32_t, Int_t, Bool_t, Option_t
+#include <RtypesCore.h>  // for Double32_t
 #include <TVector3.h>    // for TVector3
 
+#include <cstdint>
+
 class CbmMuchPoint : public FairMCPoint {
 
 public:
@@ -41,8 +43,8 @@ public:
    *@param eLoss    Energy deposit [GeV]
    *@param eventId  MC event identifier
    **/
-  CbmMuchPoint(Int_t trackID, Int_t detID, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut,
-               Double_t tof, Double_t length, Double_t eLoss, Int_t eventId = 0);
+  CbmMuchPoint(int32_t trackID, int32_t detID, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut,
+               double tof, double length, double eLoss, int32_t eventId = 0);
 
 
   /** Copy constructor with event and epoch time 
@@ -51,7 +53,7 @@ public:
    *@param eventTime   MC event time [ns]
    *@param epochTime   epoch start time [ns]
    **/
-  CbmMuchPoint(const CbmMuchPoint& point, Int_t eventId = -1, Double_t eventTime = 0., Double_t epochTime = 0.);
+  CbmMuchPoint(const CbmMuchPoint& point, int32_t eventId = -1, double eventTime = 0., double epochTime = 0.);
 
 
   /** Destructor **/
@@ -59,26 +61,26 @@ public:
 
 
   /** Accessors **/
-  Int_t GetDetectorId() const { return fDetectorID; }
-  Double_t GetXIn() const { return fX; }
-  Double_t GetYIn() const { return fY; }
-  Double_t GetZIn() const { return fZ; }
-  Double_t GetXOut() const { return fX_out; }
-  Double_t GetYOut() const { return fY_out; }
-  Double_t GetZOut() const { return fZ_out; }
-  Double_t GetPxOut() const { return fPx_out; }
-  Double_t GetPyOut() const { return fPy_out; }
-  Double_t GetPzOut() const { return fPz_out; }
+  int32_t GetDetectorId() const { return fDetectorID; }
+  double GetXIn() const { return fX; }
+  double GetYIn() const { return fY; }
+  double GetZIn() const { return fZ; }
+  double GetXOut() const { return fX_out; }
+  double GetYOut() const { return fY_out; }
+  double GetZOut() const { return fZ_out; }
+  double GetPxOut() const { return fPx_out; }
+  double GetPyOut() const { return fPy_out; }
+  double GetPzOut() const { return fPz_out; }
   void PositionIn(TVector3& pos) const { pos.SetXYZ(fX, fY, fZ); }
   void PositionOut(TVector3& pos) const { pos.SetXYZ(fX_out, fY_out, fZ_out); }
   void MomentumOut(TVector3& mom) const { mom.SetXYZ(fPx_out, fPy_out, fPz_out); }
 
   /** Point coordinates at given z from linear extrapolation **/
-  Double_t GetX(Double_t z) const;
-  Double_t GetY(Double_t z) const;
+  double GetX(double z) const;
+  double GetY(double z) const;
 
   /** Check for distance between in and out **/
-  Bool_t IsUsable() const;
+  bool IsUsable() const;
 
   /** Modifiers **/
   void SetPositionOut(TVector3 pos);
diff --git a/core/data/mvd/CbmMvdCluster.cxx b/core/data/mvd/CbmMvdCluster.cxx
index d2d717fa28..052929f0fb 100644
--- a/core/data/mvd/CbmMvdCluster.cxx
+++ b/core/data/mvd/CbmMvdCluster.cxx
@@ -30,10 +30,10 @@ CbmMvdCluster::~CbmMvdCluster() {}
 // -------------------------------------------------------------------------
 
 // -------------------------------------------------------------------------
-void CbmMvdCluster::SetPixelMap(map<pair<Int_t, Int_t>, Int_t> PixelMap)
+void CbmMvdCluster::SetPixelMap(map<pair<int32_t, int32_t>, int32_t> PixelMap)
 {
   fPixelMap = PixelMap;
-  for (map<pair<Int_t, Int_t>, Int_t>::iterator iter = fPixelMap.begin(); iter != fPixelMap.end(); iter++)
+  for (map<pair<int32_t, int32_t>, int32_t>::iterator iter = fPixelMap.begin(); iter != fPixelMap.end(); iter++)
     fClusterCharge += iter->second;
 }
 
diff --git a/core/data/mvd/CbmMvdCluster.h b/core/data/mvd/CbmMvdCluster.h
index 94813223fa..1498fce913 100644
--- a/core/data/mvd/CbmMvdCluster.h
+++ b/core/data/mvd/CbmMvdCluster.h
@@ -22,8 +22,8 @@
 #include "CbmMvdDetectorId.h"  // for CbmMvdDetectorId
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Float_t, Short_t
 
+#include <cstdint>
 #include <map>      // for map
 #include <utility>  // for pair
 
@@ -41,23 +41,23 @@ public:
   virtual ~CbmMvdCluster();
 
   /** Setters **/
-  void SetPixelMap(std::map<std::pair<Int_t, Int_t>, Int_t> PixelMap);
-  void SetRefId(Int_t RefId) { fRefId = RefId; };  //* stores the index to the global TClonesArray
+  void SetPixelMap(std::map<std::pair<int32_t, int32_t>, int32_t> PixelMap);
+  void SetRefId(int32_t RefId) { fRefId = RefId; };  //* stores the index to the global TClonesArray
 
   /** Accessors **/
-  Short_t GetTotalDigisInCluster() { return fPixelMap.size(); };
-  std::map<std::pair<Int_t, Int_t>, Int_t> GetPixelMap() { return fPixelMap; };
-  Int_t GetStationNr() { return (Int_t) GetAddress() / 1000; };
-  Int_t GetRefId() { return fRefId; };
-  Int_t GetDetectorId() { return DetectorId(GetStationNr()); };
-  Int_t GetSensorNr() { return GetAddress() - (((Int_t) GetAddress() / 1000) * 1000); };
+  int16_t GetTotalDigisInCluster() { return fPixelMap.size(); };
+  std::map<std::pair<int32_t, int32_t>, int32_t> GetPixelMap() { return fPixelMap; };
+  int32_t GetStationNr() { return (int32_t) GetAddress() / 1000; };
+  int32_t GetRefId() { return fRefId; };
+  int32_t GetDetectorId() { return DetectorId(GetStationNr()); };
+  int32_t GetSensorNr() { return GetAddress() - (((int32_t) GetAddress() / 1000) * 1000); };
 
-  Float_t GetClusterCharge() { return fClusterCharge; };
+  float GetClusterCharge() { return fClusterCharge; };
 
 protected:
-  std::map<std::pair<Int_t, Int_t>, Int_t> fPixelMap;
-  Int_t fRefId;
-  Float_t fClusterCharge;
+  std::map<std::pair<int32_t, int32_t>, int32_t> fPixelMap;
+  int32_t fRefId;
+  float fClusterCharge;
 
   ClassDef(CbmMvdCluster, 4);
 };
diff --git a/core/data/mvd/CbmMvdDetectorId.h b/core/data/mvd/CbmMvdDetectorId.h
index a4334eb2c4..3e64e1ba1f 100644
--- a/core/data/mvd/CbmMvdDetectorId.h
+++ b/core/data/mvd/CbmMvdDetectorId.h
@@ -30,7 +30,8 @@
 #include <Logger.h>  // for LOG
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t
+
+#include <cstdint>
 
 
 class CbmMvdDetectorId {
@@ -45,13 +46,13 @@ public:
 
 
   /** Create unique detector ID from station number **/
-  Int_t DetectorId(Int_t iStation) const { return (ToIntegralType(ECbmModuleId::kMvd) | (iStation << 5)); }
+  int32_t DetectorId(int32_t iStation) const { return (ToIntegralType(ECbmModuleId::kMvd) | (iStation << 5)); }
 
 
   /** Get System identifier from detector ID **/
-  Int_t SystemId(Int_t detectorId) const
+  int32_t SystemId(int32_t detectorId) const
   {
-    Int_t iSystem = detectorId & 31;
+    int32_t iSystem = detectorId & 31;
     if (iSystem != ToIntegralType(ECbmModuleId::kMvd)) {
       LOG(error) << "wrong system ID " << iSystem;
       return -1;
@@ -61,7 +62,7 @@ public:
 
 
   /** Get station number from detector ID **/
-  Int_t StationNr(Int_t detectorId) const { return ((detectorId & (~31)) >> 5); }
+  int32_t StationNr(int32_t detectorId) const { return ((detectorId & (~31)) >> 5); }
 
 
   ClassDef(CbmMvdDetectorId, 1);
diff --git a/core/data/mvd/CbmMvdDigi.cxx b/core/data/mvd/CbmMvdDigi.cxx
index 1807411507..13dc4cd977 100644
--- a/core/data/mvd/CbmMvdDigi.cxx
+++ b/core/data/mvd/CbmMvdDigi.cxx
@@ -11,9 +11,10 @@
 
 #include <Logger.h>  // for LOG, Logger
 
-#include <TMath.h>    // for Power
 #include <TObject.h>  // for TObject
 
+#include <cmath>
+
 // -----   Default constructor   -------------------------------------------
 CbmMvdDigi::CbmMvdDigi()
   : TObject()
@@ -38,8 +39,8 @@ CbmMvdDigi::CbmMvdDigi()
 
 /*
 // -----   Constructor with parameters   -----------------------------------
-CbmMvdDigi::CbmMvdDigi(Int_t iStation, Int_t iChannelNrX, Int_t iChannelNrY, Float_t charge,
-                       Float_t pixelSizeX, Float_t pixelSizeY)
+CbmMvdDigi::CbmMvdDigi(int32_t iStation, int32_t iChannelNrX, int32_t iChannelNrY, float charge,
+                       float pixelSizeX, float pixelSizeY)
   : CbmDigi(kMVD, 0),
     CbmMvdDetectorId(), 	
     fCharge(charge),
@@ -76,8 +77,8 @@ CbmMvdDigi::CbmMvdDigi(Int_t iStation, Int_t iChannelNrX, Int_t iChannelNrY, Flo
 */
 
 // -----   Constructor with parameters  --> used only due to error TODO include correct version -----------------------------------
-CbmMvdDigi::CbmMvdDigi(Int_t iStation, Int_t iChannelNrX, Int_t iChannelNrY, Float_t charge, Float_t pixelSizeX,
-                       Float_t pixelSizeY, Float_t time, Int_t frame)
+CbmMvdDigi::CbmMvdDigi(int32_t iStation, int32_t iChannelNrX, int32_t iChannelNrY, float charge, float pixelSizeX,
+                       float pixelSizeY, float time, int32_t frame)
   : TObject()
   , CbmMvdDetectorId()
   , fCharge(charge)
@@ -99,7 +100,7 @@ CbmMvdDigi::CbmMvdDigi(Int_t iStation, Int_t iChannelNrX, Int_t iChannelNrY, Flo
 }
 // -------------------------------------------------------------------------
 
-Int_t CbmMvdDigi::GetAdcCharge(Int_t adcDynamic, Int_t adcOffset, Int_t adcBits)
+int32_t CbmMvdDigi::GetAdcCharge(int32_t adcDynamic, int32_t adcOffset, int32_t adcBits)
 {
   /**
      adcOffset  is the minimum value of the analogue signal
@@ -113,19 +114,19 @@ Int_t CbmMvdDigi::GetAdcCharge(Int_t adcDynamic, Int_t adcOffset, Int_t adcBits)
 
      */
 
-  Int_t adcCharge;
+  int32_t adcCharge;
 
   if (fCharge < adcOffset) { return 0; };
 
 
-  Double_t stepSize;
-  //    Int_t adcMax = adcOffset + adcDynamic;
+  double stepSize;
+  //    int32_t adcMax = adcOffset + adcDynamic;
 
-  stepSize  = adcDynamic / TMath::Power(2, adcBits);
+  stepSize  = adcDynamic / pow(2, adcBits);
   adcCharge = int((fCharge - adcOffset) / stepSize);
 
 
-  if (adcCharge > int(TMath::Power(2, adcBits) - 1)) { adcCharge = (int) TMath::Power(2, adcBits) - 1; }
+  if (adcCharge > int(pow(2, adcBits) - 1)) { adcCharge = (int) pow(2, adcBits) - 1; }
 
   if (gDebug > 0) { LOG(debug) << "CbmMvdDigi::GetAdcCharge() " << adcCharge; }
 
@@ -134,18 +135,18 @@ Int_t CbmMvdDigi::GetAdcCharge(Int_t adcDynamic, Int_t adcOffset, Int_t adcBits)
 
 
 // -------------------------------------------------------------------------
-Int_t CbmMvdDigi::GetPixelX() { return fChannelNrX; }
+int32_t CbmMvdDigi::GetPixelX() { return fChannelNrX; }
 // -------------------------------------------------------------------------
-Int_t CbmMvdDigi::GetPixelY() { return fChannelNrY; }
+int32_t CbmMvdDigi::GetPixelY() { return fChannelNrY; }
 // -------------------------------------------------------------------------
 
 /** Unique channel address  **/
-Int_t CbmMvdDigi::GetAddress() const { return 0; }
+int32_t CbmMvdDigi::GetAddress() const { return 0; }
 
 // -------------------------------------------------------------------------
 
 /** Absolute time [ns]  **/
-Double_t CbmMvdDigi::GetTime() const { return fDigiTime; }
+double CbmMvdDigi::GetTime() const { return fDigiTime; }
 
 
 // -------------------------------------------------------------------------
diff --git a/core/data/mvd/CbmMvdDigi.h b/core/data/mvd/CbmMvdDigi.h
index e7e5525f1c..b70e9775a1 100644
--- a/core/data/mvd/CbmMvdDigi.h
+++ b/core/data/mvd/CbmMvdDigi.h
@@ -16,9 +16,9 @@
 #include "CbmMvdDetectorId.h"  // for CbmMvdDetectorId
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Float_t, Double_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
 #include <string>  // for string
 
 
@@ -30,8 +30,8 @@ public:
 
   /** Constructor with all variables **/
 
-  CbmMvdDigi(Int_t iStation, Int_t iChannelNrX, Int_t iChannelNrY, Float_t charge, Float_t pixelSizeX,
-             Float_t pixelSizeY, Float_t time = 0.0, Int_t frame = 0);
+  CbmMvdDigi(int32_t iStation, int32_t iChannelNrX, int32_t iChannelNrY, float charge, float pixelSizeX,
+             float pixelSizeY, float time = 0.0, int32_t frame = 0);
   /**
      charge     : of each fired pixel in electrons
      PixelSize  : in cm
@@ -44,60 +44,60 @@ public:
   static ECbmModuleId GetSystem() { return ECbmModuleId::kMvd; }
 
   /** Accessors **/
-  Double_t GetCharge() const { return fCharge; };
-  Int_t GetPixelX();
-  Int_t GetPixelY();
-  Double_t GetPixelSizeX() { return fPixelSizeX; };
-  Double_t GetPixelSizeY() { return fPixelSizeY; };
-  Int_t GetAdcCharge(Int_t adcDynamic, Int_t adcOffset, Int_t adcBits);
-  Int_t GetFlag() { return fDigiFlag; };
-  Int_t GetStationNr() { return StationNr(fDetectorId); };
-  Int_t GetDetectorId() { return fDetectorId; };
-  Int_t GetAddress() const; /** Unique channel address  **/
-  Double_t GetTime() const; /** Absolute time [ns]  **/
-  Int_t GetFrameNumber() { return fFrameNumber; };
-
-
-  Int_t GetRefId() const { return fRefId; };
+  double GetCharge() const { return fCharge; };
+  int32_t GetPixelX();
+  int32_t GetPixelY();
+  double GetPixelSizeX() { return fPixelSizeX; };
+  double GetPixelSizeY() { return fPixelSizeY; };
+  int32_t GetAdcCharge(int32_t adcDynamic, int32_t adcOffset, int32_t adcBits);
+  int32_t GetFlag() { return fDigiFlag; };
+  int32_t GetStationNr() { return StationNr(fDetectorId); };
+  int32_t GetDetectorId() { return fDetectorId; };
+  int32_t GetAddress() const; /** Unique channel address  **/
+  double GetTime() const;     /** Absolute time [ns]  **/
+  int32_t GetFrameNumber() { return fFrameNumber; };
+
+
+  int32_t GetRefId() const { return fRefId; };
 
   std::string ToString() const { return ""; }
 
   //these functions are only for littrack
-  Int_t GetDominatorX() { return 0; };
-  Int_t GetDominatorY() { return 0; };
-  Int_t GetTrackID() { return 0; };
-  Int_t GetContributors() { return 0; };
-  Int_t GetPointID() { return 0; };
+  int32_t GetDominatorX() { return 0; };
+  int32_t GetDominatorY() { return 0; };
+  int32_t GetTrackID() { return 0; };
+  int32_t GetContributors() { return 0; };
+  int32_t GetPointID() { return 0; };
   //
 
 
   /** Modifiers **/
-  void SetCharge(Float_t charge) { fCharge = charge; };
-  void SetPixelX(Int_t xIndex) { fChannelNrX = xIndex; };
-  void SetPixelY(Int_t yIndex) { fChannelNrY = yIndex; };
-  void SetPixelIndex(Int_t pixelIndex) { fChannelNr = pixelIndex; };
-  void SetDetectorId(Int_t detId) { fDetectorId = detId; };
-  void SetFlag(Int_t flag) { fDigiFlag = flag; }
-  void SetFrameNr(Int_t frame) { fFrameNumber = frame; };
-  void SetRefId(Int_t refId) { fRefId = refId; }
-  void SetTime(Double_t time) { fDigiTime = time; }
+  void SetCharge(float charge) { fCharge = charge; };
+  void SetPixelX(int32_t xIndex) { fChannelNrX = xIndex; };
+  void SetPixelY(int32_t yIndex) { fChannelNrY = yIndex; };
+  void SetPixelIndex(int32_t pixelIndex) { fChannelNr = pixelIndex; };
+  void SetDetectorId(int32_t detId) { fDetectorId = detId; };
+  void SetFlag(int32_t flag) { fDigiFlag = flag; }
+  void SetFrameNr(int32_t frame) { fFrameNumber = frame; };
+  void SetRefId(int32_t refId) { fRefId = refId; }
+  void SetTime(double time) { fDigiTime = time; }
 
 private:
-  Float_t fCharge;
-  Int_t fChannelNrX;
-  Int_t fChannelNrY;
-  Int_t fTrackID;
-  Int_t fPointID;
-  Float_t fPixelSizeX;
-  Float_t fPixelSizeY;
-  Int_t fDetectorId;
-  Int_t fChannelNr;
-  Double_t fDigiTime;
-  Int_t fFrameNumber;
-  Int_t fRefId;
-
-
-  Int_t fDigiFlag;  // Debugging and analysis information
+  float fCharge;
+  int32_t fChannelNrX;
+  int32_t fChannelNrY;
+  int32_t fTrackID;
+  int32_t fPointID;
+  float fPixelSizeX;
+  float fPixelSizeY;
+  int32_t fDetectorId;
+  int32_t fChannelNr;
+  double fDigiTime;
+  int32_t fFrameNumber;
+  int32_t fRefId;
+
+
+  int32_t fDigiFlag;  // Debugging and analysis information
 
   ClassDef(CbmMvdDigi, 2);
 };
diff --git a/core/data/mvd/CbmMvdHit.cxx b/core/data/mvd/CbmMvdHit.cxx
index b985b3dabd..53c965658d 100644
--- a/core/data/mvd/CbmMvdHit.cxx
+++ b/core/data/mvd/CbmMvdHit.cxx
@@ -28,8 +28,8 @@ CbmMvdHit::CbmMvdHit()
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmMvdHit::CbmMvdHit(Int_t statNr, TVector3& pos, TVector3& dpos, Int_t indexCentralX, Int_t indexCentralY,
-                     Int_t clusterIndex, Int_t flag)
+CbmMvdHit::CbmMvdHit(int32_t statNr, TVector3& pos, TVector3& dpos, int32_t indexCentralX, int32_t indexCentralY,
+                     int32_t clusterIndex, int32_t flag)
   : CbmPixelHit(0, pos, dpos, 0., -1)
   , fFlag(flag)
   , fClusterIndex(clusterIndex)
@@ -43,29 +43,29 @@ CbmMvdHit::CbmMvdHit(Int_t statNr, TVector3& pos, TVector3& dpos, Int_t indexCen
 }
 // -------------------------------------------------------------------------
 /*
-void CbmMvdHit::GetDigiIndexVector(TClonesArray* cbmMvdClusterArray, std::vector<Int_t>* digiIndexVector)
+void CbmMvdHit::GetDigiIndexVector(TClonesArray* cbmMvdClusterArray, std::vector<int32_t>* digiIndexVector)
 {
   CbmMvdCluster* cluster;
   
-  if(!digiIndexVector){digiIndexVector=new std::vector<Int_t>;}
+  if(!digiIndexVector){digiIndexVector=new std::vector<int32_t>;}
   if(digiIndexVector->size()!=0){digiIndexVector->clear();}
   
-  Int_t indexLow=fClusterIndex;
+  int32_t indexLow=fClusterIndex;
   
   while (indexLow!=-1) {
     cluster=(CbmMvdCluster*) cbmMvdClusterArray->At(indexLow);
     indexLow=cluster->GetNeighbourDown();
   }
   
-  Int_t* digiArray;
-  Int_t digisInCluster;
-  Int_t indexUp=0; 
+  int32_t* digiArray;
+  int32_t digisInCluster;
+  int32_t indexUp=0; 
   
   while (indexUp!=-1) {
     digiArray = cluster->GetDigiList();
     digisInCluster=cluster->GetTotalDigisInCluster();
     
-    for (Int_t i=0;i<digisInCluster; i++){
+    for (int32_t i=0;i<digisInCluster; i++){
       digiIndexVector->push_back(digiArray[i]);
     };
     
diff --git a/core/data/mvd/CbmMvdHit.h b/core/data/mvd/CbmMvdHit.h
index 878dcd2455..a6d8efe863 100644
--- a/core/data/mvd/CbmMvdHit.h
+++ b/core/data/mvd/CbmMvdHit.h
@@ -26,7 +26,8 @@
 #include "CbmPixelHit.h"       // for CbmPixelHit
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Option_t
+
+#include <cstdint>
 
 class TVector3;
 
@@ -43,8 +44,8 @@ public:
   *@param dpos   Errors in position coordinates [cm]
   *@param flag   Hit flag
   **/
-  CbmMvdHit(Int_t statNr, TVector3& pos, TVector3& dpos, Int_t indexCentralX, Int_t indexCentralY = 0,
-            Int_t fClusterIndex = 0, Int_t flag = 0);
+  CbmMvdHit(int32_t statNr, TVector3& pos, TVector3& dpos, int32_t indexCentralX, int32_t indexCentralY = 0,
+            int32_t fClusterIndex = 0, int32_t flag = 0);
 
 
   /** Destructor **/
@@ -56,23 +57,23 @@ public:
 
 
   /** Accessors **/
-  Int_t GetSystemId() const { return SystemId(fDetectorID); };
-  virtual Int_t GetStationNr() const { return StationNr(fDetectorID); };
-  Int_t GetFlag() const { return fFlag; };
-  Int_t GetClusterIndex() const { return fClusterIndex; };
-  Int_t GetIndexCentralX() const { return fIndexCentralX; };  // returns index of center of gravity
-  Int_t GetIndexCentralY() const { return fIndexCentralY; };  // returns index of center of gravity
-  //  void GetDigiIndexVector(TClonesArray* cbmMvdClusterArray, std::vector<Int_t>* digiIndexVector);
-  Int_t GetRefIndex() { return fFlag; }
+  int32_t GetSystemId() const { return SystemId(fDetectorID); };
+  virtual int32_t GetStationNr() const { return StationNr(fDetectorID); };
+  int32_t GetFlag() const { return fFlag; };
+  int32_t GetClusterIndex() const { return fClusterIndex; };
+  int32_t GetIndexCentralX() const { return fIndexCentralX; };  // returns index of center of gravity
+  int32_t GetIndexCentralY() const { return fIndexCentralY; };  // returns index of center of gravity
+  //  void GetDigiIndexVector(TClonesArray* cbmMvdClusterArray, std::vector<int32_t>* digiIndexVector);
+  int32_t GetRefIndex() { return fFlag; }
 
 
 protected:
-  Int_t fFlag;  // Hit flag; to be used later
-  Int_t fClusterIndex;
-  Int_t fIndexCentralX;
-  Int_t fIndexCentralY;
+  int32_t fFlag;  // Hit flag; to be used later
+  int32_t fClusterIndex;
+  int32_t fIndexCentralX;
+  int32_t fIndexCentralY;
 
-  Int_t fDetectorID;
+  int32_t fDetectorID;
 
 
   ClassDef(CbmMvdHit, 3);
diff --git a/core/data/mvd/CbmMvdHitMatch.cxx b/core/data/mvd/CbmMvdHitMatch.cxx
index 203e1e2aed..1ae5c11a44 100644
--- a/core/data/mvd/CbmMvdHitMatch.cxx
+++ b/core/data/mvd/CbmMvdHitMatch.cxx
@@ -20,7 +20,7 @@ CbmMvdHitMatch::CbmMvdHitMatch() : CbmMatch(), fFileNumber(-1), fIndex(0), fWeig
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmMvdHitMatch::CbmMvdHitMatch(Double_t weight, Int_t index, Int_t entry, Int_t file)
+CbmMvdHitMatch::CbmMvdHitMatch(double weight, int32_t index, int32_t entry, int32_t file)
   : CbmMatch()
   , fFileNumber(file)
   , fIndex(index)
diff --git a/core/data/mvd/CbmMvdHitMatch.h b/core/data/mvd/CbmMvdHitMatch.h
index 29cce5c88d..bcdae6e68f 100644
--- a/core/data/mvd/CbmMvdHitMatch.h
+++ b/core/data/mvd/CbmMvdHitMatch.h
@@ -16,7 +16,8 @@
 #include "CbmMatch.h"  // for CbmMatch
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t, Float_t, Option_t
+
+#include <cstdint>
 
 class CbmMvdHitMatch : public CbmMatch {
 
@@ -26,9 +27,9 @@ public:
 
 
   /** Constructor with all parameters **/
-  CbmMvdHitMatch(Double_t weight, Int_t index, Int_t entry = -1, Int_t file = -1);
+  CbmMvdHitMatch(double weight, int32_t index, int32_t entry = -1, int32_t file = -1);
 
-  CbmMvdHitMatch(Int_t /*par1*/, Int_t /*par2*/, Int_t /*par3*/, Int_t /*par4*/, Int_t /*par5*/)
+  CbmMvdHitMatch(int32_t /*par1*/, int32_t /*par2*/, int32_t /*par3*/, int32_t /*par4*/, int32_t /*par5*/)
     : CbmMatch()
     , fFileNumber(-1)
     , fIndex(-1)
@@ -44,14 +45,14 @@ public:
 
 
   /** Accessors **/
-  Int_t GetFileNumber() const { return fFileNumber; }
-  Int_t GetIndexNumber() const { return fIndex; }
-  Int_t GetEntryNumber() const { return fEntry; }
-  Float_t GetWeight() const { return fWeight; }
-
-  Int_t GetPointId() const { return 0; }
-  Int_t GetTrackId() const { return 0; }
-  Int_t GetNMerged() const { return 0; }
+  int32_t GetFileNumber() const { return fFileNumber; }
+  int32_t GetIndexNumber() const { return fIndex; }
+  int32_t GetEntryNumber() const { return fEntry; }
+  float GetWeight() const { return fWeight; }
+
+  int32_t GetPointId() const { return 0; }
+  int32_t GetTrackId() const { return 0; }
+  int32_t GetNMerged() const { return 0; }
   void AddMerged() { ; }
 
 
@@ -59,10 +60,10 @@ public:
   virtual void Clear(Option_t*) { ; }
 
 private:
-  Int_t fFileNumber;
-  Int_t fIndex;
-  Double_t fWeight;
-  Int_t fEntry;
+  int32_t fFileNumber;
+  int32_t fIndex;
+  double fWeight;
+  int32_t fEntry;
 
   ClassDef(CbmMvdHitMatch, 1);
 };
diff --git a/core/data/mvd/CbmMvdPoint.cxx b/core/data/mvd/CbmMvdPoint.cxx
index 85e44597c5..99e1c854d8 100644
--- a/core/data/mvd/CbmMvdPoint.cxx
+++ b/core/data/mvd/CbmMvdPoint.cxx
@@ -36,8 +36,8 @@ CbmMvdPoint::CbmMvdPoint()
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmMvdPoint::CbmMvdPoint(Int_t trackID, Int_t pdgCode, Int_t stationNr, TVector3 posIn, TVector3 posOut, TVector3 momIn,
-                         TVector3 momOut, Double_t tof, Double_t length, Double_t eLoss, Int_t frame)
+CbmMvdPoint::CbmMvdPoint(int32_t trackID, int32_t pdgCode, int32_t stationNr, TVector3 posIn, TVector3 posOut,
+                         TVector3 momIn, TVector3 momOut, double tof, double length, double eLoss, int32_t frame)
   : FairMCPoint(trackID, stationNr, posIn, momIn, tof, length, eLoss)
   , CbmMvdDetectorId()
   , fX_out(posOut.X())
@@ -78,11 +78,11 @@ void CbmMvdPoint::Print(const Option_t* /*opt*/) const
 // -------------------------------------------------------------------------
 
 // -----   Public method GetAbsTime   --------------------------------------
-Int_t CbmMvdPoint::GetAbsTime()
+int32_t CbmMvdPoint::GetAbsTime()
 {
 
 
-  Int_t absTime = fTime + fStartTime;
+  int32_t absTime = fTime + fStartTime;
 
   return absTime;
 }
diff --git a/core/data/mvd/CbmMvdPoint.h b/core/data/mvd/CbmMvdPoint.h
index eaf5faf345..9d6ddb9ef2 100644
--- a/core/data/mvd/CbmMvdPoint.h
+++ b/core/data/mvd/CbmMvdPoint.h
@@ -26,9 +26,11 @@
 #include <FairMCPoint.h>  // for FairMCPoint
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t, Double32_t, Option_t
+#include <RtypesCore.h>  // for Double32_t
 #include <TVector3.h>    // for TVector3
 
+#include <cstdint>
+
 class CbmMvdPoint : public FairMCPoint, CbmMvdDetectorId {
 
 public:
@@ -49,8 +51,8 @@ public:
    *@param eLoss      Energy deposit [GeV]
    *@param frame      Number of frame this point is registered in
    **/
-  CbmMvdPoint(Int_t trackId, Int_t pdgCode, Int_t detId, TVector3 posIn, TVector3 posOut, TVector3 momIn,
-              TVector3 momOut, Double_t tof, Double_t length, Double_t eLoss, Int_t frame = 0);
+  CbmMvdPoint(int32_t trackId, int32_t pdgCode, int32_t detId, TVector3 posIn, TVector3 posOut, TVector3 momIn,
+              TVector3 momOut, double tof, double length, double eLoss, int32_t frame = 0);
 
 
   /** Copy constructor **/
@@ -62,31 +64,31 @@ public:
 
 
   /** Accessors **/
-  Double_t GetXOut() const { return fX_out; }
-  Double_t GetYOut() const { return fY_out; }
-  Double_t GetZOut() const { return fZ_out; }
-  Double_t GetPxOut() const { return fPx_out; }
-  Double_t GetPyOut() const { return fPy_out; }
-  Double_t GetPzOut() const { return fPz_out; }
-  Int_t GetPdgCode() const { return fPdgCode; }
-  Int_t GetSystemId() const { return SystemId(fDetectorID); }
-  Int_t GetStationNr() const { return StationNr(fDetectorID); }
-  Int_t GetPointId() const
+  double GetXOut() const { return fX_out; }
+  double GetYOut() const { return fY_out; }
+  double GetZOut() const { return fZ_out; }
+  double GetPxOut() const { return fPx_out; }
+  double GetPyOut() const { return fPy_out; }
+  double GetPzOut() const { return fPz_out; }
+  int32_t GetPdgCode() const { return fPdgCode; }
+  int32_t GetSystemId() const { return SystemId(fDetectorID); }
+  int32_t GetStationNr() const { return StationNr(fDetectorID); }
+  int32_t GetPointId() const
   {
     return fPointId;
   }  // Returns index of this object in its TClonesArray.
      // By default not filled. Used internally in the MvdDigitizer.
   void PositionOut(TVector3& pos) { pos.SetXYZ(fX_out, fY_out, fZ_out); }
   void MomentumOut(TVector3& mom) { mom.SetXYZ(fPx_out, fPy_out, fPz_out); }
-  Int_t GetFrame() const { return fFrame; }
-  Int_t GetAbsTime();
+  int32_t GetFrame() const { return fFrame; }
+  int32_t GetAbsTime();
 
   /** Modifiers **/
   void SetPositionOut(TVector3 pos);
   void SetMomentumOut(TVector3 mom);
-  void SetPdgCode(Int_t pdg) { fPdgCode = pdg; }
-  void SetPointId(Int_t myId) { fPointId = myId; }
-  void SetFrameNr(Int_t frame) { fFrame = frame; }
+  void SetPdgCode(int32_t pdg) { fPdgCode = pdg; }
+  void SetPointId(int32_t myId) { fPointId = myId; }
+  void SetFrameNr(int32_t frame) { fFrame = frame; }
 
 
   /** Output to screen **/
@@ -96,10 +98,10 @@ public:
 protected:
   Double32_t fX_out, fY_out, fZ_out;
   Double32_t fPx_out, fPy_out, fPz_out;
-  Int_t fPdgCode;  // index of the object in its TClonesArray. By default not filled => -1.
-  Int_t fPointId;  // index of the object in its TClonesArray. By default not filled => -1.
-  Int_t fFrame;
-  Double_t fStartTime;
+  int32_t fPdgCode;  // index of the object in its TClonesArray. By default not filled => -1.
+  int32_t fPointId;  // index of the object in its TClonesArray. By default not filled => -1.
+  int32_t fFrame;
+  double fStartTime;
 
   ClassDef(CbmMvdPoint, 1)
 };
diff --git a/core/data/psd/CbmPsdAddress.h b/core/data/psd/CbmPsdAddress.h
index d836454495..360af29f2c 100644
--- a/core/data/psd/CbmPsdAddress.h
+++ b/core/data/psd/CbmPsdAddress.h
@@ -13,7 +13,7 @@
  ** \version 1.0
  **
  ** CbmPsdAddress is the class for the concrete interfaces to the unique address, 
- ** which is encoded in a 32-bit field (Int_t), for the PSD detector elements.
+ ** which is encoded in a 32-bit field (int32_t), for the PSD detector elements.
  **
  **                                     3         2         1         0   Shift  Bits  Values
  ** Current definition:                10987654321098765432109876543210
@@ -29,9 +29,8 @@
 
 #include "CbmDefs.h"  // for ECbmModuleId::kPsd
 
-#include <RtypesCore.h>  // for UInt_t, Int_t
-
 #include <cassert>  // for assert
+#include <cstdint>
 
 class CbmPsdAddress {
 public:
@@ -41,7 +40,7 @@ public:
    * \param[in] SectionId Section ID.
    * \return Address from system ID, module, Section.
    **/
-  static UInt_t GetAddress(Int_t moduleId, Int_t sectionId)
+  static uint32_t GetAddress(int32_t moduleId, int32_t sectionId)
   {
     assert(!(moduleId < 0 || moduleId > fgkModuleIdLength || sectionId < 0 || sectionId > fgkSectionIdLength));
     return (ToIntegralType(ECbmModuleId::kPsd) << fgkSystemIdShift) | (moduleId << fgkModuleIdShift)
@@ -53,7 +52,7 @@ public:
    * \param[in] address Unique channel address.
    * \return System identifier from address.
    **/
-  static UInt_t GetSystemId(UInt_t address)
+  static uint32_t GetSystemId(uint32_t address)
   {
     return (address & (fgkSystemIdLength << fgkSystemIdShift)) >> fgkSystemIdShift;
   }
@@ -63,7 +62,7 @@ public:
    * \param[in] address Unique channel address.
    * \return Module ID from address.
    **/
-  static UInt_t GetModuleId(UInt_t address)
+  static uint32_t GetModuleId(uint32_t address)
   {
     return (address & (fgkModuleIdLength << fgkModuleIdShift)) >> fgkModuleIdShift;
   }
@@ -73,7 +72,7 @@ public:
    * \param[in] address Unique channel address.
    * \return Sector ID from address.
    **/
-  static UInt_t GetSectionId(UInt_t address)
+  static uint32_t GetSectionId(uint32_t address)
   {
     return (address & (fgkSectionIdLength << fgkSectionIdShift)) >> fgkSectionIdShift;
   }
@@ -84,7 +83,7 @@ public:
     * \param newModuleId New value for module ID.
     * \return New address with modified module ID.
     */
-  static UInt_t SetModuleId(UInt_t address, Int_t newModuleId)
+  static uint32_t SetModuleId(uint32_t address, int32_t newModuleId)
   {
     assert(!(newModuleId < 0 || newModuleId > fgkModuleIdLength));
     return GetAddress(newModuleId, GetSectionId(address));
@@ -96,7 +95,7 @@ public:
     * \param newSectionId New value for section ID.
     * \return New address with modified section ID.
     */
-  static UInt_t SetSectionId(UInt_t address, Int_t newSectionId)
+  static uint32_t SetSectionId(uint32_t address, int32_t newSectionId)
   {
     assert(!(newSectionId < 0 || newSectionId > fgkSectionIdLength));
     return GetAddress(GetModuleId(address), newSectionId);
@@ -105,14 +104,14 @@ public:
 
 private:
   // Length of the index of the corresponding volume
-  static const Int_t fgkSystemIdLength  = 15;  // 2^4 - 1
-  static const Int_t fgkModuleIdLength  = 63;  // 2^6 - 1
-  static const Int_t fgkSectionIdLength = 31;  // 2^5 - 1
+  static const int32_t fgkSystemIdLength  = 15;  // 2^4 - 1
+  static const int32_t fgkModuleIdLength  = 63;  // 2^6 - 1
+  static const int32_t fgkSectionIdLength = 31;  // 2^5 - 1
 
   // Number of a start bit for each volume
-  static const Int_t fgkSystemIdShift  = 0;
-  static const Int_t fgkModuleIdShift  = 4;
-  static const Int_t fgkSectionIdShift = 10;
+  static const int32_t fgkSystemIdShift  = 0;
+  static const int32_t fgkModuleIdShift  = 4;
+  static const int32_t fgkSectionIdShift = 10;
 };
 
 #endif
diff --git a/core/data/psd/CbmPsdDigi.cxx b/core/data/psd/CbmPsdDigi.cxx
index eda14dc7b7..f4c72e2c51 100644
--- a/core/data/psd/CbmPsdDigi.cxx
+++ b/core/data/psd/CbmPsdDigi.cxx
@@ -28,7 +28,7 @@ CbmPsdDigi::CbmPsdDigi(CbmPsdDigi&& other) : fuAddress(other.fuAddress), fdTime(
 
 
 // --- Set address from module and section number
-void CbmPsdDigi::SetAddress(UInt_t moduleId, UInt_t sectionId)
+void CbmPsdDigi::SetAddress(uint32_t moduleId, uint32_t sectionId)
 {
   fuAddress = CbmPsdAddress::GetAddress(moduleId, sectionId);
 }
diff --git a/core/data/psd/CbmPsdDigi.h b/core/data/psd/CbmPsdDigi.h
index 629e0f7e96..9e2b4519e4 100644
--- a/core/data/psd/CbmPsdDigi.h
+++ b/core/data/psd/CbmPsdDigi.h
@@ -23,11 +23,11 @@
 #include "CbmPsdAddress.h"  // for CbmPsdAddress
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDefNV
-#include <RtypesCore.h>  // for Double_t, UInt_t, Int_t
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/base_object.hpp>
 
+#include <cstdint>
 #include <string>  // for string
 
 
@@ -44,7 +44,7 @@ public:
        ** @param time    Time [ns]
        ** @param edep    Energy deposition
        **/
-  CbmPsdDigi(UInt_t address, Double_t time, Double_t edep) : fuAddress(address), fdTime(time), fdEdep(edep) {}
+  CbmPsdDigi(uint32_t address, double time, double edep) : fuAddress(address), fdTime(time), fdEdep(edep) {}
 
 
   /** @brief Constructor with detailed assignment.
@@ -53,7 +53,7 @@ public:
        ** @param time          Time [ns]
        ** @param edep          Energy deposition
        **/
-  CbmPsdDigi(UInt_t moduleId, UInt_t sectionId, Double_t time, Double_t edep) : fuAddress(0), fdTime(time), fdEdep(edep)
+  CbmPsdDigi(uint32_t moduleId, uint32_t sectionId, double time, double edep) : fuAddress(0), fdTime(time), fdEdep(edep)
   {
     fuAddress = CbmPsdAddress::GetAddress(moduleId, sectionId);
   }
@@ -88,7 +88,7 @@ public:
   /** @brief Address
        ** @return Unique channel address (see CbmPsdAddress)
        **/
-  UInt_t GetAddress() const { return fuAddress; };
+  uint32_t GetAddress() const { return fuAddress; };
 
 
   /** @brief Get the desired name of the branch for this obj in the cbm output tree  (static)
@@ -100,7 +100,7 @@ public:
   /** @brief Time
        ** @return Time [ns]
        **/
-  Double_t GetTime() const { return fdTime; };
+  double GetTime() const { return fdTime; };
 
 
   /** @brief Charge
@@ -108,25 +108,25 @@ public:
        **
        ** Alias for GetEdep(), for compatibility with template methods
        */
-  Double_t GetCharge() const { return fdEdep; };
+  double GetCharge() const { return fdEdep; };
 
 
   /** @brief Energy deposit
        ** @return Energy deposit
        **/
-  Double_t GetEdep() const { return fdEdep; };
+  double GetEdep() const { return fdEdep; };
 
 
   /** @brief Module Identifier
        ** @return Module number
        **/
-  Double_t GetModuleID() const { return CbmPsdAddress::GetModuleId(GetAddress()); }
+  double GetModuleID() const { return CbmPsdAddress::GetModuleId(GetAddress()); }
 
 
   /** @brief Section Identifier
        ** @return Section number
        **/
-  Double_t GetSectionID() const { return CbmPsdAddress::GetSectionId(GetAddress()); }
+  double GetSectionID() const { return CbmPsdAddress::GetSectionId(GetAddress()); }
 
 
   /** @brief System identifier
@@ -136,10 +136,10 @@ public:
 
 
   /** Modifiers **/
-  void SetAddress(UInt_t address) { fuAddress = address; };
-  void SetAddress(UInt_t moduleId, UInt_t sectionId);
-  void SetTime(Double_t time) { fdTime = time; }
-  void SetEdep(Double_t edep) { fdEdep = edep; }
+  void SetAddress(uint32_t address) { fuAddress = address; };
+  void SetAddress(uint32_t moduleId, uint32_t sectionId);
+  void SetTime(double time) { fdTime = time; }
+  void SetEdep(double edep) { fdEdep = edep; }
 
 
   /** @brief String output
@@ -149,9 +149,9 @@ public:
 
 
 private:
-  UInt_t fuAddress = 0;    /// Unique channel address
-  Double_t fdTime  = -1.;  /// Time of measurement [ns]
-  Double_t fdEdep  = 0.;   /// Energy deposition from FPGA [MeV]
+  uint32_t fuAddress = 0;    /// Unique channel address
+  double fdTime      = -1.;  /// Time of measurement [ns]
+  double fdEdep      = 0.;   /// Energy deposition from FPGA [MeV]
 
   /// BOOST serialization interface
   friend class boost::serialization::access;
diff --git a/core/data/psd/CbmPsdDsp.cxx b/core/data/psd/CbmPsdDsp.cxx
index b92428cb55..59b2c082e5 100644
--- a/core/data/psd/CbmPsdDsp.cxx
+++ b/core/data/psd/CbmPsdDsp.cxx
@@ -44,25 +44,25 @@ CbmPsdDsp::CbmPsdDsp()
 
 // clang-format off
 // --- Constructor with assignment
-CbmPsdDsp::CbmPsdDsp(UInt_t address,
-                     Double_t time, 
-                     Double_t ts_time, 
-                     Double_t edep, 
-                     UInt_t zl, 
-                     Double_t accum, 
-                     Double_t adc_time,
-
-                     Double_t edep_wfm, 
-                     Double_t ampl,
-                     UInt_t minimum, 
-                     UInt_t time_max, 
+CbmPsdDsp::CbmPsdDsp(uint32_t address,
+                     double time, 
+                     double ts_time, 
+                     double edep, 
+                     uint32_t zl, 
+                     double accum, 
+                     double adc_time,
+
+                     double edep_wfm, 
+                     double ampl,
+                     uint32_t minimum, 
+                     uint32_t time_max, 
                      std::vector<std::uint16_t> wfm,
 
-                     Double_t fit_ampl, 
-                     Double_t fit_zl, 
-                     Double_t fit_edep, 
-                     Double_t fit_r2, 
-                     Double_t fit_time_max, 
+                     double fit_ampl, 
+                     double fit_zl, 
+                     double fit_edep, 
+                     double fit_r2, 
+                     double fit_time_max, 
                      std::vector<std::uint16_t> fit_wfm)
 
   : fuAddress(address)
diff --git a/core/data/psd/CbmPsdDsp.h b/core/data/psd/CbmPsdDsp.h
index d6590b7f4c..12f859efe3 100644
--- a/core/data/psd/CbmPsdDsp.h
+++ b/core/data/psd/CbmPsdDsp.h
@@ -19,11 +19,11 @@
 #include "CbmPsdAddress.h"  // for CbmPsdAddress
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDefNV
-#include <RtypesCore.h>  // for Double_t, UInt_t, Int_t
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/base_object.hpp>
 
+#include <cstdint>
 #include <string>  // for string
 
 
@@ -37,10 +37,10 @@ public:
 
   /** @brief Constructor with detailed assignment.
        **/
-  CbmPsdDsp(UInt_t address, Double_t time, Double_t ts_time, Double_t edep, UInt_t zl, Double_t accum,
-            Double_t adc_time, Double_t edep_wfm, Double_t ampl, UInt_t minimum, UInt_t time_max,
-            std::vector<std::uint16_t> wfm, Double_t fit_ampl, Double_t fit_zl, Double_t fit_edep, Double_t fit_r2,
-            Double_t fit_time_max, std::vector<std::uint16_t> fit_wfm);
+  CbmPsdDsp(uint32_t address, double time, double ts_time, double edep, uint32_t zl, double accum, double adc_time,
+            double edep_wfm, double ampl, uint32_t minimum, uint32_t time_max, std::vector<std::uint16_t> wfm,
+            double fit_ampl, double fit_zl, double fit_edep, double fit_r2, double fit_time_max,
+            std::vector<std::uint16_t> fit_wfm);
 
 
   /**  Copy constructor **/
@@ -72,37 +72,37 @@ public:
   /** @brief Address
        ** @return Unique channel address (see CbmPsdAddress)
        **/
-  UInt_t GetAddress() const { return fuAddress; };
+  uint32_t GetAddress() const { return fuAddress; };
 
 
   /** @brief Time
        ** @return Time [ns]
        **/
-  Double_t GetTime() const { return fdTime; };
+  double GetTime() const { return fdTime; };
 
 
   /** @brief TsTime
        ** @return TsTime [ns]
        **/
-  Double_t GetTsTime() const { return fdTsTime; };
+  double GetTsTime() const { return fdTsTime; };
 
 
   /** @brief Energy deposit
        ** @return Energy deposit
        **/
-  Double_t GetEdep() const { return fdEdep; };
+  double GetEdep() const { return fdEdep; };
 
 
   /** @brief Module Identifier
        ** @return Module number
        **/
-  Double_t GetModuleID() const { return CbmPsdAddress::GetModuleId(GetAddress()); }
+  double GetModuleID() const { return CbmPsdAddress::GetModuleId(GetAddress()); }
 
 
   /** @brief Section Identifier
        ** @return Section number
        **/
-  Double_t GetSectionID() const { return CbmPsdAddress::GetSectionId(GetAddress()); }
+  double GetSectionID() const { return CbmPsdAddress::GetSectionId(GetAddress()); }
 
 
   /** @brief System identifier
@@ -112,30 +112,30 @@ public:
 
 
   /** Modifiers **/
-  void SetAddress(UInt_t address) { fuAddress = address; };
-  void SetAddress(UInt_t moduleId, UInt_t sectionId);
-  void SetTime(Double_t time) { fdTime = time; }
-  void SetEdep(Double_t edep) { fdEdep = edep; }
-
-  UInt_t fuAddress   = 0;    /// Unique channel address
-  Double_t fdTime    = -1.;  /// Time of measurement relative to TS [ns]
-  Double_t fdTsTime  = -1.;  /// Time of TimeSlice of measurement. Relative to first TS [ns]
-  Double_t fdEdep    = 0.;   /// Energy deposition from FPGA [MeV]
-  UInt_t fuZL        = 0;    /// ZeroLevel from waveform [adc counts]
-  Double_t fdAccum   = 0;    /// FPGA FEE Accumulator
-  Double_t fdAdcTime = -1.;  /// Adc time of measurement
-
-  Double_t fdEdepWfm          = 0.;  /// Energy deposition from waveform [MeV]
-  Double_t fdAmpl             = 0.;  /// Amplitude from waveform [mV]
-  UInt_t fuMinimum            = 0;   /// Minimum of waveform [adc samples]
-  UInt_t fuTimeMax            = 0;   /// Time of maximum in waveform [adc samples]
+  void SetAddress(uint32_t address) { fuAddress = address; };
+  void SetAddress(uint32_t moduleId, uint32_t sectionId);
+  void SetTime(double time) { fdTime = time; }
+  void SetEdep(double edep) { fdEdep = edep; }
+
+  uint32_t fuAddress = 0;    /// Unique channel address
+  double fdTime      = -1.;  /// Time of measurement relative to TS [ns]
+  double fdTsTime    = -1.;  /// Time of TimeSlice of measurement. Relative to first TS [ns]
+  double fdEdep      = 0.;   /// Energy deposition from FPGA [MeV]
+  uint32_t fuZL      = 0;    /// ZeroLevel from waveform [adc counts]
+  double fdAccum     = 0;    /// FPGA FEE Accumulator
+  double fdAdcTime   = -1.;  /// Adc time of measurement
+
+  double fdEdepWfm            = 0.;  /// Energy deposition from waveform [MeV]
+  double fdAmpl               = 0.;  /// Amplitude from waveform [mV]
+  uint32_t fuMinimum          = 0;   /// Minimum of waveform [adc samples]
+  uint32_t fuTimeMax          = 0;   /// Time of maximum in waveform [adc samples]
   std::vector<uint16_t> fuWfm = std::vector<uint16_t>(32, 0);
 
-  Double_t fdFitAmpl             = 0.;    /// Amplitude from fit of waveform [mV]
-  Double_t fdFitZL               = 0.;    /// ZeroLevel from fit of waveform [adc counts]
-  Double_t fdFitEdep             = 0.;    /// Energy deposition from fit of waveform [MeV]
-  Double_t fdFitR2               = 999.;  /// Quality of waveform fit [] -- good near 0
-  Double_t fdFitTimeMax          = -1.;   /// Time of maximum in fit of waveform [adc samples]
+  double fdFitAmpl               = 0.;    /// Amplitude from fit of waveform [mV]
+  double fdFitZL                 = 0.;    /// ZeroLevel from fit of waveform [adc counts]
+  double fdFitEdep               = 0.;    /// Energy deposition from fit of waveform [MeV]
+  double fdFitR2                 = 999.;  /// Quality of waveform fit [] -- good near 0
+  double fdFitTimeMax            = -1.;   /// Time of maximum in fit of waveform [adc samples]
   std::vector<uint16_t> fuFitWfm = std::vector<uint16_t>(32, 0);
 
   template<class Archive>
diff --git a/core/data/psd/CbmPsdHit.cxx b/core/data/psd/CbmPsdHit.cxx
index eac3815f61..9d9be41999 100644
--- a/core/data/psd/CbmPsdHit.cxx
+++ b/core/data/psd/CbmPsdHit.cxx
@@ -18,15 +18,15 @@
 CbmPsdHit::CbmPsdHit() : TObject(), fModuleID(-1), fEdep(-1)  // SELIM: simplification vector [49] -> simple double
 {
 
-  //for (Int_t j=0; j<49; j++)     // SELIM: simplification vector [49] -> simple double
+  //for (int32_t j=0; j<49; j++)     // SELIM: simplification vector [49] -> simple double
   //  fEdep[j]=0;
 }
-CbmPsdHit::CbmPsdHit(Int_t module, Double_t edep)
+CbmPsdHit::CbmPsdHit(int32_t module, double edep)
   : TObject()
   , fModuleID(module)
   , fEdep(edep)  // SELIM: simplification vector [49] -> simple double
 {
-  //for (Int_t j=0; j<49; j++)     // SELIM: simplification vector [49] -> simple double
+  //for (int32_t j=0; j<49; j++)     // SELIM: simplification vector [49] -> simple double
   //fEdep[j] = edep;
 }
 
diff --git a/core/data/psd/CbmPsdHit.h b/core/data/psd/CbmPsdHit.h
index 36e2d6679c..715807acb7 100644
--- a/core/data/psd/CbmPsdHit.h
+++ b/core/data/psd/CbmPsdHit.h
@@ -18,16 +18,17 @@
 #define CBMPSDHIT_H 1
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t, Option_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
+
 class CbmPsdHit : public TObject {
 
 public:
   /**   Default constructor   **/
   CbmPsdHit();
 
-  CbmPsdHit(Int_t module, Double_t edep);
+  CbmPsdHit(int32_t module, double edep);
 
 
   /**   Destructor   **/
@@ -36,22 +37,22 @@ public:
 
   /**   Setters - Getters   **/
 
-  //Float_t GetEdep(Int_t module) const { return fEdep[module]; }      // SELIM: simplification vector [49] -> simple double
-  //void SetEdep(Float_t edep, Int_t module) {fEdep[module]=edep;}
+  //float GetEdep(int32_t module) const { return fEdep[module]; }      // SELIM: simplification vector [49] -> simple double
+  //void SetEdep(float edep, int32_t module) {fEdep[module]=edep;}
 
-  Double_t GetEdep() const { return fEdep; }  // SELIM: simplification vector [49] -> simple double
-  void SetEdep(Double_t edep) { fEdep = edep; }
+  double GetEdep() const { return fEdep; }  // SELIM: simplification vector [49] -> simple double
+  void SetEdep(double edep) { fEdep = edep; }
 
-  Int_t GetModuleID() const { return fModuleID; }
-  void SetModuleID(Int_t mod) { fModuleID = mod; }
+  int32_t GetModuleID() const { return fModuleID; }
+  void SetModuleID(int32_t mod) { fModuleID = mod; }
 
   void Print(Option_t* = "") const;
 
 private:
   /**   Data members  **/
 
-  Int_t fModuleID;
-  Double_t fEdep;  //[49];    // SELIM: simplification vector [49] -> simple double
+  int32_t fModuleID;
+  double fEdep;  //[49];    // SELIM: simplification vector [49] -> simple double
 
 
   ClassDef(CbmPsdHit, 1);
diff --git a/core/data/psd/CbmPsdMCbmHit.cxx b/core/data/psd/CbmPsdMCbmHit.cxx
index 1cf843f330..eea865f38f 100644
--- a/core/data/psd/CbmPsdMCbmHit.cxx
+++ b/core/data/psd/CbmPsdMCbmHit.cxx
@@ -20,7 +20,7 @@ CbmPsdMCbmHit::CbmPsdMCbmHit() : TObject(), fuModuleId(0), fuSectionId(0), fdEde
 
 
 // -----   Constructor with parameters
-CbmPsdMCbmHit::CbmPsdMCbmHit(UInt_t ModuleId, UInt_t SectionId, Double_t Edep, Double_t Time)
+CbmPsdMCbmHit::CbmPsdMCbmHit(uint32_t ModuleId, uint32_t SectionId, double Edep, double Time)
   : TObject()
   , fuModuleId(ModuleId)
   , fuSectionId(SectionId)
diff --git a/core/data/psd/CbmPsdMCbmHit.h b/core/data/psd/CbmPsdMCbmHit.h
index 34db66f405..6c4b102c41 100644
--- a/core/data/psd/CbmPsdMCbmHit.h
+++ b/core/data/psd/CbmPsdMCbmHit.h
@@ -20,9 +20,9 @@
 #define CBMPSDMCBMHIT_H
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmPsdMCbmHit : public TObject {
@@ -37,7 +37,7 @@ public:
      ** @param energy      Energy deposition
      ** @param time        Hit time [ns]
      **/
-  CbmPsdMCbmHit(UInt_t moduleId, UInt_t sectionId, Double_t energy, Double_t time);
+  CbmPsdMCbmHit(uint32_t moduleId, uint32_t sectionId, double energy, double time);
 
 
   /** Destructor **/
@@ -51,38 +51,38 @@ public:
   /** @brief  Index of PSD module
      ** @value  module index []
      **/
-  Int_t GetModuleID() const { return fuModuleId; }
+  int32_t GetModuleID() const { return fuModuleId; }
 
 
   /** @brief  Index of PSD section
      ** @value  section index []
      **/
-  Double_t GetSectionID() const { return fuSectionId; }
+  double GetSectionID() const { return fuSectionId; }
 
 
   /** @brief  Energy deposited in PSD section
      ** @value  Energy [a.u.]
      **/
-  Double_t GetEdep() const { return fdEdep; }
+  double GetEdep() const { return fdEdep; }
 
 
   /** @brief  Time of the signal
      ** @value  Time [ns]
      **/
-  Int_t GetTime() const { return fdTime; }
+  int32_t GetTime() const { return fdTime; }
 
 
   /** Modifiers **/
-  void SetModuleID(UInt_t mod) { fuModuleId = mod; }
-  void SetSectionID(UInt_t sec) { fuSectionId = sec; }
-  void SetEdep(Double_t edep) { fdEdep = edep; }
-  void SetTime(Double_t time) { fdTime = time; }
+  void SetModuleID(uint32_t mod) { fuModuleId = mod; }
+  void SetSectionID(uint32_t sec) { fuSectionId = sec; }
+  void SetEdep(double edep) { fdEdep = edep; }
+  void SetTime(double time) { fdTime = time; }
 
 private:
-  UInt_t fuModuleId  = 0;    /// Module index
-  UInt_t fuSectionId = 0;    /// Section index
-  Double_t fdEdep    = 0.;   /// Energy deposition
-  Double_t fdTime    = -1.;  /// Time of measurement
+  uint32_t fuModuleId  = 0;    /// Module index
+  uint32_t fuSectionId = 0;    /// Section index
+  double fdEdep        = 0.;   /// Energy deposition
+  double fdTime        = -1.;  /// Time of measurement
 
   ClassDef(CbmPsdMCbmHit, 1)
 };
diff --git a/core/data/psd/CbmPsdPoint.cxx b/core/data/psd/CbmPsdPoint.cxx
index 9c9c0992ec..7d2094e73d 100644
--- a/core/data/psd/CbmPsdPoint.cxx
+++ b/core/data/psd/CbmPsdPoint.cxx
@@ -20,8 +20,8 @@ CbmPsdPoint::CbmPsdPoint() : FairMCPoint(), fModuleID(0) {}
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmPsdPoint::CbmPsdPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t tof, Double_t length,
-                         Double_t eLoss)
+CbmPsdPoint::CbmPsdPoint(int32_t trackID, int32_t detID, TVector3 pos, TVector3 mom, double tof, double length,
+                         double eLoss)
   : FairMCPoint(trackID, detID, pos, mom, tof, length, eLoss)
   , fModuleID(0)
 {
diff --git a/core/data/psd/CbmPsdPoint.h b/core/data/psd/CbmPsdPoint.h
index fba3ab0698..6ac5d5d3cf 100644
--- a/core/data/psd/CbmPsdPoint.h
+++ b/core/data/psd/CbmPsdPoint.h
@@ -20,9 +20,9 @@
 #include <FairMCPoint.h>  // for FairMCPoint
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t, Option_t
 #include <TVector3.h>    // for TVector3
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmPsdPoint : public FairMCPoint {
@@ -41,7 +41,7 @@ public:
    *@param length   Track length since creation [cm]
    *@param eLoss    Energy deposit [GeV]
    **/
-  CbmPsdPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t tof, Double_t length, Double_t eLoss);
+  CbmPsdPoint(int32_t trackID, int32_t detID, TVector3 pos, TVector3 mom, double tof, double length, double eLoss);
 
 
   /** Copy constructor **/
@@ -56,14 +56,14 @@ public:
   virtual void Print(const Option_t* opt) const;
 
   /** Modifiers **/
-  void SetModuleID(Int_t mod) { fModuleID = mod; }
+  void SetModuleID(int32_t mod) { fModuleID = mod; }
   /** Accessors **/
-  Int_t GetModuleID() const { return fModuleID; }
+  int32_t GetModuleID() const { return fModuleID; }
 
   std::string ToString() const;
 
 private:
-  Int_t fModuleID;  //number of module
+  int32_t fModuleID;  //number of module
 
 
   ClassDef(CbmPsdPoint, 2)
diff --git a/core/data/raw/CriGet4Mess001.cxx b/core/data/raw/CriGet4Mess001.cxx
index 562462c4dc..2a4a1c4cd0 100644
--- a/core/data/raw/CriGet4Mess001.cxx
+++ b/core/data/raw/CriGet4Mess001.cxx
@@ -7,6 +7,9 @@
 // Specific headers
 
 // C++11 headers
+#include <cstdio>
+#include <cstring>
+
 #include <cmath>
 
 // std C++ lib headers
@@ -14,9 +17,6 @@
 #include <iostream>
 #include <sstream>
 
-#include <stdio.h>
-#include <string.h>
-
 //#include <iostream>
 #include <iomanip>
 
@@ -175,7 +175,7 @@ void critof001::Message::printDataLog(unsigned kind, uint32_t epoch) const
 //! Print message in binary or human readable format to a stream.
 /*!
  * Prints a one line representation of the message in to a stream, selected by \a outType.
- * The stream is \a cout if \a outType is kFALSE and \a FairLogger if \a outType is kTRUE.
+ * The stream is \a cout if \a outType is false and \a FairLogger if \a outType is true.
  * The parameter \a kind is mask with 4 bits
  * \li critof001::msg_print_Prefix (1) - message type
  * \li critof001::msg_print_Data   (2) - print all message specific data fields
diff --git a/core/data/raw/CriGet4Mess001.h b/core/data/raw/CriGet4Mess001.h
index 69ede4b8f5..a4b672db21 100644
--- a/core/data/raw/CriGet4Mess001.h
+++ b/core/data/raw/CriGet4Mess001.h
@@ -5,10 +5,9 @@
 #ifndef CRI_GET4_MESS_V0_01_DEF_H
 #define CRI_GET4_MESS_V0_01_DEF_H
 
+#include <cstdint>
 #include <iostream>
 
-#include <stdint.h>
-
 namespace critof001
 {
   // Size of one clock cycle (=1 coarse bin)
diff --git a/core/data/raw/PsdGbtDataFormat-v0.00.h b/core/data/raw/PsdGbtDataFormat-v0.00.h
index 672647f219..bc58b0ff81 100644
--- a/core/data/raw/PsdGbtDataFormat-v0.00.h
+++ b/core/data/raw/PsdGbtDataFormat-v0.00.h
@@ -5,12 +5,11 @@
 #ifndef PSD_GBT_DATA_FORMAT_H_
 #define PSD_GBT_DATA_FORMAT_H_
 
+#include <cstdint>
+#include <cstdio>
+#include <cstring>
 #include <vector>
 
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-
 namespace PsdDataV000
 {
 
diff --git a/core/data/raw/PsdGbtDataFormat-v1.00.h b/core/data/raw/PsdGbtDataFormat-v1.00.h
index 67320bb3a3..2568c417a5 100644
--- a/core/data/raw/PsdGbtDataFormat-v1.00.h
+++ b/core/data/raw/PsdGbtDataFormat-v1.00.h
@@ -5,12 +5,11 @@
 #ifndef PSD_GBT_DATA_FORMAT_V100_H_
 #define PSD_GBT_DATA_FORMAT_V100_H_
 
+#include <cstdint>
+#include <cstdio>
+#include <cstring>
 #include <vector>
 
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-
 namespace PsdDataV100
 {
 
diff --git a/core/data/raw/PsdGbtReader-v0.00.cxx b/core/data/raw/PsdGbtReader-v0.00.cxx
index adec62897e..ae51a4bf7e 100644
--- a/core/data/raw/PsdGbtReader-v0.00.cxx
+++ b/core/data/raw/PsdGbtReader-v0.00.cxx
@@ -11,7 +11,7 @@
 
 #include "PsdGbtReader-v0.00.h"
 
-#include <cstdint>  // for uint16_t, uint64_t, uint32_t
+#include <cstdint>
 
 namespace PsdDataV000
 {
diff --git a/core/data/raw/PsdGbtReader-v0.00.h b/core/data/raw/PsdGbtReader-v0.00.h
index 2697d25431..4f9efd79da 100644
--- a/core/data/raw/PsdGbtReader-v0.00.h
+++ b/core/data/raw/PsdGbtReader-v0.00.h
@@ -5,10 +5,9 @@
 #ifndef PSD_GBT_READER_V000_H
 #define PSD_GBT_READER_V000_H
 
+#include <cstdint>
 #include <vector>  // for vector
 
-#include <stdint.h>  // for uint64_t, uint32_t
-
 #include "PsdGbtDataFormat-v0.00.h"  // for PsdHitData, PsdHitHeader, PsdEventHead...
 
 namespace PsdDataV000
diff --git a/core/data/raw/PsdGbtReader-v1.00.h b/core/data/raw/PsdGbtReader-v1.00.h
index 650259750b..e1ff7571ef 100644
--- a/core/data/raw/PsdGbtReader-v1.00.h
+++ b/core/data/raw/PsdGbtReader-v1.00.h
@@ -5,14 +5,12 @@
 #ifndef PSD_GBT_READER_V100_H
 #define PSD_GBT_READER_V100_H
 
-#include <cstdint>  // for uint16_t, uint64_t, uint32_t
+#include <cstdint>
 #include <iomanip>  // for setw, setfill
 #include <sstream>  // for sstream
 #include <string>   // for string
 #include <vector>   // for vector
 
-#include <stdint.h>  // for uint64_t, uint32_t
-
 #include "PsdGbtDataFormat-v1.00.h"
 namespace PsdDataV100
 {
diff --git a/core/data/raw/StsXyterFinalHit.h b/core/data/raw/StsXyterFinalHit.h
index fa6a2ab5b8..d3099fe3ef 100644
--- a/core/data/raw/StsXyterFinalHit.h
+++ b/core/data/raw/StsXyterFinalHit.h
@@ -10,10 +10,9 @@
 #define STSXYTERFINALHIT_H
 
 // C/C++ headers
+#include <cstdint>
 #include <iostream>
 
-#include <stdint.h>
-
 namespace stsxyter
 {
 
diff --git a/core/data/raw/StsXyterMessage.h b/core/data/raw/StsXyterMessage.h
index 05c0f9a1f4..4084015958 100644
--- a/core/data/raw/StsXyterMessage.h
+++ b/core/data/raw/StsXyterMessage.h
@@ -10,10 +10,9 @@
 #define STSXYTERMESSAGE_H
 
 // C/C++ headers
+#include <cstdint>
 #include <iostream>
 
-#include <stdint.h>
-
 namespace stsxyter
 {
 
diff --git a/core/data/raw/TimesliceMetaData.cxx b/core/data/raw/TimesliceMetaData.cxx
index af850f7bc4..ad547af428 100644
--- a/core/data/raw/TimesliceMetaData.cxx
+++ b/core/data/raw/TimesliceMetaData.cxx
@@ -6,7 +6,7 @@
 
 #include <TObject.h>  // for TObject
 
-TimesliceMetaData::TimesliceMetaData(ULong64_t ulStart, ULong64_t ulDur, ULong64_t ulOverDur, ULong64_t ulIndex)
+TimesliceMetaData::TimesliceMetaData(uint64_t ulStart, uint64_t ulDur, uint64_t ulOverDur, uint64_t ulIndex)
   : TObject()
   , fulStartTimeNs(ulStart)
   , fulDurationNs(ulDur)
diff --git a/core/data/raw/TimesliceMetaData.h b/core/data/raw/TimesliceMetaData.h
index 7f141cbfab..97a683ae84 100644
--- a/core/data/raw/TimesliceMetaData.h
+++ b/core/data/raw/TimesliceMetaData.h
@@ -6,16 +6,15 @@
 #define TIMESLICE_METADATA_H
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for ULong64_t
 #include <TObject.h>     // for TObject
 
-#include <stdint.h>
+#include <cstdint>
 
 
 class TimesliceMetaData : public TObject {
 public:
-  TimesliceMetaData(ULong64_t ulStart = 0, ULong64_t ulDur = 12800000, ULong64_t ulOverDur = 1280000,
-                    ULong64_t ulIndex = 0);
+  TimesliceMetaData(uint64_t ulStart = 0, uint64_t ulDur = 12800000, uint64_t ulOverDur = 1280000,
+                    uint64_t ulIndex = 0);
 
   /// Copy construction
   TimesliceMetaData(const TimesliceMetaData&) = default;
@@ -24,31 +23,31 @@ public:
   /// Copy operator
   TimesliceMetaData& operator=(const TimesliceMetaData&) = default;
 
-  void SetStartTime(ULong64_t ulStart) { fulStartTimeNs = ulStart; }
-  void SetDuration(ULong64_t ulDur) { fulDurationNs = ulDur; }
-  void SetOverlapDuration(ULong64_t ulDur) { fulOverlapNs = ulDur; }
-  void SetIndex(ULong64_t ulIdx) { fulIndex = ulIdx; }
+  void SetStartTime(uint64_t ulStart) { fulStartTimeNs = ulStart; }
+  void SetDuration(uint64_t ulDur) { fulDurationNs = ulDur; }
+  void SetOverlapDuration(uint64_t ulDur) { fulOverlapNs = ulDur; }
+  void SetIndex(uint64_t ulIdx) { fulIndex = ulIdx; }
 
-  ULong64_t GetStartTime() const { return fulStartTimeNs; }
-  ULong64_t GetDuration() const { return fulDurationNs; }
-  ULong64_t GetOverlapStartTime() const { return fulStartTimeNs + fulDurationNs; }
-  ULong64_t GetOverlapDuration() const { return fulOverlapNs; }
-  ULong64_t GetIndex() const { return fulIndex; }
+  uint64_t GetStartTime() const { return fulStartTimeNs; }
+  uint64_t GetDuration() const { return fulDurationNs; }
+  uint64_t GetOverlapStartTime() const { return fulStartTimeNs + fulDurationNs; }
+  uint64_t GetOverlapDuration() const { return fulOverlapNs; }
+  uint64_t GetIndex() const { return fulIndex; }
 
 private:
-  ULong64_t fulStartTimeNs = 0;
-  //      ULong64_t fulDurationNs   = 10240000; // 100 MS *  102400 ns (no TRD), default to update in source
-  ULong64_t fulDurationNs = 12800000;  //  10 MS * 1280000 ns (with TRD), default to update in source
-  ULong64_t fulOverlapNs  = 1280000;   //   1 MS * 1280000 ns (with TRD), default to update in source
-  ULong64_t fulIndex      = 0;
+  uint64_t fulStartTimeNs = 0;
+  //      uint64_t fulDurationNs   = 10240000; // 100 MS *  102400 ns (no TRD), default to update in source
+  uint64_t fulDurationNs = 12800000;  //  10 MS * 1280000 ns (with TRD), default to update in source
+  uint64_t fulOverlapNs  = 1280000;   //   1 MS * 1280000 ns (with TRD), default to update in source
+  uint64_t fulIndex      = 0;
   /*
-      ULong64_t fulErrorsNbT0   = 0;
-      ULong64_t fulErrorsNbSts  = 0;
-      ULong64_t fulErrorsNbMuch = 0;
-      ULong64_t fulErrorsNbTof  = 0;
-      ULong64_t fulErrorsNbTrd  = 0;
-      ULong64_t fulErrorsNbRich = 0;
-      ULong64_t fulErrorsNbPsd  = 0;
+      uint64_t fulErrorsNbT0   = 0;
+      uint64_t fulErrorsNbSts  = 0;
+      uint64_t fulErrorsNbMuch = 0;
+      uint64_t fulErrorsNbTof  = 0;
+      uint64_t fulErrorsNbTrd  = 0;
+      uint64_t fulErrorsNbRich = 0;
+      uint64_t fulErrorsNbPsd  = 0;
 */
 
   ClassDef(TimesliceMetaData, 2);
diff --git a/core/data/raw/gDpbMessv100.cxx b/core/data/raw/gDpbMessv100.cxx
index 488af71612..664b7dd63d 100644
--- a/core/data/raw/gDpbMessv100.cxx
+++ b/core/data/raw/gDpbMessv100.cxx
@@ -7,6 +7,9 @@
 // Specific headers
 
 // C++11 headers
+#include <cstdio>
+#include <cstring>
+
 #include <cmath>
 
 // std C++ lib headers
@@ -14,9 +17,6 @@
 #include <iostream>
 #include <sstream>
 
-#include <stdio.h>
-#include <string.h>
-
 //#include <iostream>
 #include <iomanip>
 
@@ -179,7 +179,7 @@ void gdpbv100::Message::printDataLog(unsigned kind, uint32_t epoch) const { prin
 //! Print message in binary or human readable format to a stream.
 /*!
  * Prints a one line representation of the message in to a stream, selected by \a outType.
- * The stream is \a cout if \a outType is kFALSE and \a FairLogger if \a outType is kTRUE.
+ * The stream is \a cout if \a outType is false and \a FairLogger if \a outType is true.
  * The parameter \a kind is mask with 4 bits
  * \li gdpbv100::msg_print_Prefix (1) - message type
  * \li gdpbv100::msg_print_Data   (2) - print all message specific data fields
diff --git a/core/data/raw/gDpbMessv100.h b/core/data/raw/gDpbMessv100.h
index ef6566dc6e..3a25d0abe7 100644
--- a/core/data/raw/gDpbMessv100.h
+++ b/core/data/raw/gDpbMessv100.h
@@ -5,10 +5,9 @@
 #ifndef GDPB_MESS_V1_00_DEF_H
 #define GDPB_MESS_V1_00_DEF_H
 
+#include <cstdint>
 #include <iostream>
 
-#include <stdint.h>
-
 namespace gdpbv100
 {
   // Size of one clock cycle (=1 coarse bin)
diff --git a/core/data/rich/CbmRichDigi.cxx b/core/data/rich/CbmRichDigi.cxx
index e13e53ce16..78cd2bdec1 100644
--- a/core/data/rich/CbmRichDigi.cxx
+++ b/core/data/rich/CbmRichDigi.cxx
@@ -18,7 +18,7 @@ CbmRichDigi::CbmRichDigi() : fAddress(0), fTime(0.0), fToT(0.)
   // TODO Auto-generated constructor stub
 }
 
-CbmRichDigi::CbmRichDigi(Int_t addr, Double_t time, Double_t tot) : fAddress(addr), fTime(time), fToT(tot) {}
+CbmRichDigi::CbmRichDigi(int32_t addr, double time, double tot) : fAddress(addr), fTime(time), fToT(tot) {}
 
 CbmRichDigi::~CbmRichDigi()
 {
diff --git a/core/data/rich/CbmRichDigi.h b/core/data/rich/CbmRichDigi.h
index 6321d62ad8..42c0d429c4 100644
--- a/core/data/rich/CbmRichDigi.h
+++ b/core/data/rich/CbmRichDigi.h
@@ -16,11 +16,11 @@
 #include "CbmDefs.h"  // for kRich
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/base_object.hpp>
 
+#include <cstdint>
 #include <string>  // for basic_string, string
 
 #ifndef DATA_RICH_CBMRICHDIGI_H_
@@ -30,7 +30,7 @@ class CbmRichDigi {
 public:
   CbmRichDigi();
 
-  CbmRichDigi(Int_t addr, Double_t time, Double_t tot);
+  CbmRichDigi(int32_t addr, double time, double tot);
 
   ~CbmRichDigi();
 
@@ -38,7 +38,7 @@ public:
 	 * \brief Inherited from CbmDigi
 	 * @value Unique address of pixel channel
 	 */
-  Int_t GetAddress() const { return fAddress; }
+  int32_t GetAddress() const { return fAddress; }
 
   /** @brief Get the desired name of the branch for this obj in the cbm output tree  (static)
    ** @return "RichDigi"
@@ -51,7 +51,7 @@ public:
          ** Alias for GetToT, conversion factor should be added if needed.
 	 ** For compatibility with template methods
 	 **/
-  Double_t GetCharge() const { return fToT; }
+  double GetCharge() const { return fToT; }
 
   /** @brief Class name (static)
    ** @return CbmRichDigi
@@ -67,23 +67,23 @@ public:
 	 * @brief Time
 	 * @value Time [ns]
 	 */
-  Double_t GetTime() const { return fTime; }
+  double GetTime() const { return fTime; }
 
   /*
 	 * \brief Get Time-over-threshold
 	 * @value Time-over-threshold, pulse width [ns]
 	 */
-  Double_t GetToT() const { return fToT; }
+  double GetToT() const { return fToT; }
 
   /*
 	 * \brief Set pixel Address
 	 */
-  void SetAddress(Int_t address) { fAddress = address; }
+  void SetAddress(int32_t address) { fAddress = address; }
 
   /*
 	 * \brief Set pixel Address
 	 */
-  void SetTime(Double_t time) { fTime = time; }
+  void SetTime(double time) { fTime = time; }
 
 
   std::string ToString() const { return std::string {""}; }
@@ -92,18 +92,18 @@ private:
   /**
 	 * \brief Unique pixel address
 	 */
-  Int_t fAddress;
+  int32_t fAddress;
 
   /**
 	 * \brief Leading (rising) edge time
 	 */
-  Double_t fTime;
+  double fTime;
 
   /**
 	 * \brief Time-over-threshold, pulse width. 
    * This variable is only used in real data analysis, for the simulation it is set to 0.
 	 */
-  Double_t fToT;
+  double fToT;
 
   /// BOOST serialization interface
   friend class boost::serialization::access;
diff --git a/core/data/rich/CbmRichHit.cxx b/core/data/rich/CbmRichHit.cxx
index 59711e00ae..93de285ad0 100644
--- a/core/data/rich/CbmRichHit.cxx
+++ b/core/data/rich/CbmRichHit.cxx
@@ -27,7 +27,7 @@ CbmRichHit::CbmRichHit()
   SetTime(0.);
 }
 
-CbmRichHit::CbmRichHit(Double_t x, Double_t y)
+CbmRichHit::CbmRichHit(double x, double y)
   : CbmPixelHit()
   , fPmtId(0)
   ,
@@ -41,7 +41,7 @@ CbmRichHit::CbmRichHit(Double_t x, Double_t y)
   SetTime(0.);
 }
 
-CbmRichHit::CbmRichHit(Double_t x, Double_t y, Double_t ts, Double_t tot)
+CbmRichHit::CbmRichHit(double x, double y, double ts, double tot)
   : CbmPixelHit()
   , fPmtId(0)
   ,
diff --git a/core/data/rich/CbmRichHit.h b/core/data/rich/CbmRichHit.h
index 1b98f30358..b31e48c37d 100644
--- a/core/data/rich/CbmRichHit.h
+++ b/core/data/rich/CbmRichHit.h
@@ -16,8 +16,8 @@
 #include "CbmPixelHit.h"  // for CbmPixelHit
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmRichHit : public CbmPixelHit {
@@ -31,12 +31,12 @@ public:
   /**
    * \brief Constructor with input hit coordinates.
    */
-  CbmRichHit(Double_t x, Double_t y);
+  CbmRichHit(double x, double y);
 
   /**
    * \brief Constructor with input hit coordinates, timestamp and ToT.
    */
-  CbmRichHit(Double_t x, Double_t y, Double_t ts, Double_t tot);
+  CbmRichHit(double x, double y, double ts, double tot);
 
   /**
    * \brief Destructor.
@@ -51,30 +51,30 @@ public:
   /**
    * \brief Inherited from CbmBaseHit.
    */
-  virtual Int_t GetPlaneId() const { return 0; }
+  virtual int32_t GetPlaneId() const { return 0; }
 
   /** Modifiers **/
-  virtual void SetPmtId(Int_t det) { fPmtId = det; }
-  //virtual void SetNPhotons (Int_t n) { fNPhotons = n; }
-  //virtual void SetAmplitude(Double_t amp) { fAmplitude = amp; }
-  void SetToT(Double_t tot) { fToT = tot; }
+  virtual void SetPmtId(int32_t det) { fPmtId = det; }
+  //virtual void SetNPhotons (int32_t n) { fNPhotons = n; }
+  //virtual void SetAmplitude(double amp) { fAmplitude = amp; }
+  void SetToT(double tot) { fToT = tot; }
 
   /** Accessors **/
-  virtual Int_t GetPmtId() const { return fPmtId; }
-  //virtual Int_t GetNPhotons() const { return fNPhotons; }
-  //virtual Double_t GetAmplitude() const { return fAmplitude; }
-  Double_t GetToT() const { return fToT; }
+  virtual int32_t GetPmtId() const { return fPmtId; }
+  //virtual int32_t GetNPhotons() const { return fNPhotons; }
+  //virtual double GetAmplitude() const { return fAmplitude; }
+  double GetToT() const { return fToT; }
 
   /** Outdated. Use CbmHit::GetTime() and SetTime() instead. **/
-  // Double_t GetTimestamp() const { return GetTime(); }
-  // void SetTimestamp(Double_t ts) { SetTime(ts); }
+  // double GetTimestamp() const { return GetTime(); }
+  // void SetTimestamp(double ts) { SetTime(ts); }
 
 private:
-  Int_t fPmtId;  // photomultiplier number
-  //Int_t fNPhotons; // number of photons in this hit
-  //Double32_t fAmplitude; // hit amplitude
+  int32_t fPmtId;  // photomultiplier number
+  //int32_t fNPhotons; // number of photons in this hit
+  //double fAmplitude; // hit amplitude
 
-  Double_t fToT;  // hit time-over-threshold
+  double fToT;  // hit time-over-threshold
 
   ClassDef(CbmRichHit, 3)
 };
diff --git a/core/data/rich/CbmRichPoint.cxx b/core/data/rich/CbmRichPoint.cxx
index 852b41dbc9..43e8c467f2 100644
--- a/core/data/rich/CbmRichPoint.cxx
+++ b/core/data/rich/CbmRichPoint.cxx
@@ -21,8 +21,8 @@ CbmRichPoint::CbmRichPoint() : FairMCPoint() {}
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmRichPoint::CbmRichPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t tof, Double_t length,
-                           Double_t eLoss)
+CbmRichPoint::CbmRichPoint(int32_t trackID, int32_t detID, TVector3 pos, TVector3 mom, double tof, double length,
+                           double eLoss)
   : FairMCPoint(trackID, detID, pos, mom, tof, length, eLoss)
 {
 }
diff --git a/core/data/rich/CbmRichPoint.h b/core/data/rich/CbmRichPoint.h
index 460387eac8..d23009160d 100644
--- a/core/data/rich/CbmRichPoint.h
+++ b/core/data/rich/CbmRichPoint.h
@@ -21,7 +21,8 @@
 #include <FairMCPoint.h>  // for FairMCPoint
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t, Option_t
+
+#include <cstdint>
 
 class TVector3;
 
@@ -41,7 +42,7 @@ public:
    *@param length   Track length since creation [cm]
    *@param eLoss    Energy deposit [GeV]
    **/
-  CbmRichPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t tof, Double_t length, Double_t eLoss);
+  CbmRichPoint(int32_t trackID, int32_t detID, TVector3 pos, TVector3 mom, double tof, double length, double eLoss);
 
 
   /** Copy constructor **/
diff --git a/core/data/rich/CbmRichRing.cxx b/core/data/rich/CbmRichRing.cxx
index fa7445c520..832814de55 100644
--- a/core/data/rich/CbmRichRing.cxx
+++ b/core/data/rich/CbmRichRing.cxx
@@ -42,7 +42,6 @@
 
 #include <Logger.h>  // for Logger, LOG
 
-#include <TMath.h>    // for Pi
 #include <TObject.h>  // for TObject
 
 #include <cmath>  // for fabs, sqrt, atan, cos, sin
@@ -82,7 +81,7 @@ CbmRichRing::CbmRichRing()
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmRichRing::CbmRichRing(Float_t x, Float_t y, Float_t r)
+CbmRichRing::CbmRichRing(float x, float y, float r)
   : TObject()
   , fHitCollection()
   , fAPar(0.)
@@ -115,7 +114,7 @@ CbmRichRing::CbmRichRing(Float_t x, Float_t y, Float_t r)
 CbmRichRing::~CbmRichRing() { fHitCollection.clear(); }
 // -------------------------------------------------------------------------
 
-void CbmRichRing::SetXYABPhi(Double_t x, Double_t y, Double_t a, Double_t b, Double_t phi)
+void CbmRichRing::SetXYABPhi(double x, double y, double a, double b, double phi)
 {
   fCenterX = x;
   fCenterY = y;
@@ -124,10 +123,10 @@ void CbmRichRing::SetXYABPhi(Double_t x, Double_t y, Double_t a, Double_t b, Dou
   fPhi     = phi;
 }
 
-Bool_t CbmRichRing::RemoveHit(UInt_t hitId)
+bool CbmRichRing::RemoveHit(uint32_t hitId)
 {
-  //Int_t nofHits = fHitCollection.size();
-  std::vector<UInt_t>::iterator it;
+  //int32_t nofHits = fHitCollection.size();
+  std::vector<uint32_t>::iterator it;
   for (it = fHitCollection.begin(); it != fHitCollection.end(); it++) {
     if (hitId == *it) {
       fHitCollection.erase(it);
@@ -137,36 +136,36 @@ Bool_t CbmRichRing::RemoveHit(UInt_t hitId)
   return false;
 }
 
-Double_t CbmRichRing::GetXF1() const
+double CbmRichRing::GetXF1() const
 {
-  Double_t c  = sqrt(fAaxis * fAaxis - fBaxis * fBaxis);
-  Double_t xc = c * cos(fabs(fPhi));
+  double c  = sqrt(fAaxis * fAaxis - fBaxis * fBaxis);
+  double xc = c * cos(fabs(fPhi));
 
   return fCenterX + xc;
 }
 
-Double_t CbmRichRing::GetYF1() const
+double CbmRichRing::GetYF1() const
 {
-  Double_t c  = sqrt(fAaxis * fAaxis - fBaxis * fBaxis);
-  Double_t yc = c * sin(fabs(fPhi));
+  double c  = sqrt(fAaxis * fAaxis - fBaxis * fBaxis);
+  double yc = c * sin(fabs(fPhi));
   if (fPhi >= 0) { return fCenterY + yc; }
   else {
     return fCenterY - yc;
   }
 }
 
-Double_t CbmRichRing::GetXF2() const
+double CbmRichRing::GetXF2() const
 {
-  Double_t c  = sqrt(fAaxis * fAaxis - fBaxis * fBaxis);
-  Double_t xc = c * cos(fabs(fPhi));
+  double c  = sqrt(fAaxis * fAaxis - fBaxis * fBaxis);
+  double xc = c * cos(fabs(fPhi));
 
   return fCenterX - xc;
 }
 
-Double_t CbmRichRing::GetYF2() const
+double CbmRichRing::GetYF2() const
 {
-  Double_t c  = sqrt(fAaxis * fAaxis - fBaxis * fBaxis);
-  Double_t yc = c * sin(fabs(fPhi));
+  double c  = sqrt(fAaxis * fAaxis - fBaxis * fBaxis);
+  double yc = c * sin(fabs(fPhi));
   if (fPhi >= 0) { return fCenterY - yc; }
   else {
     return fCenterY + yc;
@@ -182,7 +181,7 @@ void CbmRichRing::Print(Option_t*) const
             << ", Chi2 = " << GetChi2() << ", Angle() = " << GetAngle() << ", NofHitsOnRing = " << GetNofHitsOnRing();
 }
 
-Float_t CbmRichRing::GetRadialPosition() const
+float CbmRichRing::GetRadialPosition() const
 {
   if (fCenterY > 0.f) { return sqrt(fCenterX * fCenterX + (fCenterY - 110.f) * (fCenterY - 110.f)); }
   else {
@@ -190,7 +189,7 @@ Float_t CbmRichRing::GetRadialPosition() const
   }
 }
 
-Double_t CbmRichRing::GetRadialAngle() const
+double CbmRichRing::GetRadialAngle() const
 {
   /*  if (fCenterY > 0){
             return  atan((100 - fCenterY) / (0 - fCenterX));
@@ -199,9 +198,9 @@ Double_t CbmRichRing::GetRadialAngle() const
     }*/
 
   if (fCenterX > 0 && fCenterY > 0) { return atan(fabs((100 - fCenterY) / (0 - fCenterX))); }
-  if (fCenterX < 0 && fCenterY > 0) { return TMath::Pi() - atan(fabs((100 - fCenterY) / (0 - fCenterX))); }
-  if (fCenterX < 0 && fCenterY < 0) { return TMath::Pi() + atan(fabs((-100 - fCenterY) / (0 - fCenterX))); }
-  if (fCenterX > 0 && fCenterY < 0) { return 2 * TMath::Pi() - atan(fabs((-100 - fCenterY) / (0 - fCenterX))); }
+  if (fCenterX < 0 && fCenterY > 0) { return M_PI - atan(fabs((100 - fCenterY) / (0 - fCenterX))); }
+  if (fCenterX < 0 && fCenterY < 0) { return M_PI + atan(fabs((-100 - fCenterY) / (0 - fCenterX))); }
+  if (fCenterX > 0 && fCenterY < 0) { return 2 * M_PI - atan(fabs((-100 - fCenterY) / (0 - fCenterX))); }
 
   return 999.;
 }
diff --git a/core/data/rich/CbmRichRing.h b/core/data/rich/CbmRichRing.h
index bda0fb4a3e..dd0a83aa0e 100644
--- a/core/data/rich/CbmRichRing.h
+++ b/core/data/rich/CbmRichRing.h
@@ -6,9 +6,9 @@
 #define CBM_RICH_RING_H
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t, UInt_t, Float_t, Int_t, Bool_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
 #include <vector>  // for vector
 
 class CbmRichRing : public TObject {
@@ -22,113 +22,113 @@ public:
 	   *@param y    y Position of ring center [cm]
 	   *@param r    radius of ring [cm]
 	 **/
-  CbmRichRing(Float_t x, Float_t y, Float_t r);
+  CbmRichRing(float x, float y, float r);
 
   /** Destructor **/
   virtual ~CbmRichRing();
 
   /** to attach the rich hit to the ring */
-  void AddHit(UInt_t pHit) { fHitCollection.push_back(pHit); }
+  void AddHit(uint32_t pHit) { fHitCollection.push_back(pHit); }
   /** remove hit from ring
 	 * hitId is the index in the RICH hit array
      * return false if hit is not found in ring*/
-  Bool_t RemoveHit(UInt_t hitId);
+  bool RemoveHit(uint32_t hitId);
   /** to obtain the number of hits associated to the ring */
-  Int_t GetNofHits() const { return fHitCollection.size(); }
+  int32_t GetNofHits() const { return fHitCollection.size(); }
   /** to obtain the rich hit at a particular index */
-  UInt_t GetHit(Int_t i) const { return fHitCollection[i]; }
+  uint32_t GetHit(int32_t i) const { return fHitCollection[i]; }
   /** to print ring parameters **/
   virtual void Print(Option_t* opt = "") const;
 
 
   /** Modifiers**/
-  void SetAPar(Double_t a) { fAPar = a; }
-  void SetBPar(Double_t b) { fBPar = b; }
-  void SetCPar(Double_t c) { fCPar = c; }
-  void SetDPar(Double_t d) { fDPar = d; }
-  void SetEPar(Double_t e) { fEPar = e; }
-  void SetFPar(Double_t f) { fFPar = f; }
-
-  void SetCenterX(Float_t x) { fCenterX = x; }
-  void SetCenterY(Float_t y) { fCenterY = y; }
-  void SetRadius(Float_t r) { fRadius = r; }
-  void SetAaxis(Double_t a) { fAaxis = a; }
-  void SetBaxis(Double_t b) { fBaxis = b; }
-  void SetAaxisCor(Double_t a) { fAaxisCor = a; }
-  void SetBaxisCor(Double_t b) { fBaxisCor = b; }
-  void SetXYABPhi(Double_t x, Double_t y, Double_t a, Double_t b, Double_t phi);
-  void SetPhi(Double_t phi) { fPhi = phi; }
-  void SetChi2(Double_t chi2) { fChi2 = chi2; }
-  void SetRecFlag(Int_t recflag) { fRecFlag = recflag; }
-  void SetAngle(Double_t angle) { fAngle = angle; }
-  void SetNofHitsOnRing(Int_t onring) { fNofHitsOnRing = onring; }
+  void SetAPar(double a) { fAPar = a; }
+  void SetBPar(double b) { fBPar = b; }
+  void SetCPar(double c) { fCPar = c; }
+  void SetDPar(double d) { fDPar = d; }
+  void SetEPar(double e) { fEPar = e; }
+  void SetFPar(double f) { fFPar = f; }
+
+  void SetCenterX(float x) { fCenterX = x; }
+  void SetCenterY(float y) { fCenterY = y; }
+  void SetRadius(float r) { fRadius = r; }
+  void SetAaxis(double a) { fAaxis = a; }
+  void SetBaxis(double b) { fBaxis = b; }
+  void SetAaxisCor(double a) { fAaxisCor = a; }
+  void SetBaxisCor(double b) { fBaxisCor = b; }
+  void SetXYABPhi(double x, double y, double a, double b, double phi);
+  void SetPhi(double phi) { fPhi = phi; }
+  void SetChi2(double chi2) { fChi2 = chi2; }
+  void SetRecFlag(int32_t recflag) { fRecFlag = recflag; }
+  void SetAngle(double angle) { fAngle = angle; }
+  void SetNofHitsOnRing(int32_t onring) { fNofHitsOnRing = onring; }
   /** number between -1 and 1: -1 = fake ring, 1 = good ring (selection by neural net)*/
-  void SetSelectionNN(Double_t selectionNN) { fSelectionNN = selectionNN; }
-  void SetTime(Double_t time) { fTime = time; }
+  void SetSelectionNN(double selectionNN) { fSelectionNN = selectionNN; }
+  void SetTime(double time) { fTime = time; }
 
   /** Accessors **/
-  Double_t GetAPar() const { return fAPar; }
-  Double_t GetBPar() const { return fBPar; }
-  Double_t GetCPar() const { return fCPar; }
-  Double_t GetDPar() const { return fDPar; }
-  Double_t GetEPar() const { return fEPar; }
-  Double_t GetFPar() const { return fFPar; }
-
-  Float_t GetCenterX() const { return fCenterX; }
-  Float_t GetCenterY() const { return fCenterY; }
-  Float_t GetRadius() const { return fRadius; }
-  Double_t GetAaxis() const { return fAaxis; }
-  Double_t GetBaxis() const { return fBaxis; }
-  Double_t GetAaxisCor() const { return fAaxisCor; }
-  Double_t GetBaxisCor() const { return fBaxisCor; }
-  Double_t GetPhi() const { return fPhi; }
-  Double_t GetXF1() const;
-  Double_t GetYF1() const;
-  Double_t GetXF2() const;
-  Double_t GetYF2() const;
-
-
-  Double_t GetSelectionNN() const { return fSelectionNN; }
-  Double_t GetChi2() const { return fChi2; }
-  Double_t GetNDF() const { return GetNofHits() - 5; }
-  Float_t GetRadialPosition() const;
-  Double_t GetAngle() const { return fAngle; }
-  Int_t GetNofHitsOnRing() const { return fNofHitsOnRing; }
-  Double_t GetRadialAngle() const;
-  Int_t GetRecFlag() const { return fRecFlag; }
-  Double_t GetTime() const { return fTime; }
+  double GetAPar() const { return fAPar; }
+  double GetBPar() const { return fBPar; }
+  double GetCPar() const { return fCPar; }
+  double GetDPar() const { return fDPar; }
+  double GetEPar() const { return fEPar; }
+  double GetFPar() const { return fFPar; }
+
+  float GetCenterX() const { return fCenterX; }
+  float GetCenterY() const { return fCenterY; }
+  float GetRadius() const { return fRadius; }
+  double GetAaxis() const { return fAaxis; }
+  double GetBaxis() const { return fBaxis; }
+  double GetAaxisCor() const { return fAaxisCor; }
+  double GetBaxisCor() const { return fBaxisCor; }
+  double GetPhi() const { return fPhi; }
+  double GetXF1() const;
+  double GetYF1() const;
+  double GetXF2() const;
+  double GetYF2() const;
+
+
+  double GetSelectionNN() const { return fSelectionNN; }
+  double GetChi2() const { return fChi2; }
+  double GetNDF() const { return GetNofHits() - 5; }
+  float GetRadialPosition() const;
+  double GetAngle() const { return fAngle; }
+  int32_t GetNofHitsOnRing() const { return fNofHitsOnRing; }
+  double GetRadialAngle() const;
+  int32_t GetRecFlag() const { return fRecFlag; }
+  double GetTime() const { return fTime; }
 
 private:
-  std::vector<UInt_t> fHitCollection; /** STL container to hold the hits */
+  std::vector<uint32_t> fHitCollection; /** STL container to hold the hits */
 
 protected:
-  Double_t fAPar;  // Axx+Bxy+Cyy+Dx+Ey+F
-  Double_t fBPar;
-  Double_t fCPar;
-  Double_t fDPar;
-  Double_t fEPar;
-  Double_t fFPar;
+  double fAPar;  // Axx+Bxy+Cyy+Dx+Ey+F
+  double fBPar;
+  double fCPar;
+  double fDPar;
+  double fEPar;
+  double fFPar;
 
-  Float_t fCenterX;
-  Float_t fCenterY;
-  Float_t fRadius;
+  float fCenterX;
+  float fCenterY;
+  float fRadius;
 
-  Double_t fAaxis;     // major axis of ellipse
-  Double_t fBaxis;     // minor axes of the ellipse
-  Double_t fAaxisCor;  // major axis of ellipse after correction
-  Double_t fBaxisCor;  // minor axes of the ellipse after correction
+  double fAaxis;     // major axis of ellipse
+  double fBaxis;     // minor axes of the ellipse
+  double fAaxisCor;  // major axis of ellipse after correction
+  double fBaxisCor;  // minor axes of the ellipse after correction
 
-  Double_t fPhi;  // rotation angle
+  double fPhi;  // rotation angle
 
-  Double_t fChi2;
-  Double_t fAngle;
-  Int_t fNofHitsOnRing;
+  double fChi2;
+  double fAngle;
+  int32_t fNofHitsOnRing;
 
-  Double_t fSelectionNN;  // value for selection high quality rings
+  double fSelectionNN;  // value for selection high quality rings
 
-  Int_t fRecFlag;
+  int32_t fRecFlag;
 
-  Double_t fTime;
+  double fTime;
 
   ClassDef(CbmRichRing, 2)
 };
diff --git a/core/data/rich/CbmRichRingLight.h b/core/data/rich/CbmRichRingLight.h
index 0d94ef4663..ba4059d1d7 100644
--- a/core/data/rich/CbmRichRingLight.h
+++ b/core/data/rich/CbmRichRingLight.h
@@ -13,7 +13,6 @@
 #define CBMRICHRINGLIGHT_H_
 
 #include <vector>
-
 #include <cmath>
 
 class CbmRichHitLight {
diff --git a/core/data/rich/CbmRichTrbDigi.cxx b/core/data/rich/CbmRichTrbDigi.cxx
index 8ee3074068..bad56948e7 100644
--- a/core/data/rich/CbmRichTrbDigi.cxx
+++ b/core/data/rich/CbmRichTrbDigi.cxx
@@ -9,8 +9,8 @@
 CbmRichTrbDigi::CbmRichTrbDigi()
   : TObject()
   , fTDCid(0)
-  , fHasLeadingEdge(kFALSE)
-  , fHasTrailingEdge(kFALSE)
+  , fHasLeadingEdge(false)
+  , fHasTrailingEdge(false)
   , fLeadingEdgeChannel(0)
   , fTrailingEdgeChannel(0)
   , fLeadingEdgeTimestamp(0.)
@@ -18,8 +18,8 @@ CbmRichTrbDigi::CbmRichTrbDigi()
 {
 }
 
-CbmRichTrbDigi::CbmRichTrbDigi(UInt_t TDCid, Bool_t hasLedge, Bool_t hasTedge, UInt_t Lch, UInt_t Tch,
-                               Double_t Ltimestamp, Double_t Ttimestamp)
+CbmRichTrbDigi::CbmRichTrbDigi(uint32_t TDCid, bool hasLedge, bool hasTedge, uint32_t Lch, uint32_t Tch,
+                               double Ltimestamp, double Ttimestamp)
   : TObject()
   , fTDCid(TDCid)
   , fHasLeadingEdge(hasLedge)
diff --git a/core/data/rich/CbmRichTrbDigi.h b/core/data/rich/CbmRichTrbDigi.h
index 6fbf3db646..0eaddb6810 100644
--- a/core/data/rich/CbmRichTrbDigi.h
+++ b/core/data/rich/CbmRichTrbDigi.h
@@ -6,40 +6,41 @@
 #define CBMRICHTRBDIGI_H
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for UInt_t, Double_t, Bool_t
 #include <TObject.h>     // for TObject
 
+#include <cstdint>
+
 class CbmRichTrbDigi : public TObject {
 public:
   CbmRichTrbDigi();
-  CbmRichTrbDigi(UInt_t TDCid, Bool_t hasLedge, Bool_t hasTedge, UInt_t Lch, UInt_t Tch, Double_t Ltimestamp,
-                 Double_t Ttimestamp);
+  CbmRichTrbDigi(uint32_t TDCid, bool hasLedge, bool hasTedge, uint32_t Lch, uint32_t Tch, double Ltimestamp,
+                 double Ttimestamp);
   virtual ~CbmRichTrbDigi();
 
-  UInt_t GetTDCid() { return fTDCid; }
+  uint32_t GetTDCid() { return fTDCid; }
 
-  Bool_t GetHasLeadingEdge() { return fHasLeadingEdge; }
-  Bool_t GetHasTrailingEdge() { return fHasTrailingEdge; }
+  bool GetHasLeadingEdge() { return fHasLeadingEdge; }
+  bool GetHasTrailingEdge() { return fHasTrailingEdge; }
 
-  UInt_t GetLeadingEdgeChannel() { return fLeadingEdgeChannel; }
-  UInt_t GetTrailingEdgeChannel() { return fTrailingEdgeChannel; }
+  uint32_t GetLeadingEdgeChannel() { return fLeadingEdgeChannel; }
+  uint32_t GetTrailingEdgeChannel() { return fTrailingEdgeChannel; }
 
-  Double_t GetLeadingEdgeTimeStamp() { return fLeadingEdgeTimestamp; }
-  Double_t GetTrailingEdgeTimeStamp() { return fTrailingEdgeTimestamp; }
+  double GetLeadingEdgeTimeStamp() { return fLeadingEdgeTimestamp; }
+  double GetTrailingEdgeTimeStamp() { return fTrailingEdgeTimestamp; }
 
-  Double_t GetTOT() { return fTrailingEdgeTimestamp - fLeadingEdgeTimestamp; }
+  double GetTOT() { return fTrailingEdgeTimestamp - fLeadingEdgeTimestamp; }
 
 protected:
-  UInt_t fTDCid;
+  uint32_t fTDCid;
 
-  Bool_t fHasLeadingEdge;
-  Bool_t fHasTrailingEdge;
+  bool fHasLeadingEdge;
+  bool fHasTrailingEdge;
 
-  UInt_t fLeadingEdgeChannel;
-  UInt_t fTrailingEdgeChannel;
+  uint32_t fLeadingEdgeChannel;
+  uint32_t fTrailingEdgeChannel;
 
-  Double_t fLeadingEdgeTimestamp;
-  Double_t fTrailingEdgeTimestamp;
+  double fLeadingEdgeTimestamp;
+  double fTrailingEdgeTimestamp;
 
   ClassDef(CbmRichTrbDigi, 1)
 };
diff --git a/core/data/sts/CbmStsCluster.h b/core/data/sts/CbmStsCluster.h
index 4678231236..0df253e90b 100644
--- a/core/data/sts/CbmStsCluster.h
+++ b/core/data/sts/CbmStsCluster.h
@@ -19,8 +19,8 @@
 #include "CbmCluster.h"  // for CbmCluster
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t
 
+#include <cstdint>
 #include <string>  // for string
 
 /**
@@ -56,25 +56,25 @@ public:
      **
      ** This is the sum of the charges of the contributing digis.
      **/
-  Double_t GetCharge() const { return fCharge; }
+  double GetCharge() const { return fCharge; }
 
 
   /** @brief Get cluster index
      ** @return Index of cluster in cluster array
      **/
-  Int_t GetIndex() const { return fIndex; }
+  int32_t GetIndex() const { return fIndex; }
 
 
   /** @brief Cluster position
      ** @value Cluster position in channel number units
      **/
-  Double_t GetPosition() const { return fPosition; }
+  double GetPosition() const { return fPosition; }
 
 
   /** @brief Cluster position error
      ** @value Error (r.m.s.) of cluster position in channel number units
      **/
-  Double_t GetPositionError() const { return fPositionError; }
+  double GetPositionError() const { return fPositionError; }
 
 
   /** @brief Set size of the cluster (number of channels)
@@ -83,7 +83,7 @@ public:
      ** Note that this can be different from the number of digis in the
      ** cluster in case there are gaps e.g. due to dead channels.
      **/
-  Int_t GetSize() const { return fSize; }
+  int32_t GetSize() const { return fSize; }
 
 
   /** @brief Get cluster time
@@ -91,26 +91,26 @@ public:
      **
      ** This is the average time of the contributing digis.
      **/
-  Double_t GetTime() const { return fTime; }
+  double GetTime() const { return fTime; }
 
 
   /** @brief Get error of cluster time
      ** @return Time error [ns]
      **/
-  Double_t GetTimeError() const { return fTimeError; }
+  double GetTimeError() const { return fTimeError; }
 
 
   /** @brief Set cluster index
      ** To keep track of the input during hit finding
      ** @param index  Index of cluster in cluster array
      **/
-  void SetIndex(Int_t index) { fIndex = index; }
+  void SetIndex(int32_t index) { fIndex = index; }
 
 
   /** @brief Set the position error
      ** @param error  Position error (r.m.s.) in channel units
      **/
-  void SetPositionError(Double_t error) { fPositionError = error; }
+  void SetPositionError(double error) { fPositionError = error; }
 
 
   /** Set cluster properties (time, charge, mean)
@@ -120,8 +120,7 @@ public:
      ** @param time           Cluster time [ns]
      ** @param timeError      Error of cluster time [ns]
      **/
-  void SetProperties(Double_t charge, Double_t position, Double_t positionError, Double_t time = 0.,
-                     Double_t timeError = 0.)
+  void SetProperties(double charge, double position, double positionError, double time = 0., double timeError = 0.)
   {
     fCharge        = charge;
     fPosition      = position;
@@ -137,7 +136,7 @@ public:
      ** Note that this can be different from the number of digis in the
      ** cluster in case there are gaps e.g. due to dead channels.
      **/
-  void SetSize(Int_t size) { fSize = size; }
+  void SetSize(int32_t size) { fSize = size; }
 
 
   /** String output **/
@@ -145,13 +144,13 @@ public:
 
 
 private:
-  Double_t fCharge;         ///< Total charge
-  Int_t fSize;              ///< Difference between first and last channel
-  Double_t fPosition;       ///< Cluster centre in channel number units
-  Double_t fPositionError;  ///< Cluster centre error (r.m.s.) in channel number units
-  Double_t fTime;           ///< Cluster time (average of digi times) [ns]
-  Double_t fTimeError;      ///< Error of cluster time [ns]
-  Int_t fIndex;             ///< Index of cluster in input array
+  double fCharge;         ///< Total charge
+  int32_t fSize;          ///< Difference between first and last channel
+  double fPosition;       ///< Cluster centre in channel number units
+  double fPositionError;  ///< Cluster centre error (r.m.s.) in channel number units
+  double fTime;           ///< Cluster time (average of digi times) [ns]
+  double fTimeError;      ///< Error of cluster time [ns]
+  int32_t fIndex;         ///< Index of cluster in input array
 
 
   ClassDef(CbmStsCluster, 7);
diff --git a/core/data/sts/CbmStsHit.cxx b/core/data/sts/CbmStsHit.cxx
index 2ecee11c19..32f5f68fab 100644
--- a/core/data/sts/CbmStsHit.cxx
+++ b/core/data/sts/CbmStsHit.cxx
@@ -29,8 +29,8 @@ CbmStsHit::CbmStsHit() : CbmPixelHit(), fFrontClusterId(-1), fBackClusterId(-1),
 
 
 // -----   Constructor with parameters
-CbmStsHit::CbmStsHit(Int_t address, const TVector3& pos, const TVector3& dpos, Double_t dxy, Int_t frontClusterId,
-                     Int_t backClusterId, Double_t time, Double_t timeError, Double_t du, Double_t dv)
+CbmStsHit::CbmStsHit(int32_t address, const TVector3& pos, const TVector3& dpos, double dxy, int32_t frontClusterId,
+                     int32_t backClusterId, double time, double timeError, double du, double dv)
   : CbmPixelHit(address, pos, dpos, dxy, -1)
   , fFrontClusterId(frontClusterId)
   , fBackClusterId(backClusterId)
diff --git a/core/data/sts/CbmStsHit.h b/core/data/sts/CbmStsHit.h
index 5354e7fa69..c488edd1fe 100644
--- a/core/data/sts/CbmStsHit.h
+++ b/core/data/sts/CbmStsHit.h
@@ -18,9 +18,9 @@
 #include "CbmPixelHit.h"  // for CbmPixelHit
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t
 #include <TVector3.h>    // for TVector3
 
+#include <cstdint>
 #include <string>  // for string
 
 
@@ -51,8 +51,8 @@ public:
      ** @param du       Coordinate error across front-side strips [cm]
      ** @param dv       Coordinate error across back-side strips [cm]
      **/
-  CbmStsHit(Int_t address, const TVector3& pos, const TVector3& dpos, Double_t dxy, Int_t frontClusterId,
-            Int_t backClusterId, Double_t time = 0., Double_t timeError = 0., Double_t du = 0., Double_t dv = 0.);
+  CbmStsHit(int32_t address, const TVector3& pos, const TVector3& dpos, double dxy, int32_t frontClusterId,
+            int32_t backClusterId, double time = 0., double timeError = 0., double du = 0., double dv = 0.);
 
 
   /** Destructor **/
@@ -62,7 +62,7 @@ public:
   /** Index of cluster at the back side
      ** @value  Back-side cluster index
      **/
-  Int_t GetBackClusterId() const { return fBackClusterId; }
+  int32_t GetBackClusterId() const { return fBackClusterId; }
 
 
   /** @brief Error of coordinate across front-side strips
@@ -71,7 +71,7 @@ public:
      ** Note that this error is defined only in the
      ** local coordinate system of the sensor.
      **/
-  Double_t GetDu() const { return fDu; }
+  double GetDu() const { return fDu; }
 
 
   /** @brief Error of coordinate across front-side strips
@@ -80,35 +80,35 @@ public:
      ** Note that this error is defined only in the
      ** local coordinate system of the sensor.
      **/
-  Double_t GetDv() const { return fDv; }
+  double GetDv() const { return fDv; }
 
 
   /** Index of cluster at the front side
      ** @value  Front-side cluster index
      **/
-  Int_t GetFrontClusterId() const { return fFrontClusterId; }
+  int32_t GetFrontClusterId() const { return fFrontClusterId; }
 
   /** @brief Set the index of the frontside cluster 
      ** To keep track of the input during matching
      ** @param index  Index of cluster in cluster array
      **/
-  void SetFrontClusterId(Int_t index) { fFrontClusterId = index; }
+  void SetFrontClusterId(int32_t index) { fFrontClusterId = index; }
 
   /** @brief Set the index of the backside cluster
      ** To keep track of the input during matching
      ** @param index  Index of cluster in cluster array
      **/
-  void SetBackClusterId(Int_t index) { fBackClusterId = index; }
+  void SetBackClusterId(int32_t index) { fBackClusterId = index; }
 
   /** Info to string **/
   virtual std::string ToString() const;
 
 
 private:
-  Int_t fFrontClusterId;  ///< Cluster index front side
-  Int_t fBackClusterId;   ///< Cluster index back side
-  Double_t fDu;           ///< Error of coordinate across front-side strips [cm]
-  Double_t fDv;           ///< Error of coordinate across back-side strips [cm]
+  int32_t fFrontClusterId;  ///< Cluster index front side
+  int32_t fBackClusterId;   ///< Cluster index back side
+  double fDu;               ///< Error of coordinate across front-side strips [cm]
+  double fDv;               ///< Error of coordinate across back-side strips [cm]
 
   ClassDef(CbmStsHit, 7);
 };
diff --git a/core/data/sts/CbmStsPoint.cxx b/core/data/sts/CbmStsPoint.cxx
index 2eea91095b..dda0d7a575 100644
--- a/core/data/sts/CbmStsPoint.cxx
+++ b/core/data/sts/CbmStsPoint.cxx
@@ -14,11 +14,11 @@
 #include <FairLink.h>     // for FairLink
 #include <FairMCPoint.h>  // for FairMCPoint
 
-#include <TMathBase.h>  // for Abs
-
 #include <sstream>  // for operator<<, basic_ostream, endl, stri...
 #include <string>   // for char_traits
 
+#include <cmath>
+
 using std::endl;
 using std::string;
 using std::stringstream;
@@ -41,9 +41,9 @@ CbmStsPoint::CbmStsPoint()
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmStsPoint::CbmStsPoint(Int_t trackID, Int_t detID, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut,
-                         Double_t tof, Double_t length, Double_t eLoss, Int_t pid, Int_t eventId, Int_t index,
-                         Short_t flag)
+CbmStsPoint::CbmStsPoint(int32_t trackID, int32_t detID, TVector3 posIn, TVector3 posOut, TVector3 momIn,
+                         TVector3 momOut, double tof, double length, double eLoss, int32_t pid, int32_t eventId,
+                         int32_t index, int16_t flag)
   : FairMCPoint(trackID, detID, posIn, momIn, tof, length, eLoss, eventId)
   , fX_out(posOut.X())
   , fY_out(posOut.Y())
@@ -66,7 +66,7 @@ CbmStsPoint::~CbmStsPoint() {}
 
 
 // -----   Copy constructor with event and epoch time   --------------------
-CbmStsPoint::CbmStsPoint(const CbmStsPoint& point, Int_t eventId, Double_t eventTime, Double_t epochTime)
+CbmStsPoint::CbmStsPoint(const CbmStsPoint& point, int32_t eventId, double eventTime, double epochTime)
   : FairMCPoint(point)
   , fX_out(point.fX_out)
   , fY_out(point.fY_out)
@@ -87,33 +87,33 @@ CbmStsPoint::CbmStsPoint(const CbmStsPoint& point, Int_t eventId, Double_t event
 
 
 // -----   Point x coordinate from linear extrapolation   ------------------
-Double_t CbmStsPoint::GetX(Double_t z) const
+double CbmStsPoint::GetX(double z) const
 {
   //  LOG(info) << fZ << " " << z << " " << fZ_out;
   if ((fZ_out - z) * (fZ - z) >= 0.) return (fX_out + fX) / 2.;
-  Double_t dz = fZ_out - fZ;
+  double dz = fZ_out - fZ;
   return (fX + (z - fZ) / dz * (fX_out - fX));
 }
 // -------------------------------------------------------------------------
 
 
 // -----   Point y coordinate from linear extrapolation   ------------------
-Double_t CbmStsPoint::GetY(Double_t z) const
+double CbmStsPoint::GetY(double z) const
 {
   if ((fZ_out - z) * (fZ - z) >= 0.) return (fY_out + fY) / 2.;
-  Double_t dz = fZ_out - fZ;
-  //  if ( TMath::Abs(dz) < 1.e-3 ) return (fY_out+fY)/2.;
+  double dz = fZ_out - fZ;
+  //  if ( abs(dz) < 1.e-3 ) return (fY_out+fY)/2.;
   return (fY + (z - fZ) / dz * (fY_out - fY));
 }
 // -------------------------------------------------------------------------
 
 
 // -----   Public method IsUsable   ----------------------------------------
-Bool_t CbmStsPoint::IsUsable() const
+bool CbmStsPoint::IsUsable() const
 {
-  Double_t dz = fZ_out - fZ;
-  if (TMath::Abs(dz) < 1.e-4) return kFALSE;
-  return kTRUE;
+  double dz = fZ_out - fZ;
+  if (abs(dz) < 1.e-4) return false;
+  return true;
 }
 // -------------------------------------------------------------------------
 
diff --git a/core/data/sts/CbmStsPoint.h b/core/data/sts/CbmStsPoint.h
index bf339838ac..618a214e87 100644
--- a/core/data/sts/CbmStsPoint.h
+++ b/core/data/sts/CbmStsPoint.h
@@ -23,9 +23,10 @@
 #include <FairMCPoint.h>  // for FairMCPoint
 
 #include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Double_t, Int_t, Double32_t, Bool_t, Short_t
+#include <RtypesCore.h>  // for Double32_t
 #include <TVector3.h>    // for TVector3
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmStsPoint : public FairMCPoint {
@@ -50,9 +51,9 @@ public:
    *@param index    Index of point in TClonesArray
    *@param flag     +1 if entering, +2 if leaving the sensor
    **/
-  CbmStsPoint(Int_t trackID, Int_t detID, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut,
-              Double_t tof, Double_t length, Double_t eLoss, Int_t pid = 0, Int_t eventId = 0, Int_t index = 0,
-              Short_t flag = 3);
+  CbmStsPoint(int32_t trackID, int32_t detID, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut,
+              double tof, double length, double eLoss, int32_t pid = 0, int32_t eventId = 0, int32_t index = 0,
+              int16_t flag = 3);
 
 
   /** Copy constructor with event and epoch time 
@@ -61,7 +62,7 @@ public:
    *@param eventTime   MC event time [ns]
    *@param epochTime   epoch start time [ns]
    **/
-  CbmStsPoint(const CbmStsPoint& point, Int_t eventId = -1, Double_t eventTime = 0., Double_t epochTime = 0.);
+  CbmStsPoint(const CbmStsPoint& point, int32_t eventId = -1, double eventTime = 0., double epochTime = 0.);
 
 
   /** Destructor **/
@@ -69,19 +70,19 @@ public:
 
 
   /** Accessors **/
-  Double_t GetXIn() const { return fX; }
-  Double_t GetYIn() const { return fY; }
-  Double_t GetZIn() const { return fZ; }
-  Double_t GetXOut() const { return fX_out; }
-  Double_t GetYOut() const { return fY_out; }
-  Double_t GetZOut() const { return fZ_out; }
-  Double_t GetPxOut() const { return fPx_out; }
-  Double_t GetPyOut() const { return fPy_out; }
-  Double_t GetPzOut() const { return fPz_out; }
-  Int_t GetPid() const { return fPid; }
-  Int_t GetIndex() const { return fIndex; }
-  Bool_t IsEntry() const { return (fFlag == 1 || fFlag == 3); }
-  Bool_t IsExit() const { return (fFlag == 2 || fFlag == 3); }
+  double GetXIn() const { return fX; }
+  double GetYIn() const { return fY; }
+  double GetZIn() const { return fZ; }
+  double GetXOut() const { return fX_out; }
+  double GetYOut() const { return fY_out; }
+  double GetZOut() const { return fZ_out; }
+  double GetPxOut() const { return fPx_out; }
+  double GetPyOut() const { return fPy_out; }
+  double GetPzOut() const { return fPz_out; }
+  int32_t GetPid() const { return fPid; }
+  int32_t GetIndex() const { return fIndex; }
+  bool IsEntry() const { return (fFlag == 1 || fFlag == 3); }
+  bool IsExit() const { return (fFlag == 2 || fFlag == 3); }
 
   void PositionIn(TVector3& pos) { pos.SetXYZ(fX, fY, fZ); }
   void PositionOut(TVector3& pos) { pos.SetXYZ(fX_out, fY_out, fZ_out); }
@@ -89,18 +90,18 @@ public:
 
 
   /** Point coordinates at given z from linear extrapolation **/
-  Double_t GetX(Double_t z) const;
-  Double_t GetY(Double_t z) const;
+  double GetX(double z) const;
+  double GetY(double z) const;
 
 
   /** Check for distance between in and out **/
-  Bool_t IsUsable() const;
+  bool IsUsable() const;
 
 
   /** Modifiers **/
   void SetPositionOut(TVector3 pos);
   void SetMomentumOut(TVector3 mom);
-  virtual void SetTrackID(Int_t id)
+  virtual void SetTrackID(int32_t id)
   {
     //SetLink(kMCTrack, id);
     FairMCPoint::SetTrackID(id);
@@ -114,9 +115,9 @@ public:
 protected:
   Double32_t fX_out, fY_out, fZ_out;
   Double32_t fPx_out, fPy_out, fPz_out;
-  Int_t fPid;     ///> Particle ID [PDG code]
-  Int_t fIndex;   ///> Index of point in its TClonesArray
-  Short_t fFlag;  ///> 1 or 3: track entry step; 2 or 3: track exit step
+  int32_t fPid;    ///> Particle ID [PDG code]
+  int32_t fIndex;  ///> Index of point in its TClonesArray
+  int16_t fFlag;   ///> 1 or 3: track entry step; 2 or 3: track exit step
 
 
   ClassDef(CbmStsPoint, 3)
diff --git a/core/data/sts/CbmStsTrack.cxx b/core/data/sts/CbmStsTrack.cxx
index 0a3df0a821..228e40a4d4 100644
--- a/core/data/sts/CbmStsTrack.cxx
+++ b/core/data/sts/CbmStsTrack.cxx
@@ -33,7 +33,7 @@ std::string CbmStsTrack::ToString() const
   stringstream ss;
   ss << "CbmStsTrack: time " << fTime << " ns | hits STS " << GetNofStsHits() << " MVD " << GetNofMvdHits() << " | q/p "
      << GetParamFirst()->GetQp() << " | chisq " << GetChiSq() << " | NDF " << GetNDF() << " | STS hits ";
-  for (Int_t iHit = 0; iHit < GetNofStsHits(); iHit++) {
+  for (int32_t iHit = 0; iHit < GetNofStsHits(); iHit++) {
     ss << GetStsHitIndex(iHit) << " ";
   }
   return ss.str();
diff --git a/core/data/sts/CbmStsTrack.h b/core/data/sts/CbmStsTrack.h
index 378c74a89f..0a4887d91b 100644
--- a/core/data/sts/CbmStsTrack.h
+++ b/core/data/sts/CbmStsTrack.h
@@ -23,11 +23,12 @@
 #include "CbmTrack.h"  // for CbmTrack
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t, Double32_t
+#include <RtypesCore.h>  // for Double32_t
 
 #include <cassert>  // for assert
-#include <string>   // for string
-#include <vector>   // for vector
+#include <cstdint>
+#include <string>  // for string
+#include <vector>  // for vector
 
 /** @class CbmStsTrack.h
  ** @brief Data class with information on a STS local track
@@ -51,19 +52,19 @@ public:
   /** Associate a MvdHit to the track
     ** @param hitIndex  Index of the MVD hit in TClonesArray
     **/
-  void AddMvdHit(Int_t hitIndex) { fMvdHitIndex.push_back(hitIndex); }
+  void AddMvdHit(int32_t hitIndex) { fMvdHitIndex.push_back(hitIndex); }
 
 
   /** Associate a StsHit to the track
     ** @param hitIndex  Index of the STS hit in TClonesArray
     **/
-  void AddStsHit(Int_t hitIndex) { AddHit(hitIndex, kSTSHIT); }
+  void AddStsHit(int32_t hitIndex) { AddHit(hitIndex, kSTSHIT); }
 
 
   /** Impact parameter
     ** @return  Impact parameter at target z in units of error [cm]
     **/
-  Double_t GetB() const { return fB; }
+  double GetB() const { return fB; }
 
 
   /** Index of a MVD hit
@@ -71,25 +72,25 @@ public:
     **
     ** Throws std::vector exception if out of bounds.
     **/
-  Int_t GetMvdHitIndex(Int_t iHit) const { return fMvdHitIndex.at(iHit); }
+  int32_t GetMvdHitIndex(int32_t iHit) const { return fMvdHitIndex.at(iHit); }
 
 
   /** Total number of hits
     ** @return  Sum of numbers of STS and MVD hits
     **/
-  virtual Int_t GetNofHits() const { return (GetNofStsHits() + GetNofMvdHits()); }
+  virtual int32_t GetNofHits() const { return (GetNofStsHits() + GetNofMvdHits()); }
 
 
   /** Number of MVD hits
     ** @return  Number of MVD hits associated to the track
     **/
-  Int_t GetNofMvdHits() const { return fMvdHitIndex.size(); }
+  int32_t GetNofMvdHits() const { return fMvdHitIndex.size(); }
 
 
   /** Number of STS hits
     ** @return  Number of STS hits associated to the track
     **/
-  Int_t GetNofStsHits() const { return CbmTrack::GetNofHits(); }
+  int32_t GetNofStsHits() const { return CbmTrack::GetNofHits(); }
 
 
   /** Index of a STS hit
@@ -97,7 +98,7 @@ public:
     **
     ** Throws std::vector exception if out of bounds.
     **/
-  Int_t GetStsHitIndex(Int_t iHit) const
+  int32_t GetStsHitIndex(int32_t iHit) const
   {
     assert(iHit < GetNofStsHits());
     return GetHitIndex(iHit);
@@ -107,7 +108,7 @@ public:
   /** Set the impact parameter
     ** @param  Impact parameter at target z in units of error [cm]
     **/
-  void SetB(Double_t b) { fB = b; }
+  void SetB(double b) { fB = b; }
 
 
   /** Debug output **/
@@ -117,25 +118,25 @@ public:
   /** Get energy loss
    ** @return  median energy loss
    **/
-  Float_t GetELoss() const { return fELoss; }
+  float GetELoss() const { return fELoss; }
 
   /** Set energy loss
    ** @param  median energy loss
    **/
-  void SetELoss(Float_t ELoss) { fELoss = ELoss; }
+  void SetELoss(float ELoss) { fELoss = ELoss; }
 
-  constexpr static Float_t ELossOverflow() { return 1.e6; }
+  constexpr static float ELossOverflow() { return 1.e6; }
 
 private:
   /** Array with indices of the MVD hits attached to the track **/
-  std::vector<Int_t> fMvdHitIndex;
+  std::vector<int32_t> fMvdHitIndex;
 
 
   /** Impact parameter of track at target z, in units of its error **/
   Double32_t fB;
 
   /** median dE/dx [e/300µm] **/
-  Float_t fELoss {-1.f};
+  float fELoss {-1.f};
 
   ClassDef(CbmStsTrack, 3);
 };
diff --git a/core/data/test/_GTestCbmAddress.cxx b/core/data/test/_GTestCbmAddress.cxx
index 126216f29e..4270458337 100644
--- a/core/data/test/_GTestCbmAddress.cxx
+++ b/core/data/test/_GTestCbmAddress.cxx
@@ -30,7 +30,7 @@ TEST(_GTestCbmAddress, CheckGetSytemId)
   SCOPED_TRACE("CheckGetNofSystemBits");
   CbmAddress test;
 
-  UInt_t testID {ToIntegralType(ECbmModuleId::kSts)};
+  uint32_t testID {ToIntegralType(ECbmModuleId::kSts)};
   EXPECT_EQ(ToIntegralType(ECbmModuleId::kSts), test.GetSystemId(testID));
 
   testID = ToIntegralType(ECbmModuleId::kTrd);
diff --git a/core/data/test/_GTestCbmCluster.cxx b/core/data/test/_GTestCbmCluster.cxx
index 159d0e088e..f16fa62296 100644
--- a/core/data/test/_GTestCbmCluster.cxx
+++ b/core/data/test/_GTestCbmCluster.cxx
@@ -14,7 +14,7 @@
 TEST(_GTestCbmCluster, CheckDefaultConstructor)
 {
   CbmCluster test;
-  std::vector<Int_t> testvector;
+  std::vector<int32_t> testvector;
   {
     SCOPED_TRACE("CheckDefaultConstructor");
     compareClusterDataMembers(test, 0, testvector, 0, nullptr);
@@ -23,7 +23,7 @@ TEST(_GTestCbmCluster, CheckDefaultConstructor)
 
 TEST(_GTestCbmCluster, CheckStandardConstructor)
 {
-  std::vector<Int_t> testvector {1, 2, 3, 4, 5};
+  std::vector<int32_t> testvector {1, 2, 3, 4, 5};
   CbmCluster test {testvector, -11};
   {
     SCOPED_TRACE("CheckStandardConstructor");
@@ -33,14 +33,14 @@ TEST(_GTestCbmCluster, CheckStandardConstructor)
 
 TEST(_GTestCbmCluster, CheckSetDigis)
 {
-  std::vector<Int_t> testvector {1, 2, 3, 4, 5};
+  std::vector<int32_t> testvector {1, 2, 3, 4, 5};
   CbmCluster test {testvector, -11};
   {
     SCOPED_TRACE("CheckSetDigis: InitialTest");
     compareClusterDataMembers(test, 5, testvector, -11, nullptr);
   }
 
-  std::vector<Int_t> testvector1 {11, 21, 31, 41, 51, 61};
+  std::vector<int32_t> testvector1 {11, 21, 31, 41, 51, 61};
   test.SetDigis(testvector1);
   {
     SCOPED_TRACE("CheckSetDigis: SetDigis");
@@ -50,9 +50,9 @@ TEST(_GTestCbmCluster, CheckSetDigis)
 
 TEST(_GTestCbmCluster, CheckAddDigi)
 {
-  std::vector<Int_t> testvector {1, 2, 3, 4, 5};
-  std::vector<Int_t> testvector1 {1, 2, 3, 4, 5, 111};
-  std::vector<Int_t> testvector2 {1, 2, 3, 4, 5, 111, 222};
+  std::vector<int32_t> testvector {1, 2, 3, 4, 5};
+  std::vector<int32_t> testvector1 {1, 2, 3, 4, 5, 111};
+  std::vector<int32_t> testvector2 {1, 2, 3, 4, 5, 111, 222};
 
   CbmCluster test {testvector, -11};
   {
@@ -75,9 +75,9 @@ TEST(_GTestCbmCluster, CheckAddDigi)
 
 TEST(_GTestCbmCluster, CheckAddDigis)
 {
-  std::vector<Int_t> testvector {1, 2, 3, 4, 5};
-  std::vector<Int_t> testvector1 {11, 21, 31, 41, 51, 61};
-  std::vector<Int_t> testvector2 {1, 2, 3, 4, 5, 11, 21, 31, 41, 51, 61};
+  std::vector<int32_t> testvector {1, 2, 3, 4, 5};
+  std::vector<int32_t> testvector1 {11, 21, 31, 41, 51, 61};
+  std::vector<int32_t> testvector2 {1, 2, 3, 4, 5, 11, 21, 31, 41, 51, 61};
 
   CbmCluster test {testvector, -11};
   {
@@ -94,8 +94,8 @@ TEST(_GTestCbmCluster, CheckAddDigis)
 
 TEST(_GTestCbmCluster, CheckClearDigis)
 {
-  std::vector<Int_t> testvector {1, 2, 3, 4, 5};
-  std::vector<Int_t> testvector1;
+  std::vector<int32_t> testvector {1, 2, 3, 4, 5};
+  std::vector<int32_t> testvector1;
 
   CbmCluster test {testvector, -11};
   {
@@ -112,7 +112,7 @@ TEST(_GTestCbmCluster, CheckClearDigis)
 
 TEST(_GTestCbmCluster, CheckSetters)
 {
-  std::vector<Int_t> testvector {1, 2, 3, 4, 5};
+  std::vector<int32_t> testvector {1, 2, 3, 4, 5};
 
   CbmCluster test {testvector, -11};
   {
@@ -136,7 +136,7 @@ TEST(_GTestCbmCluster, CheckSetters)
 
 TEST(_GTestCbmCluster, CheckToString)
 {
-  std::vector<Int_t> testvector {1, 2, 3, 4, 5};
+  std::vector<int32_t> testvector {1, 2, 3, 4, 5};
   CbmCluster test {testvector, -11};
 
   EXPECT_STREQ("CbmCluster: nofDigis=5 | 1 2 3 4 5  | address=-11\n", test.ToString().c_str());
diff --git a/core/data/test/_GTestCbmConstants.cxx b/core/data/test/_GTestCbmConstants.cxx
index fe9329bc86..0a43bbfd76 100644
--- a/core/data/test/_GTestCbmConstants.cxx
+++ b/core/data/test/_GTestCbmConstants.cxx
@@ -11,9 +11,9 @@
 
 TEST(_GTestCbmConstants, CheckParticleMasses)
 {
-  Double_t protonMass   = 0.938272046;
-  Double_t neutronMass  = 0.939565379;
-  Double_t electronMass = 0.000510998928;
+  double protonMass   = 0.938272046;
+  double neutronMass  = 0.939565379;
+  double electronMass = 0.000510998928;
 
   EXPECT_EQ(protonMass, CbmProtonMass());
   EXPECT_EQ(neutronMass, CbmNeutronMass());
diff --git a/core/data/test/_GTestCbmDefs.cxx b/core/data/test/_GTestCbmDefs.cxx
index bf0d351a3b..d46d05dff4 100644
--- a/core/data/test/_GTestCbmDefs.cxx
+++ b/core/data/test/_GTestCbmDefs.cxx
@@ -45,7 +45,7 @@ class CbmDetectorListTest : public _TestCbmDetectorListBase<testing::Test> {
 class CbmDetectorListParamTest : public _TestCbmDetectorListBase<testing::TestWithParam<InOutStructure>> {
 protected:
   DetectorId detIdFromEnum;
-  Int_t detId;
+  int32_t detId;
   TString detName;
   TString detNameUppercase;
 
diff --git a/core/data/test/_GTestCbmDigi.cxx b/core/data/test/_GTestCbmDigi.cxx
index 904e0b873f..d0a75eba81 100644
--- a/core/data/test/_GTestCbmDigi.cxx
+++ b/core/data/test/_GTestCbmDigi.cxx
@@ -43,15 +43,15 @@ public:
   }
 
   /** Unique channel address  **/
-  Int_t GetAddress() const { return CbmDigi::GetAddress(); }
+  int32_t GetAddress() const { return CbmDigi::GetAddress(); }
 
 
   /** System (enum DetectorId) **/
-  Int_t GetSystemId() const { return CbmDigi::GetSystemId(); };
+  int32_t GetSystemId() const { return CbmDigi::GetSystemId(); };
 
 
   /** Absolute time [ns]  **/
-  Double_t GetTime() const { return CbmDigi::GetTime(); }
+  double GetTime() const { return CbmDigi::GetTime(); }
 
   std::string ToString() const { return CbmDigi::ToString(); }
 };
diff --git a/core/data/test/_GTestCbmEvent.cxx b/core/data/test/_GTestCbmEvent.cxx
index 6fdcf85645..aeebc1c1d8 100644
--- a/core/data/test/_GTestCbmEvent.cxx
+++ b/core/data/test/_GTestCbmEvent.cxx
@@ -16,11 +16,11 @@
 
 #include "compareVertex.h"
 
-void compareEventDataMembers(CbmEvent& test, Int_t evnumber, Double_t starttime, Double_t endtime, Int_t numobjects,
+void compareEventDataMembers(CbmEvent& test, int32_t evnumber, double starttime, double endtime, int32_t numobjects,
                              CbmMatch* match, CbmVertex* vertex)
 {
-  Int_t retValInt {-111};
-  Double_t retValDouble {-111.};
+  int32_t retValInt {-111};
+  double retValDouble {-111.};
 
   retValInt = test.GetNumber();
   EXPECT_EQ(evnumber, retValInt);
@@ -37,22 +37,22 @@ void compareEventDataMembers(CbmEvent& test, Int_t evnumber, Double_t starttime,
   EXPECT_EQ(match, test.GetMatch());
 
   if (!vertex) {
-    Double_t val[6] = {0., 0., 0., 0., 0., 0.};
+    double val[6] = {0., 0., 0., 0., 0., 0.};
     compareVertexDataMembers(*(test.GetVertex()), 0., 0., 0., 0., 0, 0, val);
   }
   else {
-    Double_t val[6] = {vertex->GetCovariance(0, 0), vertex->GetCovariance(0, 1), vertex->GetCovariance(0, 2),
-                       vertex->GetCovariance(1, 1), vertex->GetCovariance(1, 2), vertex->GetCovariance(2, 2)};
+    double val[6] = {vertex->GetCovariance(0, 0), vertex->GetCovariance(0, 1), vertex->GetCovariance(0, 2),
+                     vertex->GetCovariance(1, 1), vertex->GetCovariance(1, 2), vertex->GetCovariance(2, 2)};
     compareVertexDataMembers(*(test.GetVertex()), vertex->GetX(), vertex->GetY(), vertex->GetZ(), vertex->GetChi2(),
                              vertex->GetNDF(), vertex->GetNTracks(), val);
   }
 }
 
-void compareEventMap(CbmEvent& test, Int_t numobjects, Int_t numobjectstype, ECbmDataType type,
-                     std::vector<UInt_t> indices)
+void compareEventMap(CbmEvent& test, int32_t numobjects, int32_t numobjectstype, ECbmDataType type,
+                     std::vector<uint32_t> indices)
 {
-  Int_t retValInt {-111};
-  UInt_t retValUInt {111};
+  int32_t retValInt {-111};
+  uint32_t retValUInt {111};
 
   retValInt = test.GetNofData();
   EXPECT_EQ(numobjects, retValInt);
@@ -61,7 +61,7 @@ void compareEventMap(CbmEvent& test, Int_t numobjects, Int_t numobjectstype, ECb
   EXPECT_EQ(numobjectstype, retValInt);
 
   if (numobjectstype > 0) {
-    for (Int_t i = 0; i < numobjectstype; ++i) {
+    for (int32_t i = 0; i < numobjectstype; ++i) {
       retValUInt = test.GetIndex(type, i);
       EXPECT_EQ(indices[i], retValUInt);
     }
@@ -123,12 +123,12 @@ TEST(_GTestCbmEvent, CheckAddData)
     compareEventDataMembers(test, -111, 1., 2., 0, nullptr, nullptr);
   }
 
-  std::vector<UInt_t> mctrack;
-  std::vector<UInt_t> stspoint;
-  std::vector<UInt_t> stsdigi;
-  std::vector<UInt_t> stscluster;
-  std::vector<UInt_t> stshit;
-  std::vector<UInt_t> ststrack;
+  std::vector<uint32_t> mctrack;
+  std::vector<uint32_t> stspoint;
+  std::vector<uint32_t> stsdigi;
+  std::vector<uint32_t> stscluster;
+  std::vector<uint32_t> stshit;
+  std::vector<uint32_t> ststrack;
 
 
   mctrack.push_back(11);
@@ -157,7 +157,7 @@ TEST(_GTestCbmEvent, CheckAddData)
     compareEventMap(test, 2, -1, ECbmDataType::kStsTrack, ststrack);
   }
 
-  UInt_t retValUInt = test.GetIndex(ECbmDataType::kMCTrack, 25);
+  uint32_t retValUInt = test.GetIndex(ECbmDataType::kMCTrack, 25);
   EXPECT_EQ(-2, retValUInt);
 
   stspoint.push_back(1);
diff --git a/core/data/test/_GTestCbmHit.cxx b/core/data/test/_GTestCbmHit.cxx
index c4486d0bfe..c3e40f23f2 100644
--- a/core/data/test/_GTestCbmHit.cxx
+++ b/core/data/test/_GTestCbmHit.cxx
@@ -154,7 +154,7 @@ TEST(_GTestCbmHit, TestSettersAndGetters)
   test.SetTime(-3., -3.);
   compareHitDataMembers(test, kHIT, -2., -2., -2, -2, nullptr, -3., -3.);
 
-  Int_t retValInt = test.GetPlaneId();
+  int32_t retValInt = test.GetPlaneId();
   EXPECT_EQ(-1, retValInt);
 
   // Test if we can add an empty CbmMatch, get it back, and extract
diff --git a/core/data/test/compareCluster.h b/core/data/test/compareCluster.h
index b18eadfe2e..88de0410f1 100644
--- a/core/data/test/compareCluster.h
+++ b/core/data/test/compareCluster.h
@@ -11,20 +11,20 @@
 #include "compareMatch.h"
 #include "gtest/gtest.h"
 
-void compareClusterDataMembers(CbmCluster& test, Int_t vectorsize, std::vector<Int_t> indices, Int_t address,
+void compareClusterDataMembers(CbmCluster& test, int32_t vectorsize, std::vector<int32_t> indices, int32_t address,
                                CbmMatch* match)
 {
-  Int_t retValInt {-111};
+  int32_t retValInt {-111};
 
   retValInt = test.GetNofDigis();
   EXPECT_EQ(vectorsize, retValInt);
 
   if (vectorsize > 0) {
-    for (Int_t counter = 0; counter < vectorsize; ++counter) {
+    for (int32_t counter = 0; counter < vectorsize; ++counter) {
       retValInt = test.GetDigi(counter);
       EXPECT_EQ(indices[counter], retValInt);
     }
-    std::vector<Int_t> compare = test.GetDigis();
+    std::vector<int32_t> compare = test.GetDigis();
     EXPECT_TRUE(std::equal(indices.begin(), indices.end(), compare.begin()));
   }
 
diff --git a/core/data/test/compareDigi.h b/core/data/test/compareDigi.h
index b7665450e6..1096671387 100644
--- a/core/data/test/compareDigi.h
+++ b/core/data/test/compareDigi.h
@@ -7,10 +7,10 @@
 
 #include "gtest/gtest.h"
 
-void compareDigiDataMembers(CbmTestDigi& test, Int_t address, Double_t charge, Int_t systemid, Double_t time)
+void compareDigiDataMembers(CbmTestDigi& test, int32_t address, double charge, int32_t systemid, double time)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
 
   retValInt = test.GetAddress();
   EXPECT_EQ(address, retValInt);
diff --git a/core/data/test/compareErrorMessage.h b/core/data/test/compareErrorMessage.h
index d30e91abaf..b0aa780898 100644
--- a/core/data/test/compareErrorMessage.h
+++ b/core/data/test/compareErrorMessage.h
@@ -9,8 +9,8 @@
 
 #include "gtest/gtest.h"
 
-void compareErrorMessageDataMembers(CbmErrorMessage& test, ECbmModuleId sysId, Double_t dTime, UInt_t uAddress,
-                                    UInt_t uFlags, UInt_t uPayload)
+void compareErrorMessageDataMembers(CbmErrorMessage& test, ECbmModuleId sysId, double dTime, uint32_t uAddress,
+                                    uint32_t uFlags, uint32_t uPayload)
 {
   EXPECT_EQ(sysId, test.GetSystemId());
   EXPECT_EQ(uAddress, test.GetAddress());
diff --git a/core/data/test/compareFairMCPoint.h b/core/data/test/compareFairMCPoint.h
index 0fd298e32a..1344242e0a 100644
--- a/core/data/test/compareFairMCPoint.h
+++ b/core/data/test/compareFairMCPoint.h
@@ -11,11 +11,11 @@
 
 #include "gtest/gtest.h"
 
-void compareFairMCPointDataMembers(FairMCPoint& test, Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom,
-                                   Double_t tof, Double_t length, Double_t eloss, Int_t eventid)
+void compareFairMCPointDataMembers(FairMCPoint& test, int32_t trackID, int32_t detID, TVector3 pos, TVector3 mom,
+                                   double tof, double length, double eloss, int32_t eventid)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
 
   retValInt = test.GetDetectorID();
   EXPECT_EQ(detID, retValInt);
diff --git a/core/data/test/compareHit.h b/core/data/test/compareHit.h
index 5702ceaf9b..e2ad17a537 100644
--- a/core/data/test/compareHit.h
+++ b/core/data/test/compareHit.h
@@ -11,11 +11,11 @@
 #include "compareMatch.h"
 #include "gtest/gtest.h"
 
-void compareHitDataMembers(CbmHit& test, HitType type, Double_t z, Double_t dz, Int_t refid, Int_t address,
-                           CbmMatch* match, Double_t time, Double_t errortime)
+void compareHitDataMembers(CbmHit& test, HitType type, double z, double dz, int32_t refid, int32_t address,
+                           CbmMatch* match, double time, double errortime)
 {
-  Int_t retValInt {-111};
-  Float_t retValFloat {-111.};
+  int32_t retValInt {-111};
+  float retValFloat {-111.};
 
   EXPECT_EQ(type, test.GetType());
 
diff --git a/core/data/test/compareLink.h b/core/data/test/compareLink.h
index 99066c08a8..544da4bcd2 100644
--- a/core/data/test/compareLink.h
+++ b/core/data/test/compareLink.h
@@ -9,10 +9,10 @@
 
 #include "gtest/gtest.h"
 
-void compareLinkDataMembers(CbmLink& test, Int_t file, Int_t entry, Int_t index, Double_t weight)
+void compareLinkDataMembers(CbmLink& test, int32_t file, int32_t entry, int32_t index, double weight)
 {
-  Int_t intRetVal {-111};
-  Float_t floatRetVal {-111};
+  int32_t intRetVal {-111};
+  float floatRetVal {-111};
 
   intRetVal = test.GetFile();
   EXPECT_EQ(file, intRetVal);
diff --git a/core/data/test/compareMatch.h b/core/data/test/compareMatch.h
index 9dbd71855a..9a1de8efcf 100644
--- a/core/data/test/compareMatch.h
+++ b/core/data/test/compareMatch.h
@@ -10,10 +10,10 @@
 
 #include "gtest/gtest.h"
 
-void compareMatchDataMembers(CbmMatch& testMatch, Int_t noflinks, Double_t weight)
+void compareMatchDataMembers(CbmMatch& testMatch, int32_t noflinks, double weight)
 {
-  Int_t linkLength {-111};
-  Double_t totalWeight {-111.};
+  int32_t linkLength {-111};
+  double totalWeight {-111.};
 
   std::vector<CbmLink> link = testMatch.GetLinks();
   linkLength                = link.size();
diff --git a/core/data/test/comparePixelHit.h b/core/data/test/comparePixelHit.h
index 4398342ded..478478609e 100644
--- a/core/data/test/comparePixelHit.h
+++ b/core/data/test/comparePixelHit.h
@@ -11,14 +11,14 @@
 #include "compareHit.h"
 #include "gtest/gtest.h"
 
-void comparePixelHitDataMembers(CbmPixelHit& test, HitType type, Double_t z, Double_t dz, Int_t refid, Int_t address,
-                                CbmMatch* match, Double_t time, Double_t errortime, Double_t x, Double_t dx, Double_t y,
-                                Double_t dy, Double_t dxy)
+void comparePixelHitDataMembers(CbmPixelHit& test, HitType type, double z, double dz, int32_t refid, int32_t address,
+                                CbmMatch* match, double time, double errortime, double x, double dx, double y,
+                                double dy, double dxy)
 {
 
   compareHitDataMembers(test, type, z, dz, refid, address, match, time, errortime);
 
-  Float_t retValFloat {-111.};
+  float retValFloat {-111.};
 
   retValFloat = test.GetX();
   EXPECT_FLOAT_EQ(x, retValFloat);
diff --git a/core/data/test/compareStripHit.h b/core/data/test/compareStripHit.h
index 8514712513..d1759f96e0 100644
--- a/core/data/test/compareStripHit.h
+++ b/core/data/test/compareStripHit.h
@@ -11,14 +11,14 @@
 #include "compareHit.h"
 #include "gtest/gtest.h"
 
-void compareStripHitDataMembers(CbmStripHit& test, HitType type, Double_t z, Double_t dz, Int_t refid, Int_t address,
-                                CbmMatch* match, Double_t time, Double_t errortime, Double_t u, Double_t du,
-                                Double_t phi, Double_t dphi)
+void compareStripHitDataMembers(CbmStripHit& test, HitType type, double z, double dz, int32_t refid, int32_t address,
+                                CbmMatch* match, double time, double errortime, double u, double du, double phi,
+                                double dphi)
 {
 
   compareHitDataMembers(test, type, z, dz, refid, address, match, time, errortime);
 
-  Float_t retValFloat {-111.};
+  float retValFloat {-111.};
 
   retValFloat = test.GetU();
   EXPECT_FLOAT_EQ(u, retValFloat);
diff --git a/core/data/test/compareVertex.h b/core/data/test/compareVertex.h
index f5f664fd7d..281891f9c1 100644
--- a/core/data/test/compareVertex.h
+++ b/core/data/test/compareVertex.h
@@ -4,11 +4,11 @@
 
 #include "gtest/gtest.h"
 
-void compareVertexDataMembers(CbmVertex& test, Double_t x, Double_t y, Double_t z, Double_t chi2, Int_t ndf,
-                              Int_t ntracks, Double_t* cov)
+void compareVertexDataMembers(CbmVertex& test, double x, double y, double z, double chi2, int32_t ndf, int32_t ntracks,
+                              double* cov)
 {
-  Int_t retValInt {-111};
-  Double_t retValDouble {-111.};
+  int32_t retValInt {-111};
+  double retValDouble {-111.};
 
   retValDouble = test.GetX();
   EXPECT_FLOAT_EQ(x, retValDouble);
diff --git a/core/data/test/global/_GTestCbmVertex.cxx b/core/data/test/global/_GTestCbmVertex.cxx
index 8d68b91a78..0ecdfe243b 100644
--- a/core/data/test/global/_GTestCbmVertex.cxx
+++ b/core/data/test/global/_GTestCbmVertex.cxx
@@ -19,7 +19,7 @@
 TEST(_GTestCbmVertex, CheckDefaultConstructor)
 {
   CbmVertex test;
-  Double_t val[6] = {0., 0., 0., 0., 0., 0.};
+  double val[6] = {0., 0., 0., 0., 0., 0.};
   {
     SCOPED_TRACE("CheckDefaultConstructor");
     compareVertexDataMembers(test, 0., 0., 0., 0., 0, 0, val);
@@ -29,7 +29,7 @@ TEST(_GTestCbmVertex, CheckDefaultConstructor)
 TEST(_GTestCbmVertex, CheckStandardConstructor)
 {
   CbmVertex test {"Vertex", "Vertex"};
-  Double_t val[6] = {0., 0., 0., 0., 0., 0.};
+  double val[6] = {0., 0., 0., 0., 0., 0.};
   {
     SCOPED_TRACE("CheckStandardConstructor");
     compareVertexDataMembers(test, 0., 0., 0., 0., 0, 0, val);
@@ -49,7 +49,7 @@ TEST(_GTestCbmVertex, CheckConstructorAllArguments)
   Cov(2, 1) = 4.;
   Cov(2, 2) = 5.;
 
-  Double_t val[6] = {0., 1., 2., 3., 4., 5.};
+  double val[6] = {0., 1., 2., 3., 4., 5.};
   CbmVertex test {"Vertex", "Vertex", 1., 2., 3., 4., 5, 6, Cov};
   {
     SCOPED_TRACE("CheckConstructorAllArguments");
@@ -65,7 +65,7 @@ TEST(_GTestCbmVertex, CheckConstructorAllArguments)
   CovWrong(1, 0) = 1.;
   CovWrong(1, 1) = 2.;
 
-  Double_t val1[6] = {0., 0., 0., 0., 0., 0.};
+  double val1[6] = {0., 0., 0., 0., 0., 0.};
 
   testing::internal::CaptureStdout();
   CbmVertex test1 {"Vertex", "Vertex", 1., 2., 3., 4., 5, 6, CovWrong};
@@ -102,14 +102,14 @@ TEST(_GTestCbmVertex, CheckReset)
   Cov(2, 1) = 4.;
   Cov(2, 2) = 5.;
 
-  Double_t val[6] = {0., 1., 2., 3., 4., 5.};
+  double val[6] = {0., 1., 2., 3., 4., 5.};
   CbmVertex test {"Vertex", "Vertex", 1., 2., 3., 4., 5, 6, Cov};
   {
     SCOPED_TRACE("CheckReset: Initial Test");
     compareVertexDataMembers(test, 1., 2., 3., 4., 5, 6, val);
   }
 
-  Double_t val1[6] = {0., 0., 0., 0., 0., 0.};
+  double val1[6] = {0., 0., 0., 0., 0., 0.};
   test.Reset();
   {
     SCOPED_TRACE("CheckReset: Check after reset");
@@ -130,7 +130,7 @@ TEST(_GTestCbmVertex, CheckGetPosition)
   Cov(2, 1) = 4.;
   Cov(2, 2) = 5.;
 
-  Double_t val[6] = {0., 1., 2., 3., 4., 5.};
+  double val[6] = {0., 1., 2., 3., 4., 5.};
   CbmVertex test {"Vertex", "Vertex", 1., 2., 3., 4., 5, 6, Cov};
   {
     SCOPED_TRACE("CheckGetPosition: Initial Test");
@@ -163,7 +163,7 @@ TEST(_GTestCbmVertex, CheckGetCovMatrix)
   Cov(2, 1) = 4.;
   Cov(2, 2) = 5.;
 
-  Double_t val[6] = {0., 1., 2., 3., 4., 5.};
+  double val[6] = {0., 1., 2., 3., 4., 5.};
   CbmVertex test {"Vertex", "Vertex", 1., 2., 3., 4., 5, 6, Cov};
   {
     SCOPED_TRACE("CheckGetCovMatrix: Initial Test");
@@ -177,10 +177,10 @@ TEST(_GTestCbmVertex, CheckGetCovMatrix)
     SCOPED_TRACE("CheckGetCovMatrix: Check after Position");
     compareVertexDataMembers(test, 1., 2., 3., 4., 5, 6, val);
   }
-  for (Int_t i = 0; i < 3; ++i) {
-    for (Int_t j = 0; j < 3; ++j) {
-      Double_t origVal = Cov[i][j];
-      Double_t testVal = testCov[i][j];
+  for (int32_t i = 0; i < 3; ++i) {
+    for (int32_t j = 0; j < 3; ++j) {
+      double origVal = Cov[i][j];
+      double testVal = testCov[i][j];
       EXPECT_FLOAT_EQ(testVal, origVal);
     }
   }
@@ -191,7 +191,7 @@ TEST(_GTestCbmVertex, CheckSetVertex)
 {
 
   CbmVertex test;
-  Double_t val[6] = {0., 0., 0., 0., 0., 0.};
+  double val[6] = {0., 0., 0., 0., 0., 0.};
   {
     SCOPED_TRACE("CheckSetVertex: Initial Test");
     compareVertexDataMembers(test, 0., 0., 0., 0., 0, 0, val);
@@ -208,7 +208,7 @@ TEST(_GTestCbmVertex, CheckSetVertex)
   Cov(2, 1) = 4.;
   Cov(2, 2) = 5.;
 
-  Double_t val1[6] = {0., 1., 2., 3., 4., 5.};
+  double val1[6] = {0., 1., 2., 3., 4., 5.};
   test.SetVertex(1., 2., 3., 4., 5, 6, Cov);
   {
     SCOPED_TRACE("CheckSetVertex: After call of SetVertex");
@@ -224,7 +224,7 @@ TEST(_GTestCbmVertex, CheckSetVertex)
   CovWrong(1, 0) = 1.;
   CovWrong(1, 1) = 2.;
 
-  Double_t val2[6] = {0., 0., 0., 0., 0., 0.};
+  double val2[6] = {0., 0., 0., 0., 0., 0.};
 
   testing::internal::CaptureStdout();
   test.SetVertex(-1., -2., -3., -4., -5, -6, CovWrong);
@@ -261,7 +261,7 @@ TEST(_GTestCbmVertex, CheckPrint)
   Cov(2, 1) = 4.;
   Cov(2, 2) = 5.;
 
-  Double_t val[6] = {0., 1., 2., 3., 4., 5.};
+  double val[6] = {0., 1., 2., 3., 4., 5.};
   CbmVertex test {"Vertex", "Vertex", 1., 2., 3., 4., 5, 6, Cov};
   {
     SCOPED_TRACE("CheckSetVertex: Initial Test");
diff --git a/core/data/test/much/compareMuchBeamTimeDigi.h b/core/data/test/much/compareMuchBeamTimeDigi.h
index 0e25504ecb..1c48fb9be0 100644
--- a/core/data/test/much/compareMuchBeamTimeDigi.h
+++ b/core/data/test/much/compareMuchBeamTimeDigi.h
@@ -8,14 +8,14 @@
 #include "compareMuchDigi.h"
 #include "gtest/gtest.h"
 
-void compareMuchBeamTimeDigiDataMembers(CbmMuchBeamTimeDigi& test, Int_t address, ECbmModuleId systemid, ULong64_t time,
-                                        Int_t charge, Int_t padx, Int_t pady, Int_t rocid, Int_t nxid, Int_t nxch,
-                                        Int_t elink)
+void compareMuchBeamTimeDigiDataMembers(CbmMuchBeamTimeDigi& test, int32_t address, ECbmModuleId systemid,
+                                        uint64_t time, int32_t charge, int32_t padx, int32_t pady, int32_t rocid,
+                                        int32_t nxid, int32_t nxch, int32_t elink)
 {
   CbmMuchDigi bla = static_cast<CbmMuchDigi>(test);
   compareMuchDigiDataMembers(bla, address, systemid, time, charge);
 
-  Int_t retValInt {-222};
+  int32_t retValInt {-222};
 
   retValInt = test.GetPadX();
   EXPECT_EQ(padx, retValInt);
diff --git a/core/data/test/much/compareMuchDigi.h b/core/data/test/much/compareMuchDigi.h
index 26a592a12d..2db2742063 100644
--- a/core/data/test/much/compareMuchDigi.h
+++ b/core/data/test/much/compareMuchDigi.h
@@ -7,10 +7,11 @@
 
 #include "gtest/gtest.h"
 
-void compareMuchDigiDataMembers(CbmMuchDigi& test, Int_t address, ECbmModuleId systemid, ULong64_t time, Int_t charge)
+void compareMuchDigiDataMembers(CbmMuchDigi& test, int32_t address, ECbmModuleId systemid, uint64_t time,
+                                int32_t charge)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
   ECbmModuleId retVal {ECbmModuleId::kNotExist};
 
   retValInt = test.GetAddress();
@@ -20,10 +21,10 @@ void compareMuchDigiDataMembers(CbmMuchDigi& test, Int_t address, ECbmModuleId s
   EXPECT_EQ(systemid, retVal);
 
   retValDouble = test.GetTime();
-  EXPECT_FLOAT_EQ(static_cast<Double_t>(time), retValDouble);
+  EXPECT_FLOAT_EQ(static_cast<double>(time), retValDouble);
 
   retValDouble = test.GetCharge();
-  EXPECT_EQ(static_cast<Double_t>(charge), retValDouble);
+  EXPECT_EQ(static_cast<double>(charge), retValDouble);
 
   retValInt = test.GetAdc();
   EXPECT_EQ(charge, retValInt);
diff --git a/core/data/test/psd/_GTestCbmPsdAddress.cxx b/core/data/test/psd/_GTestCbmPsdAddress.cxx
index 8d555a2c20..790ef1d8ca 100644
--- a/core/data/test/psd/_GTestCbmPsdAddress.cxx
+++ b/core/data/test/psd/_GTestCbmPsdAddress.cxx
@@ -10,9 +10,9 @@
 
 TEST(_GTestCbmPsdAddress, CheckAddress)
 {
-  Int_t moduleid {1};
-  Int_t sectionid {0};
-  Int_t address {24};
+  int32_t moduleid {1};
+  int32_t sectionid {0};
+  int32_t address {24};
 
   comparePsdAddressDataMembers(address, ECbmModuleId::kPsd, moduleid, sectionid);
 
@@ -31,9 +31,9 @@ TEST(_GTestCbmPsdAddress, CheckAddress)
 
 TEST(_GTestCbmPsdAddress, CheckSetModuleId)
 {
-  Int_t moduleid {1};
-  Int_t sectionid {0};
-  Int_t address {24};
+  int32_t moduleid {1};
+  int32_t sectionid {0};
+  int32_t address {24};
 
   comparePsdAddressDataMembers(address, ECbmModuleId::kPsd, moduleid, sectionid);
 
@@ -42,9 +42,9 @@ TEST(_GTestCbmPsdAddress, CheckSetModuleId)
 
 TEST(_GTestCbmPsdAddress, CheckSetSectionId)
 {
-  Int_t moduleid {1};
-  Int_t sectionid {0};
-  Int_t address {24};
+  int32_t moduleid {1};
+  int32_t sectionid {0};
+  int32_t address {24};
 
   comparePsdAddressDataMembers(address, ECbmModuleId::kPsd, moduleid, sectionid);
 
diff --git a/core/data/test/psd/_GTestCbmPsdPoint.cxx b/core/data/test/psd/_GTestCbmPsdPoint.cxx
index b4147d6c7e..6f2f3cef24 100644
--- a/core/data/test/psd/_GTestCbmPsdPoint.cxx
+++ b/core/data/test/psd/_GTestCbmPsdPoint.cxx
@@ -23,15 +23,15 @@ TEST(_GTestCbmPsdPoint, CheckDefaultConstructor)
 
 TEST(_GTestCbmPsdPoint, CheckStandardConstructor)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 pos {-2.1, 6.1, 23.};
   TVector3 mom {2.5, 4.5, 78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
-  Int_t moduleid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
+  int32_t moduleid {0};
   // Create object
   CbmPsdPoint test(trackid, detid, pos, mom, tof, length, eloss);
 
@@ -44,15 +44,15 @@ TEST(_GTestCbmPsdPoint, CheckStandardConstructor)
 
 TEST(_GTestCbmPsdPoint, CheckCopyConstructor)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 pos {-2.1, 6.1, 23.};
   TVector3 mom {2.5, 4.5, 78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
-  Int_t moduleid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
+  int32_t moduleid {0};
   // Create object
   CbmPsdPoint test(trackid, detid, pos, mom, tof, length, eloss);
 
@@ -71,15 +71,15 @@ TEST(_GTestCbmPsdPoint, CheckCopyConstructor)
 
 TEST(_GTestCbmPsdPoint, CheckCopyAssignmentOperator)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 pos {-2.1, 6.1, 23.};
   TVector3 mom {2.5, 4.5, 78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
-  Int_t moduleid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
+  int32_t moduleid {0};
   // Create object
   CbmPsdPoint test(trackid, detid, pos, mom, tof, length, eloss);
 
@@ -99,15 +99,15 @@ TEST(_GTestCbmPsdPoint, CheckCopyAssignmentOperator)
 
 TEST(_GTestCbmPsdPoint, CheckMoveConstructor)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 pos {-2.1, 6.1, 23.};
   TVector3 mom {2.5, 4.5, 78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
-  Int_t moduleid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
+  int32_t moduleid {0};
   // Create object
   CbmPsdPoint test(trackid, detid, pos, mom, tof, length, eloss);
 
@@ -127,15 +127,15 @@ TEST(_GTestCbmPsdPoint, CheckMoveConstructor)
 
 TEST(_GTestCbmPsdPoint, CheckAssignmentOperator)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 pos {-2.1, 6.1, 23.};
   TVector3 mom {2.5, 4.5, 78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
-  Int_t moduleid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
+  int32_t moduleid {0};
   // Create object
   CbmPsdPoint test(trackid, detid, pos, mom, tof, length, eloss);
 
@@ -156,15 +156,15 @@ TEST(_GTestCbmPsdPoint, CheckAssignmentOperator)
 
 TEST(_GTestCbmPsdPoint, CheckSetModuleID)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 pos {-2.1, 6.1, 23.};
   TVector3 mom {2.5, 4.5, 78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
-  Int_t moduleid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
+  int32_t moduleid {0};
   // Create object
   CbmPsdPoint test(trackid, detid, pos, mom, tof, length, eloss);
 
@@ -178,15 +178,15 @@ TEST(_GTestCbmPsdPoint, CheckSetModuleID)
 
 TEST(_GTestCbmPsdPoint, CheckToString)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 pos {-2.1, 6.1, 23.};
   TVector3 mom {2.5, 4.5, 78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
-  Int_t moduleid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
+  int32_t moduleid {0};
   // Create object
   CbmPsdPoint test(trackid, detid, pos, mom, tof, length, eloss);
 
@@ -200,15 +200,15 @@ TEST(_GTestCbmPsdPoint, CheckToString)
 
 TEST(_GTestCbmPsdPoint, CheckPrint)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 pos {-2.1, 6.1, 23.};
   TVector3 mom {2.5, 4.5, 78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
-  Int_t moduleid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
+  int32_t moduleid {0};
   // Create object
   CbmPsdPoint test(trackid, detid, pos, mom, tof, length, eloss);
 
diff --git a/core/data/test/psd/comparePsdAddress.h b/core/data/test/psd/comparePsdAddress.h
index 49bcce9071..d4f7480ff9 100644
--- a/core/data/test/psd/comparePsdAddress.h
+++ b/core/data/test/psd/comparePsdAddress.h
@@ -7,9 +7,9 @@
 
 #include "gtest/gtest.h"
 
-void comparePsdAddressDataMembers(Int_t address, ECbmModuleId systemid, Int_t moduleid, Int_t sectionid)
+void comparePsdAddressDataMembers(int32_t address, ECbmModuleId systemid, int32_t moduleid, int32_t sectionid)
 {
-  Int_t retValInt {-222};
+  int32_t retValInt {-222};
 
   retValInt = CbmPsdAddress::GetSystemId(address);
   EXPECT_EQ(ToIntegralType(systemid), retValInt);
diff --git a/core/data/test/psd/comparePsdDigi.h b/core/data/test/psd/comparePsdDigi.h
index 7721d9a570..e7ca96e563 100644
--- a/core/data/test/psd/comparePsdDigi.h
+++ b/core/data/test/psd/comparePsdDigi.h
@@ -7,10 +7,10 @@
 
 #include "gtest/gtest.h"
 
-void comparePsdDigiDataMembers(CbmPsdDigi& test, Int_t address, ECbmModuleId systemid, Double_t time, Double_t edep)
+void comparePsdDigiDataMembers(CbmPsdDigi& test, int32_t address, ECbmModuleId systemid, double time, double edep)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
   ECbmModuleId retVal {ECbmModuleId::kNotExist};
 
   retValInt = test.GetAddress();
diff --git a/core/data/test/psd/comparePsdHit.h b/core/data/test/psd/comparePsdHit.h
index 42b5125381..bed9fd09e7 100644
--- a/core/data/test/psd/comparePsdHit.h
+++ b/core/data/test/psd/comparePsdHit.h
@@ -7,10 +7,10 @@
 
 #include "gtest/gtest.h"
 
-void comparePsdHitDataMembers(CbmPsdHit& test, Int_t moduleid, Double_t edep)
+void comparePsdHitDataMembers(CbmPsdHit& test, int32_t moduleid, double edep)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
 
   retValInt = test.GetModuleID();
   EXPECT_EQ(moduleid, retValInt);
diff --git a/core/data/test/psd/comparePsdPoint.h b/core/data/test/psd/comparePsdPoint.h
index 4923a63b0c..5ceeac2f8f 100644
--- a/core/data/test/psd/comparePsdPoint.h
+++ b/core/data/test/psd/comparePsdPoint.h
@@ -8,14 +8,14 @@
 #include "compareFairMCPoint.h"
 #include "gtest/gtest.h"
 
-void comparePsdPointDataMembers(CbmPsdPoint& test, Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t tof,
-                                Double_t length, Double_t eLoss, Int_t moduleid, Int_t eventid)
+void comparePsdPointDataMembers(CbmPsdPoint& test, int32_t trackID, int32_t detID, TVector3 pos, TVector3 mom,
+                                double tof, double length, double eLoss, int32_t moduleid, int32_t eventid)
 {
 
   FairMCPoint test1 = static_cast<FairMCPoint>(test);
   compareFairMCPointDataMembers(test1, trackID, detID, pos, mom, tof, length, eLoss, eventid);
 
-  Int_t retValInt {-222};
+  int32_t retValInt {-222};
 
   retValInt = test.GetModuleID();
   EXPECT_EQ(moduleid, retValInt);
diff --git a/core/data/test/rich/compareRichDigi.h b/core/data/test/rich/compareRichDigi.h
index 4750172e6b..11aa4097cc 100644
--- a/core/data/test/rich/compareRichDigi.h
+++ b/core/data/test/rich/compareRichDigi.h
@@ -7,10 +7,10 @@
 
 #include "gtest/gtest.h"
 
-void compareRichDigiDataMembers(CbmRichDigi& test, Int_t address, ECbmModuleId systemid, Double_t time, Double_t tot)
+void compareRichDigiDataMembers(CbmRichDigi& test, int32_t address, ECbmModuleId systemid, double time, double tot)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
   ECbmModuleId retVal {ECbmModuleId::kNotExist};
 
   retValInt = test.GetAddress();
diff --git a/core/data/test/sts/_GTestCbmStsDigi.cxx b/core/data/test/sts/_GTestCbmStsDigi.cxx
index f4970f32b9..a76bd1a13e 100644
--- a/core/data/test/sts/_GTestCbmStsDigi.cxx
+++ b/core/data/test/sts/_GTestCbmStsDigi.cxx
@@ -12,7 +12,7 @@
 #include "gtest/gtest-spi.h"
 #include "gtest/gtest.h"
 
-static const Int_t kTestAddress = CbmStsAddress::GetAddress(5, 6, 1, 8, 0, 0, 1);
+static const int32_t kTestAddress = CbmStsAddress::GetAddress(5, 6, 1, 8, 0, 0, 1);
 
 
 TEST(_GTestCbmStsDigi, CheckDefaultConstructor)
@@ -20,7 +20,7 @@ TEST(_GTestCbmStsDigi, CheckDefaultConstructor)
   // Create object
   CbmStsDigi test;
 
-  const Int_t defaultAddr = CbmStsAddress::GetAddress(0, 0, 0, 0, 0, 0, 1);
+  const int32_t defaultAddr = CbmStsAddress::GetAddress(0, 0, 0, 0, 0, 0, 1);
 
   compareStsDigiDataMembers(test, defaultAddr, 0, 0, ECbmModuleId::kSts, 0);
 
diff --git a/core/data/test/sts/compareStsDigi.h b/core/data/test/sts/compareStsDigi.h
index 4c19f74d15..d7b1240527 100644
--- a/core/data/test/sts/compareStsDigi.h
+++ b/core/data/test/sts/compareStsDigi.h
@@ -7,18 +7,18 @@
 
 #include "gtest/gtest.h"
 
-void compareStsDigiDataMembers(CbmStsDigi& test, Int_t address, UShort_t charge, UShort_t channel,
-                               ECbmModuleId systemid, Long64_t time)
+void compareStsDigiDataMembers(CbmStsDigi& test, int32_t address, uint16_t charge, uint16_t channel,
+                               ECbmModuleId systemid, int64_t time)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
   ECbmModuleId retVal {ECbmModuleId::kNotExist};
 
   retValInt = test.GetAddress();
   EXPECT_EQ(address, retValInt);
 
   retValDouble = test.GetCharge();
-  EXPECT_FLOAT_EQ(static_cast<Double_t>(charge), retValDouble);
+  EXPECT_FLOAT_EQ(static_cast<double>(charge), retValDouble);
 
   retValInt = test.GetChannel();
   EXPECT_EQ(channel, retValInt);
@@ -27,7 +27,7 @@ void compareStsDigiDataMembers(CbmStsDigi& test, Int_t address, UShort_t charge,
   EXPECT_EQ(systemid, retVal);
 
   retValDouble = test.GetTime();
-  EXPECT_FLOAT_EQ(static_cast<Double_t>(time), retValDouble);
+  EXPECT_FLOAT_EQ(static_cast<double>(time), retValDouble);
 }
 
 #endif  // COMPARESTSDIGI_H
diff --git a/core/data/test/tof/compareTofDigi.h b/core/data/test/tof/compareTofDigi.h
index f114843ad5..987614f2fc 100644
--- a/core/data/test/tof/compareTofDigi.h
+++ b/core/data/test/tof/compareTofDigi.h
@@ -7,10 +7,10 @@
 
 #include "gtest/gtest.h"
 
-void compareTofDigiDataMembers(CbmTofDigi& test, Int_t address, ECbmModuleId systemid, Double_t time, Double_t tot)
+void compareTofDigiDataMembers(CbmTofDigi& test, int32_t address, ECbmModuleId systemid, double time, double tot)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
   ECbmModuleId retVal {ECbmModuleId::kNotExist};
 
   retValInt = test.GetAddress();
diff --git a/core/data/test/trd/_GTestCbmTrdDetectorId.cxx b/core/data/test/trd/_GTestCbmTrdDetectorId.cxx
index bc78f37838..7a1e8cb3dd 100644
--- a/core/data/test/trd/_GTestCbmTrdDetectorId.cxx
+++ b/core/data/test/trd/_GTestCbmTrdDetectorId.cxx
@@ -45,23 +45,23 @@ class CbmTrdAddressTest : public _TestCbmTrdAddressBase<testing::Test> {
 
 TEST_F(CbmTrdAddressTest, CheckDefaultSettings)
 {
-  Int_t layerid          = 0;
-  Int_t moduleid         = 0;
-  Int_t sectorid         = 0;
-  Int_t rowid            = 0;
-  Int_t columnid         = 0;
-  Int_t detInfo_array[5] = {layerid, moduleid, sectorid, rowid, columnid};
-
-  Int_t retVal = fTrdId.GetAddress(layerid, moduleid, sectorid, rowid, columnid);
+  int32_t layerid          = 0;
+  int32_t moduleid         = 0;
+  int32_t sectorid         = 0;
+  int32_t rowid            = 0;
+  int32_t columnid         = 0;
+  int32_t detInfo_array[5] = {layerid, moduleid, sectorid, rowid, columnid};
+
+  int32_t retVal = fTrdId.GetAddress(layerid, moduleid, sectorid, rowid, columnid);
   EXPECT_EQ(0, retVal);
 }
 
 // This is the derived class for the parameterized test cases.
 class CbmTrdAddressParamTest : public _TestCbmTrdAddressBase<testing::TestWithParam<InOutStructure>> {
 protected:
-  Int_t detInfo_array[5];
-  Int_t modInfo_array[5];
-  Int_t result;
+  int32_t detInfo_array[5];
+  int32_t modInfo_array[5];
+  int32_t result;
 
   virtual void SetUp()
   {
@@ -86,22 +86,22 @@ protected:
 
 TEST_P(CbmTrdAddressParamTest, checkUniqueIdCreation)
 {
-  Int_t uniqueId =
+  int32_t uniqueId =
     fTrdId.GetAddress(detInfo_array[0], detInfo_array[1], detInfo_array[2], detInfo_array[3], detInfo_array[4]);
   EXPECT_EQ(result, uniqueId);
 
-  Int_t systemId = fTrdId.GetSystemId(uniqueId);
+  int32_t systemId = fTrdId.GetSystemId(uniqueId);
   EXPECT_EQ(kTrd, systemId);
 
   /*
-  Int_t sectorNr = fTrdId.GetSector(uniqueId);
+  int32_t sectorNr = fTrdId.GetSector(uniqueId);
   EXPECT_EQ(detInfo_array[5], sectorNr);
 
-  Int_t modId = fTrdId.SetDetectorInfo(modInfo_array);
-  Int_t newUniqueId = fTrdId.SetSector(modId, detInfo_array[5]);
+  int32_t modId = fTrdId.SetDetectorInfo(modInfo_array);
+  int32_t newUniqueId = fTrdId.SetSector(modId, detInfo_array[5]);
   EXPECT_EQ(result, newUniqueId);
 
-  Int_t newModId = fTrdId.GetModuleId(newUniqueId);
+  int32_t newModId = fTrdId.GetModuleId(newUniqueId);
   EXPECT_EQ(modId, newModId);
 */
 }
@@ -132,9 +132,9 @@ class CbmTrdAddressParamTest1 : public _TestCbmTrdAddressBase<
   testing::TestWithParam<InOutStructure> >
 {
  protected:  
-  Int_t detInfo_array[5];
-  Int_t result_array[5];
-  Int_t uniqueId;
+  int32_t detInfo_array[5];
+  int32_t result_array[5];
+  int32_t uniqueId;
 
   virtual void SetUp() {
     InOutStructure const& p = GetParam();
@@ -150,7 +150,7 @@ class CbmTrdAddressParamTest1 : public _TestCbmTrdAddressBase<
 
 TEST_P(CbmTrdAddressParamTest1, checkExtractInfoFromUniqueId)
 {
-  Int_t* retVal = fTrdId.GetAddress(uniqueId);
+  int32_t* retVal = fTrdId.GetAddress(uniqueId);
   for ( int i=0;i<5;i++) {
     EXPECT_EQ(result_array[i], retVal[i]);
   }
diff --git a/core/data/test/trd/_GTestCbmTrdDetectorId_simple.cxx b/core/data/test/trd/_GTestCbmTrdDetectorId_simple.cxx
index b2bbb2a7a5..9dd04fddf9 100644
--- a/core/data/test/trd/_GTestCbmTrdDetectorId_simple.cxx
+++ b/core/data/test/trd/_GTestCbmTrdDetectorId_simple.cxx
@@ -12,14 +12,14 @@ TEST(CbmTrdDetectorIdTest, CheckDefaultSettings)
 {
   CbmTrdDetectorId fTrdId;
 
-  Int_t system           = 0;
-  Int_t station          = 0;
-  Int_t layer            = 0;
-  Int_t moduleType       = 0;
-  Int_t moduleNr         = 0;
-  Int_t sector           = 0;
-  Int_t detInfo_array[6] = {system, station, layer, moduleType, moduleNr, sector};
+  int32_t system           = 0;
+  int32_t station          = 0;
+  int32_t layer            = 0;
+  int32_t moduleType       = 0;
+  int32_t moduleNr         = 0;
+  int32_t sector           = 0;
+  int32_t detInfo_array[6] = {system, station, layer, moduleType, moduleNr, sector};
 
-  Int_t retVal = fTrdId.SetDetectorInfo(detInfo_array);
+  int32_t retVal = fTrdId.SetDetectorInfo(detInfo_array);
   EXPECT_EQ(0, retVal);
 }
diff --git a/core/data/test/trd/_GTestCbmTrdDetectorId_simple1.cxx b/core/data/test/trd/_GTestCbmTrdDetectorId_simple1.cxx
index befc634811..0e023bc4d9 100644
--- a/core/data/test/trd/_GTestCbmTrdDetectorId_simple1.cxx
+++ b/core/data/test/trd/_GTestCbmTrdDetectorId_simple1.cxx
@@ -12,15 +12,15 @@ TEST(CbmTrdDetectorIdTest, CheckDefaultSettings)
 {
   CbmTrdDetectorId fTrdId;
 
-  Int_t system           = 0;
-  Int_t station          = 0;
-  Int_t layer            = 0;
-  Int_t moduleType       = 0;
-  Int_t moduleNr         = 0;
-  Int_t sector           = 0;
-  Int_t detInfo_array[6] = {system, station, layer, moduleType, moduleNr, sector};
-
-  Int_t retVal = fTrdId.SetDetectorInfo(detInfo_array);
+  int32_t system           = 0;
+  int32_t station          = 0;
+  int32_t layer            = 0;
+  int32_t moduleType       = 0;
+  int32_t moduleNr         = 0;
+  int32_t sector           = 0;
+  int32_t detInfo_array[6] = {system, station, layer, moduleType, moduleNr, sector};
+
+  int32_t retVal = fTrdId.SetDetectorInfo(detInfo_array);
   EXPECT_EQ(0, retVal);
 
   detInfo_array[0] = kTRD;
diff --git a/core/data/test/trd/_GTestCbmTrdDetectorId_simple2.cxx b/core/data/test/trd/_GTestCbmTrdDetectorId_simple2.cxx
index ae712a3966..f9047befc3 100644
--- a/core/data/test/trd/_GTestCbmTrdDetectorId_simple2.cxx
+++ b/core/data/test/trd/_GTestCbmTrdDetectorId_simple2.cxx
@@ -11,20 +11,20 @@
 class CbmTrdDetectorIdTest : public ::testing::Test {
 protected:
   CbmTrdDetectorId fTrdId;
-  Int_t system;
-  Int_t station;
-  Int_t layer;
-  Int_t moduleType;
-  Int_t moduleNr;
-  Int_t sector;
-  Int_t detInfo_array[6];
-  Int_t retVal;
+  int32_t system;
+  int32_t station;
+  int32_t layer;
+  int32_t moduleType;
+  int32_t moduleNr;
+  int32_t sector;
+  int32_t detInfo_array[6];
+  int32_t retVal;
 
   virtual void SetUp() {}
 
   virtual void TearDown() {}
 
-  void FillDetArray(Int_t sys, Int_t stat, Int_t lay, Int_t type, Int_t copy, Int_t sect)
+  void FillDetArray(int32_t sys, int32_t stat, int32_t lay, int32_t type, int32_t copy, int32_t sect)
   {
     detInfo_array[0] = sys;
     detInfo_array[1] = stat;
diff --git a/core/data/test/trd/_GTestCbmTrdDetectorId_simple3.cxx b/core/data/test/trd/_GTestCbmTrdDetectorId_simple3.cxx
index 4e5f1dd24c..53d315681d 100644
--- a/core/data/test/trd/_GTestCbmTrdDetectorId_simple3.cxx
+++ b/core/data/test/trd/_GTestCbmTrdDetectorId_simple3.cxx
@@ -24,9 +24,9 @@ struct InOutStructure {
 class CbmTrdDetectorIdParamTest : public ::testing::TestWithParam<InOutStructure> {
 protected:
   CbmTrdDetectorId fTrdId;
-  Int_t detInfo_array[6];
-  Int_t result;
-  Int_t uniqueId;
+  int32_t detInfo_array[6];
+  int32_t result;
+  int32_t uniqueId;
 
   virtual void SetUp()
   {
diff --git a/core/data/test/trd/_GTestCbmTrdDigi.cxx b/core/data/test/trd/_GTestCbmTrdDigi.cxx
index 19ca86d9c6..be8b298591 100644
--- a/core/data/test/trd/_GTestCbmTrdDigi.cxx
+++ b/core/data/test/trd/_GTestCbmTrdDigi.cxx
@@ -23,11 +23,11 @@ TEST(_GTestCbmTrdDigi, CheckStandardConstructor)
 {
   // Create object
   // This creates a Spadic standard digi, fasp test to be added here
-  Int_t padChNr        = 42;
-  Int_t uniqueModuleId = (Int_t) ECbmModuleId::kTrd;  // Unique ModuleId of first module
-  Double_t charge      = 42.42;
-  ULong64_t digiTime   = 42001;
-  Int_t errClass       = 0;
+  int32_t padChNr        = 42;
+  int32_t uniqueModuleId = (int32_t) ECbmModuleId::kTrd;  // Unique ModuleId of first module
+  double charge          = 42.42;
+  uint64_t digiTime      = 42001;
+  int32_t errClass       = 0;
   CbmTrdDigi test(padChNr, uniqueModuleId, charge, digiTime, CbmTrdDigi::eTriggerType::kSelf, errClass);
   compareTrdDigiDataMembers(test, padChNr, ECbmModuleId::kTrd, digiTime, CbmTrdDigi::eTriggerType::kSelf, charge);
 
diff --git a/core/data/test/trd/_GTestCbmTrdHit.cxx b/core/data/test/trd/_GTestCbmTrdHit.cxx
index a3f7c9c6a8..362c480232 100644
--- a/core/data/test/trd/_GTestCbmTrdHit.cxx
+++ b/core/data/test/trd/_GTestCbmTrdHit.cxx
@@ -22,12 +22,12 @@ TEST(_GTestCbmTrdHit, CheckDefaultConstructor)
 
 TEST(_GTestCbmTrdHit, CheckStandardConstructor)
 {
-  Int_t address {12345};
+  int32_t address {12345};
   TVector3 pos {-3., 5.777, 123.765};
   TVector3 error {0.77, 0.88, 0.99};
-  Double_t dxy {1.2};
-  Int_t refId {6};
-  Double_t eloss {123.};
+  double dxy {1.2};
+  int32_t refId {6};
+  double eloss {123.};
 
   // Create object
   CbmTrdHit test(address, pos, error, dxy, refId, eloss);
@@ -44,14 +44,14 @@ TEST(_GTestCbmTrdHit, CheckStandardConstructor)
 
 TEST(_GTestCbmTrdHit, CheckStandardConstructorWithTime)
 {
-  Int_t address {12345};
+  int32_t address {12345};
   TVector3 pos {-3., 5.777, 123.765};
   TVector3 error {0.77, 0.88, 0.99};
-  Double_t dxy {1.2};
-  Int_t refId {6};
-  Double_t eloss {123.};
-  Double_t time {456.};
-  Double_t timeError {1.34};
+  double dxy {1.2};
+  int32_t refId {6};
+  double eloss {123.};
+  double time {456.};
+  double timeError {1.34};
   // Create object
   CbmTrdHit test(address, pos, error, dxy, refId, eloss, time, timeError);
 
@@ -110,14 +110,14 @@ TEST(_GTestCbmTrdHit, CheckSetEloss)
 
 TEST(_GTestCbmTrdHit, CheckToString)
 {
-  Int_t address {12345};
+  int32_t address {12345};
   TVector3 pos {-3., 5.777, 123.765};
   TVector3 error {0.77, 0.88, 0.99};
-  Double_t dxy {1.2};
-  Int_t refId {6};
-  Double_t eloss {123.};
-  Double_t time {456.};
-  Double_t timeError {1.34};
+  double dxy {1.2};
+  int32_t refId {6};
+  double eloss {123.};
+  double time {456.};
+  double timeError {1.34};
   // Create object
   CbmTrdHit test(address, pos, error, dxy, refId, eloss, time, timeError);
 
diff --git a/core/data/test/trd/_GTestCbmTrdPoint.cxx b/core/data/test/trd/_GTestCbmTrdPoint.cxx
index 2d66ba6389..7659810087 100644
--- a/core/data/test/trd/_GTestCbmTrdPoint.cxx
+++ b/core/data/test/trd/_GTestCbmTrdPoint.cxx
@@ -24,16 +24,16 @@ TEST(_GTestCbmTrdPoint, CheckDefaultConstructor)
 
 TEST(_GTestCbmTrdPoint, CheckStandardConstructor)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 posin {-2.1, 6.1, 23.};
   TVector3 momin {2.5, 4.5, 78.};
   TVector3 posout {2.1, -6.1, -23.};
   TVector3 momout {-2.5, -4.5, -78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
   // Create object
   CbmTrdPoint test(trackid, detid, posin, momin, posout, momout, tof, length, eloss);
 
@@ -46,16 +46,16 @@ TEST(_GTestCbmTrdPoint, CheckStandardConstructor)
 
 TEST(_GTestCbmTrdPoint, CheckCopyConstructor)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 posin {-2.1, 6.1, 23.};
   TVector3 momin {2.5, 4.5, 78.};
   TVector3 posout {2.1, -6.1, -23.};
   TVector3 momout {-2.5, -4.5, -78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
   // Create object
   CbmTrdPoint test(trackid, detid, posin, momin, posout, momout, tof, length, eloss);
 
@@ -74,16 +74,16 @@ TEST(_GTestCbmTrdPoint, CheckCopyConstructor)
 
 TEST(_GTestCbmTrdPoint, CheckCopyAssignmentOperator)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 posin {-2.1, 6.1, 23.};
   TVector3 momin {2.5, 4.5, 78.};
   TVector3 posout {2.1, -6.1, -23.};
   TVector3 momout {-2.5, -4.5, -78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
   // Create object
   CbmTrdPoint test(trackid, detid, posin, momin, posout, momout, tof, length, eloss);
 
@@ -103,16 +103,16 @@ TEST(_GTestCbmTrdPoint, CheckCopyAssignmentOperator)
 
 TEST(_GTestCbmTrdPoint, CheckMoveConstructor)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 posin {-2.1, 6.1, 23.};
   TVector3 momin {2.5, 4.5, 78.};
   TVector3 posout {2.1, -6.1, -23.};
   TVector3 momout {-2.5, -4.5, -78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
   // Create object
   CbmTrdPoint test(trackid, detid, posin, momin, posout, momout, tof, length, eloss);
 
@@ -132,16 +132,16 @@ TEST(_GTestCbmTrdPoint, CheckMoveConstructor)
 
 TEST(_GTestCbmTrdPoint, CheckAssignmentOperator)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 posin {-2.1, 6.1, 23.};
   TVector3 momin {2.5, 4.5, 78.};
   TVector3 posout {2.1, -6.1, -23.};
   TVector3 momout {-2.5, -4.5, -78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
   // Create object
   CbmTrdPoint test(trackid, detid, posin, momin, posout, momout, tof, length, eloss);
 
@@ -162,16 +162,16 @@ TEST(_GTestCbmTrdPoint, CheckAssignmentOperator)
 
 TEST(_GTestCbmTrdPoint, CheckPrint)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 posin {-2.1, 6.1, 23.};
   TVector3 momin {2.5, 4.5, 78.};
   TVector3 posout {2.1, -6.1, -23.};
   TVector3 momout {-2.5, -4.5, -78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
   // Create object
   CbmTrdPoint test(trackid, detid, posin, momin, posout, momout, tof, length, eloss);
 
@@ -192,16 +192,16 @@ TEST(_GTestCbmTrdPoint, CheckPrint)
 
 TEST(_GTestCbmTrdPoint, CheckPositionOut)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 posin {-2.1, 6.1, 23.};
   TVector3 momin {2.5, 4.5, 78.};
   TVector3 posout {2.1, -6.1, -23.};
   TVector3 momout {-2.5, -4.5, -78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
   // Create object
   CbmTrdPoint test(trackid, detid, posin, momin, posout, momout, tof, length, eloss);
 
@@ -219,16 +219,16 @@ TEST(_GTestCbmTrdPoint, CheckPositionOut)
 
 TEST(_GTestCbmTrdPoint, CheckMomentumOut)
 {
-  Int_t trackid {34};
-  Int_t detid {45};
+  int32_t trackid {34};
+  int32_t detid {45};
   TVector3 posin {-2.1, 6.1, 23.};
   TVector3 momin {2.5, 4.5, 78.};
   TVector3 posout {2.1, -6.1, -23.};
   TVector3 momout {-2.5, -4.5, -78.};
-  Double_t tof {34.56};
-  Double_t length {1.2};
-  Double_t eloss {0.4567};
-  Int_t eventid {0};
+  double tof {34.56};
+  double length {1.2};
+  double eloss {0.4567};
+  int32_t eventid {0};
   // Create object
   CbmTrdPoint test(trackid, detid, posin, momin, posout, momout, tof, length, eloss);
 
diff --git a/core/data/test/trd/compareTrdDigi.h b/core/data/test/trd/compareTrdDigi.h
index d1bddf259f..b6f9dfa79f 100644
--- a/core/data/test/trd/compareTrdDigi.h
+++ b/core/data/test/trd/compareTrdDigi.h
@@ -7,17 +7,17 @@
 
 #include "gtest/gtest.h"
 
-void compareTrdDigiDataMembers(CbmTrdDigi& test, Int_t padChNr, ECbmModuleId systemid, ULong64_t time, Double_t charge)
+void compareTrdDigiDataMembers(CbmTrdDigi& test, int32_t padChNr, ECbmModuleId systemid, uint64_t time, double charge)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
   ECbmModuleId retVal {ECbmModuleId::kNotExist};
 
   retValInt = test.GetAddressChannel();
   EXPECT_EQ(padChNr, retValInt);
 
   retValInt = test.GetAddressModule();
-  EXPECT_EQ((Int_t) systemid, retValInt);
+  EXPECT_EQ((int32_t) systemid, retValInt);
 
   // GetAddress() returns the full Address part of the fInfo data member. However, since Module-5 translated via CbmTrdAddress corresponds to the value 0 it should return the setted channel number.
   retValInt = test.GetAddress();
@@ -27,24 +27,24 @@ void compareTrdDigiDataMembers(CbmTrdDigi& test, Int_t padChNr, ECbmModuleId sys
   EXPECT_EQ(systemid, retVal);
 
   retValDouble = test.GetTime();
-  EXPECT_FLOAT_EQ(static_cast<Double_t>(time), retValDouble);
+  EXPECT_FLOAT_EQ(static_cast<double>(time), retValDouble);
 
   retValDouble = test.GetCharge();
-  EXPECT_FLOAT_EQ(static_cast<Double_t>(charge), retValDouble);
+  EXPECT_FLOAT_EQ(static_cast<double>(charge), retValDouble);
 }
 
-void compareTrdDigiDataMembers(CbmTrdDigi& test, Int_t padChNr, ECbmModuleId systemid, ULong64_t time,
-                               CbmTrdDigi::eTriggerType triggerType, Double_t charge)
+void compareTrdDigiDataMembers(CbmTrdDigi& test, int32_t padChNr, ECbmModuleId systemid, uint64_t time,
+                               CbmTrdDigi::eTriggerType triggerType, double charge)
 {
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
   ECbmModuleId retVal {ECbmModuleId::kNotExist};
 
   retValInt = test.GetAddressChannel();
   EXPECT_EQ(padChNr, retValInt);
 
   retValInt = test.GetAddressModule();
-  EXPECT_EQ((Int_t) systemid, retValInt);
+  EXPECT_EQ((int32_t) systemid, retValInt);
 
   // GetAddress() returns the full Address part of the fInfo data member. However, since Module-5 translated via CbmTrdAddress corresponds to the value 0 it should return the setted channel number.
   retValInt = test.GetAddress();
@@ -54,13 +54,13 @@ void compareTrdDigiDataMembers(CbmTrdDigi& test, Int_t padChNr, ECbmModuleId sys
   EXPECT_EQ(systemid, retVal);
 
   retValDouble = test.GetTime();
-  EXPECT_FLOAT_EQ(static_cast<Double_t>(time), retValDouble);
+  EXPECT_FLOAT_EQ(static_cast<double>(time), retValDouble);
 
   retValDouble = test.GetCharge();
-  EXPECT_FLOAT_EQ(static_cast<Double_t>(charge), retValDouble);
+  EXPECT_FLOAT_EQ(static_cast<double>(charge), retValDouble);
 
   retValInt = test.GetTriggerType();
-  EXPECT_EQ(static_cast<Int_t>(triggerType), retValInt);
+  EXPECT_EQ(static_cast<int32_t>(triggerType), retValInt);
 }
 
 #endif  // COMPARETRDDIGI_H
diff --git a/core/data/test/trd/compareTrdHit.h b/core/data/test/trd/compareTrdHit.h
index e0cfbdbca9..ef858e02b2 100644
--- a/core/data/test/trd/compareTrdHit.h
+++ b/core/data/test/trd/compareTrdHit.h
@@ -8,16 +8,16 @@
 #include "comparePixelHit.h"
 #include "gtest/gtest.h"
 
-void compareTrdHitDataMembers(CbmTrdHit& test, HitType type, Double_t z, Double_t dz, Int_t refid, Int_t address,
-                              CbmMatch* match, Double_t time, Double_t errortime, Double_t x, Double_t dx, Double_t y,
-                              Double_t dy, Double_t dxy, UChar_t define, Double_t eloss)
+void compareTrdHitDataMembers(CbmTrdHit& test, HitType type, double z, double dz, int32_t refid, int32_t address,
+                              CbmMatch* match, double time, double errortime, double x, double dx, double y, double dy,
+                              double dxy, uint8_t define, double eloss)
 {
 
   CbmPixelHit phit = static_cast<CbmPixelHit>(test);
   comparePixelHitDataMembers(phit, type, z, dz, refid, address, match, time, errortime, x, dx, y, dy, dxy);
 
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
 
   retValDouble = test.GetELoss();
   EXPECT_FLOAT_EQ(eloss, retValDouble);
diff --git a/core/data/test/trd/compareTrdPoint.h b/core/data/test/trd/compareTrdPoint.h
index 640f8295eb..068f9b11c2 100644
--- a/core/data/test/trd/compareTrdPoint.h
+++ b/core/data/test/trd/compareTrdPoint.h
@@ -8,16 +8,16 @@
 #include "compareFairMCPoint.h"
 #include "gtest/gtest.h"
 
-void compareTrdPointDataMembers(CbmTrdPoint& test, Int_t trackID, Int_t detID, TVector3 posin, TVector3 momin,
-                                TVector3 posout, TVector3 momout, Double_t tof, Double_t length, Double_t eLoss,
-                                Int_t eventid)
+void compareTrdPointDataMembers(CbmTrdPoint& test, int32_t trackID, int32_t detID, TVector3 posin, TVector3 momin,
+                                TVector3 posout, TVector3 momout, double tof, double length, double eLoss,
+                                int32_t eventid)
 {
 
   FairMCPoint test1 = static_cast<FairMCPoint>(test);
   compareFairMCPointDataMembers(test1, trackID, detID, posin, momin, tof, length, eLoss, eventid);
 
-  Int_t retValInt {-222};
-  Double_t retValDouble {-222.};
+  int32_t retValInt {-222};
+  double retValDouble {-222.};
 
   retValInt = test.GetModuleAddress();
   EXPECT_EQ(detID, retValInt);
diff --git a/core/data/tof/CbmTofAddress.cxx b/core/data/tof/CbmTofAddress.cxx
index 7445f32b8f..1af204ebf9 100644
--- a/core/data/tof/CbmTofAddress.cxx
+++ b/core/data/tof/CbmTofAddress.cxx
@@ -14,19 +14,20 @@
 // It seems C++ standard force the initialization to be in cxx/cpp file (outside of class definition)
 // When not trivial constant values => To check if it should apply also to simple values maybe?
 /** Offset in bits for Super Module Id in the address field  **/
-const Int_t CbmTofAddress::fgkSmIdOffset = CbmAddress::fgkSystemBits;
+const int32_t CbmTofAddress::fgkSmIdOffset = CbmAddress::fgkSystemBits;
 /** Offset in bits for Super Module Type in the address field  **/
-const Int_t CbmTofAddress::fgkSmTypeOffset = CbmTofAddress::fgkSmIdBits + CbmTofAddress::fgkSmIdOffset;
+const int32_t CbmTofAddress::fgkSmTypeOffset = CbmTofAddress::fgkSmIdBits + CbmTofAddress::fgkSmIdOffset;
 /** Offset in bits for Rpc Id in the address field  **/
-const Int_t CbmTofAddress::fgkRpcIdOffset = CbmTofAddress::fgkSmTypeBits + CbmTofAddress::fgkSmTypeOffset;
+const int32_t CbmTofAddress::fgkRpcIdOffset = CbmTofAddress::fgkSmTypeBits + CbmTofAddress::fgkSmTypeOffset;
 /** Offset in bits for Channel Side Id in the address field  **/
-const Int_t CbmTofAddress::fgkChannelSideOffset = CbmTofAddress::fgkRpcIdBits + CbmTofAddress::fgkRpcIdOffset;
+const int32_t CbmTofAddress::fgkChannelSideOffset = CbmTofAddress::fgkRpcIdBits + CbmTofAddress::fgkRpcIdOffset;
 /** Offset in bits for Channel Id in the address field  **/
-const Int_t CbmTofAddress::fgkChannelIdOffset = CbmTofAddress::fgkChannelSideBits + CbmTofAddress::fgkChannelSideOffset;
+const int32_t CbmTofAddress::fgkChannelIdOffset =
+  CbmTofAddress::fgkChannelSideBits + CbmTofAddress::fgkChannelSideOffset;
 /** Offset in bits for Rpc Type in the address field  **/
-const Int_t CbmTofAddress::fgkRpcTypeOffset = CbmTofAddress::fgkChannelIdBits + CbmTofAddress::fgkChannelIdOffset;
+const int32_t CbmTofAddress::fgkRpcTypeOffset = CbmTofAddress::fgkChannelIdBits + CbmTofAddress::fgkChannelIdOffset;
 
-const Int_t CbmTofAddress::fgkiModFullIdMask =
+const int32_t CbmTofAddress::fgkiModFullIdMask =
   (((1 << fgkSystemBits) - 1)) + (((1 << fgkSmIdBits) - 1) << fgkSmIdOffset)
   + (((1 << fgkSmTypeBits) - 1) << fgkSmTypeOffset) + (((1 << fgkRpcIdBits) - 1) << fgkRpcIdOffset)
   + (((1 << fgkRpcTypeBits) - 1) << fgkRpcTypeOffset);
diff --git a/core/data/tof/CbmTofAddress.h b/core/data/tof/CbmTofAddress.h
index 9c073c9dcc..7a4d4471b0 100644
--- a/core/data/tof/CbmTofAddress.h
+++ b/core/data/tof/CbmTofAddress.h
@@ -13,7 +13,7 @@
  ** @version 1.0
  **
  ** CbmTofAddress is the class for the concrete interfaces to the
- ** unique address, which is encoded in a 32-bit field (Int_t), for the 
+ ** unique address, which is encoded in a 32-bit field (int32_t), for the 
  ** ToF detector elements.
  ** Difference to CbmTofDetectorId is that this class is adapted to
  ** real data instead of simulated data => no Gap info but instead info
@@ -40,7 +40,7 @@
 #include "CbmTofDetectorId.h"       // for CbmTofDetectorInfo
 #include "CbmTofDetectorId_v12b.h"  // for CbmTofDetectorId_v12b
 
-#include <RtypesCore.h>  // for Int_t, UInt_t, Bool_t, kFALSE, kTRUE
+#include <cstdint>
 
 class CbmTofAddress : public CbmAddress {
 public:
@@ -54,45 +54,45 @@ public:
   /** Number of bits for Super Module Id in the address field
           ** @return Number of bits
           **/
-  static Int_t GetNofSmIdBits() { return fgkSmIdBits; };
+  static int32_t GetNofSmIdBits() { return fgkSmIdBits; };
   /** Number of bits for Super Module Type in the address field
           ** @return Number of bits
           **/
-  static Int_t GetNofSmTypeBits() { return fgkSmTypeBits; };
+  static int32_t GetNofSmTypeBits() { return fgkSmTypeBits; };
   /** Number of bits for Rpc Id in the address field
           ** @return Number of bits
           **/
-  static Int_t GetNofRpcIdBits() { return fgkRpcIdBits; };
+  static int32_t GetNofRpcIdBits() { return fgkRpcIdBits; };
   /** Number of bits for Channel Id in the address field
           ** @return Number of bits
           **/
-  static Int_t GetNofChannelIdBits() { return fgkChannelIdBits; };
+  static int32_t GetNofChannelIdBits() { return fgkChannelIdBits; };
   /** Number of bits for Channel Side in the address field
           ** @return Number of bits
           **/
-  static Int_t GetNofChSideBits() { return fgkChannelSideBits; };
+  static int32_t GetNofChSideBits() { return fgkChannelSideBits; };
 
   /** Maskers **/
   /** Get the Super Module Id from the address
           ** @param address  Unique address
           ** @return  systemId
           **/
-  static Int_t GetSmId(UInt_t address) { return ((address >> fgkSmIdOffset) & ((1 << fgkSmIdBits) - 1)); };
+  static int32_t GetSmId(uint32_t address) { return ((address >> fgkSmIdOffset) & ((1 << fgkSmIdBits) - 1)); };
   /** Get the Super Module Type from the address
           ** @param address  Unique address
           ** @return  systemId
           **/
-  static Int_t GetSmType(UInt_t address) { return ((address >> fgkSmTypeOffset) & ((1 << fgkSmTypeBits) - 1)); };
+  static int32_t GetSmType(uint32_t address) { return ((address >> fgkSmTypeOffset) & ((1 << fgkSmTypeBits) - 1)); };
   /** Get the Rpc Id from the address
           ** @param address  Unique address
           ** @return  systemId
           **/
-  static Int_t GetRpcId(UInt_t address) { return ((address >> fgkRpcIdOffset) & ((1 << fgkRpcIdBits) - 1)); };
+  static int32_t GetRpcId(uint32_t address) { return ((address >> fgkRpcIdOffset) & ((1 << fgkRpcIdBits) - 1)); };
   /** Get the Channel Id from the address
           ** @param address  Unique address
           ** @return  systemId
           **/
-  static Int_t GetChannelId(UInt_t address)
+  static int32_t GetChannelId(uint32_t address)
   {
     return ((address >> fgkChannelIdOffset) & ((1 << fgkChannelIdBits) - 1));
   };
@@ -100,7 +100,7 @@ public:
           ** @param address  Unique address
           ** @return  systemId
           **/
-  static Int_t GetChannelSide(UInt_t address)
+  static int32_t GetChannelSide(uint32_t address)
   {
     return ((address >> fgkChannelSideOffset) & ((1 << fgkChannelSideBits) - 1));
   };
@@ -108,7 +108,7 @@ public:
           ** @param address  Unique address
           ** @return  systemId
           **/
-  static Int_t GetModFullId(UInt_t address) { return (address & fgkiModFullIdMask); };
+  static int32_t GetModFullId(uint32_t address) { return (address & fgkiModFullIdMask); };
 
   /** Builder **/
   /** Get the unique address from all parameters
@@ -119,24 +119,24 @@ public:
           ** @param[in] Sm Type Super Module Type (optional).
           ** @return  address
           **/
-  static UInt_t GetUniqueAddress(UInt_t Sm, UInt_t Rpc, UInt_t Channel, UInt_t Side = 0, UInt_t SmType = 0,
-                                 UInt_t RpcType = 0)
+  static uint32_t GetUniqueAddress(uint32_t Sm, uint32_t Rpc, uint32_t Channel, uint32_t Side = 0, uint32_t SmType = 0,
+                                   uint32_t RpcType = 0)
   {
-    return (UInt_t)(((ToIntegralType(ECbmModuleId::kTof) & ((1 << fgkSystemBits) - 1)))
-                    + ((Sm & ((1 << fgkSmIdBits) - 1)) << fgkSmIdOffset)
-                    + ((SmType & ((1 << fgkSmTypeBits) - 1)) << fgkSmTypeOffset)
-                    + ((Side & ((1 << fgkChannelSideBits) - 1)) << fgkChannelSideOffset)
-                    + ((Rpc & ((1 << fgkRpcIdBits) - 1)) << fgkRpcIdOffset)
-                    + ((Channel & ((1 << fgkChannelIdBits) - 1)) << fgkChannelIdOffset)
-                    + ((RpcType & ((1 << fgkRpcTypeBits) - 1)) << fgkRpcTypeOffset));
+    return (uint32_t)(((ToIntegralType(ECbmModuleId::kTof) & ((1 << fgkSystemBits) - 1)))
+                      + ((Sm & ((1 << fgkSmIdBits) - 1)) << fgkSmIdOffset)
+                      + ((SmType & ((1 << fgkSmTypeBits) - 1)) << fgkSmTypeOffset)
+                      + ((Side & ((1 << fgkChannelSideBits) - 1)) << fgkChannelSideOffset)
+                      + ((Rpc & ((1 << fgkRpcIdBits) - 1)) << fgkRpcIdOffset)
+                      + ((Channel & ((1 << fgkChannelIdBits) - 1)) << fgkChannelIdOffset)
+                      + ((RpcType & ((1 << fgkRpcTypeBits) - 1)) << fgkRpcTypeOffset));
   };
 
-  static Bool_t SameModule(UInt_t addressA, UInt_t addressB)
+  static bool SameModule(uint32_t addressA, uint32_t addressB)
   {
-    return (GetModFullId(addressA) == GetModFullId(addressB)) ? kTRUE : kFALSE;
+    return (GetModFullId(addressA) == GetModFullId(addressB)) ? true : false;
   };
 
-  static UInt_t ConvertCbmTofDetectorInfo(CbmTofDetectorInfo infoInput)
+  static uint32_t ConvertCbmTofDetectorInfo(CbmTofDetectorInfo infoInput)
   {
     // For now assume that the system ID will always be correct
     // Otherwise would need including CbmDetectorList.h
@@ -146,7 +146,7 @@ public:
     return GetUniqueAddress(infoInput.fSModule, infoInput.fCounter, infoInput.fCell, 0, infoInput.fSMtype,
                             infoInput.fCounterType);
   };
-  static UInt_t ConvertCbmTofDetectorId(Int_t detIdInput)
+  static uint32_t ConvertCbmTofDetectorId(int32_t detIdInput)
   {
     // For now assume that the system ID will always be correct
     // Otherwise would need including CbmDetectorList.h
@@ -168,31 +168,31 @@ private:
   // v14a
   /*
   // Number of bits for Super Module Id in the address field
-  static const Int_t fgkSmIdBits = 8;
+  static const int32_t fgkSmIdBits = 8;
   // Number of bits for Super Module Type in the address field
-  static const Int_t fgkSmTypeBits = 4;
+  static const int32_t fgkSmTypeBits = 4;
   // Number of bits for Rpc Id in the address field
-  static const Int_t fgkRpcIdBits = 7;
+  static const int32_t fgkRpcIdBits = 7;
   // Number of bits for Channel Side in the address field
-  static const Int_t fgkChannelSideBits = 1;
+  static const int32_t fgkChannelSideBits = 1;
   // Number of bits for Channel Id in the address field
-  static const Int_t fgkChannelIdBits = 8;
+  static const int32_t fgkChannelIdBits = 8;
   // Number of bits for Rpc Type in the address field
-  static const Int_t fgkRpcTypeBits = 0;
+  static const int32_t fgkRpcTypeBits = 0;
   */
   // v21a
   // Number of bits for Super Module Id in the address field
-  static const Int_t fgkSmIdBits = 7;
+  static const int32_t fgkSmIdBits = 7;
   // Number of bits for Super Module Type in the address field
-  static const Int_t fgkSmTypeBits = 4;
+  static const int32_t fgkSmTypeBits = 4;
   // Number of bits for Rpc Id in the address field
-  static const Int_t fgkRpcIdBits = 6;
+  static const int32_t fgkRpcIdBits = 6;
   // Number of bits for Channel Side in the address field
-  static const Int_t fgkChannelSideBits = 1;
+  static const int32_t fgkChannelSideBits = 1;
   // Number of bits for Channel Id in the address field
-  static const Int_t fgkChannelIdBits = 6;
+  static const int32_t fgkChannelIdBits = 6;
   // Number of bits for Rpc Type in the address field
-  static const Int_t fgkRpcTypeBits = 4;
+  static const int32_t fgkRpcTypeBits = 4;
   /**
        ** To adapt the address sub-fields repartition in order,
        ** you just need to change the way the offset are calculated.
@@ -200,22 +200,22 @@ private:
 
   /** Sub-fields offsets in bits **/
   /** Offset in bits for Super Module Id in the address field  **/
-  static const Int_t fgkSmIdOffset;
+  static const int32_t fgkSmIdOffset;
   /** Offset in bits for Super Module Type in the address field  **/
-  static const Int_t fgkSmTypeOffset;
+  static const int32_t fgkSmTypeOffset;
   /** Offset in bits for Channel Side Id in the address field  **/
-  static const Int_t fgkChannelSideOffset;
+  static const int32_t fgkChannelSideOffset;
   /** Offset in bits for Rpc Id in the address field  **/
-  static const Int_t fgkRpcIdOffset;
+  static const int32_t fgkRpcIdOffset;
   /** Offset in bits for Channel Id in the address field  **/
-  static const Int_t fgkChannelIdOffset;
+  static const int32_t fgkChannelIdOffset;
   /** Offset in bits for Channel Id in the address field  **/
-  static const Int_t fgkRpcTypeOffset;
+  static const int32_t fgkRpcTypeOffset;
 
   /**
        ** For the module Full Id determination
        **/
-  static const Int_t fgkiModFullIdMask;
+  static const int32_t fgkiModFullIdMask;
 };
 
 #endif  // CBMTOFADDRESS_H
diff --git a/core/data/tof/CbmTofDetectorId.h b/core/data/tof/CbmTofDetectorId.h
index 5a6c4771d9..4932744244 100644
--- a/core/data/tof/CbmTofDetectorId.h
+++ b/core/data/tof/CbmTofDetectorId.h
@@ -19,7 +19,7 @@
 
 #include "CbmDefs.h"
 
-#include <RtypesCore.h>  // for Int_t
+#include <cstdint>
 
 class CbmTofDetectorInfo {
 
@@ -33,7 +33,7 @@ public:
     , fCell(0)
     , fCounterType(0) {};
 
-  CbmTofDetectorInfo(Int_t detsystem, Int_t smtype, Int_t smodule, Int_t counter, Int_t gap, Int_t cell)
+  CbmTofDetectorInfo(int32_t detsystem, int32_t smtype, int32_t smodule, int32_t counter, int32_t gap, int32_t cell)
     : fDetectorSystem(detsystem)
     , fSMtype(smtype)
     , fSModule(smodule)
@@ -42,7 +42,8 @@ public:
     , fCell(cell)
     , fCounterType(0) {};
 
-  CbmTofDetectorInfo(ECbmModuleId detsystem, Int_t smtype, Int_t smodule, Int_t counter, Int_t gap, Int_t cell)
+  CbmTofDetectorInfo(ECbmModuleId detsystem, int32_t smtype, int32_t smodule, int32_t counter, int32_t gap,
+                     int32_t cell)
     : fDetectorSystem(ToIntegralType(detsystem))
     , fSMtype(smtype)
     , fSModule(smodule)
@@ -51,8 +52,8 @@ public:
     , fCell(cell)
     , fCounterType(0) {};
 
-  CbmTofDetectorInfo(ECbmModuleId detsystem, Int_t smtype, Int_t smodule, Int_t counter, Int_t gap, Int_t cell,
-                     Int_t counterType)
+  CbmTofDetectorInfo(ECbmModuleId detsystem, int32_t smtype, int32_t smodule, int32_t counter, int32_t gap,
+                     int32_t cell, int32_t counterType)
     : fDetectorSystem(ToIntegralType(detsystem))
     , fSMtype(smtype)
     , fSModule(smodule)
@@ -61,13 +62,13 @@ public:
     , fCell(cell)
     , fCounterType(counterType) {};
 
-  Int_t fDetectorSystem;
-  Int_t fSMtype;
-  Int_t fSModule;
-  Int_t fCounter;
-  Int_t fGap;
-  Int_t fCell;
-  Int_t fCounterType;
+  int32_t fDetectorSystem;
+  int32_t fSMtype;
+  int32_t fSModule;
+  int32_t fCounter;
+  int32_t fGap;
+  int32_t fCell;
+  int32_t fCounterType;
 };
 
 
@@ -82,43 +83,43 @@ public:
   virtual ~CbmTofDetectorId() { ; }
 
   /** Get System identifier from detector ID **/
-  //  Int_t GetSystemId(const Int_t detectorId);
+  //  int32_t GetSystemId(const int32_t detectorId);
 
   /** Get complete system info from detector ID
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  virtual CbmTofDetectorInfo GetDetectorInfo(const Int_t detectorId) = 0;
+  virtual CbmTofDetectorInfo GetDetectorInfo(const int32_t detectorId) = 0;
 
   /** Get the global sytem ID **/
-  virtual Int_t GetSystemId(Int_t detectorId) = 0;
+  virtual int32_t GetSystemId(int32_t detectorId) = 0;
 
   /** Get SMType from detector ID **/
-  virtual Int_t GetSMType(const Int_t detectorId) = 0;
+  virtual int32_t GetSMType(const int32_t detectorId) = 0;
 
   /** Get SModule number from detector ID **/
-  virtual Int_t GetSModule(const Int_t detectorId) = 0;
+  virtual int32_t GetSModule(const int32_t detectorId) = 0;
 
   /** Get counter number from detector ID **/
-  virtual Int_t GetCounter(const Int_t detectorId) = 0;
+  virtual int32_t GetCounter(const int32_t detectorId) = 0;
 
   /** Get gap number from detector ID **/
-  virtual Int_t GetGap(const Int_t detectorId) = 0;
+  virtual int32_t GetGap(const int32_t detectorId) = 0;
 
   /** Get cell number from detector ID **/
-  virtual Int_t GetCell(const Int_t detectorId) = 0;
+  virtual int32_t GetCell(const int32_t detectorId) = 0;
 
   /** Get region number from detector ID **/
-  virtual Int_t GetRegion(const Int_t detectorId) = 0;
+  virtual int32_t GetRegion(const int32_t detectorId) = 0;
 
   /** Get cell number from detector ID **/
-  virtual Int_t GetCellId(const Int_t detectorId) = 0;
+  virtual int32_t GetCellId(const int32_t detectorId) = 0;
 
   /** Calculate the unique detector ID
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  virtual Int_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo) = 0;
+  virtual int32_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo) = 0;
 
   //  char* itoa(int value, char* result, int base);
 
diff --git a/core/data/tof/CbmTofDetectorId_v07a.cxx b/core/data/tof/CbmTofDetectorId_v07a.cxx
index 37f654069e..c697d402c4 100644
--- a/core/data/tof/CbmTofDetectorId_v07a.cxx
+++ b/core/data/tof/CbmTofDetectorId_v07a.cxx
@@ -12,8 +12,8 @@
 
 #include <Logger.h>  // for LOG, Logger
 
-const Int_t CbmTofDetectorId_v07a::shiftarray[] = {0, 5, 9, 19, 23};
-const Int_t CbmTofDetectorId_v07a::bitarray[]   = {5, 4, 10, 4, 9};
+const int32_t CbmTofDetectorId_v07a::shiftarray[] = {0, 5, 9, 19, 23};
+const int32_t CbmTofDetectorId_v07a::bitarray[]   = {5, 4, 10, 4, 9};
 
 //                                  3         2         1          shift length
 /** Current definition:            10987654321098765432109876543210
@@ -26,7 +26,7 @@ const Int_t CbmTofDetectorId_v07a::bitarray[]   = {5, 4, 10, 4, 9};
 
 CbmTofDetectorId_v07a::CbmTofDetectorId_v07a() : CbmTofDetectorId(), result_array(), maskarray(), modulemask(0)
 {
-  for (Int_t i = 0; i < array_length; i++) {
+  for (int32_t i = 0; i < array_length; i++) {
     maskarray[i] = (1 << bitarray[i]) - 1;
   }
 
@@ -34,51 +34,57 @@ CbmTofDetectorId_v07a::CbmTofDetectorId_v07a() : CbmTofDetectorId(), result_arra
                 | (0 << shiftarray[3]) | (maskarray[4] << shiftarray[4]));
 }
 
-CbmTofDetectorInfo CbmTofDetectorId_v07a::GetDetectorInfo(const Int_t detectorId)
+CbmTofDetectorInfo CbmTofDetectorId_v07a::GetDetectorInfo(const int32_t detectorId)
 {
-  for (Int_t i = 0; i < array_length; i++) {
+  for (int32_t i = 0; i < array_length; i++) {
     result_array[i] = ((detectorId >> shiftarray[i]) & maskarray[i]);
   }
   return CbmTofDetectorInfo(result_array[0], result_array[1], 0, result_array[2], result_array[3], result_array[4]);
 }
 
-Int_t CbmTofDetectorId_v07a::GetSystemId(Int_t detectorId) { return (detectorId & maskarray[0]); }
+int32_t CbmTofDetectorId_v07a::GetSystemId(int32_t detectorId) { return (detectorId & maskarray[0]); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v07a::GetSMType(const Int_t detectorId)
+int32_t CbmTofDetectorId_v07a::GetSMType(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[1]) & maskarray[1]);
 }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v07a::GetSModule(const Int_t detectorId)
+int32_t CbmTofDetectorId_v07a::GetSModule(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[2]) & maskarray[2]);
 }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v07a::GetCounter(const Int_t /*detectorId*/) { return -1; }
+int32_t CbmTofDetectorId_v07a::GetCounter(const int32_t /*detectorId*/) { return -1; }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v07a::GetGap(const Int_t detectorId) { return ((detectorId >> shiftarray[3]) & maskarray[3]); }
+int32_t CbmTofDetectorId_v07a::GetGap(const int32_t detectorId)
+{
+  return ((detectorId >> shiftarray[3]) & maskarray[3]);
+}
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v07a::GetCell(const Int_t detectorId) { return ((detectorId >> shiftarray[4]) & maskarray[4]); }
+int32_t CbmTofDetectorId_v07a::GetCell(const int32_t detectorId)
+{
+  return ((detectorId >> shiftarray[4]) & maskarray[4]);
+}
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v07a::GetRegion(const Int_t /*detectorId*/) { return -1; }
+int32_t CbmTofDetectorId_v07a::GetRegion(const int32_t /*detectorId*/) { return -1; }
 
-Int_t CbmTofDetectorId_v07a::GetCellId(const Int_t detectorId) { return (detectorId & modulemask); }
+int32_t CbmTofDetectorId_v07a::GetCellId(const int32_t detectorId) { return (detectorId & modulemask); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v07a::SetDetectorInfo(const CbmTofDetectorInfo detInfo)
+int32_t CbmTofDetectorId_v07a::SetDetectorInfo(const CbmTofDetectorInfo detInfo)
 {
 
   LOG(debug2) << "Det System: " << detInfo.fDetectorSystem;
diff --git a/core/data/tof/CbmTofDetectorId_v07a.h b/core/data/tof/CbmTofDetectorId_v07a.h
index e178059e59..444bca032b 100644
--- a/core/data/tof/CbmTofDetectorId_v07a.h
+++ b/core/data/tof/CbmTofDetectorId_v07a.h
@@ -32,7 +32,7 @@
 
 #include "CbmTofDetectorId.h"  // for CbmTofDetectorId, CbmTofDetectorInfo
 
-#include <RtypesCore.h>  // for Int_t
+#include <cstdint>
 
 class CbmTofDetectorId_v07a : public CbmTofDetectorId {
 
@@ -47,48 +47,48 @@ public:
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  CbmTofDetectorInfo GetDetectorInfo(const Int_t detectorId);
+  CbmTofDetectorInfo GetDetectorInfo(const int32_t detectorId);
 
   /** Get the global sytem ID **/
-  Int_t GetSystemId(Int_t detectorId);
+  int32_t GetSystemId(int32_t detectorId);
 
   /** Get SMType number from detector ID **/
-  Int_t GetSMType(const Int_t detectorId);
+  int32_t GetSMType(const int32_t detectorId);
 
   /** Get smodule number from detector ID **/
-  Int_t GetSModule(const Int_t detectorId);
+  int32_t GetSModule(const int32_t detectorId);
 
   /** Get counter number from detector ID **/
-  Int_t GetCounter(const Int_t detectorId);
+  int32_t GetCounter(const int32_t detectorId);
 
   /** Get sector number from detector ID **/
-  Int_t GetGap(const Int_t detectorId);
+  int32_t GetGap(const int32_t detectorId);
 
   /** Get cell number from detector ID **/
-  Int_t GetCell(const Int_t detectorId);
+  int32_t GetCell(const int32_t detectorId);
 
   /** Get region number from detector ID **/
-  Int_t GetRegion(const Int_t detectorId);
+  int32_t GetRegion(const int32_t detectorId);
 
   /** Get cell number from detector ID.
    ** This is masking the the gap number
    ** if this is set.
    **/
-  Int_t GetCellId(const Int_t detectorId);
+  int32_t GetCellId(const int32_t detectorId);
 
   /** Calculate the unique detector ID
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  Int_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo);
+  int32_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo);
 
 private:
-  static const Int_t array_length = 5;
-  static const Int_t shiftarray[];
-  static const Int_t bitarray[];
-  Int_t result_array[array_length];
-  Int_t maskarray[array_length];
-  Int_t modulemask;
+  static const int32_t array_length = 5;
+  static const int32_t shiftarray[];
+  static const int32_t bitarray[];
+  int32_t result_array[array_length];
+  int32_t maskarray[array_length];
+  int32_t modulemask;
 };
 
 #endif
diff --git a/core/data/tof/CbmTofDetectorId_v12b.cxx b/core/data/tof/CbmTofDetectorId_v12b.cxx
index 8a375291f3..1c6f85ab4b 100644
--- a/core/data/tof/CbmTofDetectorId_v12b.cxx
+++ b/core/data/tof/CbmTofDetectorId_v12b.cxx
@@ -10,13 +10,13 @@
 
 #include "CbmTofDetectorId_v12b.h"
 
-const Int_t CbmTofDetectorId_v12b::shiftarray[] = {0, 5, 9, 17, 20, 24};
-const Int_t CbmTofDetectorId_v12b::bitarray[]   = {5, 4, 8, 3, 4, 8};
+const int32_t CbmTofDetectorId_v12b::shiftarray[] = {0, 5, 9, 17, 20, 24};
+const int32_t CbmTofDetectorId_v12b::bitarray[]   = {5, 4, 8, 3, 4, 8};
 
 
 CbmTofDetectorId_v12b::CbmTofDetectorId_v12b() : CbmTofDetectorId(), result_array(), maskarray(), modulemask(0)
 {
-  for (Int_t i = 0; i < array_length; i++) {
+  for (int32_t i = 0; i < array_length; i++) {
     maskarray[i] = (1 << bitarray[i]) - 1;
   }
 
@@ -24,9 +24,9 @@ CbmTofDetectorId_v12b::CbmTofDetectorId_v12b() : CbmTofDetectorId(), result_arra
                 | (maskarray[3] << shiftarray[3]) | (0 << shiftarray[4]) | (maskarray[5] << shiftarray[5]));
 }
 
-CbmTofDetectorInfo CbmTofDetectorId_v12b::GetDetectorInfo(const Int_t detectorId)
+CbmTofDetectorInfo CbmTofDetectorId_v12b::GetDetectorInfo(const int32_t detectorId)
 {
-  for (Int_t i = 0; i < array_length; i++) {
+  for (int32_t i = 0; i < array_length; i++) {
     result_array[i] = ((detectorId >> shiftarray[i]) & maskarray[i]);
   }
 
@@ -34,46 +34,52 @@ CbmTofDetectorInfo CbmTofDetectorId_v12b::GetDetectorInfo(const Int_t detectorId
                             result_array[5]);
 }
 
-Int_t CbmTofDetectorId_v12b::GetSystemId(Int_t detectorId) { return (detectorId & maskarray[0]); }
+int32_t CbmTofDetectorId_v12b::GetSystemId(int32_t detectorId) { return (detectorId & maskarray[0]); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v12b::GetSMType(const Int_t detectorId)
+int32_t CbmTofDetectorId_v12b::GetSMType(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[1]) & maskarray[1]);
 }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v12b::GetSModule(const Int_t detectorId)
+int32_t CbmTofDetectorId_v12b::GetSModule(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[2]) & maskarray[2]);
 }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v12b::GetCounter(const Int_t detectorId)
+int32_t CbmTofDetectorId_v12b::GetCounter(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[3]) & maskarray[3]);
 }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v12b::GetGap(const Int_t detectorId) { return ((detectorId >> shiftarray[4]) & maskarray[4]); }
+int32_t CbmTofDetectorId_v12b::GetGap(const int32_t detectorId)
+{
+  return ((detectorId >> shiftarray[4]) & maskarray[4]);
+}
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v12b::GetCell(const Int_t detectorId) { return ((detectorId >> shiftarray[5]) & maskarray[5]); }
+int32_t CbmTofDetectorId_v12b::GetCell(const int32_t detectorId)
+{
+  return ((detectorId >> shiftarray[5]) & maskarray[5]);
+}
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v12b::GetRegion(const Int_t /*detectorId*/) { return -1; }
+int32_t CbmTofDetectorId_v12b::GetRegion(const int32_t /*detectorId*/) { return -1; }
 
-Int_t CbmTofDetectorId_v12b::GetCellId(const Int_t detectorId) { return (detectorId & modulemask); }
+int32_t CbmTofDetectorId_v12b::GetCellId(const int32_t detectorId) { return (detectorId & modulemask); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v12b::SetDetectorInfo(const CbmTofDetectorInfo detInfo)
+int32_t CbmTofDetectorId_v12b::SetDetectorInfo(const CbmTofDetectorInfo detInfo)
 {
   return ((detInfo.fDetectorSystem << shiftarray[0]) | (detInfo.fSMtype << shiftarray[1])
           | (detInfo.fSModule << shiftarray[2]) | (detInfo.fCounter << shiftarray[3]) | (detInfo.fGap << shiftarray[4])
diff --git a/core/data/tof/CbmTofDetectorId_v12b.h b/core/data/tof/CbmTofDetectorId_v12b.h
index 09e98e31ad..703abba243 100644
--- a/core/data/tof/CbmTofDetectorId_v12b.h
+++ b/core/data/tof/CbmTofDetectorId_v12b.h
@@ -33,7 +33,7 @@
 
 #include "CbmTofDetectorId.h"  // for CbmTofDetectorId, CbmTofDetectorInfo
 
-#include <RtypesCore.h>  // for Int_t
+#include <cstdint>
 
 class CbmTofDetectorId_v12b : public CbmTofDetectorId {
 
@@ -48,48 +48,48 @@ public:
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  CbmTofDetectorInfo GetDetectorInfo(const Int_t detectorId);
+  CbmTofDetectorInfo GetDetectorInfo(const int32_t detectorId);
 
   /** Get the global sytem ID **/
-  Int_t GetSystemId(Int_t detectorId);
+  int32_t GetSystemId(int32_t detectorId);
 
   /** Get SMType number from detector ID **/
-  Int_t GetSMType(const Int_t detectorId);
+  int32_t GetSMType(const int32_t detectorId);
 
   /** Get smodule number from detector ID **/
-  Int_t GetSModule(const Int_t detectorId);
+  int32_t GetSModule(const int32_t detectorId);
 
   /** Get module number from detector ID **/
-  Int_t GetCounter(const Int_t detectorId);
+  int32_t GetCounter(const int32_t detectorId);
 
   /** Get sector number from detector ID **/
-  Int_t GetGap(const Int_t detectorId);
+  int32_t GetGap(const int32_t detectorId);
 
   /** Get cell number from detector ID **/
-  Int_t GetCell(const Int_t detectorId);
+  int32_t GetCell(const int32_t detectorId);
 
   /** Get region number from detector ID **/
-  Int_t GetRegion(const Int_t detectorId);
+  int32_t GetRegion(const int32_t detectorId);
 
   /** Get cell number from detector ID.
    ** This is masking the the gap number
    ** if this is set.
    **/
-  Int_t GetCellId(const Int_t detectorId);
+  int32_t GetCellId(const int32_t detectorId);
 
   /** Calculate the unique detector ID
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  Int_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo);
+  int32_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo);
 
 private:
-  static const Int_t array_length = 6;
-  static const Int_t shiftarray[];
-  static const Int_t bitarray[];
-  Int_t result_array[array_length];
-  Int_t maskarray[array_length];
-  Int_t modulemask;
+  static const int32_t array_length = 6;
+  static const int32_t shiftarray[];
+  static const int32_t bitarray[];
+  int32_t result_array[array_length];
+  int32_t maskarray[array_length];
+  int32_t modulemask;
 };
 
 #endif
diff --git a/core/data/tof/CbmTofDetectorId_v14a.cxx b/core/data/tof/CbmTofDetectorId_v14a.cxx
index 5917e882b7..a10eed9e75 100644
--- a/core/data/tof/CbmTofDetectorId_v14a.cxx
+++ b/core/data/tof/CbmTofDetectorId_v14a.cxx
@@ -10,13 +10,13 @@
 
 #include "CbmTofDetectorId_v14a.h"
 
-const Int_t CbmTofDetectorId_v14a::shiftarray[] = {0, 4, 12, 16, 23, 24};
-const Int_t CbmTofDetectorId_v14a::bitarray[]   = {4, 8, 4, 7, 1, 8};
+const int32_t CbmTofDetectorId_v14a::shiftarray[] = {0, 4, 12, 16, 23, 24};
+const int32_t CbmTofDetectorId_v14a::bitarray[]   = {4, 8, 4, 7, 1, 8};
 
 
 CbmTofDetectorId_v14a::CbmTofDetectorId_v14a() : CbmTofDetectorId(), result_array(), maskarray(), modulemask(0)
 {
-  for (Int_t i = 0; i < array_length; i++) {
+  for (int32_t i = 0; i < array_length; i++) {
     maskarray[i] = (1 << bitarray[i]) - 1;
   }
 
@@ -24,9 +24,9 @@ CbmTofDetectorId_v14a::CbmTofDetectorId_v14a() : CbmTofDetectorId(), result_arra
                 | (maskarray[3] << shiftarray[3]) | (0 << shiftarray[4]) | (maskarray[5] << shiftarray[5]));
 }
 
-CbmTofDetectorInfo CbmTofDetectorId_v14a::GetDetectorInfo(const Int_t detectorId)
+CbmTofDetectorInfo CbmTofDetectorId_v14a::GetDetectorInfo(const int32_t detectorId)
 {
-  for (Int_t i = 0; i < array_length; i++) {
+  for (int32_t i = 0; i < array_length; i++) {
     result_array[i] = ((detectorId >> shiftarray[i]) & maskarray[i]);
   }
 
@@ -34,51 +34,57 @@ CbmTofDetectorInfo CbmTofDetectorId_v14a::GetDetectorInfo(const Int_t detectorId
                             result_array[5]);
 }
 
-Int_t CbmTofDetectorId_v14a::GetSystemId(Int_t detectorId) { return (detectorId & maskarray[0]); }
+int32_t CbmTofDetectorId_v14a::GetSystemId(int32_t detectorId) { return (detectorId & maskarray[0]); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v14a::GetSMType(const Int_t detectorId)
+int32_t CbmTofDetectorId_v14a::GetSMType(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[2]) & maskarray[2]);
 }
-Int_t CbmTofDetectorId_v14a::GetModuleType(const Int_t detectorId) { return GetSMType(detectorId); }
+int32_t CbmTofDetectorId_v14a::GetModuleType(const int32_t detectorId) { return GetSMType(detectorId); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v14a::GetSModule(const Int_t detectorId)
+int32_t CbmTofDetectorId_v14a::GetSModule(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[1]) & maskarray[1]);
 }
-Int_t CbmTofDetectorId_v14a::GetModuleId(const Int_t detectorId) { return GetSModule(detectorId); }
+int32_t CbmTofDetectorId_v14a::GetModuleId(const int32_t detectorId) { return GetSModule(detectorId); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v14a::GetCounter(const Int_t detectorId)
+int32_t CbmTofDetectorId_v14a::GetCounter(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[3]) & maskarray[3]);
 }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v14a::GetSide(const Int_t detectorId) { return ((detectorId >> shiftarray[4]) & maskarray[4]); }
-Int_t CbmTofDetectorId_v14a::GetGap(const Int_t detectorId) { return GetSide(detectorId); }
+int32_t CbmTofDetectorId_v14a::GetSide(const int32_t detectorId)
+{
+  return ((detectorId >> shiftarray[4]) & maskarray[4]);
+}
+int32_t CbmTofDetectorId_v14a::GetGap(const int32_t detectorId) { return GetSide(detectorId); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v14a::GetCell(const Int_t detectorId) { return ((detectorId >> shiftarray[5]) & maskarray[5]); }
+int32_t CbmTofDetectorId_v14a::GetCell(const int32_t detectorId)
+{
+  return ((detectorId >> shiftarray[5]) & maskarray[5]);
+}
 
-Int_t CbmTofDetectorId_v14a::GetStrip(const Int_t detectorId) { return GetCell(detectorId); }
+int32_t CbmTofDetectorId_v14a::GetStrip(const int32_t detectorId) { return GetCell(detectorId); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v14a::GetRegion(const Int_t /*detectorId*/) { return -1; }
+int32_t CbmTofDetectorId_v14a::GetRegion(const int32_t /*detectorId*/) { return -1; }
 
-Int_t CbmTofDetectorId_v14a::GetCellId(const Int_t detectorId) { return (detectorId & modulemask); }
+int32_t CbmTofDetectorId_v14a::GetCellId(const int32_t detectorId) { return (detectorId & modulemask); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v14a ::SetDetectorInfo(const CbmTofDetectorInfo detInfo)
+int32_t CbmTofDetectorId_v14a ::SetDetectorInfo(const CbmTofDetectorInfo detInfo)
 {
   return ((((detInfo.fDetectorSystem) & maskarray[0]) << shiftarray[0])
           | (((detInfo.fSMtype) & maskarray[2]) << shiftarray[2])
diff --git a/core/data/tof/CbmTofDetectorId_v14a.h b/core/data/tof/CbmTofDetectorId_v14a.h
index b64f25a077..5ff5189f38 100644
--- a/core/data/tof/CbmTofDetectorId_v14a.h
+++ b/core/data/tof/CbmTofDetectorId_v14a.h
@@ -36,7 +36,7 @@
 
 #include "CbmTofDetectorId.h"  // for CbmTofDetectorId, CbmTofDetectorInfo
 
-#include <RtypesCore.h>  // for Int_t
+#include <cstdint>
 
 class CbmTofDetectorId_v14a : public CbmTofDetectorId {
 
@@ -51,55 +51,55 @@ public:
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  CbmTofDetectorInfo GetDetectorInfo(const Int_t detectorId);
+  CbmTofDetectorInfo GetDetectorInfo(const int32_t detectorId);
 
   /** Get the global sytem ID **/
-  Int_t GetSystemId(Int_t detectorId);
+  int32_t GetSystemId(int32_t detectorId);
 
   /** Get Module Type from detector ID **/
-  Int_t GetSMType(const Int_t detectorId);
-  Int_t GetModuleType(const Int_t detectorId);
+  int32_t GetSMType(const int32_t detectorId);
+  int32_t GetModuleType(const int32_t detectorId);
 
   /** Get Module ID from detector ID **/
-  Int_t GetSModule(const Int_t detectorId);
-  Int_t GetModuleId(const Int_t detectorId);
+  int32_t GetSModule(const int32_t detectorId);
+  int32_t GetModuleId(const int32_t detectorId);
 
   /** Get counter ID from detector ID **/
-  Int_t GetCounter(const Int_t detectorId);
+  int32_t GetCounter(const int32_t detectorId);
 
   /** Get sector number from detector ID **/
-  Int_t GetGap(const Int_t detectorId);
+  int32_t GetGap(const int32_t detectorId);
 
   /** Get sector number from detector ID **/
-  Int_t GetSide(const Int_t detectorId);
+  int32_t GetSide(const int32_t detectorId);
 
   /** Get cell number from detector ID **/
-  Int_t GetCell(const Int_t detectorId);
+  int32_t GetCell(const int32_t detectorId);
   /** Get Strip ID from detector ID **/
-  Int_t GetStrip(const Int_t detectorId);
+  int32_t GetStrip(const int32_t detectorId);
 
   /** Get region number from detector ID **/
-  Int_t GetRegion(const Int_t detectorId);
+  int32_t GetRegion(const int32_t detectorId);
 
   /** Get full cell number from detector ID.
    ** This is masking the the gap number
    ** if this is set.
    **/
-  Int_t GetCellId(const Int_t detectorId);
+  int32_t GetCellId(const int32_t detectorId);
 
   /** Calculate the unique detector ID
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  Int_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo);
+  int32_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo);
 
 private:
-  static const Int_t array_length = 6;
-  static const Int_t shiftarray[];
-  static const Int_t bitarray[];
-  Int_t result_array[array_length];
-  Int_t maskarray[array_length];
-  Int_t modulemask;
+  static const int32_t array_length = 6;
+  static const int32_t shiftarray[];
+  static const int32_t bitarray[];
+  int32_t result_array[array_length];
+  int32_t maskarray[array_length];
+  int32_t modulemask;
 };
 
 #endif
diff --git a/core/data/tof/CbmTofDetectorId_v21a.cxx b/core/data/tof/CbmTofDetectorId_v21a.cxx
index d496ba013e..f90c28d345 100644
--- a/core/data/tof/CbmTofDetectorId_v21a.cxx
+++ b/core/data/tof/CbmTofDetectorId_v21a.cxx
@@ -15,17 +15,17 @@
 
 using namespace std;
 
-const Int_t CbmTofDetectorId_v21a::shiftarray[] = {0, 4, 11, 15, 21, 22, 28};
-const Int_t CbmTofDetectorId_v21a::bitarray[]   = {4, 7, 4, 6, 1, 6, 4};
+const int32_t CbmTofDetectorId_v21a::shiftarray[] = {0, 4, 11, 15, 21, 22, 28};
+const int32_t CbmTofDetectorId_v21a::bitarray[]   = {4, 7, 4, 6, 1, 6, 4};
 
 
 CbmTofDetectorId_v21a::CbmTofDetectorId_v21a() : CbmTofDetectorId(), result_array(), maskarray(), modulemask(0)
 {
-  for (Int_t i = 0; i < array_length; i++) {
+  for (int32_t i = 0; i < array_length; i++) {
     maskarray[i] = (1 << bitarray[i]) - 1;
   }
 
-  for (Int_t i = 0; i < array_length - 1; i++) {
+  for (int32_t i = 0; i < array_length - 1; i++) {
     if (i == 4) continue;  // ignore side bit
     modulemask |= (maskarray[i] << shiftarray[i]);
   }
@@ -34,9 +34,9 @@ CbmTofDetectorId_v21a::CbmTofDetectorId_v21a() : CbmTofDetectorId(), result_arra
             << std::setfill(prev) << std::dec << std::endl;
 }
 
-CbmTofDetectorInfo CbmTofDetectorId_v21a::GetDetectorInfo(const Int_t detectorId)
+CbmTofDetectorInfo CbmTofDetectorId_v21a::GetDetectorInfo(const int32_t detectorId)
 {
-  for (Int_t i = 0; i < array_length; i++) {
+  for (int32_t i = 0; i < array_length; i++) {
     result_array[i] = ((detectorId >> shiftarray[i]) & maskarray[i]);
   }
 
@@ -44,55 +44,61 @@ CbmTofDetectorInfo CbmTofDetectorId_v21a::GetDetectorInfo(const Int_t detectorId
                             result_array[4], result_array[5], result_array[6]);
 }
 
-Int_t CbmTofDetectorId_v21a::GetSystemId(Int_t detectorId) { return (detectorId & maskarray[0]); }
+int32_t CbmTofDetectorId_v21a::GetSystemId(int32_t detectorId) { return (detectorId & maskarray[0]); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v21a::GetSMType(const Int_t detectorId)
+int32_t CbmTofDetectorId_v21a::GetSMType(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[2]) & maskarray[2]);
 }
-Int_t CbmTofDetectorId_v21a::GetModuleType(const Int_t detectorId) { return GetSMType(detectorId); }
-Int_t CbmTofDetectorId_v21a::GetCounterType(const Int_t detectorId)
+int32_t CbmTofDetectorId_v21a::GetModuleType(const int32_t detectorId) { return GetSMType(detectorId); }
+int32_t CbmTofDetectorId_v21a::GetCounterType(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[6]) & maskarray[6]);
 }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v21a::GetSModule(const Int_t detectorId)
+int32_t CbmTofDetectorId_v21a::GetSModule(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[1]) & maskarray[1]);
 }
-Int_t CbmTofDetectorId_v21a::GetModuleId(const Int_t detectorId) { return GetSModule(detectorId); }
+int32_t CbmTofDetectorId_v21a::GetModuleId(const int32_t detectorId) { return GetSModule(detectorId); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v21a::GetCounter(const Int_t detectorId)
+int32_t CbmTofDetectorId_v21a::GetCounter(const int32_t detectorId)
 {
   return ((detectorId >> shiftarray[3]) & maskarray[3]);
 }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v21a::GetSide(const Int_t detectorId) { return ((detectorId >> shiftarray[4]) & maskarray[4]); }
-Int_t CbmTofDetectorId_v21a::GetGap(const Int_t detectorId) { return GetSide(detectorId); }
+int32_t CbmTofDetectorId_v21a::GetSide(const int32_t detectorId)
+{
+  return ((detectorId >> shiftarray[4]) & maskarray[4]);
+}
+int32_t CbmTofDetectorId_v21a::GetGap(const int32_t detectorId) { return GetSide(detectorId); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v21a::GetCell(const Int_t detectorId) { return ((detectorId >> shiftarray[5]) & maskarray[5]); }
+int32_t CbmTofDetectorId_v21a::GetCell(const int32_t detectorId)
+{
+  return ((detectorId >> shiftarray[5]) & maskarray[5]);
+}
 
-Int_t CbmTofDetectorId_v21a::GetStrip(const Int_t detectorId) { return GetCell(detectorId); }
+int32_t CbmTofDetectorId_v21a::GetStrip(const int32_t detectorId) { return GetCell(detectorId); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v21a::GetRegion(const Int_t /*detectorId*/) { return -1; }
+int32_t CbmTofDetectorId_v21a::GetRegion(const int32_t /*detectorId*/) { return -1; }
 
-Int_t CbmTofDetectorId_v21a::GetCellId(const Int_t detectorId) { return (detectorId & modulemask); }
+int32_t CbmTofDetectorId_v21a::GetCellId(const int32_t detectorId) { return (detectorId & modulemask); }
 
 //-----------------------------------------------------------
 
-Int_t CbmTofDetectorId_v21a ::SetDetectorInfo(const CbmTofDetectorInfo detInfo)
+int32_t CbmTofDetectorId_v21a ::SetDetectorInfo(const CbmTofDetectorInfo detInfo)
 {
   /*
   std::cout << "SetDetectorInfo for "
diff --git a/core/data/tof/CbmTofDetectorId_v21a.h b/core/data/tof/CbmTofDetectorId_v21a.h
index d6c6c09ae2..5e41d6168d 100644
--- a/core/data/tof/CbmTofDetectorId_v21a.h
+++ b/core/data/tof/CbmTofDetectorId_v21a.h
@@ -51,56 +51,56 @@ public:
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  CbmTofDetectorInfo GetDetectorInfo(const Int_t detectorId);
+  CbmTofDetectorInfo GetDetectorInfo(const int32_t detectorId);
 
   /** Get the global sytem ID **/
-  Int_t GetSystemId(Int_t detectorId);
+  int32_t GetSystemId(int32_t detectorId);
 
   /** Get Module Type from detector ID **/
-  Int_t GetSMType(const Int_t detectorId);
-  Int_t GetModuleType(const Int_t detectorId);
-  Int_t GetCounterType(const Int_t detectorId);
+  int32_t GetSMType(const int32_t detectorId);
+  int32_t GetModuleType(const int32_t detectorId);
+  int32_t GetCounterType(const int32_t detectorId);
 
   /** Get Module ID from detector ID **/
-  Int_t GetSModule(const Int_t detectorId);
-  Int_t GetModuleId(const Int_t detectorId);
+  int32_t GetSModule(const int32_t detectorId);
+  int32_t GetModuleId(const int32_t detectorId);
 
   /** Get counter ID from detector ID **/
-  Int_t GetCounter(const Int_t detectorId);
+  int32_t GetCounter(const int32_t detectorId);
 
   /** Get sector number from detector ID **/
-  Int_t GetGap(const Int_t detectorId);
+  int32_t GetGap(const int32_t detectorId);
 
   /** Get sector number from detector ID **/
-  Int_t GetSide(const Int_t detectorId);
+  int32_t GetSide(const int32_t detectorId);
 
   /** Get cell number from detector ID **/
-  Int_t GetCell(const Int_t detectorId);
+  int32_t GetCell(const int32_t detectorId);
   /** Get Strip ID from detector ID **/
-  Int_t GetStrip(const Int_t detectorId);
+  int32_t GetStrip(const int32_t detectorId);
 
   /** Get region number from detector ID **/
-  Int_t GetRegion(const Int_t detectorId);
+  int32_t GetRegion(const int32_t detectorId);
 
   /** Get full cell number from detector ID.
    ** This is masking the the gap number
    ** if this is set.
    **/
-  Int_t GetCellId(const Int_t detectorId);
+  int32_t GetCellId(const int32_t detectorId);
 
   /** Calculate the unique detector ID
    ** This will return a pointer to an integer
    ** array of length array_length
    **/
-  Int_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo);
+  int32_t SetDetectorInfo(const CbmTofDetectorInfo detectorInfo);
 
 private:
-  static const Int_t array_length = 7;
-  static const Int_t shiftarray[];
-  static const Int_t bitarray[];
-  Int_t result_array[array_length];
-  Int_t maskarray[array_length];
-  Int_t modulemask;
+  static const int32_t array_length = 7;
+  static const int32_t shiftarray[];
+  static const int32_t bitarray[];
+  int32_t result_array[array_length];
+  int32_t maskarray[array_length];
+  int32_t modulemask;
 };
 
 #endif
diff --git a/core/data/tof/CbmTofDigi.cxx b/core/data/tof/CbmTofDigi.cxx
index 92be4cf280..f310ab2b3d 100644
--- a/core/data/tof/CbmTofDigi.cxx
+++ b/core/data/tof/CbmTofDigi.cxx
@@ -19,12 +19,13 @@ CbmTofDigi::CbmTofDigi() : fdTime(0.), fdTot(-1.), fuAddress(0)
 {
 }
 
-CbmTofDigi::CbmTofDigi(UInt_t address, Double_t time, Double_t tot) : fdTime(time), fdTot(tot), fuAddress(address)
+CbmTofDigi::CbmTofDigi(uint32_t address, double time, double tot) : fdTime(time), fdTot(tot), fuAddress(address)
 //    fMatch(nullptr)
 {
 }
 
-CbmTofDigi::CbmTofDigi(UInt_t Sm, UInt_t Rpc, UInt_t Channel, Double_t time, Double_t tot, UInt_t Side, UInt_t SmType)
+CbmTofDigi::CbmTofDigi(uint32_t Sm, uint32_t Rpc, uint32_t Channel, double time, double tot, uint32_t Side,
+                       uint32_t SmType)
   : fdTime(time)
   , fdTot(tot)
   , fuAddress(0)
@@ -45,7 +46,7 @@ std::string CbmTofDigi::ToString() const
   return string.Data();
 }
 
-void CbmTofDigi::SetAddress(UInt_t Sm, UInt_t Rpc, UInt_t Channel, UInt_t Side, UInt_t SmType)
+void CbmTofDigi::SetAddress(uint32_t Sm, uint32_t Rpc, uint32_t Channel, uint32_t Side, uint32_t SmType)
 {
   fuAddress = CbmTofAddress::GetUniqueAddress(Sm, Rpc, Channel, Side, SmType);
 }
diff --git a/core/data/tof/CbmTofDigi.h b/core/data/tof/CbmTofDigi.h
index 7e19338110..c412c7cee0 100644
--- a/core/data/tof/CbmTofDigi.h
+++ b/core/data/tof/CbmTofDigi.h
@@ -12,7 +12,7 @@
  ** @brief Data level: TDC CALIB
  ** @version 1.0
  **
- ** The information is encoded into 3*4 bytes (2 Double_t + 1 UInt_t).
+ ** The information is encoded into 3*4 bytes (2 double + 1 uint32_t).
  ** Unique Address:                32 bits following CbmTofAddress
  ** Calibrated Time [ps]:          32 bits double
  ** Calibrated Tot  [ps]:          32 bits double
@@ -30,11 +30,11 @@
 #include "CbmTofAddress.h"  // for CbmTofAddress
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t, UInt_t, Int_t, Bool_t, kTRUE
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/base_object.hpp>
 
+#include <cstdint>
 #include <string>  // for string
 
 //class CbmMatch;
@@ -52,7 +52,7 @@ public:
        ** @param[in] time    Absolute time [ps].
        ** @param[in] tot     Time Over Threshold [ps].
        **/
-  CbmTofDigi(UInt_t address, Double_t time, Double_t tot);
+  CbmTofDigi(uint32_t address, double time, double tot);
 
   /**
        ** @brief Constructor with detailled assignment.
@@ -64,7 +64,8 @@ public:
        ** @param[in] Side    Channel Side (optional, used for strips). (cf CbmTofAddress)
        ** @param[in] Sm Type Super Module Type (optional). (cf CbmTofAddress)
        **/
-  CbmTofDigi(UInt_t Sm, UInt_t Rpc, UInt_t Channel, Double_t time, Double_t tot, UInt_t Side = 0, UInt_t SmType = 0);
+  CbmTofDigi(uint32_t Sm, uint32_t Rpc, uint32_t Channel, double time, double tot, uint32_t Side = 0,
+             uint32_t SmType = 0);
 
   /**
        ** @brief Copy constructor.
@@ -93,7 +94,7 @@ public:
   /**
           ** @brief Inherited from CbmDigi.
           **/
-  Int_t GetAddress() const { return fuAddress; };
+  int32_t GetAddress() const { return fuAddress; };
 
 
   /** @brief Get the desired name of the branch for this obj in the cbm output tree  (static)
@@ -112,50 +113,50 @@ public:
   /**
           ** @brief Inherited from CbmDigi.
           **/
-  Double_t GetTime() const { return fdTime; };
+  double GetTime() const { return fdTime; };
 
   /**
           ** @brief Inherited from CbmDigi.
           **/
-  Double_t GetCharge() const { return fdTot; };
+  double GetCharge() const { return fdTot; };
   /**
           ** @brief Alias for GetCharge.
           **/
-  Double_t GetTot() const { return GetCharge(); };
+  double GetTot() const { return GetCharge(); };
   /**
           ** @brief Sm.
           **/
-  Double_t GetSm() const { return CbmTofAddress::GetSmId(GetAddress()); };
+  double GetSm() const { return CbmTofAddress::GetSmId(GetAddress()); };
   /**
           ** @brief Sm Type .
           **/
-  Double_t GetType() const { return CbmTofAddress::GetSmType(GetAddress()); };
+  double GetType() const { return CbmTofAddress::GetSmType(GetAddress()); };
   /**
           ** @brief Detector aka Module aka RPC .
           **/
-  Double_t GetRpc() const { return CbmTofAddress::GetRpcId(GetAddress()); };
+  double GetRpc() const { return CbmTofAddress::GetRpcId(GetAddress()); };
   /**
           ** @brief Channel .
           **/
-  Double_t GetChannel() const { return CbmTofAddress::GetChannelId(GetAddress()); };
+  double GetChannel() const { return CbmTofAddress::GetChannelId(GetAddress()); };
   /**
           ** @brief Channel Side.
           **/
-  Double_t GetSide() const { return CbmTofAddress::GetChannelSide(GetAddress()); };
+  double GetSide() const { return CbmTofAddress::GetChannelSide(GetAddress()); };
 
   /** Modifiers **/
-  void SetAddress(Int_t address) { fuAddress = address; };
-  void SetAddress(UInt_t Sm, UInt_t Rpc, UInt_t Channel, UInt_t Side = 0, UInt_t SmType = 0);
-  void SetTime(Double_t time) { fdTime = time; };
-  void SetTot(Double_t tot) { fdTot = tot; };
+  void SetAddress(int32_t address) { fuAddress = address; };
+  void SetAddress(uint32_t Sm, uint32_t Rpc, uint32_t Channel, uint32_t Side = 0, uint32_t SmType = 0);
+  void SetTime(double time) { fdTime = time; };
+  void SetTot(double tot) { fdTot = tot; };
 
   std::string ToString() const;
 
 
 private:
-  Double_t fdTime;   ///< Absolute time [ps]
-  Double_t fdTot;    ///< Tot [ps]
-  UInt_t fuAddress;  ///< Unique channel address
+  double fdTime;       ///< Absolute time [ps]
+  double fdTot;        ///< Tot [ps]
+  uint32_t fuAddress;  ///< Unique channel address
 
   friend class boost::serialization::access;
 
diff --git a/core/data/tof/CbmTofHit.cxx b/core/data/tof/CbmTofHit.cxx
index 935feec900..fda9f18278 100644
--- a/core/data/tof/CbmTofHit.cxx
+++ b/core/data/tof/CbmTofHit.cxx
@@ -24,8 +24,8 @@ CbmTofHit::CbmTofHit() : CbmPixelHit(), fFlag(1), fChannel(0)
   SetTime(0.);
 }
 
-CbmTofHit::CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t index, Double_t time, Double_t dtime, Int_t flag,
-                     Int_t channel)
+CbmTofHit::CbmTofHit(int32_t address, TVector3 pos, TVector3 dpos, int32_t index, double time, double dtime,
+                     int32_t flag, int32_t channel)
   : CbmPixelHit(address, pos, dpos, 0., index, time, dtime)
   , fFlag(flag)
   , fChannel(channel)
@@ -33,7 +33,8 @@ CbmTofHit::CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t index, Do
   SetType(kTOFHIT);
 }
 
-CbmTofHit::CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t index, Double_t time, Int_t flag, Int_t channel)
+CbmTofHit::CbmTofHit(int32_t address, TVector3 pos, TVector3 dpos, int32_t index, double time, int32_t flag,
+                     int32_t channel)
   : CbmPixelHit(address, pos, dpos, 0., index)
   , fFlag(flag)
   , fChannel(channel)
@@ -42,7 +43,7 @@ CbmTofHit::CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t index, Do
   SetTime(time);
 }
 
-CbmTofHit::CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t index, Double_t time, Int_t flag)
+CbmTofHit::CbmTofHit(int32_t address, TVector3 pos, TVector3 dpos, int32_t index, double time, int32_t flag)
   : CbmPixelHit(address, pos, dpos, 0., index)
   , fFlag(flag)
   , fChannel(0)
@@ -51,7 +52,7 @@ CbmTofHit::CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t index, Do
   SetTime(time);
 }
 
-CbmTofHit::CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t index, Double_t time)
+CbmTofHit::CbmTofHit(int32_t address, TVector3 pos, TVector3 dpos, int32_t index, double time)
   : CbmPixelHit(address, pos, dpos, 0., index)
   , fFlag(1)
   , fChannel(0)
diff --git a/core/data/tof/CbmTofHit.h b/core/data/tof/CbmTofHit.h
index 8517c05577..bcb32c9b60 100644
--- a/core/data/tof/CbmTofHit.h
+++ b/core/data/tof/CbmTofHit.h
@@ -17,16 +17,17 @@
 #include "CbmHit.h"       // for CbmHit
 #include "CbmPixelHit.h"  // for CbmPixelHit
 
-#include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t
-#include <TMath.h>       // for Sqrt
-#include <TVector3.h>    // for TVector3
+#include <Rtypes.h>    // for ClassDef
+#include <TVector3.h>  // for TVector3
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/base_object.hpp>
 
+#include <cstdint>
 #include <string>  // for string
 
+#include <cmath>
+
 class CbmTofHit : public CbmPixelHit {
 public:
   /**
@@ -37,23 +38,23 @@ public:
   /**
    * \brief Constructor with hit parameters (1b).
    **/
-  CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t refIndex, Double_t time, Double_t dtime, Int_t flag,
-            Int_t channel);
+  CbmTofHit(int32_t address, TVector3 pos, TVector3 dpos, int32_t refIndex, double time, double dtime, int32_t flag,
+            int32_t channel);
 
   /**
    * \brief Constructor with hit parameters (1a).
    **/
-  CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t refIndex, Double_t tof, Int_t flag, Int_t channel);
+  CbmTofHit(int32_t address, TVector3 pos, TVector3 dpos, int32_t refIndex, double tof, int32_t flag, int32_t channel);
 
   /**
    * \brief Constructor with hit parameters (1).
    **/
-  CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t refIndex, Double_t tof, Int_t flag);
+  CbmTofHit(int32_t address, TVector3 pos, TVector3 dpos, int32_t refIndex, double tof, int32_t flag);
 
   /**
    * \brief Constructor with hit parameters (2) [not the flag]
    **/
-  CbmTofHit(Int_t address, TVector3 pos, TVector3 dpos, Int_t refIndex, Double_t tof);
+  CbmTofHit(int32_t address, TVector3 pos, TVector3 dpos, int32_t refIndex, double tof);
 
   /**
    * \brief Destructor.
@@ -68,31 +69,31 @@ public:
   /**
    * \brief Inherited from CbmBaseHit.
    */
-  Int_t GetPlaneId() const { return 0; }
+  int32_t GetPlaneId() const { return 0; }
 
   /** Accessors **/
-  Int_t GetFlag() const { return fFlag; }
-  Int_t GetCh() const { return fChannel; }
+  int32_t GetFlag() const { return fFlag; }
+  int32_t GetCh() const { return fChannel; }
 
-  Double_t GetR() const { return TMath::Sqrt(GetX() * GetX() + GetY() * GetY() + GetZ() * GetZ()); }
-  Double_t GetRt() const { return TMath::Sqrt(GetX() * GetX() + GetY() * GetY()); }
-  Double_t GetCosThe() const { return GetZ() / GetR(); }
-  Double_t GetSinThe() const { return TMath::Sqrt(GetX() * GetX() + GetY() * GetY()) / GetR(); }
-  Double_t GetCosPhi() const { return GetX() / GetRt(); }
-  Double_t GetSinPhi() const { return GetY() / GetRt(); }
+  double GetR() const { return sqrt(GetX() * GetX() + GetY() * GetY() + GetZ() * GetZ()); }
+  double GetRt() const { return sqrt(GetX() * GetX() + GetY() * GetY()); }
+  double GetCosThe() const { return GetZ() / GetR(); }
+  double GetSinThe() const { return sqrt(GetX() * GetX() + GetY() * GetY()) / GetR(); }
+  double GetCosPhi() const { return GetX() / GetRt(); }
+  double GetSinPhi() const { return GetY() / GetRt(); }
 
   /** Modifiers **/
-  void SetFlag(Int_t flag) { fFlag = flag; };
+  void SetFlag(int32_t flag) { fFlag = flag; };
 
   // Make this method otherwise inherited from CbmHit through CbmPixelHit
   // private to prevent its usage
-  Int_t GetRefId() const __attribute__((deprecated)) { return -1; }
+  int32_t GetRefId() const __attribute__((deprecated)) { return -1; }
   // Field is instead used to store the number of strips used to generate the hit
-  Int_t GetClusterSize() { return CbmHit::GetRefId(); }
+  int32_t GetClusterSize() { return CbmHit::GetRefId(); }
 
 private:
-  Int_t fFlag;     ///< Flag for general purposes [TDC, event tagging...]
-  Int_t fChannel;  ///< Channel identifier
+  int32_t fFlag;     ///< Flag for general purposes [TDC, event tagging...]
+  int32_t fChannel;  ///< Channel identifier
 
   friend class boost::serialization::access;
 
diff --git a/core/data/tof/CbmTofPoint.cxx b/core/data/tof/CbmTofPoint.cxx
index be6c9cb943..bc1c4bd6db 100644
--- a/core/data/tof/CbmTofPoint.cxx
+++ b/core/data/tof/CbmTofPoint.cxx
@@ -32,8 +32,8 @@ CbmTofPoint::CbmTofPoint() : FairMCPoint(), fNofCells(0), fGapMask(0) {}
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmTofPoint::CbmTofPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t tof, Double_t length,
-                         Double_t eLoss)
+CbmTofPoint::CbmTofPoint(int32_t trackID, int32_t detID, TVector3 pos, TVector3 mom, double tof, double length,
+                         double eLoss)
   : FairMCPoint(trackID, detID, pos, mom, tof, length, eLoss)
   , fNofCells(0)
   , fGapMask(0)
@@ -48,11 +48,11 @@ CbmTofPoint::~CbmTofPoint() {}
 
 
 // -----   Get the number of gaps   ----------------------------------------
-Int_t CbmTofPoint::GetNGaps() const
+int32_t CbmTofPoint::GetNGaps() const
 {
-  Int_t iNGaps(0);
+  int32_t iNGaps(0);
 
-  for (Int_t iGapBit = 0; iGapBit < std::numeric_limits<UShort_t>::digits; iGapBit++) {
+  for (int32_t iGapBit = 0; iGapBit < std::numeric_limits<uint16_t>::digits; iGapBit++) {
     if (fGapMask & (0x1 << iGapBit)) { iNGaps++; }
   }
 
@@ -62,9 +62,9 @@ Int_t CbmTofPoint::GetNGaps() const
 
 
 // -----   Get the index of the first gap   --------------------------------
-Int_t CbmTofPoint::GetFirstGap() const
+int32_t CbmTofPoint::GetFirstGap() const
 {
-  for (Int_t iGapBit = 0; iGapBit < std::numeric_limits<UShort_t>::digits; iGapBit++) {
+  for (int32_t iGapBit = 0; iGapBit < std::numeric_limits<uint16_t>::digits; iGapBit++) {
     if (fGapMask & (0x1 << iGapBit)) { return iGapBit; }
   }
 
@@ -74,11 +74,11 @@ Int_t CbmTofPoint::GetFirstGap() const
 
 
 // -----   Get the index of the last gap   ---------------------------------
-Int_t CbmTofPoint::GetLastGap() const
+int32_t CbmTofPoint::GetLastGap() const
 {
-  Int_t iLastGap(-1);
+  int32_t iLastGap(-1);
 
-  for (Int_t iGapBit = 0; iGapBit < std::numeric_limits<UShort_t>::digits; iGapBit++) {
+  for (int32_t iGapBit = 0; iGapBit < std::numeric_limits<uint16_t>::digits; iGapBit++) {
     if (fGapMask & (0x1 << iGapBit)) { iLastGap = iGapBit; }
   }
 
@@ -88,9 +88,9 @@ Int_t CbmTofPoint::GetLastGap() const
 
 
 // -----   Add one gap to the gap mask   -----------------------------------
-void CbmTofPoint::SetGap(Int_t iGap)
+void CbmTofPoint::SetGap(int32_t iGap)
 {
-  assert(0 <= iGap && std::numeric_limits<UShort_t>::digits > iGap);
+  assert(0 <= iGap && std::numeric_limits<uint16_t>::digits > iGap);
   fGapMask |= 0x1 << iGap;
 }
 // -------------------------------------------------------------------------
@@ -105,7 +105,7 @@ string CbmTofPoint::ToString() const
   ss << "    Momentum (" << fPx << ", " << fPy << ", " << fPz << ") GeV \n";
   ss << "    Time " << fTime << " ns,  Length " << fLength << " cm,  Energy loss " << fELoss * 1.0e06 << " keV \n";
   ss << "    Number of cells " << fNofCells << ", gap mask "
-     << std::bitset<std::numeric_limits<UShort_t>::digits>(fGapMask) << endl;
+     << std::bitset<std::numeric_limits<uint16_t>::digits>(fGapMask) << endl;
   return ss.str();
 }
 // -------------------------------------------------------------------------
diff --git a/core/data/tof/CbmTofPoint.h b/core/data/tof/CbmTofPoint.h
index 8707ea55e7..3dddd4cf5e 100644
--- a/core/data/tof/CbmTofPoint.h
+++ b/core/data/tof/CbmTofPoint.h
@@ -16,8 +16,8 @@
 #include <FairMCPoint.h>  // for FairMCPoint
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t, UShort_t
 
+#include <cstdint>
 #include <string>  // for string
 
 class TVector3;
@@ -57,7 +57,7 @@ public:
    ** @param length   Track length since creation [cm]
    ** @param eLoss    Energy deposit [GeV]
    **/
-  CbmTofPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t tof, Double_t length, Double_t eLoss);
+  CbmTofPoint(int32_t trackID, int32_t detID, TVector3 pos, TVector3 mom, double tof, double length, double eLoss);
 
 
   /** @brief Destructor **/
@@ -67,55 +67,55 @@ public:
   /** @brief Number of traversed cells
    ** @value Number of traversed cells
    **/
-  Int_t GetNCells() const { return fNofCells; }
+  int32_t GetNCells() const { return fNofCells; }
 
 
   /** @brief Number of traversed gaps
    ** @value Number of traversed gaps
    **/
-  Int_t GetNGaps() const;
+  int32_t GetNGaps() const;
 
 
   /** @brief Index of first traversed gap
    ** @value First gap index
    **/
-  Int_t GetFirstGap() const;
+  int32_t GetFirstGap() const;
 
 
   /** @brief Index of last traversed gap
    ** @value Last gap index
    **/
-  Int_t GetLastGap() const;
+  int32_t GetLastGap() const;
 
 
   /** @brief Set x component of momentum
    ** @param pX  x component of momentum [GeV]
    **/
-  void SetPx(Double_t pX) { fPx = pX; }
+  void SetPx(double pX) { fPx = pX; }
 
 
   /** @brief Set y component of momentum
    ** @param pY  y component of momentum [GeV]
    **/
-  void SetPy(Double_t pY) { fPy = pY; }
+  void SetPy(double pY) { fPy = pY; }
 
 
   /** @brief Set z component of momentum
    ** @param pZ  z component of momentum [GeV]
    **/
-  void SetPz(Double_t pZ) { fPz = pZ; }
+  void SetPz(double pZ) { fPz = pZ; }
 
 
   /** @brief Set the number of traversed cells
    ** @param nCells  Number of traversed cells
    **/
-  void SetNCells(Int_t nCells) { fNofCells = nCells; }
+  void SetNCells(int32_t nCells) { fNofCells = nCells; }
 
 
   /** @brief Set a gap in the gap mask
    ** @param iGap  Gap number
    **/
-  void SetGap(Int_t iGap);
+  void SetGap(int32_t iGap);
 
 
   /** @brief String representation of the object.
@@ -125,8 +125,8 @@ public:
 
 
 private:
-  Int_t fNofCells;    /// Number of cells traversed
-  UShort_t fGapMask;  /// Set of gaps traversed
+  int32_t fNofCells;  /// Number of cells traversed
+  uint16_t fGapMask;  /// Set of gaps traversed
 
 
   ClassDef(CbmTofPoint, 4)
diff --git a/core/data/tof/CbmTofTracklet.cxx b/core/data/tof/CbmTofTracklet.cxx
index f87097d0f9..99a1b46cb8 100644
--- a/core/data/tof/CbmTofTracklet.cxx
+++ b/core/data/tof/CbmTofTracklet.cxx
@@ -14,7 +14,6 @@
 #include <FairTrackParam.h>  // for FairTrackParam
 #include <Logger.h>          // for Logger, LOG
 
-#include <TMath.h>    // for Power, Sqrt
 #include <TObject.h>  // for TObject
 #include <TString.h>  // for Form
 
@@ -123,10 +122,10 @@ void CbmTofTracklet::GetFairTrackParamLast()
       fTrackPar.SetCovariance(k, fParamLast.GetCovariance(i, j));
 }
 
-Double_t CbmTofTracklet::GetMatChi2(Int_t iAddr)
+double CbmTofTracklet::GetMatChi2(int32_t iAddr)
 {
   //LOG(debug1) << "array sizes: " << fTofHit.size() << ", " << fTofDet.size() << ", " << fMatChi.size();
-  for (UInt_t iHit = 0; iHit < fTofHit.size(); iHit++) {
+  for (uint32_t iHit = 0; iHit < fTofHit.size(); iHit++) {
     //LOG(debug1) << Form(" -v- ind %d, tofhit %d, 0x%08x, chi %f ",iHit,fTofHit[iHit],fTofDet[iHit],fMatChi[iHit]);
     //if(0==fTofDet[iHit]) LOG(fatal) << " CbmTofTracklet::GetMatChi2 Invalid Detector Type! ";
     if (iAddr == fTofDet[iHit]) return fMatChi[iHit];
@@ -134,9 +133,9 @@ Double_t CbmTofTracklet::GetMatChi2(Int_t iAddr)
   return -1.;
 }
 
-Int_t CbmTofTracklet::GetFirstInd(Int_t iAddr)
+int32_t CbmTofTracklet::GetFirstInd(int32_t iAddr)
 {
-  for (UInt_t iHit = 0; iHit < fTofHit.size(); iHit++) {
+  for (uint32_t iHit = 0; iHit < fTofHit.size(); iHit++) {
     //    LOG(info) << "     GFI "<< iSm <<", "<<iHit<<", "<< fTofDet[iHit];
     if (iAddr != fTofDet[iHit]) return fTofHit[iHit];
   }
@@ -144,73 +143,73 @@ Int_t CbmTofTracklet::GetFirstInd(Int_t iAddr)
   return -1;
 }
 
-Double_t CbmTofTracklet::GetZ0x()
+double CbmTofTracklet::GetZ0x()
 {
-  Double_t dZ0 = 0.;
+  double dZ0 = 0.;
   if (fTrackPar.GetTx() != 0.) dZ0 = -fTrackPar.GetX() / fTrackPar.GetTx() + fTrackPar.GetZ();
   return dZ0;
 }
 
-Double_t CbmTofTracklet::GetZ0y()
+double CbmTofTracklet::GetZ0y()
 {
-  Double_t dZ0 = 0.;
+  double dZ0 = 0.;
   if (fTrackPar.GetTy() != 0.) dZ0 = -fTrackPar.GetY() / fTrackPar.GetTy() + fTrackPar.GetZ();
   return dZ0;
 }
 
-Double_t CbmTofTracklet::GetR0()
+double CbmTofTracklet::GetR0()
 {
-  Double_t dR0 = TMath::Sqrt(TMath::Power(GetFitX(0.), 2) + TMath::Power(GetFitY(0.), 2));
+  double dR0 = sqrt(pow(GetFitX(0.), 2) + pow(GetFitY(0.), 2));
   return dR0;
 }
 
-Double_t CbmTofTracklet::GetTex(CbmTofHit* pHit)
+double CbmTofTracklet::GetTex(CbmTofHit* pHit)
 {
   /*
-  Double_t dR2=0.;
-  dR2 += TMath::Power(fTrackPar.GetX()-pHit->GetX(),2);
-  dR2 += TMath::Power(fTrackPar.GetY()-pHit->GetY(),2);
-  dR2 += TMath::Power(fTrackPar.GetZ()-pHit->GetZ(),2);
-  Double_t dR = TMath::Sqrt(dR2);
+  double dR2=0.;
+  dR2 += pow(fTrackPar.GetX()-pHit->GetX(),2);
+  dR2 += pow(fTrackPar.GetY()-pHit->GetY(),2);
+  dR2 += pow(fTrackPar.GetZ()-pHit->GetZ(),2);
+  double dR = sqrt(dR2);
   */
   /*
-  Double_t dR = pHit->GetR();
+  double dR = pHit->GetR();
   LOG(debug) <<Form(" CbmTofTracklet::GetTex T0 %7.1f dR %7.1f, Tt %7.4f => Tex %7.3f, ",
 		    fT0,dR,fTt,fT0 + dR*fTt)
 	     <<fTrackPar.ToString()
 	     ;
   return   fT0 + dR*fTt;
   */
-  Double_t dZ    = pHit->GetZ();
-  Double_t dSign = 1.;
+  double dZ    = pHit->GetZ();
+  double dSign = 1.;
   if (pHit->GetZ() < fhit[0].GetZ()) dSign = -1;
-  Double_t dTex = fhit[0].GetTime() + fTt * dSign * Dist3D(pHit, &fhit[0]);
+  double dTex = fhit[0].GetTime() + fTt * dSign * Dist3D(pHit, &fhit[0]);
   LOG(debug) << Form("GetTex T0 %7.3f, Z %7.1f, DZ %5.1f, Sign %2.0f, Tt %7.4f => Tex %7.3f, ", fhit[0].GetTime(), dZ,
                      dZ - fhit[0].GetZ(), dSign, fTt, dTex)
              << fTrackPar.ToString();
   return dTex;
 }
 
-Double_t CbmTofTracklet::UpdateT0()
+double CbmTofTracklet::UpdateT0()
 {  //returns estimated time at R=0
-   //  Double_t dT0=0.;
-  Int_t nValidHits = 0;
-  Int_t iHit1;
-  Double_t dDist1;
-
-  Double_t aR[fTofHit.size()];
-  Double_t at[fTofHit.size()];
-  Double_t ae[fTofHit.size()];
-  for (UInt_t iHit = 0; iHit < fTofHit.size(); iHit++) {
+   //  double dT0=0.;
+  int32_t nValidHits = 0;
+  int32_t iHit1;
+  double dDist1;
+
+  double aR[fTofHit.size()];
+  double at[fTofHit.size()];
+  double ae[fTofHit.size()];
+  for (uint32_t iHit = 0; iHit < fTofHit.size(); iHit++) {
     if (fTofDet[iHit] >= 0) {  // exclude faked hits
       if (nValidHits == 0) {
         iHit1 = iHit;
         //dDist1=fhit[iHit1].GetR();
-        dDist1 = fhit[iHit1].GetZ()
-                 * TMath::Sqrt(1. + fTrackPar.GetTx() * fTrackPar.GetTx() + fTrackPar.GetTy() * fTrackPar.GetTy());
+        dDist1 =
+          fhit[iHit1].GetZ() * sqrt(1. + fTrackPar.GetTx() * fTrackPar.GetTx() + fTrackPar.GetTy() * fTrackPar.GetTy());
       }
       //aR[nValidHits]=fhit[iHit].GetR();
-      Double_t dSign = 1.;
+      double dSign = 1.;
       if (fhit[iHit].GetZ() < fhit[iHit1].GetZ()) dSign = -1.;
       aR[nValidHits] = dDist1 + dSign * Dist3D(&fhit[iHit], &fhit[iHit1]);
       at[nValidHits] = fhit[iHit].GetTime();
@@ -228,7 +227,7 @@ Double_t CbmTofTracklet::UpdateT0()
   TVectorD t; t.Use(nValidHits,at);
   TVectorD e; e.Use(nValidHits,ae);
 
-  const Int_t nrVar  = 2;
+  const int32_t nrVar  = 2;
   TMatrixD A(nValidHits,nrVar);
   TMatrixDColumn(A,0) = 1.0;
   TMatrixDColumn(A,1) = R;
@@ -236,13 +235,13 @@ Double_t CbmTofTracklet::UpdateT0()
   // first bring the weights in place
   TMatrixD Aw = A;
   TVectorD yw = t;
-  for (Int_t irow = 0; irow < A.GetNrows(); irow++) {
+  for (int32_t irow = 0; irow < A.GetNrows(); irow++) {
     TMatrixDRow(Aw,irow) *= 1/e(irow);
     yw(irow) /= e(irow);
   }
 
   TDecompSVD svd(Aw);
-  Bool_t ok;
+  bool ok;
   const TVectorD c_svd = svd.Solve(yw,ok);
 
   // c_svd.Print();
@@ -256,14 +255,14 @@ Double_t CbmTofTracklet::UpdateT0()
   // Converted into Matrix Form, Matrices calcualted and only resulting formula are implemented
   // J.Brandt
   //
-  Double_t RRsum      = 0;           //  Values will follow this procedure:
-  Double_t Rsum       = 0;           //  $Rsum=\sum_{i}^{nValidHits}\frac{R_i}{e_i^2}$
-  Double_t tsum       = 0;           //  where e_i will always be the error on the t measurement
-  Double_t esum       = 0;           //  RR=R^2 in numerator, e denotes 1 in numerator , Rt= R*t in numerator
-  Double_t Rtsum      = 0;           //
-  Double_t sig_weight = 0;           //  ae^2
-  Double_t yoffset    = at[0] - 10;  //  T0 time offset to scale times to ns regime and not 10^10ns
-  for (Int_t i = 0; i < nValidHits; i++) {
+  double RRsum      = 0;           //  Values will follow this procedure:
+  double Rsum       = 0;           //  $Rsum=\sum_{i}^{nValidHits}\frac{R_i}{e_i^2}$
+  double tsum       = 0;           //  where e_i will always be the error on the t measurement
+  double esum       = 0;           //  RR=R^2 in numerator, e denotes 1 in numerator , Rt= R*t in numerator
+  double Rtsum      = 0;           //
+  double sig_weight = 0;           //  ae^2
+  double yoffset    = at[0] - 10;  //  T0 time offset to scale times to ns regime and not 10^10ns
+  for (int32_t i = 0; i < nValidHits; i++) {
     at[i] -= yoffset;  //  substract offset
     sig_weight = (ae[i] * ae[i]);
     Rsum += (aR[i] / sig_weight);
@@ -272,13 +271,13 @@ Double_t CbmTofTracklet::UpdateT0()
     Rtsum += (aR[i] * at[i] / sig_weight);
     esum += (1 / sig_weight);
   }
-  Double_t det_cov_mat =
+  double det_cov_mat =
     esum * RRsum
     - Rsum * Rsum;  // Determinant of inverted Covariance Matrix -> 1/det is common Faktor of Cavariance Matrix
   fT0      = (RRsum * tsum - Rsum * Rtsum) / det_cov_mat;  // Best Guess for time at origin
   fTt      = (-Rsum * tsum + esum * Rtsum) / det_cov_mat;  // Best guess for inverted velocity
-  fT0Err   = TMath::Sqrt(RRsum / det_cov_mat);             // sqrt of (0,0) in Covariance matrix -> error on fT0
-  fTtErr   = TMath::Sqrt(esum / det_cov_mat);              // sqrt of (1,1) in Covariance Matrix -> error on fTt
+  fT0Err   = sqrt(RRsum / det_cov_mat);                    // sqrt of (0,0) in Covariance matrix -> error on fT0
+  fTtErr   = sqrt(esum / det_cov_mat);                     // sqrt of (1,1) in Covariance Matrix -> error on fTt
   fT0TtCov = -Rsum / det_cov_mat;                          // (0,1)=(1,0) in Covariance Matrix -> cov(fT0,fTt)
 
   fT0 += yoffset;  // Adding yoffset again
@@ -287,18 +286,18 @@ Double_t CbmTofTracklet::UpdateT0()
 
   LOG(debug) << Form("Trkl size %u,  validHits %d, Tt = %6.4f TtErr = %2.4f T0 "
                      "= %6.2f T0Err = %2.2f T0TtCov = %6.4f",
-                     (UInt_t) fTofHit.size(), nValidHits, fTt, fTtErr, fT0, fT0Err, fT0TtCov);
+                     (uint32_t) fTofHit.size(), nValidHits, fTt, fTtErr, fT0, fT0Err, fT0TtCov);
 
   return fT0;
 }
 
-Double_t CbmTofTracklet::UpdateTt()
+double CbmTofTracklet::UpdateTt()
 {
-  Double_t dTt = 0.;
-  Int_t iNt    = 0;
-  for (UInt_t iHL = 0; iHL < fhit.size() - 1; iHL++) {
+  double dTt  = 0.;
+  int32_t iNt = 0;
+  for (uint32_t iHL = 0; iHL < fhit.size() - 1; iHL++) {
     //if( fTofDet[iHL]>0 )                         // exclude faked hits
-    for (UInt_t iHH = iHL + 1; iHH < fhit.size(); iHH++) {
+    for (uint32_t iHH = iHL + 1; iHH < fhit.size(); iHH++) {
       //if( fTofDet[iHH]>0)   // exclude faked hits
       {
         dTt += (fhit[iHH].GetTime() - fhit[iHL].GetTime())
@@ -311,20 +310,20 @@ Double_t CbmTofTracklet::UpdateTt()
     LOG(WARNING) << "No valid hit pair ";
     return fTt;
   }
-  fTt = dTt / (Double_t) iNt;
+  fTt = dTt / (double) iNt;
   return fTt;
 }
 
-Double_t CbmTofTracklet::GetXdif(Int_t iDetId, CbmTofHit* pHit)
+double CbmTofTracklet::GetXdif(int32_t iDetId, CbmTofHit* pHit)
 {
-  Double_t dXref = 0.;
-  Int_t iNref    = 0;
-  Double_t dTx   = 0;
+  double dXref  = 0.;
+  int32_t iNref = 0;
+  double dTx    = 0;
 
   if (1) {
-    for (UInt_t iHL = 0; iHL < fhit.size() - 1; iHL++) {
+    for (uint32_t iHL = 0; iHL < fhit.size() - 1; iHL++) {
       if (iDetId == fTofDet[iHL] || 0 == fTofDet[iHL]) continue;  // exclude faked hits
-      for (UInt_t iHH = iHL + 1; iHH < fhit.size(); iHH++) {
+      for (uint32_t iHH = iHL + 1; iHH < fhit.size(); iHH++) {
         if (iDetId == fTofDet[iHH] || 0 == fTofDet[iHH]) continue;  // exclude faked hits
         //dTt+=(fhit[iHH].GetTime()-fhit[iHL].GetTime())/(fhit[iHH].GetR()-fhit[iHL].GetR()); // for projective geometries only !!!
         dTx += (fhit[iHH].GetX() - fhit[iHL].GetX()) / (fhit[iHH].GetZ() - fhit[iHL].GetZ());
@@ -338,10 +337,10 @@ Double_t CbmTofTracklet::GetXdif(Int_t iDetId, CbmTofHit* pHit)
   }
 
   iNref = 0;
-  for (UInt_t iHit = 0; iHit < fTofHit.size(); iHit++) {
+  for (uint32_t iHit = 0; iHit < fTofHit.size(); iHit++) {
     if (iDetId == fTofDet[iHit] || 0 == fTofDet[iHit]) continue;
 
-    Double_t dDZ = pHit->GetZ() - fhit[iHit].GetZ();
+    double dDZ = pHit->GetZ() - fhit[iHit].GetZ();
     dXref += fhit[iHit].GetX() + dTx * dDZ;
     iNref++;
   }
@@ -356,16 +355,16 @@ Double_t CbmTofTracklet::GetXdif(Int_t iDetId, CbmTofHit* pHit)
   return pHit->GetX() - dXref;
 }
 
-Double_t CbmTofTracklet::GetYdif(Int_t iDetId, CbmTofHit* pHit)
+double CbmTofTracklet::GetYdif(int32_t iDetId, CbmTofHit* pHit)
 {
-  Double_t dYref = 0.;
-  Int_t iNref    = 0;
-  Double_t dTy   = 0;
+  double dYref  = 0.;
+  int32_t iNref = 0;
+  double dTy    = 0;
 
   if (1) {
-    for (UInt_t iHL = 0; iHL < fhit.size() - 1; iHL++) {
+    for (uint32_t iHL = 0; iHL < fhit.size() - 1; iHL++) {
       if (iDetId == fTofDet[iHL] || 0 == fTofDet[iHL]) continue;  // exclude faked hits
-      for (UInt_t iHH = iHL + 1; iHH < fhit.size(); iHH++) {
+      for (uint32_t iHH = iHL + 1; iHH < fhit.size(); iHH++) {
         if (iDetId == fTofDet[iHH] || 0 == fTofDet[iHH]) continue;  // exclude faked hits
         dTy += (fhit[iHH].GetY() - fhit[iHL].GetY()) / (fhit[iHH].GetZ() - fhit[iHL].GetZ());
         iNref++;
@@ -378,10 +377,10 @@ Double_t CbmTofTracklet::GetYdif(Int_t iDetId, CbmTofHit* pHit)
   }
 
   iNref = 0;
-  for (UInt_t iHit = 0; iHit < fTofHit.size(); iHit++) {
+  for (uint32_t iHit = 0; iHit < fTofHit.size(); iHit++) {
     if (iDetId == fTofDet[iHit] || 0 == fTofDet[iHit]) continue;
 
-    Double_t dDZ = pHit->GetZ() - fhit[iHit].GetZ();
+    double dDZ = pHit->GetZ() - fhit[iHit].GetZ();
     dYref += fhit[iHit].GetY() + dTy * dDZ;
     iNref++;
   }
@@ -396,23 +395,23 @@ Double_t CbmTofTracklet::GetYdif(Int_t iDetId, CbmTofHit* pHit)
   return pHit->GetY() - dYref;
 }
 
-Double_t CbmTofTracklet::GetTdif(Int_t iDetId, CbmTofHit* pHit)
+double CbmTofTracklet::GetTdif(int32_t iDetId, CbmTofHit* pHit)
 {
-  Double_t dTref = 0.;
-  Double_t Nref  = 0;
-  Double_t dTt   = 0.;
-  Int_t iNt      = 0;
+  double dTref = 0.;
+  double Nref  = 0;
+  double dTt   = 0.;
+  int32_t iNt  = 0;
 
   if (1) {
-    for (UInt_t iHL = 0; iHL < fhit.size() - 1; iHL++) {
+    for (uint32_t iHL = 0; iHL < fhit.size() - 1; iHL++) {
       if (iDetId == fTofDet[iHL] || 0 == fTofDet[iHL]) continue;  // exclude faked hits
-      for (UInt_t iHH = iHL + 1; iHH < fhit.size(); iHH++) {
+      for (uint32_t iHH = iHL + 1; iHH < fhit.size(); iHH++) {
         if (iDetId == fTofDet[iHH] || 0 == fTofDet[iHH]) continue;  // exclude faked hits
         //dTt+=(fhit[iHH].GetTime()-fhit[iHL].GetTime())/(fhit[iHH].GetR()-fhit[iHL].GetR()); // for projective geometries only !!!
-        Double_t dDist = TMath::Sqrt(TMath::Power((fhit[iHH].GetX() - fhit[iHL].GetX()), 2)
-                                     + TMath::Power((fhit[iHH].GetY() - fhit[iHL].GetY()), 2)
-                                     + TMath::Power((fhit[iHH].GetZ() - fhit[iHL].GetZ()), 2));
-        Double_t dSign = 1.;
+        double dDist =
+          sqrt(pow((fhit[iHH].GetX() - fhit[iHL].GetX()), 2) + pow((fhit[iHH].GetY() - fhit[iHL].GetY()), 2)
+               + pow((fhit[iHH].GetZ() - fhit[iHL].GetZ()), 2));
+        double dSign = 1.;
         if (fhit[iHH].GetZ() < fhit[iHL].GetZ()) dSign = -1.;
         dTt += (fhit[iHH].GetTime() - fhit[iHL].GetTime()) / dDist * dSign;
         iNt++;
@@ -423,16 +422,16 @@ Double_t CbmTofTracklet::GetTdif(Int_t iDetId, CbmTofHit* pHit)
       LOG(error) << "No valid hit pair ";
       return 1.E20;
     }
-    dTt /= (Double_t) iNt;
+    dTt /= (double) iNt;
   }
   else {
     dTt = fTt;
   }
 
-  for (UInt_t iHit = 0; iHit < fTofHit.size(); iHit++) {
+  for (uint32_t iHit = 0; iHit < fTofHit.size(); iHit++) {
     if (iDetId == fTofDet[iHit] || 0 == fTofDet[iHit]) continue;
     //dTref += fhit[iHit].GetTime() - dTt*(fhit[iHit].GetR()-pHit->GetR());
-    Double_t dSign = 1.;
+    double dSign = 1.;
     if (fhit[iHit].GetZ() < pHit->GetZ()) dSign = -1;
     dTref += fhit[iHit].GetTime() - dTt * dSign * Dist3D(&fhit[iHit], pHit);
     Nref++;
@@ -441,44 +440,44 @@ Double_t CbmTofTracklet::GetTdif(Int_t iDetId, CbmTofHit* pHit)
     LOG(error) << "DetId " << iDetId << ", Nref " << Nref << " sizes " << fTofHit.size() << ", " << fhit.size();
     return 1.E20;
   }
-  dTref /= (Double_t) Nref;
-  Double_t dTdif = pHit->GetTime() - dTref;
+  dTref /= (double) Nref;
+  double dTdif = pHit->GetTime() - dTref;
   // LOG(debug) << "iSt "<< iSt<<" DetId "<<iDetId<<", Nref "<<Nref<<" Tdif
   // "<<dTdif;
   return dTdif;
 }
 
-Bool_t CbmTofTracklet::ContainsAddr(Int_t iAddr)
+bool CbmTofTracklet::ContainsAddr(int32_t iAddr)
 {
-  for (UInt_t iHit = 0; iHit < fTofHit.size(); iHit++) {
-    Int_t iHaddr = fhit[iHit].GetAddress() & 0x003FFFFF;
+  for (uint32_t iHit = 0; iHit < fTofHit.size(); iHit++) {
+    int32_t iHaddr = fhit[iHit].GetAddress() & 0x003FFFFF;
     /*
     LOG(debug)<<Form(" Contain test hit %d for 0x%08x, 0x%08x = 0x%08x ?",
 		     iHit,fhit[iHit].GetAddress(),iHaddr,iAddr)
 	      ;
     */
-    if (iHaddr == iAddr) return kTRUE;
+    if (iHaddr == iAddr) return true;
   }
-  return kFALSE;
+  return false;
 }
 
-Int_t CbmTofTracklet::HitIndexOfAddr(Int_t iAddr)
+int32_t CbmTofTracklet::HitIndexOfAddr(int32_t iAddr)
 {
-  for (UInt_t iHit = 0; iHit < fTofHit.size(); iHit++) {
+  for (uint32_t iHit = 0; iHit < fTofHit.size(); iHit++) {
     if ((fhit[iHit].GetAddress() & 0x003FFFFF) == iAddr) return iHit;
   }
   return -1;
 }
 
-CbmTofHit* CbmTofTracklet::HitPointerOfAddr(Int_t iAddr)
+CbmTofHit* CbmTofTracklet::HitPointerOfAddr(int32_t iAddr)
 {
-  for (UInt_t iHit = 0; iHit < fTofHit.size(); iHit++) {
+  for (uint32_t iHit = 0; iHit < fTofHit.size(); iHit++) {
     if ((fhit[iHit].GetAddress() & 0x003FFFFF) == iAddr) return &fhit[iHit];
   }
   return nullptr;
 }
 
-const Double_t* CbmTofTracklet::GetPoint(Int_t n)
+const double* CbmTofTracklet::GetPoint(int32_t n)
 {  // interface to event display: CbmTracks
   fP[0] = fhit[n].GetX();
   fP[1] = fhit[n].GetY();
@@ -488,7 +487,7 @@ const Double_t* CbmTofTracklet::GetPoint(Int_t n)
   return fP;
 }
 
-const Double_t* CbmTofTracklet::GetFitPoint(Int_t n)
+const double* CbmTofTracklet::GetFitPoint(int32_t n)
 {  // interface to event display: CbmTracks
   fP[0] = GetFitX(fhit[n].GetZ());
   fP[1] = GetFitY(fhit[n].GetZ());
@@ -501,17 +500,17 @@ const Double_t* CbmTofTracklet::GetFitPoint(Int_t n)
   return fP;
 }
 
-Double_t CbmTofTracklet::GetFitX(Double_t dZ) { return fTrackPar.GetX() + fTrackPar.GetTx() * (dZ - fTrackPar.GetZ()); }
+double CbmTofTracklet::GetFitX(double dZ) { return fTrackPar.GetX() + fTrackPar.GetTx() * (dZ - fTrackPar.GetZ()); }
 
-Double_t CbmTofTracklet::GetFitY(Double_t dZ) { return fTrackPar.GetY() + fTrackPar.GetTy() * (dZ - fTrackPar.GetZ()); }
+double CbmTofTracklet::GetFitY(double dZ) { return fTrackPar.GetY() + fTrackPar.GetTy() * (dZ - fTrackPar.GetZ()); }
 
-Double_t CbmTofTracklet::GetFitT(Double_t dZ)
+double CbmTofTracklet::GetFitT(double dZ)
 {
   //  return   fT0 + dR*fTt;
-  //return fT0 + fTt*dZ*TMath::Sqrt(fTrackPar.GetTx()*fTrackPar.GetTx()+fTrackPar.GetTy()*fTrackPar.GetTy());
+  //return fT0 + fTt*dZ*sqrt(fTrackPar.GetTx()*fTrackPar.GetTx()+fTrackPar.GetTy()*fTrackPar.GetTy());
   return fT0
          + fTt * (dZ - fTrackPar.GetZ())
-             * TMath::Sqrt(1. + fTrackPar.GetTx() * fTrackPar.GetTx() + fTrackPar.GetTy() * fTrackPar.GetTy());
+             * sqrt(1. + fTrackPar.GetTx() * fTrackPar.GetTx() + fTrackPar.GetTy() * fTrackPar.GetTy());
 }
 
 void CbmTofTracklet::Clear(Option_t* /*option*/)
@@ -527,28 +526,27 @@ void CbmTofTracklet::PrintInfo()
 {
   LOG(info) << Form("TrklInfo: Nhits %d, Tt %6.3f, stations: ", GetNofHits(), GetTt());
   LOG(info);
-  for (Int_t iH = 0; iH < GetNofHits(); iH++) {
+  for (int32_t iH = 0; iH < GetNofHits(); iH++) {
     LOG(info) << Form("  Hit %2d: Ind %5d, det 0x%08x, addr 0x%08x, chi %6.3f, ae[]= %6.4f", iH, fTofHit[iH],
                       fTofDet[iH], fhit[iH].GetAddress(), fMatChi[iH], fhit[iH].GetTimeError());
   }
 }
 
-Double_t CbmTofTracklet::Dist3D(CbmTofHit* pHit0, CbmTofHit* pHit1)
+double CbmTofTracklet::Dist3D(CbmTofHit* pHit0, CbmTofHit* pHit1)
 {
-  Double_t dDist =
-    TMath::Sqrt(TMath::Power((pHit0->GetX() - pHit1->GetX()), 2) + TMath::Power((pHit0->GetY() - pHit1->GetY()), 2)
-                + TMath::Power((pHit0->GetZ() - pHit1->GetZ()), 2));
+  double dDist = sqrt(pow((pHit0->GetX() - pHit1->GetX()), 2) + pow((pHit0->GetY() - pHit1->GetY()), 2)
+                      + pow((pHit0->GetZ() - pHit1->GetZ()), 2));
   return dDist;
 }
 
-Double_t CbmTofTracklet::GetRefVel(UInt_t iNhit)
+double CbmTofTracklet::GetRefVel(uint32_t iNhit)
 {
-  Double_t dVel = 0.;
-  Double_t dTt  = 0.;
-  Int_t iNt     = 0;
+  double dVel = 0.;
+  double dTt  = 0.;
+  int32_t iNt = 0;
   if (fhit.size() >= iNhit) {
-    for (UInt_t iHL = 0; iHL < iNhit - 1; iHL++) {
-      for (UInt_t iHH = iHL + 1; iHH < iNhit; iHH++) {
+    for (uint32_t iHL = 0; iHL < iNhit - 1; iHL++) {
+      for (uint32_t iHH = iHL + 1; iHH < iNhit; iHH++) {
         dTt += (fhit[iHH].GetTime() - fhit[iHL].GetTime()) / (fhit[iHH].GetR() - fhit[iHL].GetR());
         iNt++;
       }
@@ -556,7 +554,7 @@ Double_t CbmTofTracklet::GetRefVel(UInt_t iNhit)
   }
   if (iNt == 0) { LOG(debug) << " CbmTofTracklet::GetRefVel: No valid hit pair "; }
   else {
-    dVel = (Double_t) iNt / dTt;
+    dVel = (double) iNt / dTt;
   }
   return dVel;
 }
diff --git a/core/data/tof/CbmTofTracklet.h b/core/data/tof/CbmTofTracklet.h
index 5f18e4055a..a700870cde 100644
--- a/core/data/tof/CbmTofTracklet.h
+++ b/core/data/tof/CbmTofTracklet.h
@@ -15,13 +15,14 @@
 
 #include <FairTrackParam.h>  // for FairTrackParam
 
-#include <Rtypes.h>      // for THashConsistencyHolder, ClassDef
-#include <RtypesCore.h>  // for Int_t, Double_t, Bool_t, Option_t
-#include <TMath.h>       // for Sqrt, ATan, Power
-#include <TObject.h>     // for TObject
+#include <Rtypes.h>   // for THashConsistencyHolder, ClassDef
+#include <TObject.h>  // for TObject
 
+#include <cstdint>
 #include <vector>  // for vector, __vector_base<>::value_type
 
+#include <cmath>
+
 /** @class CbmTofTracklet
  ** @brief Provides information on attaching a TofHit to a TofTrack
  ** @author nh
@@ -46,93 +47,90 @@ public:
   virtual void PrintInfo();
 
   /**  PID hypothesis for track extrapolation to TOF **/
-  Int_t GetPidHypo() const { return fPidHypo; }
+  int32_t GetPidHypo() const { return fPidHypo; }
 
   /**  Number of TOF hits **/
-  Int_t GetNofHits() const { return fTofHit.size(); }
+  int32_t GetNofHits() const { return fTofHit.size(); }
 
   /**  Index of TOF hit **/
-  Int_t GetHitIndex(Int_t ind) const { return fTofHit[ind]; }
-
-  Double_t GetT0() const { return fT0; }
-  Double_t GetTt() const { return fTt; }
-  Double_t GetT0Err() const { return fT0Err; }
-  Double_t GetTtErr() const { return fTtErr; }
-  Double_t GetT0TtCov() const { return fT0TtCov; }
-  Double_t GetTheta() const
-  {
-    return TMath::ATan(TMath::Sqrt(TMath::Power(fTrackPar.GetTy(), 2) + TMath::Power(fTrackPar.GetTx(), 2)));
-  }
-  Double_t GetPhi() const { return TMath::ATan(fTrackPar.GetTy() / fTrackPar.GetTx()); }
-  Int_t GetStationHitIndex(Int_t iSm) const
+  int32_t GetHitIndex(int32_t ind) const { return fTofHit[ind]; }
+
+  double GetT0() const { return fT0; }
+  double GetTt() const { return fTt; }
+  double GetT0Err() const { return fT0Err; }
+  double GetTtErr() const { return fTtErr; }
+  double GetT0TtCov() const { return fT0TtCov; }
+  double GetTheta() const { return atan(sqrt(pow(fTrackPar.GetTy(), 2) + pow(fTrackPar.GetTx(), 2))); }
+  double GetPhi() const { return atan(fTrackPar.GetTy() / fTrackPar.GetTx()); }
+  int32_t GetStationHitIndex(int32_t iSm) const
   {
-    for (Int_t i = 0; i < (Int_t) fTofHit.size(); i++)
+    for (int32_t i = 0; i < (int32_t) fTofHit.size(); i++)
       if (fTofDet[i] == iSm) return fTofHit[i];
     return -1;
   }
 
-  Int_t GetTofHitIndex(Int_t ind) const { return fTofHit[ind]; }
-  inline void SetTofHitIndex(Int_t ind, Int_t i) { fTofHit[ind] = i; }
-  CbmTofHit* GetTofHitPointer(Int_t ind) { return &fhit[ind]; }
-  Int_t GetTofDetIndex(Int_t ind) const { return fTofDet[ind]; }
+  int32_t GetTofHitIndex(int32_t ind) const { return fTofHit[ind]; }
+  inline void SetTofHitIndex(int32_t ind, int32_t i) { fTofHit[ind] = i; }
+  CbmTofHit* GetTofHitPointer(int32_t ind) { return &fhit[ind]; }
+  int32_t GetTofDetIndex(int32_t ind) const { return fTofDet[ind]; }
 
-  const std::vector<Int_t>& GetTofHitInd() const { return fTofHit; }
+  const std::vector<int32_t>& GetTofHitInd() const { return fTofHit; }
 
-  const Double_t* GetPoint(Int_t n);     // interface to event display: CbmEvDisTracks
-  const Double_t* GetFitPoint(Int_t n);  // interface to event display: CbmEvDisTracks
+  const double* GetPoint(int32_t n);     // interface to event display: CbmEvDisTracks
+  const double* GetFitPoint(int32_t n);  // interface to event display: CbmEvDisTracks
 
   /**  Error of track x coordinate at TOF  **/
-  Double_t GetTrackDx() const { return TMath::Sqrt(fTrackPar.GetCovariance(0)); }
+  double GetTrackDx() const { return sqrt(fTrackPar.GetCovariance(0)); }
 
   /**  Error of track x coordinate at TOF  **/
-  Double_t GetTrackDy() const { return TMath::Sqrt(fTrackPar.GetCovariance(5)); }
+  double GetTrackDy() const { return sqrt(fTrackPar.GetCovariance(5)); }
 
   /**  Track length from primary vertex to TOF **/
-  Double_t GetTrackLength() const { return fTrackLength; }
+  double GetTrackLength() const { return fTrackLength; }
 
   /**  Track parameters at TOF **/
   CbmTofTrackletParam* GetTrackParameter() { return &fTrackPar; }
 
   /**  Track x position at TOF  **/
-  Double_t GetTrackX() const { return fTrackPar.GetX(); }
+  double GetTrackX() const { return fTrackPar.GetX(); }
 
   /**  Track y position at TOF  **/
-  Double_t GetTrackY() const { return fTrackPar.GetY(); }
+  double GetTrackY() const { return fTrackPar.GetY(); }
 
   /**  Track x slope  **/
-  Double_t GetTrackTx() const { return fTrackPar.GetTx(); }
+  double GetTrackTx() const { return fTrackPar.GetTx(); }
 
   /**  Track y slope  **/
-  Double_t GetTrackTy() const { return fTrackPar.GetTy(); }
+  double GetTrackTy() const { return fTrackPar.GetTy(); }
 
   /** Normalized distance from hit to track **/
-  Double_t GetDistance() const { return fDistance; }
-  Double_t GetTime() const { return fTime; }
-  Double_t UpdateTt();
-  Double_t UpdateT0();
-  Double_t GetTex(CbmTofHit* pHit);
-
-  Int_t GetFirstInd(Int_t iSmType);  // return closest Hit to target except in iSmType
-  Double_t GetZ0x();                 // return intercept with z-axis
-  Double_t GetZ0y();                 // return intercept with z-axis
-  Double_t GetR0();                  // return transverse distance at z=0
-  Double_t GetFitX(Double_t Z);      // get x value of fit function at position z
-  Double_t GetFitY(Double_t Z);      // get y value of fit function at position z
-  Double_t GetFitT(Double_t R);      // get time of fit function at distance R
-  Double_t GetRefVel(UInt_t N);      // get reference velocity from first N hits
-
-  Double_t GetChiSq() const { return fChiSq; }
-  Int_t GetNDF() const { return fNDF; }
+  double GetDistance() const { return fDistance; }
+  double GetTime() const { return fTime; }
+  double UpdateTt();
+  double UpdateT0();
+  double GetTex(CbmTofHit* pHit);
+
+  int32_t GetFirstInd(int32_t iSmType);  // return closest Hit to target except in iSmType
+  double GetZ0x();                       // return intercept with z-axis
+  double GetZ0y();                       // return intercept with z-axis
+  double GetR0();                        // return transverse distance at z=0
+  double GetFitX(double Z);              // get x value of fit function at position z
+  double GetFitY(double Z);              // get y value of fit function at position z
+  double GetFitT(double R);              // get time of fit function at distance R
+  double GetRefVel(uint32_t N);          // get reference velocity from first N hits
+
+  double GetChiSq() const { return fChiSq; }
+  int32_t GetNDF() const { return fNDF; }
 
   const FairTrackParam* GetParamFirst() const { return &fParamFirst; }
   const FairTrackParam* GetParamLast() const { return &fParamLast; }
 
   virtual void GetFairTrackParamLast();
 
-  virtual Double_t GetMatChi2(Int_t iSm);
+  virtual double GetMatChi2(int32_t iSm);
 
   /** Set TOF hit index **/
-  inline void SetTofHitIndex(Int_t tofHitIndex, Int_t iDet, CbmTofHit* pHit)
+  inline void SetTofHitIndex(int32_t tofHitIndex, int32_t iDet, CbmTofHit* pHit)
   {
     fTofHit.resize(1);
     fTofHit[0] = tofHitIndex;
@@ -143,7 +141,7 @@ public:
     fMatChi.resize(1);
   }
 
-  inline void SetTofHitIndex(Int_t tofHitIndex, Int_t iDet, CbmTofHit* pHit, Double_t chi2)
+  inline void SetTofHitIndex(int32_t tofHitIndex, int32_t iDet, CbmTofHit* pHit, double chi2)
   {
     fTofHit.resize(1);
     fTofHit[0] = tofHitIndex;
@@ -155,10 +153,10 @@ public:
     fMatChi[0] = chi2;
   }
 
-  inline void SetTofHitInd(const std::vector<Int_t>& tofHitInd) { fTofHit = tofHitInd; }
+  inline void SetTofHitInd(const std::vector<int32_t>& tofHitInd) { fTofHit = tofHitInd; }
 
 
-  inline void AddTofHitIndex(Int_t tofHitIndex, Int_t iDet, CbmTofHit* pHit)
+  inline void AddTofHitIndex(int32_t tofHitIndex, int32_t iDet, CbmTofHit* pHit)
   {
     fTofHit.resize(fTofHit.size() + 1);
     fTofHit[fTofHit.size() - 1] = tofHitIndex;
@@ -169,7 +167,7 @@ public:
     fMatChi.resize(fTofHit.size());
   }
 
-  inline void AddTofHitIndex(Int_t tofHitIndex, Int_t iDet, CbmTofHit* pHit, Double_t chi2)
+  inline void AddTofHitIndex(int32_t tofHitIndex, int32_t iDet, CbmTofHit* pHit, double chi2)
   {
     fTofHit.resize(fTofHit.size() + 1);
     fTofHit[fTofHit.size() - 1] = tofHitIndex;
@@ -181,9 +179,9 @@ public:
     fMatChi[fTofHit.size() - 1] = chi2;
   }
 
-  inline void ReplaceTofHitIndex(Int_t tofHitIndex, Int_t iDet, CbmTofHit* pHit, Double_t chi2)
+  inline void ReplaceTofHitIndex(int32_t tofHitIndex, int32_t iDet, CbmTofHit* pHit, double chi2)
   {
-    for (Int_t iHit = 0; iHit < (Int_t) fTofHit.size(); iHit++) {
+    for (int32_t iHit = 0; iHit < (int32_t) fTofHit.size(); iHit++) {
       if (iDet == fTofDet[iHit]) {
         fTofHit[iHit] = tofHitIndex;
         fhit[iHit]    = CbmTofHit(*pHit);
@@ -193,9 +191,9 @@ public:
     }
   }
 
-  inline void RemoveTofHitIndex(Int_t /*tofHitIndex*/, Int_t iDet, CbmTofHit* /*pHit*/, Double_t /*chi2*/)
+  inline void RemoveTofHitIndex(int32_t /*tofHitIndex*/, int32_t iDet, CbmTofHit* /*pHit*/, double /*chi2*/)
   {
-    for (Int_t iHit = 0; iHit < (Int_t) fTofHit.size(); iHit++) {
+    for (int32_t iHit = 0; iHit < (int32_t) fTofHit.size(); iHit++) {
       if (iDet == fTofDet[iHit]) {
         fTofHit.erase(fTofHit.begin() + iHit);
         fhit.erase(fhit.begin() + iHit);
@@ -205,34 +203,34 @@ public:
     }
   }
 
-  virtual Double_t GetXdif(Int_t iSmType, CbmTofHit* pHit);
-  virtual Double_t GetYdif(Int_t iSmType, CbmTofHit* pHit);
-  virtual Double_t GetTdif(Int_t iSmType, CbmTofHit* pHit);
-  virtual Double_t Dist3D(CbmTofHit* pHit0, CbmTofHit* pHit1);
-  virtual Bool_t ContainsAddr(Int_t iAddr);
-  virtual Int_t HitIndexOfAddr(Int_t iAddr);
-  virtual CbmTofHit* HitPointerOfAddr(Int_t iAddr);
+  virtual double GetXdif(int32_t iSmType, CbmTofHit* pHit);
+  virtual double GetYdif(int32_t iSmType, CbmTofHit* pHit);
+  virtual double GetTdif(int32_t iSmType, CbmTofHit* pHit);
+  virtual double Dist3D(CbmTofHit* pHit0, CbmTofHit* pHit1);
+  virtual bool ContainsAddr(int32_t iAddr);
+  virtual int32_t HitIndexOfAddr(int32_t iAddr);
+  virtual CbmTofHit* HitPointerOfAddr(int32_t iAddr);
 
   /** Set track parameter **/
   inline void SetTrackParameter(CbmTofTrackletParam* par) { fTrackPar = *par; }
 
   /** Set track length **/
-  inline void SetTrackLength(Double_t trackLength) { fTrackLength = trackLength; }
+  inline void SetTrackLength(double trackLength) { fTrackLength = trackLength; }
 
   /** Set PID hypothesis for track extrapolation to TOF **/
-  inline void SetPidHypo(Int_t pid) { fPidHypo = pid; }
+  inline void SetPidHypo(int32_t pid) { fPidHypo = pid; }
 
   /** Set normalized distance from hit to track **/
-  inline void SetDistance(Double_t distance) { fDistance = distance; }
-  inline void SetTime(Double_t val) { fTime = val; }
-  inline void SetTt(Double_t val) { fTt = val; }
-  inline void SetT0(Double_t val) { fT0 = val; }
-  inline void SetT0Err(Double_t val) { fT0Err = val; }
-  inline void SetTtErr(Double_t val) { fTtErr = val; }
-  inline void SetT0TtCov(Double_t val) { fT0TtCov = val; }
-
-  inline void SetChiSq(Double_t chiSq) { fChiSq = chiSq; }
-  inline void SetNDF(Int_t ndf) { fNDF = ndf; }
+  inline void SetDistance(double distance) { fDistance = distance; }
+  inline void SetTime(double val) { fTime = val; }
+  inline void SetTt(double val) { fTt = val; }
+  inline void SetT0(double val) { fT0 = val; }
+  inline void SetT0Err(double val) { fT0Err = val; }
+  inline void SetTtErr(double val) { fTtErr = val; }
+  inline void SetT0TtCov(double val) { fT0TtCov = val; }
+
+  inline void SetChiSq(double chiSq) { fChiSq = chiSq; }
+  inline void SetNDF(int32_t ndf) { fNDF = ndf; }
   inline void SetParamFirst(const FairTrackParam* par) { fParamFirst = *par; }
   inline void SetParamLast(const FairTrackParam* par) { fParamLast = *par; }
 
@@ -243,25 +241,25 @@ public:
   CbmTofTracklet(const CbmTofTracklet&); /**   Copy Constructor   **/
 
 private:
-  Double_t fTrackLength;          // Track length from primary vertex to TOF [cm]
-  Int_t fPidHypo;                 // PID hypothesis used for track extrapolation
-  Double_t fDistance;             // Normalized distance from hit to track
-  Double_t fTime;                 // Reference time of reference hit
-  Double_t fTt;                   // slope dT/dr
-  Double_t fT0;                   // Time at origin
-  Double_t fT0Err;                // Error on Time at origin
-  Double_t fTtErr;                // Error on slope dT/dr
-  Double_t fT0TtCov;              // Covariance od fT0 and fTt
-  Double_t fChiSq;                // Chi2 of fit
-  Int_t fNDF;                     // # of degrees of freedom
+  double fTrackLength;            // Track length from primary vertex to TOF [cm]
+  int32_t fPidHypo;               // PID hypothesis used for track extrapolation
+  double fDistance;               // Normalized distance from hit to track
+  double fTime;                   // Reference time of reference hit
+  double fTt;                     // slope dT/dr
+  double fT0;                     // Time at origin
+  double fT0Err;                  // Error on Time at origin
+  double fTtErr;                  // Error on slope dT/dr
+  double fT0TtCov;                // Covariance od fT0 and fTt
+  double fChiSq;                  // Chi2 of fit
+  int32_t fNDF;                   // # of degrees of freedom
   CbmTofTrackletParam fTrackPar;  //  Track parameters at z of TofHit
   FairTrackParam fParamFirst;     //  Track parameters at first and last fitted hit
   FairTrackParam fParamLast;      //
-  std::vector<Int_t> fTofHit;     // Index of TofHit
-  std::vector<Int_t> fTofDet;     // DetLayer of TofHit
-  std::vector<Double_t> fMatChi;  // Matching Chi2 of TofHit
+  std::vector<int32_t> fTofHit;   // Index of TofHit
+  std::vector<int32_t> fTofDet;   // DetLayer of TofHit
+  std::vector<double> fMatChi;    // Matching Chi2 of TofHit
   std::vector<CbmTofHit> fhit;    // vector of TofHit objects
-  Double_t fP[4];                 // transient (transfer) space point to Eve
+  double fP[4];                   // transient (transfer) space point to Eve
 
   CbmTofTracklet& operator=(const CbmTofTracklet&); /**   Assignment operator   **/
 
diff --git a/core/data/tof/CbmTofTrackletParam.cxx b/core/data/tof/CbmTofTrackletParam.cxx
index 91b3959bbf..9db29a08c3 100644
--- a/core/data/tof/CbmTofTrackletParam.cxx
+++ b/core/data/tof/CbmTofTrackletParam.cxx
@@ -11,15 +11,15 @@
 
 #include <Logger.h>  // for Logger, LOG
 
-Double_t CbmTofTrackletParam::GetZr(Double_t R) const
+double CbmTofTrackletParam::GetZr(double R) const
 {
-  Double_t P   = (fTx + fTy);
-  Double_t Q   = 0.5 * (fX * fX + fY * fY - R * R);
-  Double_t Arg = P * P * 0.25 - Q;
+  double P   = (fTx + fTy);
+  double Q   = 0.5 * (fX * fX + fY * fY - R * R);
+  double Arg = P * P * 0.25 - Q;
   LOG(info) << " GetZr " << R << ", P " << P << ", Q " << Q << ", Arg " << Arg;
 
   if (Arg > 0.) {
-    Double_t z = -P * 0.5 + std::sqrt(Arg);
+    double z = -P * 0.5 + std::sqrt(Arg);
     LOG(info) << " GetZr " << R << ", P " << P << ", Q " << Q << ", Arg " << Arg << ", z " << z;
     return z;
   }
diff --git a/core/data/tof/CbmTofTrackletParam.h b/core/data/tof/CbmTofTrackletParam.h
index 00dd46c8c7..0472665cc3 100644
--- a/core/data/tof/CbmTofTrackletParam.h
+++ b/core/data/tof/CbmTofTrackletParam.h
@@ -12,15 +12,15 @@
 #ifndef CBMTOFTRACKLETPARAM_H_
 #define CBMTOFTRACKLETPARAM_H_
 
-#include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t
-#include <TObject.h>     // for TObject
-#include <TVector3.h>    // for TVector3
+#include <Rtypes.h>    // for ClassDef
+#include <TObject.h>   // for TObject
+#include <TVector3.h>  // for TVector3
 
+#include <cstdint>
 #include <sstream>  // for operator<<, basic_ostream, stringstream, cha...
 #include <vector>   // for vector
 
-#include <math.h>  // for abs, sqrt
+#include <cmath>  // for abs, sqrt
 
 /**
  * built by on 
@@ -55,32 +55,32 @@ public:
   virtual ~CbmTofTrackletParam() {}
 
   /* Getters */
-  Double_t GetX() const { return fX; }
-  Double_t GetY() const { return fY; }
-  Double_t GetZ() const { return fZ; }
-  Double_t GetT() const { return fT; }
-  Double_t GetLz() const { return fLz; }
-  Double_t GetTx() const { return fTx; }
-  Double_t GetTy() const { return fTy; }
-  Double_t GetTt() const { return fTt; }
-  Double_t GetQp() const { return fQp; }
-  Double_t GetChiSq() const { return fChiSq; }
-  Double_t GetCovariance(int index) const { return fCovMatrix[index]; }
-  const std::vector<Double_t>& GetCovMatrix() const { return fCovMatrix; }
+  double GetX() const { return fX; }
+  double GetY() const { return fY; }
+  double GetZ() const { return fZ; }
+  double GetT() const { return fT; }
+  double GetLz() const { return fLz; }
+  double GetTx() const { return fTx; }
+  double GetTy() const { return fTy; }
+  double GetTt() const { return fTt; }
+  double GetQp() const { return fQp; }
+  double GetChiSq() const { return fChiSq; }
+  double GetCovariance(int index) const { return fCovMatrix[index]; }
+  const std::vector<double>& GetCovMatrix() const { return fCovMatrix; }
 
   /* Setters */
-  void SetX(Double_t x) { fX = x; }
-  void SetY(Double_t y) { fY = y; }
-  void SetZ(Double_t z) { fZ = z; }
-  void SetT(Double_t t) { fT = t; }
-  void SetLz(Double_t lz) { fLz = lz; }
-  void SetTx(Double_t tx) { fTx = tx; }
-  void SetTy(Double_t ty) { fTy = ty; }
-  void SetTt(Double_t tt) { fTt = tt; }
-  void SetQp(Double_t qp) { fQp = qp; }
-  void SetChiSq(Double_t v) { fChiSq = v; }
-  void SetCovMatrix(const std::vector<Double_t>& C) { fCovMatrix.assign(C.begin(), C.end()); }
-  void SetCovariance(int index, Double_t cov) { fCovMatrix[index] = cov; }
+  void SetX(double x) { fX = x; }
+  void SetY(double y) { fY = y; }
+  void SetZ(double z) { fZ = z; }
+  void SetT(double t) { fT = t; }
+  void SetLz(double lz) { fLz = lz; }
+  void SetTx(double tx) { fTx = tx; }
+  void SetTy(double ty) { fTy = ty; }
+  void SetTt(double tt) { fTt = tt; }
+  void SetQp(double qp) { fQp = qp; }
+  void SetChiSq(double v) { fChiSq = v; }
+  void SetCovMatrix(const std::vector<double>& C) { fCovMatrix.assign(C.begin(), C.end()); }
+  void SetCovariance(int index, double cov) { fCovMatrix[index] = cov; }
 
   /**
     * \brief Return direction cosines.
@@ -88,12 +88,12 @@ public:
     * \param[out] ny Output direction cosine for OY axis.
     * \param[out] nz Output direction cosine for OZ axis.
     */
-  void GetDirCos(Double_t& nx, Double_t& ny, Double_t& nz) const
+  void GetDirCos(double& nx, double& ny, double& nz) const
   {
-    Double_t p    = (std::abs(fQp) != 0.) ? 1. / std::abs(fQp) : 1.e20;
-    Double_t pz   = std::sqrt(p * p / (fTx * fTx + fTy * fTy + 1));
-    Double_t px   = fTx * pz;
-    Double_t py   = fTy * pz;
+    double p      = (std::abs(fQp) != 0.) ? 1. / std::abs(fQp) : 1.e20;
+    double pz     = std::sqrt(p * p / (fTx * fTx + fTy * fTy + 1));
+    double px     = fTx * pz;
+    double py     = fTy * pz;
     TVector3 unit = TVector3(px, py, pz).Unit();
     nx            = unit.X();
     ny            = unit.Y();
@@ -104,9 +104,9 @@ public:
     * \brief Return state vector as vector.
     * \return State vector as vector.
     */
-  std::vector<Double_t> GetStateVector() const
+  std::vector<double> GetStateVector() const
   {
-    std::vector<Double_t> state(5, 0.);
+    std::vector<double> state(5, 0.);
     state[0] = GetX();
     state[1] = GetY();
     state[2] = GetTx();
@@ -119,7 +119,7 @@ public:
     * \brief Set parameters from vector.
     * \param[in] x State vector.
     */
-  void SetStateVector(const std::vector<Double_t>& x)
+  void SetStateVector(const std::vector<double>& x)
   {
     SetX(x[0]);
     SetY(x[1]);
@@ -138,7 +138,7 @@ public:
     ss << "TofTrackletParam: pos=(" << fX << "," << fY << "," << fZ << ") tx=" << fTx << " ty=" << fTy
        << " qp=" << fQp;  // << std::endl;
                           // ss << "cov: ";
-    // for (Int_t i = 0; i < 15; i++) ss << fCovMatrix[i] << " ";
+    // for (int32_t i = 0; i < 15; i++) ss << fCovMatrix[i] << " ";
     // ss << endl;
     ss.precision(3);
     ss << " cov: x=" << fCovMatrix[0] << " y=" << fCovMatrix[5] << " tx=" << fCovMatrix[9] << " ty=" << fCovMatrix[12]
@@ -146,9 +146,9 @@ public:
     return ss.str();
   }
 
-  Double_t GetZr(Double_t R) const;
+  double GetZr(double R) const;
 
-  Double_t GetZy(Double_t Y) const
+  double GetZy(double Y) const
   {
     if (fTy != 0.) { return (Y - fY) / fTy + fZ; }
     return 0.;
@@ -156,15 +156,15 @@ public:
 
 
 private:
-  Double_t fX, fY, fZ, fT;  // X, Y, Z coordinates in [cm]
-  Double_t fTx, fTy, fTt;   // Slopes: tx=dx/dz, ty=dy/dz
-  Double_t fQp;             // Q/p: Q is a charge (+/-1), p is momentum in [GeV/c]
-  Double_t fLz;             // tracklength in z - direction
-  Double_t fChiSq;
+  double fX, fY, fZ, fT;  // X, Y, Z coordinates in [cm]
+  double fTx, fTy, fTt;   // Slopes: tx=dx/dz, ty=dy/dz
+  double fQp;             // Q/p: Q is a charge (+/-1), p is momentum in [GeV/c]
+  double fLz;             // tracklength in z - direction
+  double fChiSq;
   /* Covariance matrix.
     * Upper triangle symmetric matrix.
     * a[0,0..4], a[1,1..4], a[2,2..4], a[3,3..4], a[4,4] */
-  std::vector<Double_t> fCovMatrix;
+  std::vector<double> fCovMatrix;
 
   ClassDef(CbmTofTrackletParam, 1);
 };
diff --git a/core/data/trd/CbmTrdAddress.h b/core/data/trd/CbmTrdAddress.h
index e86438c1b6..b6892b555d 100644
--- a/core/data/trd/CbmTrdAddress.h
+++ b/core/data/trd/CbmTrdAddress.h
@@ -26,9 +26,9 @@
 
 #include "CbmDefs.h"  // for kTrd
 
-#include <RtypesCore.h>  // for UInt_t, Int_t
-
 #include <cassert>  // for assert
+#include <cstdint>
+
 
 class CbmTrdAddress {
 public:
@@ -41,7 +41,7 @@ public:
    * \param[in] columnId Column ID.
    * \return Address from system ID, layer, module, sector, row and column IDs.
    **/
-  static UInt_t GetAddress(Int_t layerId, Int_t moduleId, Int_t sectorId, Int_t rowId, Int_t columnId)
+  static uint32_t GetAddress(int32_t layerId, int32_t moduleId, int32_t sectorId, int32_t rowId, int32_t columnId)
   {
     assert(!(layerId < 0 || layerId > fgkLayerIdLength || moduleId < 0 || moduleId > fgkModuleIdLength || sectorId < 0
              || sectorId > fgkSectorIdLength || rowId < 0 || rowId > fgkRowIdLength || columnId < 0
@@ -56,7 +56,7 @@ public:
    * \param[in] address Unique channel address.
    * \return System identifier from address.
    **/
-  static UInt_t GetSystemId(UInt_t address)
+  static uint32_t GetSystemId(uint32_t address)
   {
     return (address & (fgkSystemIdLength << fgkSystemIdShift)) >> fgkSystemIdShift;
   }
@@ -66,7 +66,7 @@ public:
    * \param[in] address Unique channel address.
    * \return Layer ID from address.
    **/
-  static UInt_t GetLayerId(UInt_t address)
+  static uint32_t GetLayerId(uint32_t address)
   {
     return (address & (fgkLayerIdLength << fgkLayerIdShift)) >> fgkLayerIdShift;
   }
@@ -76,7 +76,7 @@ public:
    * \param[in] address Unique channel address.
    * \return Module ID from address.
    **/
-  static UInt_t GetModuleId(UInt_t address)
+  static uint32_t GetModuleId(uint32_t address)
   {
     return (address & (fgkModuleIdLength << fgkModuleIdShift)) >> fgkModuleIdShift;
   }
@@ -86,7 +86,7 @@ public:
    * \param[in] address Unique channel address.
    * \return Sector ID from address.
    **/
-  static UInt_t GetSectorId(UInt_t address)
+  static uint32_t GetSectorId(uint32_t address)
   {
     return (address & (fgkSectorIdLength << fgkSectorIdShift)) >> fgkSectorIdShift;
   }
@@ -96,14 +96,14 @@ public:
    * \param[in] address Unique channel address.
    * \return Row ID from address.
    **/
-  static UInt_t GetRowId(UInt_t address) { return (address & (fgkRowIdLength << fgkRowIdShift)) >> fgkRowIdShift; }
+  static uint32_t GetRowId(uint32_t address) { return (address & (fgkRowIdLength << fgkRowIdShift)) >> fgkRowIdShift; }
 
   /**
    * \brief Return column ID from address.
    * \param[in] address Unique channel address.
    * \return Column ID from address.
    **/
-  static UInt_t GetColumnId(UInt_t address)
+  static uint32_t GetColumnId(uint32_t address)
   {
     return (address & (fgkColumnIdLength << fgkColumnIdShift)) >> fgkColumnIdShift;
   }
@@ -113,7 +113,7 @@ public:
    * \param[in] address Unique channel address.
    * \return Unique module ID from address.
    **/
-  static UInt_t GetModuleAddress(UInt_t address)
+  static uint32_t GetModuleAddress(uint32_t address)
   {
     return (address & (fgkModuleAddressLength << fgkModuleAddressStart)) >> fgkModuleAddressStart;
   }
@@ -123,7 +123,7 @@ public:
    * \param[in] address Unique channel address.
    * \return Unique sector ID from address.
    **/
-  static UInt_t GetSectorAddress(UInt_t address)
+  static uint32_t GetSectorAddress(uint32_t address)
   {
     return (address & (fgkSectorAddressLength << fgkSectorAddressStart)) >> fgkSectorAddressStart;
   }
@@ -134,7 +134,7 @@ public:
     * \param newLayerId New value for layer ID.
     * \return New address with modified layer ID.
     */
-  static UInt_t SetLayerId(UInt_t address, Int_t newLayerId)
+  static uint32_t SetLayerId(uint32_t address, int32_t newLayerId)
   {
     assert(!(newLayerId < 0 || newLayerId > fgkLayerIdLength));
     return GetAddress(newLayerId, GetModuleId(address), GetSectorId(address), GetRowId(address), GetColumnId(address));
@@ -146,7 +146,7 @@ public:
     * \param newModuleId New value for module ID.
     * \return New address with modified module ID.
     */
-  static UInt_t SetModuleId(UInt_t address, Int_t newModuleId)
+  static uint32_t SetModuleId(uint32_t address, int32_t newModuleId)
   {
     assert(!(newModuleId < 0 || newModuleId > fgkModuleIdLength));
     return GetAddress(GetLayerId(address), newModuleId, GetSectorId(address), GetRowId(address), GetColumnId(address));
@@ -158,7 +158,7 @@ public:
     * \param newSectorId New value for sector ID.
     * \return New address with modified sector ID.
     */
-  static UInt_t SetSectorId(UInt_t address, Int_t newSectorId)
+  static uint32_t SetSectorId(uint32_t address, int32_t newSectorId)
   {
     assert(!(newSectorId < 0 || newSectorId > fgkSectorIdLength));
     return GetAddress(GetLayerId(address), GetModuleId(address), newSectorId, GetRowId(address), GetColumnId(address));
@@ -170,7 +170,7 @@ public:
     * \param newRowId New value for row ID.
     * \return New address with modified row ID.
     */
-  static UInt_t SetRowId(UInt_t address, Int_t newRowId)
+  static uint32_t SetRowId(uint32_t address, int32_t newRowId)
   {
     assert(!(newRowId < 0 || newRowId > fgkRowIdLength));
     return GetAddress(GetLayerId(address), GetModuleId(address), GetSectorId(address), newRowId, GetColumnId(address));
@@ -182,7 +182,7 @@ public:
     * \param newColumnId New value for column ID.
     * \return New address with modified column ID.
     */
-  static UInt_t SetColumnId(UInt_t address, Int_t newColumnId)
+  static uint32_t SetColumnId(uint32_t address, int32_t newColumnId)
   {
     assert(!(newColumnId < 0 || newColumnId > fgkColumnIdLength));
     return GetAddress(GetLayerId(address), GetModuleId(address), GetSectorId(address), GetRowId(address), newColumnId);
@@ -190,27 +190,27 @@ public:
 
 private:
   // Length of the index of the corresponding volume
-  static const Int_t fgkSystemIdLength = 15;   // 2^4 - 1
-  static const Int_t fgkLayerIdLength  = 15;   // 2^4 - 1
-  static const Int_t fgkModuleIdLength = 127;  // 2^7 - 1
-  static const Int_t fgkSectorIdLength = 3;    // 2^2 - 1
-  static const Int_t fgkRowIdLength    = 127;  // 2^7 - 1
-  static const Int_t fgkColumnIdLength = 255;  // 2^8 - 1
+  static const int32_t fgkSystemIdLength = 15;   // 2^4 - 1
+  static const int32_t fgkLayerIdLength  = 15;   // 2^4 - 1
+  static const int32_t fgkModuleIdLength = 127;  // 2^7 - 1
+  static const int32_t fgkSectorIdLength = 3;    // 2^2 - 1
+  static const int32_t fgkRowIdLength    = 127;  // 2^7 - 1
+  static const int32_t fgkColumnIdLength = 255;  // 2^8 - 1
   // Number of a start bit for each volume
-  static const Int_t fgkSystemIdShift = 0;
-  static const Int_t fgkLayerIdShift  = 4;
-  static const Int_t fgkModuleIdShift = 8;
-  static const Int_t fgkSectorIdShift = 15;
-  static const Int_t fgkRowIdShift    = 17;
-  static const Int_t fgkColumnIdShift = 24;
+  static const int32_t fgkSystemIdShift = 0;
+  static const int32_t fgkLayerIdShift  = 4;
+  static const int32_t fgkModuleIdShift = 8;
+  static const int32_t fgkSectorIdShift = 15;
+  static const int32_t fgkRowIdShift    = 17;
+  static const int32_t fgkColumnIdShift = 24;
   // Start bit and length for unique module address.
   // For unique module address use all bits up to sector ID.
-  static const Int_t fgkModuleAddressStart  = 0;
-  static const Int_t fgkModuleAddressLength = 32767;  // 2^15 - 1
+  static const int32_t fgkModuleAddressStart  = 0;
+  static const int32_t fgkModuleAddressLength = 32767;  // 2^15 - 1
   // Start bit and length for unique sector address.
   // For unique sector address use all bits up to column ID.
-  static const Int_t fgkSectorAddressStart  = 0;
-  static const Int_t fgkSectorAddressLength = 131071;  // 2^17 - 1
+  static const int32_t fgkSectorAddressStart  = 0;
+  static const int32_t fgkSectorAddressLength = 131071;  // 2^17 - 1
 };
 
 #endif
diff --git a/core/data/trd/CbmTrdCluster.cxx b/core/data/trd/CbmTrdCluster.cxx
index eca15855aa..61b4f71fd6 100644
--- a/core/data/trd/CbmTrdCluster.cxx
+++ b/core/data/trd/CbmTrdCluster.cxx
@@ -11,10 +11,10 @@
 
 #include <Logger.h>  // for LOG, Logger
 
-#include <TMathBase.h>  // for Min, Abs
-#
 #include <iostream>  // for operator<<, basic_ostream, stringstream
 
+#include <cmath>
+
 using std::endl;
 using std::string;
 using std::stringstream;
@@ -33,7 +33,7 @@ CbmTrdCluster::CbmTrdCluster(const CbmTrdCluster& ref)
 }
 
 //____________________________________________________________________
-CbmTrdCluster::CbmTrdCluster(const std::vector<Int_t>& indices, Int_t address)
+CbmTrdCluster::CbmTrdCluster(const std::vector<int32_t>& indices, int32_t address)
   : CbmCluster(indices, address)
   , fNCols(0)
   , fNRows(0xff)
@@ -43,7 +43,7 @@ CbmTrdCluster::CbmTrdCluster(const std::vector<Int_t>& indices, Int_t address)
 }
 
 //____________________________________________________________________
-CbmTrdCluster::CbmTrdCluster(Int_t address, Int_t idx, Int_t ch, Int_t row, Int_t time)
+CbmTrdCluster::CbmTrdCluster(int32_t address, int32_t idx, int32_t ch, int32_t row, int32_t time)
   : CbmCluster()
   , fNCols(0)
   , fNRows(0xff)
@@ -58,7 +58,7 @@ CbmTrdCluster::CbmTrdCluster(Int_t address, Int_t idx, Int_t ch, Int_t row, Int_
 CbmTrdCluster::~CbmTrdCluster() {}
 
 //____________________________________________________________________
-Bool_t CbmTrdCluster::AddDigi(Int_t idx, Int_t channel, Int_t terminator, Int_t dt)
+bool CbmTrdCluster::AddDigi(int32_t idx, int32_t channel, int32_t terminator, int32_t dt)
 {
   /** Extend basic functionality of CbmCluster::AddDigi(). 
  * If channel>=0 add this info to channel map.
@@ -66,7 +66,7 @@ Bool_t CbmTrdCluster::AddDigi(Int_t idx, Int_t channel, Int_t terminator, Int_t
 
   if (channel < 0) {  // basic functionality for rectangular pads
     CbmCluster::AddDigi(idx);
-    return kTRUE;
+    return true;
   }
 
   if (channel >= 0xffff) LOG(warn) << GetName() << "::AddDigi: pad-channel truncated to 2bytes.";
@@ -80,14 +80,14 @@ Bool_t CbmTrdCluster::AddDigi(Int_t idx, Int_t channel, Int_t terminator, Int_t
       SetProfileStop();
   }
   else if (channel > GetEndCh()) {  // digi @ end
-    if (HasOpenStop()) return kFALSE;
+    if (HasOpenStop()) return false;
     CbmCluster::AddDigi(idx);
     if (terminator > 0) SetProfileStop();
   }
   else if (channel < fStartCh) {  // digi @ beginning
-    if (HasOpenStart()) return kFALSE;
+    if (HasOpenStart()) return false;
     fStartCh          = channel;
-    vector<Int_t> vec = GetDigis();
+    vector<int32_t> vec = GetDigis();
     ClearDigis();
     CbmCluster::AddDigi(idx);
     AddDigis(vec);
@@ -96,7 +96,7 @@ Bool_t CbmTrdCluster::AddDigi(Int_t idx, Int_t channel, Int_t terminator, Int_t
   fNCols++;
   if (dt > 0) fStartTime -= dt;
 
-  return kTRUE;
+  return true;
 }
 
 //____________________________________________________________________
@@ -110,7 +110,7 @@ void CbmTrdCluster::Clear(Option_t*)
 }
 
 //____________________________________________________________________
-void CbmTrdCluster::ReInit(Int_t address, Int_t row, Int_t time)
+void CbmTrdCluster::ReInit(int32_t address, int32_t row, int32_t time)
 {
   SetAddress(address);
   fNCols   = 0;
@@ -125,7 +125,7 @@ void CbmTrdCluster::ReInit(Int_t address, Int_t row, Int_t time)
 }
 
 //____________________________________________________________________
-Int_t CbmTrdCluster::IsChannelInRange(Int_t ch) const
+int32_t CbmTrdCluster::IsChannelInRange(int32_t ch) const
 {
   if (!fNCols) return -2;
   //   if(IsTerminatedLeft() && fAddressCh[0]>ch) return -1;
@@ -137,28 +137,28 @@ Int_t CbmTrdCluster::IsChannelInRange(Int_t ch) const
 }
 
 //____________________________________________________________________
-Bool_t CbmTrdCluster::Merge(CbmTrdCluster* second)
+bool CbmTrdCluster::Merge(CbmTrdCluster* second)
 {
-  if (GetRow() != second->GetRow()) return kFALSE;
+  if (GetRow() != second->GetRow()) return false;
   // time difference condition
   if (fNCols == 1 || second->fNCols == 1) {
-    if (TMath::Abs(second->fStartTime - fStartTime) > 50) return kFALSE;
+    if (abs(second->fStartTime - fStartTime) > 50) return false;
   }
-  else if (TMath::Abs(second->fStartTime - fStartTime) > 20)
-    return kFALSE;
+  else if (abs(second->fStartTime - fStartTime) > 20)
+    return false;
   // look before current
   if (second->fStartCh + second->fNCols == fStartCh && !second->HasOpenStop() && !HasOpenStart()) {
     //     cout<<"Merge before with "<<second->ToString();
     fStartCh = second->fStartCh;
     fNCols += second->fNCols;
-    fStartTime = TMath::Min(fStartTime, second->fStartTime);
+    fStartTime = std::min(fStartTime, second->fStartTime);
 
-    vector<Int_t> vec = GetDigis();
+    vector<int32_t> vec = GetDigis();
     ClearDigis();
     AddDigis(second->GetDigis());
     AddDigis(vec);
     if (second->HasOpenStart()) SetProfileStart();
-    return kTRUE;
+    return true;
   }
   // special care for FASP clusters which can be merged also on pairing neighboring
   if (HasTrianglePads()) {
@@ -166,14 +166,14 @@ Bool_t CbmTrdCluster::Merge(CbmTrdCluster* second)
         && HasOpenStart()) {  // need to merge digi
       fStartCh = second->fStartCh;
       fNCols += second->fNCols - 1;
-      fStartTime = TMath::Min(fStartTime, second->fStartTime);
+      fStartTime = std::min(fStartTime, second->fStartTime);
 
-      vector<Int_t> vec = GetDigis();
+      vector<int32_t> vec = GetDigis();
       ClearDigis();
       AddDigis(second->GetDigis());
       AddDigis(vec);
-      SetProfileStart(kFALSE);
-      return kTRUE;
+      SetProfileStart(false);
+      return true;
     }
   }
 
@@ -181,24 +181,24 @@ Bool_t CbmTrdCluster::Merge(CbmTrdCluster* second)
   if (fStartCh + fNCols == second->fStartCh && !HasOpenStop() && !second->HasOpenStart()) {
     //     cout<<"Merge after  with "<<second->ToString();
     fNCols += second->fNCols;
-    fStartTime = TMath::Min(fStartTime, second->fStartTime);
+    fStartTime = std::min(fStartTime, second->fStartTime);
     AddDigis(second->GetDigis());
     if (second->HasOpenStop()) SetProfileStop();
-    return kTRUE;
+    return true;
   }
 
   // special care for FASP clusters which can be merged also on pairing neighboring
   if (HasTrianglePads()) {
     if ((fStartCh + fNCols - 1 == second->fStartCh) && HasOpenStop() && second->HasOpenStart()) {  // need to merge digi
       fNCols += second->fNCols - 1;
-      fStartTime = TMath::Min(fStartTime, second->fStartTime);
+      fStartTime = std::min(fStartTime, second->fStartTime);
       AddDigis(second->GetDigis());
-      SetProfileStop(kFALSE);
-      return kTRUE;
+      SetProfileStop(false);
+      return true;
     }
   }
 
-  return kFALSE;
+  return false;
 }
 
 //____________________________________________________________________
@@ -206,10 +206,10 @@ string CbmTrdCluster::ToString() const
 {
   stringstream ss;
   ss << CbmCluster::ToString();
-  ss << "CbmTrdCluster: mod=" << GetAddress() << " t0=" << fStartTime << " R=" << (Int_t) GetRow() << " "
+  ss << "CbmTrdCluster: mod=" << GetAddress() << " t0=" << fStartTime << " R=" << (int32_t) GetRow() << " "
      << (HasTrianglePads() ? "T" : "R") << "Chs=";
   ss << (HasOpenStart() ? "/" : "|");
-  for (Int_t i(0); i < fNCols; i++)
+  for (int32_t i(0); i < fNCols; i++)
     ss << fStartCh + i << " ";
   ss << (HasOpenStop() ? "\\" : "|");
   ss << endl;
diff --git a/core/data/trd/CbmTrdCluster.h b/core/data/trd/CbmTrdCluster.h
index 8ec552c5a3..423941b296 100644
--- a/core/data/trd/CbmTrdCluster.h
+++ b/core/data/trd/CbmTrdCluster.h
@@ -14,8 +14,8 @@
 #include "CbmCluster.h"  // for CbmCluster
 
 #include <Rtypes.h>      // for CLRBIT, SETBIT, TESTBIT, ClassDefr
-#include <RtypesCore.h>  // for Int_t, UShort_t, Bool_t, kTRUE, UChar_t, Opt...
 
+#include <cstdint>
 #include <string>  // for string
 #include <vector>  // for vector
 
@@ -39,7 +39,7 @@ public:
    */
   CbmTrdCluster();
   CbmTrdCluster(const CbmTrdCluster& ref);
-  CbmTrdCluster(const std::vector<Int_t>& indices, Int_t address);
+  CbmTrdCluster(const std::vector<int32_t>& indices, int32_t address);
   /**
    * \brief Constructor starting from first digit.
    * \param[in] address global module address 
@@ -48,7 +48,7 @@ public:
    * \param[in] r module row for the RO channel 
    * \param[in] time relative buffer DAQ time 
    */
-  CbmTrdCluster(Int_t address, Int_t idx, Int_t ch, Int_t r, Int_t time);
+  CbmTrdCluster(int32_t address, int32_t idx, int32_t ch, int32_t r, int32_t time);
   /**
    * \brief Destructor.
    */
@@ -61,55 +61,55 @@ public:
    * \param[in] dt update start time of cluster if current digi is prompt
    * \return true if successful
    */
-  Bool_t AddDigi(Int_t idx, Int_t channel = -1, Int_t terminator = 0, Int_t dt = 0);
+  bool AddDigi(int32_t idx, int32_t channel = -1, int32_t terminator = 0, int32_t dt = 0);
   /** \brief reset cluster data*/
   void Clear(Option_t*);
   /** Accessors **/
-  UShort_t GetNCols() const { return fNCols; }
-  UShort_t GetNRows() const { return fNRows & 0x1f; }
-  UShort_t GetEndCh() const { return fStartCh + fNCols - 1; }
-  UShort_t GetRow() const { return GetNRows(); }
-  UShort_t GetStartCh() const { return fStartCh; }
-  UShort_t GetStartTime() const { return fStartTime; }
-  Bool_t HasTrianglePads() const { return TESTBIT(fNRows, kTriang); }
-  Bool_t HasOpenStart() const { return TESTBIT(fNRows, kProfileStart); }
-  Bool_t HasOpenStop() const { return TESTBIT(fNRows, kProfileStop); }
+  uint16_t GetNCols() const { return fNCols; }
+  uint16_t GetNRows() const { return fNRows & 0x1f; }
+  uint16_t GetEndCh() const { return fStartCh + fNCols - 1; }
+  uint16_t GetRow() const { return GetNRows(); }
+  uint16_t GetStartCh() const { return fStartCh; }
+  uint16_t GetStartTime() const { return fStartTime; }
+  bool HasTrianglePads() const { return TESTBIT(fNRows, kTriang); }
+  bool HasOpenStart() const { return TESTBIT(fNRows, kProfileStart); }
+  bool HasOpenStop() const { return TESTBIT(fNRows, kProfileStop); }
 
   /** \brief Query on RO channel list 
    * \param[in] channel RO channel for digi
    * \return -1 before range; 0 in range; 1 after range; -2 cluster empty of digits
    */
-  Int_t IsChannelInRange(Int_t ch) const;
+  int32_t IsChannelInRange(int32_t ch) const;
   /** \brief Merge current cluster with info from second 
    * \param[in] second cluster to be added
    * \return success or fail
    */
-  Bool_t Merge(CbmTrdCluster* second);
+  bool Merge(CbmTrdCluster* second);
   /** \brief Initialize basic parameters of the cluster
    * \param[in] address global module address
    * \param[in] row cluster row in the module
    * \param[in] time cluster time in time buffer
    */
-  void ReInit(Int_t address, Int_t row, Int_t time);
+  void ReInit(int32_t address, int32_t row, int32_t time);
   /** Setters **/
-  void SetNCols(UShort_t ncols) { fNCols = ncols; }
-  void SetNRows(UShort_t nrows)
+  void SetNCols(uint16_t ncols) { fNCols = ncols; }
+  void SetNRows(uint16_t nrows)
   {
     fNRows &= (7 << 5);
     fNRows |= (nrows & 0x1f);
   }
-  void SetTrianglePads(Bool_t set = kTRUE) { set ? SETBIT(fNRows, kTriang) : CLRBIT(fNRows, kTriang); }
-  void SetProfileStart(Bool_t set = kTRUE) { set ? SETBIT(fNRows, kProfileStart) : CLRBIT(fNRows, kProfileStart); }
-  void SetProfileStop(Bool_t set = kTRUE) { set ? SETBIT(fNRows, kProfileStop) : CLRBIT(fNRows, kProfileStop); }
+  void SetTrianglePads(bool set = true) { set ? SETBIT(fNRows, kTriang) : CLRBIT(fNRows, kTriang); }
+  void SetProfileStart(bool set = true) { set ? SETBIT(fNRows, kProfileStart) : CLRBIT(fNRows, kProfileStart); }
+  void SetProfileStop(bool set = true) { set ? SETBIT(fNRows, kProfileStop) : CLRBIT(fNRows, kProfileStop); }
 
   /** \brief Extended functionality*/
   virtual std::string ToString() const;
 
 protected:
-  UChar_t fNCols;       // number of columns with charge above threshold
-  UChar_t fNRows;       // cluster row info plus extra. Use dedicated getters for the correct value
-  UShort_t fStartCh;    //! channel address of first channel
-  UShort_t fStartTime;  //! start time of cluster in clk units wrt buffer start
+  uint8_t fNCols;       // number of columns with charge above threshold
+  uint8_t fNRows;       // cluster row info plus extra. Use dedicated getters for the correct value
+  uint16_t fStartCh;    //! channel address of first channel
+  uint16_t fStartTime;  //! start time of cluster in clk units wrt buffer start
 
   ClassDef(CbmTrdCluster, 4)  // cluster of digi for the TRD detector
 };
diff --git a/core/data/trd/CbmTrdDigi.cxx b/core/data/trd/CbmTrdDigi.cxx
index 9658fe4e5d..aadc37ae19 100644
--- a/core/data/trd/CbmTrdDigi.cxx
+++ b/core/data/trd/CbmTrdDigi.cxx
@@ -8,13 +8,13 @@
 
 #include <Logger.h>  // for LOG
 
-#include <TMath.h>  // for Ceil
-
 #include <iomanip>  // for operator<<, setprecision, setw
 #include <sstream>  // for operator<<, basic_ostream, stringstream
 #include <string>   // for char_traits
 #include <utility>
 
+#include <cmath>
+
 using std::endl;
 using std::string;
 using std::stringstream;
@@ -30,12 +30,12 @@ using std::stringstream;
  * p - pad address within the module
  */
 
-const Double_t CbmTrdDigi::fgClk[]       = {62.5, 12.5, 0.0};
-const Float_t CbmTrdDigi::fgPrecission[] = {1.e3, 1., 0.0};
+const double CbmTrdDigi::fgClk[]       = {62.5, 12.5, 0.0};
+const float CbmTrdDigi::fgPrecission[] = {1.e3, 1., 0.0};
 //_________________________________________________________________________________
 CbmTrdDigi::CbmTrdDigi() : fInfo(0), fCharge(0), fTime(0) {}
 //_________________________________________________________________________________
-CbmTrdDigi::CbmTrdDigi(Int_t padChNr, Float_t chargeT, Float_t chargeR, ULong64_t time) : fTime(time)
+CbmTrdDigi::CbmTrdDigi(int32_t padChNr, float chargeT, float chargeR, uint64_t time) : fTime(time)
 {
   /** Fill data structure according to FASP representation
  * A - Asic type according to CbmTrdAsicType
@@ -53,8 +53,8 @@ CbmTrdDigi::CbmTrdDigi(Int_t padChNr, Float_t chargeT, Float_t chargeR, ULong64_
 }
 
 //_________________________________________________________________________________
-CbmTrdDigi::CbmTrdDigi(Int_t padChNr, Int_t uniqueModuleId, Float_t charge, ULong64_t time, eTriggerType triggerType,
-                       Int_t errClass)
+CbmTrdDigi::CbmTrdDigi(int32_t padChNr, int32_t uniqueModuleId, float charge, uint64_t time, eTriggerType triggerType,
+                       int32_t errClass)
   : fTime(time)
 {
   /**
@@ -65,7 +65,7 @@ CbmTrdDigi::CbmTrdDigi(Int_t padChNr, Int_t uniqueModuleId, Float_t charge, ULon
  * M - module id in the layer
  * L - layer id in the TRD setup
  * p - pad address within the module
- * fCharge definition UInt_t(charge*fgPrecission)
+ * fCharge definition uint32_t(charge*fgPrecission)
 */
   SetAsic(eCbmTrdAsicType::kSPADIC);
   SetChannel(padChNr);
@@ -84,19 +84,19 @@ CbmTrdDigi::CbmTrdDigi(const CbmTrdDigi& digi)
 }
 
 //_________________________________________________________________________________
-void CbmTrdDigi::AddCharge(CbmTrdDigi* sd, Double_t f)
+void CbmTrdDigi::AddCharge(CbmTrdDigi* sd, double f)
 {
   if (GetType() != eCbmTrdAsicType::kFASP) {
-    LOG(warn) << "CbmTrdDigi::AddCharge(CbmTrdDigi*, Double_t) : Only available for "
-                 "FASP. Use AddCharge(Double_t, Double_t) instead.";
+    LOG(warn) << "CbmTrdDigi::AddCharge(CbmTrdDigi*, double) : Only available for "
+                 "FASP. Use AddCharge(double, double) instead.";
     return;
   }
-  Char_t dt = fCharge >> 24, dts = sd->fCharge >> 24;
-  UInt_t t = ((fCharge & 0xfff000) >> 12), r = (fCharge & 0xfff), ts = ((sd->fCharge & 0xfff000) >> 12),
-         rs = (sd->fCharge & 0xfff);
+  int8_t dt = fCharge >> 24, dts = sd->fCharge >> 24;
+  uint32_t t = ((fCharge & 0xfff000) >> 12), r = (fCharge & 0xfff), ts = ((sd->fCharge & 0xfff000) >> 12),
+           rs = (sd->fCharge & 0xfff);
   // apply correction factor to charge
-  Float_t tsf = f * ts / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)],
-          rsf = f * rs / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)];
+  float tsf   = f * ts / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)],
+        rsf   = f * rs / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)];
   ts          = tsf * fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)];
   rs          = rsf * fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)];
 
@@ -112,18 +112,18 @@ void CbmTrdDigi::AddCharge(CbmTrdDigi* sd, Double_t f)
 }
 
 //_________________________________________________________________________________
-void CbmTrdDigi::AddCharge(Double_t c, Double_t f)
+void CbmTrdDigi::AddCharge(double c, double f)
 {
   if (GetType() != eCbmTrdAsicType::kSPADIC) {
-    LOG(warn) << "CbmTrdDigi::AddCharge(Double_t, Double_t) : Only available "
-                 "for SPADIC. Use AddCharge(CbmTrdDigi*, Double_t) instead.";
+    LOG(warn) << "CbmTrdDigi::AddCharge(double, double) : Only available "
+                 "for SPADIC. Use AddCharge(CbmTrdDigi*, double) instead.";
     return;
   }
   SetCharge(GetCharge() + f * c);
 }
 
 //_________________________________________________________________________________
-Int_t CbmTrdDigi::GetAddressChannel() const
+int32_t CbmTrdDigi::GetAddressChannel() const
 {
   /**  Returns index of the read-out unit in the module in the format row x ncol + col
  */
@@ -131,7 +131,7 @@ Int_t CbmTrdDigi::GetAddressChannel() const
 }
 
 //_________________________________________________________________________________
-Int_t CbmTrdDigi::GetAddressModule() const
+int32_t CbmTrdDigi::GetAddressModule() const
 {
   /**  Convert internal representation of module address to CBM address as defined in CbmTrdAddress
  */
@@ -139,10 +139,10 @@ Int_t CbmTrdDigi::GetAddressModule() const
 }
 
 //_________________________________________________________________________________
-Double_t CbmTrdDigi::GetCharge() const
+double CbmTrdDigi::GetCharge() const
 {
   if (GetType() != eCbmTrdAsicType::kSPADIC) {
-    LOG(warn) << "CbmTrdDigi::GetCharge() : Use Double_t GetCharge(Double_t "
+    LOG(warn) << "CbmTrdDigi::GetCharge() : Use double GetCharge(double "
                  "&tilt) instead.";
     return 0;
   }
@@ -150,7 +150,7 @@ Double_t CbmTrdDigi::GetCharge() const
 }
 
 //_________________________________________________________________________________
-Double_t CbmTrdDigi::GetCharge(Double_t& tilt, Int_t& dt) const
+double CbmTrdDigi::GetCharge(double& tilt, int32_t& dt) const
 {
   /** Retrieve signal information for FASP.
  * Memory allocation of 32 bits: tttt.tttt TTTT.TTTT TTTT.RRRR RRRR.RRRR
@@ -159,21 +159,21 @@ Double_t CbmTrdDigi::GetCharge(Double_t& tilt, Int_t& dt) const
  *    R : Rectangular pads signal
  */
   if (GetType() != eCbmTrdAsicType::kFASP) {
-    LOG(warn) << "CbmTrdDigi::GetCharge(Double_t &) : Use Double_t GetCharge() "
+    LOG(warn) << "CbmTrdDigi::GetCharge(double &) : Use double GetCharge() "
                  "instead.";
     return 0;
   }
-  Char_t toff = fCharge >> 24;
+  int8_t toff = fCharge >> 24;
   dt          = toff;
   tilt        = ((fCharge & 0xfff000) >> 12) / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)];
   return (fCharge & 0xfff) / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)];
 }
 
 //_________________________________________________________________________________
-Double_t CbmTrdDigi::GetChargeError() const { return 0; }
+double CbmTrdDigi::GetChargeError() const { return 0; }
 
 //_________________________________________________________________________________
-std::pair<CbmTrdDigi::eTriggerType, bool> CbmTrdDigi::GetTriggerPair(const Int_t triggerValue)
+std::pair<CbmTrdDigi::eTriggerType, bool> CbmTrdDigi::GetTriggerPair(const int32_t triggerValue)
 {
   // First get the trigger type kSelf or kNeighbor it is written to the first bit of the trigger bits.
   eTriggerType type = static_cast<eTriggerType>(triggerValue & 1);
@@ -185,14 +185,14 @@ std::pair<CbmTrdDigi::eTriggerType, bool> CbmTrdDigi::GetTriggerPair(const Int_t
 }
 
 //_________________________________________________________________________________
-Bool_t CbmTrdDigi::IsFlagged(const Int_t iflag) const
+bool CbmTrdDigi::IsFlagged(const int32_t iflag) const
 {
-  if (iflag < 0 || iflag >= kNflags) return kFALSE;
+  if (iflag < 0 || iflag >= kNflags) return false;
   return (fInfo >> (fgkFlgOffset + iflag)) & 0x1;
 }
 
 //_________________________________________________________________________________
-void CbmTrdDigi::SetAddress(Int_t address)
+void CbmTrdDigi::SetAddress(int32_t address)
 {
   SetLayer(CbmTrdAddress::GetLayerId(address));
   SetModule(CbmTrdAddress::GetModuleId(address));
@@ -207,7 +207,7 @@ void CbmTrdDigi::SetAsic(eCbmTrdAsicType ty)
 }
 
 //_________________________________________________________________________________
-void CbmTrdDigi::SetCharge(Float_t cT, Float_t cR, Int_t dt)
+void CbmTrdDigi::SetCharge(float cT, float cR, int32_t dt)
 {
   /** Load signal information for FASP.
  * Memory allocation of 32 bits: tttt.tttt TTTT.TTTT TTTT.RRRR RRRR.RRRR
@@ -215,9 +215,9 @@ void CbmTrdDigi::SetCharge(Float_t cT, Float_t cR, Int_t dt)
  *    T : tilt pads signal (12 bits)
  *    R : Rectangular pads signal (12 bits)
  */
-  UInt_t r    = UInt_t(cR * fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)]),
-         t    = UInt_t(cT * fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)]);
-  Char_t toff = dt;
+  uint32_t r  = uint32_t(cR * fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)]),
+           t  = uint32_t(cT * fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)]);
+  int8_t toff = dt;
   if (dt > 127) toff = 127;
   else if (dt < -127)
     toff = -127;
@@ -228,14 +228,14 @@ void CbmTrdDigi::SetCharge(Float_t cT, Float_t cR, Int_t dt)
 }
 
 //_________________________________________________________________________________
-void CbmTrdDigi::SetCharge(Float_t c)
+void CbmTrdDigi::SetCharge(float c)
 {
 
-  fCharge = UInt_t(c * fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kSPADIC)]);
+  fCharge = uint32_t(c * fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kSPADIC)]);
 }
 
 //_________________________________________________________________________________
-void CbmTrdDigi::SetFlag(const Int_t iflag, Bool_t set)
+void CbmTrdDigi::SetFlag(const int32_t iflag, bool set)
 {
   if (iflag < 0 || iflag >= kNflags) return;
   if (set) SETBIT(fInfo, fgkFlgOffset + iflag);
@@ -244,15 +244,15 @@ void CbmTrdDigi::SetFlag(const Int_t iflag, Bool_t set)
 }
 
 //_________________________________________________________________________________
-void CbmTrdDigi::SetTime(Double_t t)
+void CbmTrdDigi::SetTime(double t)
 {
   switch (GetType()) {
     case eCbmTrdAsicType::kFASP: {
-      fTime = ULong64_t(TMath::Ceil(t / Clk(GetType())));
+      fTime = uint64_t(ceil(t / Clk(GetType())));
       break;
     }
     case eCbmTrdAsicType::kSPADIC: {
-      fTime = static_cast<ULong64_t>(t);
+      fTime = static_cast<uint64_t>(t);
       break;
     }
     case eCbmTrdAsicType::kNTypes: return;
@@ -260,7 +260,7 @@ void CbmTrdDigi::SetTime(Double_t t)
 }
 
 //_________________________________________________________________________________
-void CbmTrdDigi::SetTimeOffset(Char_t t)
+void CbmTrdDigi::SetTimeOffset(int8_t t)
 {
   if (GetType() != eCbmTrdAsicType::kFASP) return;
   fCharge <<= 8;
@@ -272,14 +272,15 @@ void CbmTrdDigi::SetTimeOffset(Char_t t)
 void CbmTrdDigi::SetTriggerType(const eTriggerType triggerType)
 {
   if (triggerType < eTriggerType::kBeginTriggerTypes || triggerType >= eTriggerType::kNTrg) return;
-  const Int_t ttype = static_cast<Int_t>(triggerType);
+  const int32_t ttype = static_cast<int32_t>(triggerType);
   fInfo |= (ttype << fgkTrgOffset);
 }
 
 //_________________________________________________________________________________
-void CbmTrdDigi::SetTriggerType(const Int_t ttype)
+void CbmTrdDigi::SetTriggerType(const int32_t ttype)
 {
-  if (ttype < static_cast<Int_t>(eTriggerType::kBeginTriggerTypes) || ttype >= static_cast<Int_t>(eTriggerType::kNTrg))
+  if (ttype < static_cast<int32_t>(eTriggerType::kBeginTriggerTypes)
+      || ttype >= static_cast<int32_t>(eTriggerType::kNTrg))
     return;
   fInfo |= (ttype << fgkTrgOffset);
 }
@@ -293,9 +294,9 @@ string CbmTrdDigi::ToString() const
      << " | moduleAddress=" << GetAddressModule() << " | layer=" << Layer() << " | moduleId=" << Module()
      << " | pad=" << GetAddressChannel() << " | time[ns]=" << std::fixed << std::setprecision(1) << GetTime();
   if (GetType() == eCbmTrdAsicType::kFASP) {
-    Int_t trg(GetTriggerType()), dt;
-    Double_t t, r = GetCharge(t, dt);
-    Bool_t ttrg(trg & 1), rtrg((trg & 2) >> 1);
+    int32_t trg(GetTriggerType()), dt;
+    double t, r = GetCharge(t, dt);
+    bool ttrg(trg & 1), rtrg((trg & 2) >> 1);
     ss << " | pu=" << (IsPileUp() ? "y" : "n") << " | mask=" << (IsMasked() ? "y" : "n") << " |charge=" << std::fixed
        << std::setw(6) << std::setprecision(1) << t << (!ttrg && t > 0 ? '*' : ' ') << "/" << r
        << (!rtrg && r > 0 ? '*' : ' ') << "[" << dt << "]";
diff --git a/core/data/trd/CbmTrdDigi.h b/core/data/trd/CbmTrdDigi.h
index d848be7f20..a0a06f7747 100644
--- a/core/data/trd/CbmTrdDigi.h
+++ b/core/data/trd/CbmTrdDigi.h
@@ -8,11 +8,11 @@
 #include "CbmDefs.h"  // for kTrd
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Int_t, Float_t, Double_t, Bool_t, ULong64_t
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/base_object.hpp>
 
+#include <cstdint>
 #include <string>  // for string
 
 class CbmTrdDigi {
@@ -23,7 +23,7 @@ public:
     kFASP,
     kNTypes
   };
-  enum class eTriggerType : Int_t
+  enum class eTriggerType : int32_t
   {
     kBeginTriggerTypes = 0,
     kSelf              = kBeginTriggerTypes,
@@ -53,7 +53,7 @@ public:
    * \param[in] chargeR Charge for rectangle pad parring.
    * \param[in] time   Absolute time [ASIC clocks].
    */
-  CbmTrdDigi(Int_t padChNr, Float_t chargeT, Float_t chargeR, ULong64_t time);
+  CbmTrdDigi(int32_t padChNr, float chargeT, float chargeR, uint64_t time);
   /**
    * \brief Constructor for the SPADIC type.
    * \param[in] padChNr Unique channel address in the module.
@@ -63,15 +63,15 @@ public:
    * \param[in] triggerType SPADIC trigger type see CbmTrdTriggerType.
    * \param[in] errClass SPADIC signal error parametrization based on message type.
    */
-  CbmTrdDigi(Int_t padChNr, Int_t uniqueModuleId, Float_t charge, ULong64_t time, eTriggerType triggerType,
-             Int_t errClass /*nrSamples*/);
+  CbmTrdDigi(int32_t padChNr, int32_t uniqueModuleId, float charge, uint64_t time, eTriggerType triggerType,
+             int32_t errClass /*nrSamples*/);
 
   /**
    * \brief Constructor for backward compatibillity.
    * Does not do anything.
    */
-  CbmTrdDigi(Int_t /*address*/, Double_t /*fullTime*/, Int_t /*triggerType*/, Int_t /*infoType*/, Int_t /*stopType*/,
-             Int_t /*nrSamples*/, Float_t* /*samples*/)
+  CbmTrdDigi(int32_t /*address*/, double /*fullTime*/, int32_t /*triggerType*/, int32_t /*infoType*/,
+             int32_t /*stopType*/, int32_t /*nrSamples*/, float* /*samples*/)
     : fInfo(0)
     , fCharge(0)
     , fTime(0)
@@ -97,37 +97,37 @@ public:
    * \param[in] sd previous digi absorbed by current
    * \param[in] f scaling factor
    */
-  void AddCharge(CbmTrdDigi* sd, Double_t f);
+  void AddCharge(CbmTrdDigi* sd, double f);
   /** \brief Charge addition in case of pile-up (SPADIC simulation only)
    * \param[in] c extra charge to be added
    * \param[in] f scaling factor
    */
-  void AddCharge(Double_t c, Double_t f = 1);
+  void AddCharge(double c, double f = 1);
   /** \brief DAQ clock accessor for each ASIC*/
-  static Float_t Clk(eCbmTrdAsicType ty) { return fgClk[static_cast<size_t>(ty)]; }
+  static float Clk(eCbmTrdAsicType ty) { return fgClk[static_cast<size_t>(ty)]; }
   /** \brief Address getter for module in the format defined by CbmTrdDigi (format of CbmTrdAddress can be accessed via CbmTrdParModDigi)
    */
-  Int_t GetAddress() const { return (fInfo >> fgkRoOffset) & 0x7fffff; }
+  int32_t GetAddress() const { return (fInfo >> fgkRoOffset) & 0x7fffff; }
   /** \brief Getter read-out id.
    * \return index of row-column read-out unit in the module
    */
-  Int_t GetAddressChannel() const;
+  int32_t GetAddressChannel() const;
   /** \brief Getter module address in the experiment.
    * \return index of module in the experimental set-up. Should be dropped if data get organized module-wise
    */
-  Int_t GetAddressModule() const;
+  int32_t GetAddressModule() const;
   /** \brief Charge getter for SPADIC*/
-  Double_t GetCharge() const;
+  double GetCharge() const;
   /** \brief Charge getter for FASP
    * \param[out] tilt on returns contain the charge measured on tilted pads
    * \param[out] dt on returns contain the time difference wrt tilted pads [ASIC clocks]
    * \return charge measured on rectangular coupled pads
    */
-  Double_t GetCharge(Double_t& tilt, Int_t& dt) const;
+  double GetCharge(double& tilt, int32_t& dt) const;
   /** \brief Charge error parametrisation. SPADIC specific see GetErrorClass()*/
-  Double_t GetChargeError() const;
+  double GetChargeError() const;
   /** \brief Channel status. SPADIC specific see LUT*/
-  Int_t GetErrorClass() const { return (fInfo >> fgkErrOffset) & 0x7; }
+  int32_t GetErrorClass() const { return (fInfo >> fgkErrOffset) & 0x7; }
 
   /** System ID (static)
   ** @return System identifier (ECbmModuleId)
@@ -147,24 +147,24 @@ public:
 
 
   /** \brief Getter for physical time [ns]. Accounts for clock representation of each ASIC. In SPADIC case physical time is already stored in fTime. */
-  Double_t GetTime() const
+  double GetTime() const
   {
     return (GetType() == eCbmTrdAsicType::kFASP) ? fTime * fgClk[static_cast<size_t>(GetType())] : fTime;
   }
   /** \brief Getter for global DAQ time [clk]. Differs for each ASIC. In FASP case DAQ time is already stored in fTime.*/
-  ULong64_t GetTimeDAQ() const
+  uint64_t GetTimeDAQ() const
   {
     return (GetType() == eCbmTrdAsicType::kFASP) ? fTime : fTime / fgClk[static_cast<size_t>(GetType())];
   }
   /** \brief Channel trigger type. SPADIC specific see CbmTrdTriggerType*/
-  Int_t GetTriggerType() const { return (fInfo >> fgkTrgOffset) & 0x3; }
+  int32_t GetTriggerType() const { return (fInfo >> fgkTrgOffset) & 0x3; }
 
   /**
    * @brief Get the trigger combination, i.e. St or Nt and is multihit or not (true/false)
-   * @param[in] Int_t trigger value of a digi as stored in fInfo
+   * @param[in] int32_t trigger value of a digi as stored in fInfo
    * @return std::pair<eTriggerType, bool> <St or Nt, multihit or not>
   */
-  static std::pair<eTriggerType, bool> GetTriggerPair(const Int_t triggerValue);
+  static std::pair<eTriggerType, bool> GetTriggerPair(const int32_t triggerValue);
 
   /** \brief Channel FEE SPADIC/FASP according to CbmTrdAsicType*/
   eCbmTrdAsicType GetType() const
@@ -173,56 +173,56 @@ public:
   }
 
   /** \brief Query digi mask (FASP only)*/
-  Bool_t IsMasked() const { return (GetType() == eCbmTrdAsicType::kFASP) && IsFlagged(kFlag3); }
+  bool IsMasked() const { return (GetType() == eCbmTrdAsicType::kFASP) && IsFlagged(kFlag3); }
   /** \brief Query digi pile-up (FASP only)*/
-  Bool_t IsPileUp() const { return (GetType() == eCbmTrdAsicType::kFASP) && IsFlagged(kFlag2); }
+  bool IsPileUp() const { return (GetType() == eCbmTrdAsicType::kFASP) && IsFlagged(kFlag2); }
   /** \brief Query flag status (generic)*/
-  Bool_t IsFlagged(const Int_t iflag) const;
-  Int_t Layer() const { return (fInfo >> fgkLyOffset) & 0xf; }
-  Int_t Module() const { return (fInfo >> fgkModOffset) & 0x7f; }
+  bool IsFlagged(const int32_t iflag) const;
+  int32_t Layer() const { return (fInfo >> fgkLyOffset) & 0xf; }
+  int32_t Module() const { return (fInfo >> fgkModOffset) & 0x7f; }
 
   /** \brief Module address setter for digi
    * \param[in] a module address as it is defined in CbmTrdAddress
    */
-  void SetAddress(const Int_t a);
+  void SetAddress(const int32_t a);
   /** \brief Alias for SetAddress() */
-  void SetAddressModule(const Int_t a) { SetAddress(a); }
+  void SetAddressModule(const int32_t a) { SetAddress(a); }
 
   void SetAsic(eCbmTrdAsicType ty = eCbmTrdAsicType::kSPADIC);
   /** \brief Charge setter for SPADIC ASIC
    * \param[in] c charge on read-out pad
    */
-  void SetCharge(Float_t c);
+  void SetCharge(float c);
   /** \brief Charge setter for FASP ASIC
    * \param[in] cT charge on tilt paired
    * \param[in] cR charge on rectangular paired
    * \param[in] dt time difference between T and R channel
    */
-  void SetCharge(Float_t cT, Float_t cR, Int_t dt = 0);
+  void SetCharge(float cT, float cR, int32_t dt = 0);
   /** \brief Generic flag status setter*/
-  void SetFlag(const Int_t iflag, Bool_t set = kTRUE);
+  void SetFlag(const int32_t iflag, bool set = true);
   /** \brief Set digi mask (FASP only)*/
-  void SetMasked(Bool_t set = kTRUE)
+  void SetMasked(bool set = true)
   {
     if (GetType() == eCbmTrdAsicType::kFASP) SetFlag(kFlag3, set);
   }
   /** \brief Set digi pile-up (FASP only)*/
-  void SetPileUp(Bool_t set = kTRUE)
+  void SetPileUp(bool set = true)
   {
     if (GetType() == eCbmTrdAsicType::kFASP) SetFlag(kFlag2, set);
   }
   /** \brief Set global digi time (ns)*/
-  void SetTime(Double_t t);
+  void SetTime(double t);
   /** \brief Set global digi time (clk)*/
-  void SetTimeDAQ(ULong64_t t) { fTime = t; }
+  void SetTimeDAQ(uint64_t t) { fTime = t; }
   /** \brief Set time offset of rectangular to tilt pads for FASP (clk)*/
-  void SetTimeOffset(Char_t t);
+  void SetTimeOffset(int8_t t);
   /** \brief Set digi trigger type */
   void SetTriggerType(const eTriggerType triggerType);
   /** \brief Set digi trigger type */
-  void SetTriggerType(const Int_t triggerValue);
+  void SetTriggerType(const int32_t triggerValue);
   /** \brief Set digi error class (SPADIC only)*/
-  void SetErrorClass(const Int_t n)
+  void SetErrorClass(const int32_t n)
   {
     fInfo &= ~(0x7 << fgkErrOffset);
     fInfo |= ((n & 0x7) << fgkErrOffset);
@@ -232,58 +232,58 @@ public:
 
   // TEMPORARY ADDED WITHOUT PROVIDING FUNCTIONALITY ! TODO should be removed
   // keep backward compatible compilation of CbmTrdSPADIC
-  void SetStopType(Int_t /*stopType*/) { ; }
-  Int_t GetStopType() { return 0; }
-  void SetPulseShape(Float_t /*pulse*/[45]) { ; }
+  void SetStopType(int32_t /*stopType*/) { ; }
+  int32_t GetStopType() { return 0; }
+  void SetPulseShape(float /*pulse*/[45]) { ; }
   // keep backward compatible compilation of fles/reader/tasks [/tools]
-  Double_t GetChargeTR() const { return 0.; }
-  void SetInfoType(Int_t /*infoType*/) { ; }
-  Int_t GetNrSamples() { return 0; }
-  Float_t* GetSamples() { return nullptr; }
+  double GetChargeTR() const { return 0.; }
+  void SetInfoType(int32_t /*infoType*/) { ; }
+  int32_t GetNrSamples() { return 0; }
+  float* GetSamples() { return nullptr; }
 
 protected:
-  void SetChannel(const Int_t a)
+  void SetChannel(const int32_t a)
   {
     fInfo &= ~(0xfff << fgkRoOffset);
     fInfo |= (a & 0xfff) << fgkRoOffset;
   }
-  void SetLayer(const Int_t a)
+  void SetLayer(const int32_t a)
   {
     fInfo &= ~(0xf << fgkLyOffset);
     fInfo |= ((a & 0xf) << fgkLyOffset);
   }
-  void SetModule(const Int_t a)
+  void SetModule(const int32_t a)
   {
     fInfo &= ~(0x7f << fgkModOffset);
     fInfo |= ((a & 0x7f) << fgkModOffset);
   }
 
-  UInt_t fInfo   = 0;  //< pad address and extra information
-  UInt_t fCharge = 0;  //< measured charge. For SPADIC is Int_t(charge*1eN) where N is the precission while
+  uint32_t fInfo   = 0;  //< pad address and extra information
+  uint32_t fCharge = 0;  //< measured charge. For SPADIC is int32_t(charge*1eN) where N is the precission while
   //< for FASP it contains the R and T charges each on 12bits and the time difference between R and T pads in CLK (8 bits).
-  ULong64_t fTime = 0;  //< global time of the digi: For SPADIC in ns, for FASP in ASIC clock
+  uint64_t fTime = 0;  //< global time of the digi: For SPADIC in ns, for FASP in ASIC clock
 
   /**
    * @brief clock length in ns for acquisition
    * 
    */
-  static const Double_t fgClk[static_cast<size_t>(eCbmTrdAsicType::kNTypes) + 1];
+  static const double fgClk[static_cast<size_t>(eCbmTrdAsicType::kNTypes) + 1];
 
   /**
   * @brief Nr. of digits stored for ASIC
   * 
   */
-  static const Float_t fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kNTypes) + 1];
+  static const float fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kNTypes) + 1];
 
 
 private:
-  static const Int_t fgkRoOffset  = 0;
-  static const Int_t fgkModOffset = 12;
-  static const Int_t fgkLyOffset  = 19;
-  static const Int_t fgkErrOffset = 23;
-  static const Int_t fgkFlgOffset = 26;
-  static const Int_t fgkTrgOffset = 29;
-  static const Int_t fgkTypOffset = 31;
+  static const int32_t fgkRoOffset  = 0;
+  static const int32_t fgkModOffset = 12;
+  static const int32_t fgkLyOffset  = 19;
+  static const int32_t fgkErrOffset = 23;
+  static const int32_t fgkFlgOffset = 26;
+  static const int32_t fgkTrgOffset = 29;
+  static const int32_t fgkTypOffset = 31;
 
   /// BOOST serialization interface
   friend class boost::serialization::access;
diff --git a/core/data/trd/CbmTrdHit.cxx b/core/data/trd/CbmTrdHit.cxx
index 0006a58fd3..8dd24d972a 100644
--- a/core/data/trd/CbmTrdHit.cxx
+++ b/core/data/trd/CbmTrdHit.cxx
@@ -25,8 +25,8 @@ CbmTrdHit::CbmTrdHit() : CbmPixelHit(), fDefine(0), fNeighborId(-1), fELoss(-1.)
   SetTimeError(-1);
 }
 
-CbmTrdHit::CbmTrdHit(Int_t address, const TVector3& pos, const TVector3& dpos, Double_t dxy, Int_t refId,
-                     Double_t eLoss, Double_t time, Double_t timeError)
+CbmTrdHit::CbmTrdHit(int32_t address, const TVector3& pos, const TVector3& dpos, double dxy, int32_t refId,
+                     double eLoss, double time, double timeError)
   : CbmPixelHit(address, pos, dpos, dxy, refId)
   , fDefine(0)
   , fNeighborId(-1)
diff --git a/core/data/trd/CbmTrdHit.h b/core/data/trd/CbmTrdHit.h
index a8b3d5e790..60b3017641 100644
--- a/core/data/trd/CbmTrdHit.h
+++ b/core/data/trd/CbmTrdHit.h
@@ -16,8 +16,9 @@
 #include "CbmTrdAddress.h"  // for CbmTrdAddress
 
 #include <Rtypes.h>      // for CLRBIT, SETBIT, TESTBIT, ClassDef
-#include <RtypesCore.h>  // for Bool_t, Double_t, kTRUE, Int_t, Double32_t
+#include <RtypesCore.h>  // for Double32_t
 
+#include <cstdint>
 #include <string>  // for string
 
 class TVector3;
@@ -62,41 +63,41 @@ public:
 	  *\param refId Index of digi or cluster
 	  *\param eLoss TR + dEdx
 	  **/
-  CbmTrdHit(Int_t address, const TVector3& pos, const TVector3& dpos, Double_t dxy, Int_t refId, Double_t eLoss,
-            Double_t time = 0., Double_t timeError = 0.);
+  CbmTrdHit(int32_t address, const TVector3& pos, const TVector3& dpos, double dxy, int32_t refId, double eLoss,
+            double time = 0., double timeError = 0.);
 
   /** \brief Destructor. */
   virtual ~CbmTrdHit();
 
   /** \brief Inherited from CbmBaseHit.*/
-  Int_t GetPlaneId() const { return CbmTrdAddress::GetLayerId(GetAddress()); }
+  int32_t GetPlaneId() const { return CbmTrdAddress::GetLayerId(GetAddress()); }
 
   /** \brief Inherited from CbmBaseHit.**/
   virtual std::string ToString() const;
 
   /** Accessors **/
-  Double_t GetELoss() const { return fELoss; }
-  Bool_t GetClassType() const { return TESTBIT(fDefine, kType); }
-  Bool_t GetMaxType() const { return TESTBIT(fDefine, kMaxType); }
-  Bool_t HasOverFlow() const { return TESTBIT(fDefine, kOvfl); }
-  Bool_t IsRowCross() const { return TESTBIT(fDefine, kRowCross); }
-  Bool_t IsUsed() const { return (GetRefId() < 0); }
+  double GetELoss() const { return fELoss; }
+  bool GetClassType() const { return TESTBIT(fDefine, kType); }
+  bool GetMaxType() const { return TESTBIT(fDefine, kMaxType); }
+  bool HasOverFlow() const { return TESTBIT(fDefine, kOvfl); }
+  bool IsRowCross() const { return TESTBIT(fDefine, kRowCross); }
+  bool IsUsed() const { return (GetRefId() < 0); }
 
   /** Setters **/
-  void SetELoss(Double_t loss) { fELoss = loss; }
+  void SetELoss(double loss) { fELoss = loss; }
   /** \brief Mark overflow in one or more digits which define the hit.*/
-  void SetOverFlow(Bool_t set = kTRUE) { set ? SETBIT(fDefine, kOvfl) : CLRBIT(fDefine, kOvfl); }
+  void SetOverFlow(bool set = true) { set ? SETBIT(fDefine, kOvfl) : CLRBIT(fDefine, kOvfl); }
   /** \brief Mark hit reconstructed between pad rows.*/
-  void SetRowCross(Bool_t set = kTRUE) { set ? SETBIT(fDefine, kRowCross) : CLRBIT(fDefine, kRowCross); }
+  void SetRowCross(bool set = true) { set ? SETBIT(fDefine, kRowCross) : CLRBIT(fDefine, kRowCross); }
   /** \brief Type of pad layout used in reconstruction R[0], T[1]*/
-  void SetClassType(Bool_t set = kTRUE) { set ? SETBIT(fDefine, kType) : CLRBIT(fDefine, kType); }
+  void SetClassType(bool set = true) { set ? SETBIT(fDefine, kType) : CLRBIT(fDefine, kType); }
   /** \brief Extra bool definition for the hit (e.g. the type of maximum for triangular pads).*/
-  void SetMaxType(Bool_t set = kTRUE) { set ? SETBIT(fDefine, kMaxType) : CLRBIT(fDefine, kMaxType); }
+  void SetMaxType(bool set = true) { set ? SETBIT(fDefine, kMaxType) : CLRBIT(fDefine, kMaxType); }
 
 private:
-  UChar_t fDefine;    // hit extra info
-  Int_t fNeighborId;  // refId in case of row cross clusters
-  Double32_t fELoss;  // Energy deposit due to TR + dEdx
+  uint8_t fDefine;      // hit extra info
+  int32_t fNeighborId;  // refId in case of row cross clusters
+  Double32_t fELoss;    // Energy deposit due to TR + dEdx
 
   ClassDef(CbmTrdHit, 4);
 };
diff --git a/core/data/trd/CbmTrdPoint.cxx b/core/data/trd/CbmTrdPoint.cxx
index fa68747bea..04e5095838 100644
--- a/core/data/trd/CbmTrdPoint.cxx
+++ b/core/data/trd/CbmTrdPoint.cxx
@@ -20,8 +20,8 @@ CbmTrdPoint::CbmTrdPoint() : FairMCPoint(), fX_out(0.), fY_out(0.), fZ_out(0.),
 
 
 // -----   Standard constructor   ------------------------------------------
-CbmTrdPoint::CbmTrdPoint(Int_t trackID, Int_t detID, const TVector3& posIn, const TVector3& momIn,
-                         const TVector3& posOut, const TVector3& momOut, Double_t tof, Double_t length, Double_t eLoss)
+CbmTrdPoint::CbmTrdPoint(int32_t trackID, int32_t detID, const TVector3& posIn, const TVector3& momIn,
+                         const TVector3& posOut, const TVector3& momOut, double tof, double length, double eLoss)
   : FairMCPoint(trackID, detID, posIn, momIn, tof, length, eLoss)
   , fX_out(posOut.X())
   , fY_out(posOut.Y())
diff --git a/core/data/trd/CbmTrdPoint.h b/core/data/trd/CbmTrdPoint.h
index 28ff85145f..5ff3453d6a 100644
--- a/core/data/trd/CbmTrdPoint.h
+++ b/core/data/trd/CbmTrdPoint.h
@@ -21,9 +21,11 @@
 #include <FairMCPoint.h>  // for FairMCPoint
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t, Double32_t, Int_t, Option_t
+#include <RtypesCore.h>  // for Double32_t
 #include <TVector3.h>    // for TVector3
 
+#include <cstdint>
+
 class CbmTrdPoint : public FairMCPoint {
 
 public:
@@ -42,8 +44,8 @@ public:
      *@param length   Track length since creation [cm]
      *@param eLoss    Energy deposit [GeV]
      **/
-  CbmTrdPoint(Int_t trackID, Int_t detID, const TVector3& posIn, const TVector3& momIn, const TVector3& posOut,
-              const TVector3& momOut, Double_t tof, Double_t length, Double_t eLoss);
+  CbmTrdPoint(int32_t trackID, int32_t detID, const TVector3& posIn, const TVector3& momIn, const TVector3& posOut,
+              const TVector3& momOut, double tof, double length, double eLoss);
 
 
   /** Copy constructor **/
@@ -57,20 +59,20 @@ public:
   virtual void Print(const Option_t* opt) const;
 
   /** Accessors **/
-  Double_t GetXIn() const { return fX; }
-  Double_t GetYIn() const { return fY; }
-  Double_t GetZIn() const { return fZ; }
-  Double_t GetXOut() const { return fX_out; }
-  Double_t GetYOut() const { return fY_out; }
-  Double_t GetZOut() const { return fZ_out; }
-  Double_t GetPxOut() const { return fPx_out; }
-  Double_t GetPyOut() const { return fPy_out; }
-  Double_t GetPzOut() const { return fPz_out; }
-  Double_t GetPxIn() const { return fPx; }
-  Double_t GetPyIn() const { return fPy; }
-  Double_t GetPzIn() const { return fPz; }
-
-  Int_t GetModuleAddress() const { return GetDetectorID(); }
+  double GetXIn() const { return fX; }
+  double GetYIn() const { return fY; }
+  double GetZIn() const { return fZ; }
+  double GetXOut() const { return fX_out; }
+  double GetYOut() const { return fY_out; }
+  double GetZOut() const { return fZ_out; }
+  double GetPxOut() const { return fPx_out; }
+  double GetPyOut() const { return fPy_out; }
+  double GetPzOut() const { return fPz_out; }
+  double GetPxIn() const { return fPx; }
+  double GetPyIn() const { return fPy; }
+  double GetPzIn() const { return fPz; }
+
+  int32_t GetModuleAddress() const { return GetDetectorID(); }
 
   void PositionOut(TVector3& pos) const { pos.SetXYZ(fX_out, fY_out, fZ_out); }
   void MomentumOut(TVector3& mom) const { mom.SetXYZ(fPx_out, fPy_out, fPz_out); }
diff --git a/core/data/trd/CbmTrdRawMessageSpadic.h b/core/data/trd/CbmTrdRawMessageSpadic.h
index 63be72efb1..fca0d2f3f8 100644
--- a/core/data/trd/CbmTrdRawMessageSpadic.h
+++ b/core/data/trd/CbmTrdRawMessageSpadic.h
@@ -12,13 +12,12 @@
 #define CbmTrdRawMessageSpadic_H
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t
 
 #include <boost/serialization/access.hpp>
 #include <boost/serialization/base_object.hpp>
 #include <boost/serialization/vector.hpp>
 
-#include <cstdint>  // for int16_t, uint8_t, uint16_t, uint64_t
+#include <cstdint>
 #include <vector>   // for vector
 
 namespace Spadic
diff --git a/core/data/trd/CbmTrdTrack.h b/core/data/trd/CbmTrdTrack.h
index 8269bcc8fe..ee3d98ba5a 100644
--- a/core/data/trd/CbmTrdTrack.h
+++ b/core/data/trd/CbmTrdTrack.h
@@ -21,7 +21,6 @@
 #include "CbmTrack.h"  // for CbmTrack
 
 #include <Rtypes.h>      // for ClassDef
-#include <RtypesCore.h>  // for Double_t
 
 class CbmTrdTrack : public CbmTrack {
 public:
@@ -32,41 +31,41 @@ public:
   virtual ~CbmTrdTrack();
 
   /** Accessors  **/
-  Double_t GetPidWkn() const { return fPidWkn; }
-  Double_t GetPidANN() const { return fPidANN; }
-  Double_t GetELoss() const { return fELoss; }
-  Double_t GetPidLikeEL() const { return fPidLikeEL; }
-  Double_t GetPidLikePI() const { return fPidLikePI; }
-  Double_t GetPidLikeKA() const { return fPidLikeKA; }
-  Double_t GetPidLikePR() const { return fPidLikePR; }
-  Double_t GetPidLikeMU() const { return fPidLikeMU; }
+  double GetPidWkn() const { return fPidWkn; }
+  double GetPidANN() const { return fPidANN; }
+  double GetELoss() const { return fELoss; }
+  double GetPidLikeEL() const { return fPidLikeEL; }
+  double GetPidLikePI() const { return fPidLikePI; }
+  double GetPidLikeKA() const { return fPidLikeKA; }
+  double GetPidLikePR() const { return fPidLikePR; }
+  double GetPidLikeMU() const { return fPidLikeMU; }
 
   /** Modifiers  **/
-  void SetPidWkn(Double_t pid) { fPidWkn = pid; }
-  void SetPidANN(Double_t pid) { fPidANN = pid; }
-  void SetELoss(Double_t eLoss) { fELoss = eLoss; }
-  void SetPidLikeEL(Double_t value) { fPidLikeEL = value; }
-  void SetPidLikePI(Double_t value) { fPidLikePI = value; }
-  void SetPidLikeKA(Double_t value) { fPidLikeKA = value; }
-  void SetPidLikePR(Double_t value) { fPidLikePR = value; }
-  void SetPidLikeMU(Double_t value) { fPidLikeMU = value; }
+  void SetPidWkn(double pid) { fPidWkn = pid; }
+  void SetPidANN(double pid) { fPidANN = pid; }
+  void SetELoss(double eLoss) { fELoss = eLoss; }
+  void SetPidLikeEL(double value) { fPidLikeEL = value; }
+  void SetPidLikePI(double value) { fPidLikePI = value; }
+  void SetPidLikeKA(double value) { fPidLikeKA = value; }
+  void SetPidLikePR(double value) { fPidLikePR = value; }
+  void SetPidLikeMU(double value) { fPidLikeMU = value; }
 
 private:
   /** PID value based on Wkn method **/
-  Double_t fPidWkn;
+  double fPidWkn;
 
   /** PID value based on ANN method **/
-  Double_t fPidANN;
+  double fPidANN;
 
   /** PID values based on Likelihood method **/
-  Double_t fPidLikeEL;
-  Double_t fPidLikePI;
-  Double_t fPidLikeKA;
-  Double_t fPidLikePR;
-  Double_t fPidLikeMU;
+  double fPidLikeEL;
+  double fPidLikePI;
+  double fPidLikeKA;
+  double fPidLikePR;
+  double fPidLikeMU;
 
   /** Total energy loss in TRD **/
-  Double_t fELoss;
+  double fELoss;
 
   ClassDef(CbmTrdTrack, 4);
 };
diff --git a/core/detectors/trd/CbmTrdFASP.cxx b/core/detectors/trd/CbmTrdFASP.cxx
index fcd255666b..30dcc7fd3b 100644
--- a/core/detectors/trd/CbmTrdFASP.cxx
+++ b/core/detectors/trd/CbmTrdFASP.cxx
@@ -539,7 +539,7 @@ void CbmTrdFASP::ScanDigi(std::vector<std::pair<CbmTrdDigi*, CbmMatch*>>* vdigi,
     t /= 10;
     r /= 10;
     if (VERBOSE)
-      printf("  time buffer[5ns]=%4llu / phys[ns]=%llu charge[fC]=%5.1f / %5.1f", time, digi->GetTimeDAQ(), t, r);
+      printf("  time buffer[5ns]=%4llu / phys[ns]=%lu charge[fC]=%5.1f / %5.1f", time, digi->GetTimeDAQ(), t, r);
     // tilt pad channel
     if (t > 0) {
       if (DRAW) fGraphPhys[gid]->SetPoint(time, digi->GetTimeDAQ(), t / 100.);
@@ -621,8 +621,7 @@ void CbmTrdFASP::ScanDigiNE(std::vector<std::pair<CbmTrdDigi*, CbmMatch*>>* vdig
       }
       digi->GetCharge(t, dt);
       t /= 10.;
-      if (VERBOSE)
-        printf("  [T] time buffer[5ns]=%4llu / phys[ns]=%llu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), t);
+      if (VERBOSE) printf("  [T] time buffer[5ns]=%4llu / phys[ns]=%lu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), t);
       // tilt pad channel
       if (t > 0) {
         if (DRAW) fGraphPhys[gid]->SetPoint(time, digi->GetTimeDAQ(), t / 100.);
@@ -666,8 +665,7 @@ void CbmTrdFASP::ScanDigiNE(std::vector<std::pair<CbmTrdDigi*, CbmMatch*>>* vdig
       digi->GetCharge(t, dt);
       t /= 10.;
 
-      if (VERBOSE)
-        printf("  [T] time buffer[5ns]=%4llu / phys[ns]=%llu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), t);
+      if (VERBOSE) printf("  [T] time buffer[5ns]=%4llu / phys[ns]=%lu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), t);
       // tilt pad channel
       if (t > 0) {
         if (DRAW) fGraphPhys[gid]->SetPoint(time, digi->GetTimeDAQ(), t / 100.);
@@ -714,7 +712,7 @@ void CbmTrdFASP::ScanDigiNE(std::vector<std::pair<CbmTrdDigi*, CbmMatch*>>* vdig
     }
     r = digi->GetCharge(t, dt);
     r /= 10.;
-    if (VERBOSE) printf("  [R] time buffer[5ns]=%4llu / phys[ns]=%llu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), r);
+    if (VERBOSE) printf("  [R] time buffer[5ns]=%4llu / phys[ns]=%lu charge[fC]=%5.1f ", time, digi->GetTimeDAQ(), r);
 
     // rect pad channel
     if (r > 0) {
-- 
GitLab