Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 /* 27 * ============================================================================= 28 * 29 * Filename: CexmcTrackPointsDigitizer.hh 30 * 31 * Description: track points collector 32 * 33 * Version: 1.0 34 * Created: 24.11.2009 16:09:59 35 * Revision: none 36 * Compiler: gcc 37 * 38 * Author: Alexey Radkov (), 39 * Company: PNPI 40 * 41 * ============================================================================= 42 */ 43 44 #ifndef CEXMC_TRACK_POINTS_DIGITIZER_HH 45 #define CEXMC_TRACK_POINTS_DIGITIZER_HH 46 47 #include <G4VDigitizerModule.hh> 48 #include "CexmcTrackPointInfo.hh" 49 #include "CexmcSetup.hh" 50 51 class G4String; 52 53 54 class CexmcTrackPointsDigitizer : public G4VDigitizerModule 55 { 56 public: 57 explicit CexmcTrackPointsDigitizer( const G4String & name ); 58 59 public: 60 void Digitize( void ); 61 62 public: 63 const CexmcTrackPointInfo & GetMonitorTP( void ) const; 64 65 const CexmcTrackPointInfo & GetTargetTPBeamParticle( void ) const; 66 67 const CexmcTrackPointInfo & GetTargetTPOutputParticle( void ) const; 68 69 const CexmcTrackPointInfo & GetTargetTPNucleusParticle( void ) const; 70 71 const CexmcTrackPointInfo & 72 GetTargetTPOutputParticleDecayProductParticle( 73 G4int index ) const; 74 75 const CexmcTrackPointInfo & GetVetoCounterTPLeft( void ) const; 76 77 const CexmcTrackPointInfo & GetVetoCounterTPRight( void ) const; 78 79 const CexmcTrackPointInfo & GetCalorimeterTPLeft( void ) const; 80 81 const CexmcTrackPointInfo & GetCalorimeterTPRight( void ) const; 82 83 public: 84 G4bool HasTriggered( void ) const; 85 86 private: 87 void InitializeData( void ); 88 89 private: 90 CexmcTrackPointInfo monitorTP; 91 92 CexmcTrackPointInfo targetTPBeamParticle; 93 94 CexmcTrackPointInfo targetTPOutputParticle; 95 96 CexmcTrackPointInfo targetTPNucleusParticle; 97 98 CexmcTrackPointInfo targetTPOutputParticleDecayProductParticle[ 2 ]; 99 100 CexmcTrackPointInfo vetoCounterTPLeft; 101 102 CexmcTrackPointInfo vetoCounterTPRight; 103 104 CexmcTrackPointInfo calorimeterTPLeft; 105 106 CexmcTrackPointInfo calorimeterTPRight; 107 108 G4bool hasTriggered; 109 110 private: 111 CexmcSetup::CalorimeterGeometryData calorimeterGeometry; 112 }; 113 114 115 inline const CexmcTrackPointInfo & 116 CexmcTrackPointsDigitizer::GetMonitorTP( void ) const 117 { 118 return monitorTP; 119 } 120 121 122 inline const CexmcTrackPointInfo & 123 CexmcTrackPointsDigitizer::GetTargetTPBeamParticle( void ) const 124 { 125 return targetTPBeamParticle; 126 } 127 128 129 inline const CexmcTrackPointInfo & 130 CexmcTrackPointsDigitizer::GetTargetTPOutputParticle( void ) const 131 { 132 return targetTPOutputParticle; 133 } 134 135 136 inline const CexmcTrackPointInfo & 137 CexmcTrackPointsDigitizer::GetTargetTPNucleusParticle( void ) const 138 { 139 return targetTPNucleusParticle; 140 } 141 142 143 inline const CexmcTrackPointInfo & 144 CexmcTrackPointsDigitizer::GetTargetTPOutputParticleDecayProductParticle( 145 G4int index ) const 146 { 147 if ( index == 1 ) 148 return targetTPOutputParticleDecayProductParticle[ 1 ]; 149 150 return targetTPOutputParticleDecayProductParticle[ 0 ]; 151 } 152 153 154 inline const CexmcTrackPointInfo & 155 CexmcTrackPointsDigitizer::GetVetoCounterTPLeft( void ) const 156 { 157 return vetoCounterTPLeft; 158 } 159 160 161 inline const CexmcTrackPointInfo & 162 CexmcTrackPointsDigitizer::GetVetoCounterTPRight( void ) const 163 { 164 return vetoCounterTPRight; 165 } 166 167 168 inline const CexmcTrackPointInfo & 169 CexmcTrackPointsDigitizer::GetCalorimeterTPLeft( void ) const 170 { 171 return calorimeterTPLeft; 172 } 173 174 175 inline const CexmcTrackPointInfo & 176 CexmcTrackPointsDigitizer::GetCalorimeterTPRight( void ) const 177 { 178 return calorimeterTPRight; 179 } 180 181 182 inline G4bool CexmcTrackPointsDigitizer::HasTriggered( void ) const 183 { 184 return hasTriggered; 185 } 186 187 188 #endif 189 190