Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-07 10:20:32

0001 //------------------------------- -*- C++ -*- -------------------------------//
0002 // Copyright Celeritas contributors: see top-level COPYRIGHT file for details
0003 // SPDX-License-Identifier: (Apache-2.0 OR MIT)
0004 //---------------------------------------------------------------------------//
0005 //! \file larceler/SimEnergyDepositData.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include <vector>
0010 
0011 namespace celeritas
0012 {
0013 //---------------------------------------------------------------------------//
0014 /*!
0015  * Required input data to construct a \c sim::SimEnergyDeposit class object.
0016  *
0017  * This struct is used to store/read the required data to construct a \c
0018  * sim::SimEnergyDeposit object into/from a ROOT file without the need of a
0019  * dictionary.
0020  *
0021  * The struct element names replicate the \c sim::SimEnergyDeposit getters for
0022  * easier manipulation using C++ macros.
0023  *
0024  * The data members are pointers to allow the reuse of this struct by both the
0025  * exporter ( \c GeoSimExporterModule ) and reader ( \c LarDataReader )
0026  * classes: For the reader, the pointers are necessary, as ROOT \em requires
0027  * \c nullptr during \c TTree::SetBranchAddress .
0028  *
0029  * \sa GeoSimExporterModule
0030  * \sa LarDataReader
0031  */
0032 struct SimEnergyDepositData
0033 {
0034     std::vector<int>* NumPhotons{nullptr};
0035     std::vector<int>* NumElectrons{nullptr};
0036     std::vector<double>* ScintYieldRatio{nullptr};
0037     std::vector<double>* Energy{nullptr};
0038     std::vector<double>* Time{nullptr};
0039     std::vector<double>* StartX{nullptr};
0040     std::vector<double>* StartY{nullptr};
0041     std::vector<double>* StartZ{nullptr};
0042     std::vector<double>* EndX{nullptr};
0043     std::vector<double>* EndY{nullptr};
0044     std::vector<double>* EndZ{nullptr};
0045     std::vector<double>* StartT{nullptr};
0046     std::vector<double>* EndT{nullptr};
0047     std::vector<int>* TrackID{nullptr};
0048     std::vector<int>* PdgCode{nullptr};
0049 };
0050 
0051 //---------------------------------------------------------------------------//
0052 }  // namespace celeritas