Loading...
Searching...
No Matches
WLSPhotonDetHit.hh
Go to the documentation of this file.
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/// \file optical/wls/include/WLSPhotonDetHit.hh
28/// \brief Definition of the WLSPhotonDetHit class
29//
30
31//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
32//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
33
34#ifndef WLSPhotonDetHit_h
35#define WLSPhotonDetHit_h 1
36
37#include "G4Allocator.hh"
38#include "G4LogicalVolume.hh"
39#include "G4THitsCollection.hh"
40#include "G4ThreeVector.hh"
41#include "G4VHit.hh"
42#include "G4VPhysicalVolume.hh"
43
44class WLSPhotonDetHit : public G4VHit
45{
46 public:
48 WLSPhotonDetHit(G4ThreeVector pExit, G4ThreeVector pArrive, G4double pTime, G4double pEnergy);
49 ~WLSPhotonDetHit() override = default;
50
53
54 G4bool operator==(const WLSPhotonDetHit& right) const;
55
56 inline void* operator new(size_t);
57 inline void operator delete(void* aHit);
58
59 inline void SetArrivalPos(G4ThreeVector xyz) { fPosArrive = xyz; }
60 inline G4ThreeVector GetArrivalPos() { return fPosArrive; }
61
62 inline void SetExitPos(G4ThreeVector xyz) { fPosExit = xyz; }
63 inline G4ThreeVector GetExitPos() { return fPosExit; }
64
65 inline void SetArrivalTime(G4double t) { fArrivalTime = t; }
66 inline G4double GetArrivalTime() { return fArrivalTime; }
67
68 inline void SetEnergy(G4double en) { fEnergy = en; }
69 inline G4double GetEnergy() { return fEnergy; }
70
71 void Print() override;
72
73 private:
74 // the arrival time of the photon
75 G4double fArrivalTime = 0.;
76 // where the photon hit the detector (detector's coordinate)
77 G4ThreeVector fPosArrive;
78 // where the photon exited the fiber (world's coordinate)
79 G4ThreeVector fPosExit;
80 // energy of photon
81 G4double fEnergy = 0.;
82};
83
84//--------------------------------------------------
85// Type Definitions
86//--------------------------------------------------
87
89
91
92//--------------------------------------------------
93// Operator Overloads
94//--------------------------------------------------
95
96inline void* WLSPhotonDetHit::operator new(size_t)
97{
100 return (void*) WLSPhotonDetHitAllocator->MallocSingle();
101}
102
103inline void WLSPhotonDetHit::operator delete(void* aHit)
104{
105 WLSPhotonDetHitAllocator->FreeSingle((WLSPhotonDetHit*) aHit);
106}
107
108#endif
G4THitsCollection< WLSPhotonDetHit > WLSPhotonDetHitsCollection
G4ThreadLocal G4Allocator< WLSPhotonDetHit > * WLSPhotonDetHitAllocator
void SetArrivalTime(G4double t)
G4double GetArrivalTime()
const WLSPhotonDetHit & operator=(const WLSPhotonDetHit &right)
~WLSPhotonDetHit() override=default
G4ThreeVector GetArrivalPos()
void SetArrivalPos(G4ThreeVector xyz)
void SetExitPos(G4ThreeVector xyz)
void Print() override
G4bool operator==(const WLSPhotonDetHit &right) const
void SetEnergy(G4double en)
G4ThreeVector GetExitPos()
G4ThreeVector fPosExit
G4ThreeVector fPosArrive

Applications | User Support | Publications | Collaboration