File indexing completed on 2026-04-10 07:50:31
0001 #pragma once
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifdef WITH_CUSTOM4
0016 #include "C4IPMTAccessor.h"
0017
0018 struct U4PMTAccessor : public C4IPMTAccessor
0019 {
0020 static constexpr const char* TypeName = "U4PMTAccessor" ;
0021
0022
0023 int get_num_lpmt() const ;
0024 double get_pmtid_qe( int pmtid, double energy ) const ;
0025 double get_qescale( int pmtid ) const ;
0026 int get_pmtcat( int pmtid ) const ;
0027 void get_stackspec( std::array<double, 16>& ss, int pmtcat, double energy_eV ) const ;
0028 const char* get_typename() const ;
0029
0030 };
0031
0032
0033 inline int U4PMTAccessor::get_num_lpmt() const
0034 {
0035 return 1000 ;
0036 }
0037 inline double U4PMTAccessor::get_pmtid_qe( int pmtid, double energy ) const
0038 {
0039 return 1. ;
0040 }
0041 inline double U4PMTAccessor::get_qescale( int pmtid ) const
0042 {
0043 return 1. ;
0044 }
0045 inline int U4PMTAccessor::get_pmtcat( int pmtid ) const
0046 {
0047 return 1 ;
0048 }
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058 inline void U4PMTAccessor::get_stackspec( std::array<double, 16>& ss, int , double ) const
0059 {
0060 ss.fill(0.);
0061 ss[4*0+0] = 1.482 ;
0062
0063 ss[4*1+0] = 1.920 ;
0064 ss[4*1+1] = 0.000 ;
0065 ss[4*1+2] = 36.49 ;
0066
0067 ss[4*2+0] = 2.429 ;
0068 ss[4*2+1] = 1.366 ;
0069 ss[4*2+2] = 21.13 ;
0070
0071 ss[4*3+0] = 1.000 ;
0072 }
0073
0074 inline const char* U4PMTAccessor::get_typename() const
0075 {
0076 return TypeName ;
0077 }
0078
0079 #endif