From a2f60fd16f57249c264ec0f8d62957442589c076 Mon Sep 17 00:00:00 2001 From: Ete Remi <remi.ete@gmail.com> Date: Tue, 27 Feb 2018 15:38:27 +0100 Subject: [PATCH] Added LCIOEventParameters class to handle LCIO input event parameters --- DDG4/lcio/LCIOEventParameters.cpp | 83 +++++++++++++++++++++++++++++++ DDG4/lcio/LCIOEventParameters.h | 59 ++++++++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 DDG4/lcio/LCIOEventParameters.cpp create mode 100644 DDG4/lcio/LCIOEventParameters.h diff --git a/DDG4/lcio/LCIOEventParameters.cpp b/DDG4/lcio/LCIOEventParameters.cpp new file mode 100644 index 000000000..9d11785ee --- /dev/null +++ b/DDG4/lcio/LCIOEventParameters.cpp @@ -0,0 +1,83 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// @author R.Ete (main author) +// +//==================================================================== + +// Framework include files +#include "LCIOEventParameters.h" + +using namespace std; +using namespace dd4hep; +using namespace dd4hep::sim; + +/// Initializing constructor +LCIOEventParameters::LCIOEventParameters() + : m_runNumber(0), m_eventNumber(0) +{ +} + +/// Default destructor +LCIOEventParameters::~LCIOEventParameters() { +} + +/// Set the event parameters +void LCIOEventParameters::setParameters(int rNumber, + int evtNumber, + const EVENT::LCParameters& parameters) +{ + m_runNumber = rNumber; + m_eventNumber = evtNumber; + copyLCParameters(parameters, m_eventParameters); +} + +/// Get the run number +int LCIOEventParameters::runNumber() const { + return m_runNumber; +} + +/// Get the event number +int LCIOEventParameters::eventNumber() const { + return m_eventNumber; +} + +/// Get the event parameters +const IMPL::LCParametersImpl& LCIOEventParameters::eventParameters() const { + return m_eventParameters; +} + +/// Copy the paramaters from source to destination +void LCIOEventParameters::copyLCParameters(const EVENT::LCParameters& source, + EVENT::LCParameters& destination) +{ + EVENT::StringVec intKeys; source.getIntKeys(intKeys); + EVENT::StringVec floatKeys; source.getFloatKeys(floatKeys); + EVENT::StringVec stringKeys; source.getStringKeys(stringKeys); + + for(unsigned int i=0; i<intKeys.size(); ++i ) { + EVENT::IntVec intVec; + source.getIntVals(intKeys.at(i),intVec); + destination.setValues(intKeys.at(i),intVec); + } + + for(unsigned int i=0; i<floatKeys.size(); ++i ) { + EVENT::FloatVec floatVec; + source.getFloatVals(floatKeys.at(i),floatVec); + destination.setValues(floatKeys.at(i),floatVec); + } + + for(unsigned int i=0; i<stringKeys.size(); ++i ) { + EVENT::StringVec stringVec; + source.getStringVals(stringKeys.at(i),stringVec); + destination.setValues(stringKeys.at(i),stringVec); + } +} + + diff --git a/DDG4/lcio/LCIOEventParameters.h b/DDG4/lcio/LCIOEventParameters.h new file mode 100644 index 000000000..66e890487 --- /dev/null +++ b/DDG4/lcio/LCIOEventParameters.h @@ -0,0 +1,59 @@ +//========================================================================== +// AIDA Detector description implementation +//-------------------------------------------------------------------------- +// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) +// All rights reserved. +// +// For the licensing terms see $DD4hepINSTALL/LICENSE. +// For the list of contributors see $DD4hepINSTALL/doc/CREDITS. +// +// Author : R.Ete +// +//========================================================================== +#ifndef DD4HEP_DDG4_LCIOEVENTPARAMETERS_H +#define DD4HEP_DDG4_LCIOEVENTPARAMETERS_H + +// lcio include files +#include "lcio.h" +#include "IMPL/LCParametersImpl.h" + +/// Namespace for the AIDA detector description toolkit +namespace dd4hep { + + /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit + namespace sim { + + /// Event extension to pass input LCIO event data to output LCIO event + /** + * \author R.Ete (main author) + * \version 1.0 + * \ingroup DD4HEP_SIMULATION + */ + class LCIOEventParameters { + private: + int m_runNumber; + int m_eventNumber; + IMPL::LCParametersImpl m_eventParameters; + + public: + /// Initializing constructor + LCIOEventParameters(); + /// Default destructor + ~LCIOEventParameters(); + + /// Set the event parameters + void setParameters(int runNumber, int eventNumber, const EVENT::LCParameters& parameters); + /// Get the run number + int runNumber() const; + /// Get the event number + int eventNumber() const; + /// Get the event parameters + const IMPL::LCParametersImpl& eventParameters() const; + + /// Copy the paramaters from source to destination + static void copyLCParameters(const EVENT::LCParameters& source, EVENT::LCParameters& destination); + }; + + } /* End namespace sim */ +} /* End namespace dd4hep */ +#endif /* DD4HEP_DDG4_LCIOEVENTPARAMETERS_H */ -- GitLab