File indexing completed on 2026-04-01 07:49:24
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 #pragma once
0039
0040 #include "lArTPCHit.hh"
0041 #include "G4VSensitiveDetector.hh"
0042 #include "G4ScintillationTrackInformation.hh"
0043 #include <G4MaterialPropertyVector.hh>
0044 #include <G4String.hh>
0045 #include <G4Types.hh>
0046 class G4Material;
0047 class G4PhysicsTable;
0048 class G4TouchableHistory;
0049 class G4Step;
0050 class G4HCofThisEvent;
0051 class G4MaterialPropertiesTable;
0052 class G4PhysicsOrderedFreeVector;
0053
0054 class lArTPCSD : public G4VSensitiveDetector
0055 {
0056 public:
0057 lArTPCSD(G4String name);
0058 virtual ~lArTPCSD() = default;
0059 void Initialize(G4HCofThisEvent* hitCollection) final;
0060 G4bool ProcessHits(G4Step* step, G4TouchableHistory* history) final;
0061 void EndOfEvent(G4HCofThisEvent* hitCollection) final;
0062
0063 private:
0064 G4int materialIndex;
0065 const G4Material* aMaterial;
0066 G4MaterialPropertiesTable* aMaterialPropertiesTable;
0067
0068
0069
0070 G4MaterialPropertyVector* Fast_Intensity{ nullptr };
0071 G4MaterialPropertyVector* Slow_Intensity{ nullptr };
0072 G4double YieldRatio{ 0 };
0073 G4double FastTimeConstant{ 0 };
0074 G4double SlowTimeConstant{ 0 };
0075 G4ScintillationType ScintillationType;
0076
0077
0078
0079 G4MaterialPropertyVector* Rindex{ nullptr };
0080 G4PhysicsOrderedFreeVector* CerenkovAngleIntegrals{ nullptr };
0081 const G4PhysicsTable* thePhysicsTable{ 0 };
0082 G4double Pmin{ 0 };
0083 G4double Pmax{ 0 };
0084 G4double dp{ 0 };
0085 G4double nMax{ 0 };
0086 G4bool first{ false };
0087 G4bool verbose{ false };
0088 G4int tCphotons{ 0 };
0089 G4int tSphotons{ 0 };
0090 G4double NumElectrons(G4double e, G4double ds);
0091 lArTPCHitsCollection* flArTPCHitsCollection{ nullptr };
0092 G4int fHCID{ 0 };
0093 };