File indexing completed on 2025-01-31 09:21:49
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045 #ifndef CEXMC_ENERGY_DEPOSIT_STORE_HH
0046 #define CEXMC_ENERGY_DEPOSIT_STORE_HH
0047
0048 #include <G4Allocator.hh>
0049 #include "CexmcCommon.hh"
0050
0051
0052 struct CexmcEnergyDepositStore
0053 {
0054 CexmcEnergyDepositStore( G4double monitorED_,
0055 G4double vetoCounterEDLeft_,
0056 G4double vetoCounterEDRight_,
0057 G4double calorimeterEDLeft_,
0058 G4double calorimeterEDRight_,
0059 G4int calorimeterEDLeftMaxX_,
0060 G4int calorimeterEDLeftMaxY_,
0061 G4int calorimeterEDRightMaxX_,
0062 G4int calorimeterEDRightMaxY_,
0063 const CexmcEnergyDepositCalorimeterCollection &
0064 calorimeterEDLeftCollection_,
0065 const CexmcEnergyDepositCalorimeterCollection &
0066 calorimeterEDRightCollection_ ) :
0067 monitorED( monitorED_ ), vetoCounterEDLeft( vetoCounterEDLeft_ ),
0068 vetoCounterEDRight( vetoCounterEDRight_ ),
0069 calorimeterEDLeft( calorimeterEDLeft_ ),
0070 calorimeterEDRight( calorimeterEDRight_ ),
0071 calorimeterEDLeftMaxX( calorimeterEDLeftMaxX_ ),
0072 calorimeterEDLeftMaxY( calorimeterEDLeftMaxY_ ),
0073 calorimeterEDRightMaxX( calorimeterEDRightMaxX_ ),
0074 calorimeterEDRightMaxY( calorimeterEDRightMaxY_ ),
0075 calorimeterEDLeftCollection( calorimeterEDLeftCollection_ ),
0076 calorimeterEDRightCollection( calorimeterEDRightCollection_ )
0077 {}
0078
0079 void * operator new( size_t size );
0080
0081 void operator delete( void * obj );
0082
0083 G4double monitorED;
0084
0085 G4double vetoCounterEDLeft;
0086
0087 G4double vetoCounterEDRight;
0088
0089 G4double calorimeterEDLeft;
0090
0091 G4double calorimeterEDRight;
0092
0093 G4int calorimeterEDLeftMaxX;
0094
0095 G4int calorimeterEDLeftMaxY;
0096
0097 G4int calorimeterEDRightMaxX;
0098
0099 G4int calorimeterEDRightMaxY;
0100
0101 const CexmcEnergyDepositCalorimeterCollection &
0102 calorimeterEDLeftCollection;
0103
0104 const CexmcEnergyDepositCalorimeterCollection &
0105 calorimeterEDRightCollection;
0106 };
0107
0108
0109 extern G4Allocator< CexmcEnergyDepositStore > energyDepositStoreAllocator;
0110
0111
0112 inline void * CexmcEnergyDepositStore::operator new( size_t )
0113 {
0114 return energyDepositStoreAllocator.MallocSingle();
0115 }
0116
0117
0118 inline void CexmcEnergyDepositStore::operator delete( void * obj )
0119 {
0120 energyDepositStoreAllocator.FreeSingle(
0121 reinterpret_cast< CexmcEnergyDepositStore * >( obj ) );
0122 }
0123
0124
0125 #endif
0126