Loading...
Searching...
No Matches
LXePMTSD.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/LXe/include/LXePMTSD.hh
28/// \brief Definition of the LXePMTSD class
29//
30//
31#ifndef LXePMTSD_h
32#define LXePMTSD_h 1
33
34#include "LXePMTHit.hh"
35
36#include "G4VSensitiveDetector.hh"
37
38#include <vector>
39
40class G4DataVector;
41class G4HCofThisEvent;
42class G4Step;
43
44class LXePMTSD : public G4VSensitiveDetector
45{
46 public:
47 LXePMTSD(G4String name);
48 ~LXePMTSD() override;
49
50 void Initialize(G4HCofThisEvent*) override;
51 G4bool ProcessHits(G4Step* aStep, G4TouchableHistory*) override;
52
53 // A version of processHits active on boundary
55
56 // Initialize the arrays to store pmt possitions
57 inline void InitPMTs()
58 {
60 delete fPMTPositionsX;
62 delete fPMTPositionsY;
64 delete fPMTPositionsZ;
68 }
69
70 // Store a pmt position
71 void SetPmtPositions(const std::vector<G4ThreeVector>& positions);
72
73 private:
75
79
80 G4int fHitCID = -1;
81};
82
83#endif
Definition of the LXePMTHit class.
G4THitsCollection< LXePMTHit > LXePMTHitsCollection
Definition LXePMTHit.hh:86
G4DataVector * fPMTPositionsX
Definition LXePMTSD.hh:76
G4DataVector * fPMTPositionsY
Definition LXePMTSD.hh:77
void InitPMTs()
Definition LXePMTSD.hh:57
G4DataVector * fPMTPositionsZ
Definition LXePMTSD.hh:78
G4int fHitCID
Definition LXePMTSD.hh:80
G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *) override
Definition LXePMTSD.cc:96
~LXePMTSD() override
Definition LXePMTSD.cc:58
LXePMTHitsCollection * fPMTHitCollection
Definition LXePMTSD.hh:74
void SetPmtPositions(const std::vector< G4ThreeVector > &positions)
Definition LXePMTSD.cc:67
G4bool ProcessHits_boundary(const G4Step *, G4TouchableHistory *)
Definition LXePMTSD.cc:104
void Initialize()
Definition errProp.cc:100

Applications | User Support | Publications | Collaboration