Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 07:50:31

0001 #pragma once
0002 /**
0003 U4PMTAccessor.h  DUMMY PLACEHOLDER
0004 ======================================
0005 
0006 This is a mock standin for "jcv PMTAccessor" 
0007 for usage WITH_CUSTOM4 NOT:WITH_PMTSIM
0008 
0009 See SPMTAccessor for a standaline accessor that 
0010 actually provides almost the same as the PMTAccessor
0011 from the monolith.
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     // C4IPMTAccessor interface
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 U4PMTAccessor::get_stackspec
0052 -----------------------------
0053 
0054 Returns values from an example pmtcat and energy_eV 
0055 
0056 **/
0057 
0058 inline void U4PMTAccessor::get_stackspec( std::array<double, 16>& ss, int /*pmtcat*/, double /*energy_eV*/ ) const
0059 {
0060     ss.fill(0.);
0061     ss[4*0+0] = 1.482 ; // PyrexRINDEX
0062 
0063     ss[4*1+0] = 1.920 ; // ARC_RINDEX
0064     ss[4*1+1] = 0.000 ; // ARC_KINDEX 
0065     ss[4*1+2] = 36.49 ; // ARC_THICKNESS (nm) 
0066 
0067     ss[4*2+0] = 2.429 ; // PHC_RINDEX 
0068     ss[4*2+1] = 1.366 ; // PHC_KINDEX 
0069     ss[4*2+2] = 21.13 ; // PHC_THICKNESS (nm) 
0070 
0071     ss[4*3+0] = 1.000 ;  // VacuumRINDEX
0072 }
0073 
0074 inline const char* U4PMTAccessor::get_typename() const
0075 {
0076     return TypeName ;
0077 }
0078 
0079 #endif