From 820730bc84e8dd3c62370e8c5dddd6998932fc7b Mon Sep 17 00:00:00 2001 From: Paolo Andreetto Date: Fri, 1 Sep 2023 14:14:06 +0200 Subject: [PATCH] New root dicts --- src/Root/CMakeLists.txt | 6 +++ src/Root/Linkdef.h | 5 +- src/Root/muCastorMuDetDIGI.cpp | 41 ++++++++++++++++ src/Root/muCastorMuDetDIGI.h | 75 ++++++++++++++++++++++++++++++ src/Root/muCastorPrimaryVertex.cpp | 47 +++++++++++++++++++ src/Root/muCastorPrimaryVertex.h | 53 +++++++++++++++++++++ 6 files changed, 224 insertions(+), 3 deletions(-) create mode 100644 src/Root/muCastorMuDetDIGI.cpp create mode 100644 src/Root/muCastorMuDetDIGI.h create mode 100644 src/Root/muCastorPrimaryVertex.cpp create mode 100644 src/Root/muCastorPrimaryVertex.h diff --git a/src/Root/CMakeLists.txt b/src/Root/CMakeLists.txt index df5ccb3..c5b12e3 100644 --- a/src/Root/CMakeLists.txt +++ b/src/Root/CMakeLists.txt @@ -5,6 +5,8 @@ set(HEADERS RootMathDense.h muCastorHit.h muCastorInfo.h muCastorSkinHit.h + muCastorPrimaryVertex.h + muCastorMuDetDIGI.h SkinDetectorWriter.h) set(SOURCES ${HEADERS} RootMuonScatter.cpp @@ -12,12 +14,16 @@ set(SOURCES ${HEADERS} RootMuonScatter.cpp muCastorHit.cpp muCastorInfo.cpp muCastorSkinHit.cpp + muCastorPrimaryVertex.cpp + muCastorMuDetDIGI.cpp SkinDetectorWriter.cpp) set(DICTIONARY_HEADERS muCastorMCTrack.h muCastorHit.h muCastorInfo.h muCastorSkinHit.h + muCastorPrimaryVertex.h + muCastorMuDetDIGI.h SkinDetectorWriter.h) set(LIBRARIES ${ROOT_LIBRARIES} diff --git a/src/Root/Linkdef.h b/src/Root/Linkdef.h index c63ea61..35fd04d 100644 --- a/src/Root/Linkdef.h +++ b/src/Root/Linkdef.h @@ -74,13 +74,12 @@ using namespace ROOT::Mutom; #pragma link C++ function HitRaw::Tdc() const; #pragma link C++ function HitRaw::Ch() const; -#pragma link C++ class muBlastMCTrack+; -#pragma link C++ class muBlastHit+; #pragma link C++ class muCastorMCTrack+; #pragma link C++ class muCastorHit+; #pragma link C++ class muCastorInfo+; #pragma link C++ class muCastorSkinHit+; - +#pragma link C++ class muCastorPrimaryVertex+; +#pragma link C++ class muCastorMuDetDIGI+; #pragma link C++ class SkinDetectorWriter+; #endif // __CINT__ diff --git a/src/Root/muCastorMuDetDIGI.cpp b/src/Root/muCastorMuDetDIGI.cpp new file mode 100644 index 0000000..f756f20 --- /dev/null +++ b/src/Root/muCastorMuDetDIGI.cpp @@ -0,0 +1,41 @@ +/// \file muCastorMuDetDIGI.cxx +/// \brief Implementation of the muCastorMuDetDIGI class +// This class build the DIGI for the scintillator detectors +/// \author G. Bonomi, M. Subieta - INFN + +#include + +#include "muCastorMuDetDIGI.h" + +/// \cond CLASSIMP +ClassImp(muCastorMuDetDIGI) +/// \endcond + +using namespace std; + +//_____________________________________________________________________________ +muCastorMuDetDIGI::muCastorMuDetDIGI() : + fDetID(-1), + fLayID(-1), + fTubID(-1), + fDistMC(0.), + fDriftMC(0.), + fDist(0.), + fDrift(0.), + fEnergy(0.) +{} + +//_____________________________________________________________________________ +muCastorMuDetDIGI::~muCastorMuDetDIGI() +{} + +//_____________________________________________________________________________ +void muCastorMuDetDIGI::Print(const Option_t* /*opt*/) const +{ + cout << " DetID: " << fDetID + << " LayID: " << fLayID + << " TubID: " << fTubID + << " energy deposit (keV): " << fEnergy + << endl; +} + diff --git a/src/Root/muCastorMuDetDIGI.h b/src/Root/muCastorMuDetDIGI.h new file mode 100644 index 0000000..4fbc769 --- /dev/null +++ b/src/Root/muCastorMuDetDIGI.h @@ -0,0 +1,75 @@ +#ifndef muCastor_MuDetDIGI_H +#define muCastor_MuDetDIGI_H + +/// \file muCastorMuDetDIGI.h +/// \brief Definition of the muCastorMuDetDIGI class +/// +/// \authors G. Bonomi, M. Subieta - INFN + +#include + +class muCastorMuDetDIGI : public TObject +{ +public: + muCastorMuDetDIGI(); + virtual ~muCastorMuDetDIGI(); + + // -------> PUBLIC FUNCTIONS + virtual void Print(const Option_t* option = "") const; + + // -------> SET METHODS + + /// Set Det ID (Detector module) + void SetDetID(Int_t id) { fDetID = id; }; + + /// Set Layer ID (Layer [0,5]) + void SetLayID(Int_t id) { fLayID = id; }; + + /// Set Tube ID (Tube inside each layer) + void SetTubID(Int_t id) { fTubID = id; }; + + void SetDistMC (Double_t v) { fDistMC = v; }; + void SetDriftMC (Double_t v) { fDriftMC= v; }; + void SetDist (Double_t v) { fDist = v; }; + void SetDrift (Double_t v) { fDrift = v; }; + + // Set energy + void SetEnergy(Double_t e) { fEnergy = e; }; + + // -------> GET METHODS + + /// \return The Module number + Int_t GetDetID() { return fDetID; }; + + /// \return The Layer number + Int_t GetLayID() { return fLayID; }; + + /// \return The Tube number + Int_t GetTubID() { return fTubID; }; + + Double_t GetDistMC() { return fDistMC; }; + Double_t GetDriftMC() { return fDriftMC; }; + Double_t GetDist() { return fDist; }; + Double_t GetDrift() { return fDrift; }; + + /// \return Get energy + Double_t GetEnergy() { return fEnergy; }; + + + // -------> PRIVATE VARIABLES +private: + Int_t fDetID; // Detector module ID + Int_t fLayID; // Detector layer ID + Int_t fTubID; // Layer tube ID + Double_t fDistMC; // Minimum distance of particle tracks to the wire + Double_t fDriftMC; // Minimum drift time to the wire + Double_t fDist; // Minimum distance of particle tracks to the wire (with smearing) + Double_t fDrift; // Minimum drift time to the wire (with smearing) + Double_t fEnergy; // Energy released in the element + + ClassDef(muCastorMuDetDIGI,1) //muCastorMuDetDIGI +}; + +#endif //muCastorMuDetDIGI_H + + diff --git a/src/Root/muCastorPrimaryVertex.cpp b/src/Root/muCastorPrimaryVertex.cpp new file mode 100644 index 0000000..3023d99 --- /dev/null +++ b/src/Root/muCastorPrimaryVertex.cpp @@ -0,0 +1,47 @@ +#include +#include + +#include "muCastorPrimaryVertex.h" + +/// \cond CLASSIMP +ClassImp(muCastorPrimaryVertex) +/// \endcond + +using namespace std; + +//_____________________________________________________________________________ +muCastorPrimaryVertex::muCastorPrimaryVertex() { +/// Default constructor + Reset(); +} + +//_____________________________________________________________________________ +muCastorPrimaryVertex::~muCastorPrimaryVertex() +{ +/// Destructor +} + +//_____________________________________________________________________________ +void muCastorPrimaryVertex::Reset() +{ + fPdgCode = 0; + fVx = std::numeric_limits::quiet_NaN(); + fVy = std::numeric_limits::quiet_NaN(); + fVz = std::numeric_limits::quiet_NaN(); + fPx = std::numeric_limits::quiet_NaN(); + fPy = std::numeric_limits::quiet_NaN(); + fPz = std::numeric_limits::quiet_NaN(); + fE = std::numeric_limits::quiet_NaN(); +} + +//_____________________________________________________________________________ +void muCastorPrimaryVertex::Print(const Option_t* /*opt*/) const +{ +/// Printing + + cout << " Primary particle PDG Code " << fPdgCode << endl; + cout << " Vertex: (" << fVx << ", " << fVy << ", " << fVz << ") cm" << endl; + cout << " Mom: (" << fPx << ", " << fPy << ", " << fPz << ") MeV/c" << endl; + +} + diff --git a/src/Root/muCastorPrimaryVertex.h b/src/Root/muCastorPrimaryVertex.h new file mode 100644 index 0000000..b526630 --- /dev/null +++ b/src/Root/muCastorPrimaryVertex.h @@ -0,0 +1,53 @@ +#ifndef muCastor_PVTX_H +#define muCastor_PVTX_H + +/// \brief Definition of the muCastorPrimaryVertex class +/// +/// \authors G. Bonomi (04/02/2020) + +#include + +class muCastorPrimaryVertex : public TObject +{ + public: + muCastorPrimaryVertex(); + virtual ~muCastorPrimaryVertex(); + + // -------> PUBLIC FUNCTIONS + virtual void Print(const Option_t* option = "") const; + + // -------> SET METHODS + + void SetPdgCode(Int_t code) { fPdgCode = code; }; + + void SetVx(Double_t Vx) { fVx = Vx; }; + void SetVy(Double_t Vy) { fVy = Vy; }; + void SetVz(Double_t Vz) { fVz = Vz; }; + + void SetPx(Double_t Px) { fPx = Px; }; + void SetPy(Double_t Py) { fPy = Py; }; + void SetPz(Double_t Pz) { fPz = Pz; }; + + void SetE(Double_t E) { fE = E; }; + + void Reset(); + private: + // -------> PRIVATE VARIABLES + Int_t fPdgCode; // PDG code of the particle + + Double_t fVx; // x of production vertex + Double_t fVy; // y of production vertex + Double_t fVz; // z of production vertex + + Double_t fPx; // x component of momentum + Double_t fPy; // y component of momentum + Double_t fPz; // z component of momentum + Double_t fE; // Energy + + + ClassDef(muCastorPrimaryVertex,1) //muCastorPrimaryVertex +}; + +#endif //muCastor_PVTX_H + +