BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
BDSSDThinThing.hh
1/*
2Beam Delivery Simulation (BDSIM) Copyright (C) Royal Holloway,
3University of London 2001 - 2023.
4
5This file is part of BDSIM.
6
7BDSIM is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published
9by the Free Software Foundation version 3 of the License.
10
11BDSIM is distributed in the hope that it will be useful, but
12WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with BDSIM. If not, see <http://www.gnu.org/licenses/>.
18*/
19#ifndef BDSSDTHINTHING_H
20#define BDSSDTHINTHING_H
21
22#include "BDSHitThinThing.hh"
23#include "BDSSensitiveDetector.hh"
24
25#include "G4String.hh"
26#include "G4Types.hh"
27
28#include <vector>
29
30namespace BDS
31{
32 struct TrajectoryOptions;
33}
34class G4Step;
35class G4HCofThisEvent;
36class G4TouchableHistory;
37class G4VHit;
38
56{
57public:
59 BDSSDThinThing(const G4String& name,
60 const BDS::TrajectoryOptions& trajectoryOptionsIn);
61
66
67 virtual ~BDSSDThinThing();
68
71 virtual void Initialize(G4HCofThisEvent* HCE) override;
72
75 virtual G4bool ProcessHits(G4Step* aStep,
76 G4TouchableHistory* rOHist) override;
77
80 virtual G4bool ProcessHitsOrdered(G4Step* step,
81 G4TouchableHistory* rOHist,
82 const std::vector<G4VHit*>& hits) override;
83
85 virtual G4VHit* last() const override;
86
87private:
90
93
97 G4int itsHCID;
98
99 const G4bool storeTrajectoryLocal;
100 const G4bool storeTrajectoryLinks;
101 const G4bool storeTrajectoryIon;
102};
103
104#endif
105
The sensitive detector class that provides sensitivity to record thin thing hits.
virtual G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *rOHist) override
BDSSDThinThing(BDSSDThinThing &)=delete
Assignment and copy constructor not implemented nor used.
virtual G4bool ProcessHitsOrdered(G4Step *step, G4TouchableHistory *rOHist, const std::vector< G4VHit * > &hits) override
BDSHitsCollectionThinThing * thinThingCollection
The hits collection for this sensitive detector class that's owned by each instance.
G4String itsCollectionName
The name of the hits collection that's created and registered.
virtual G4VHit * last() const override
Return the last collimator hit.
virtual void Initialize(G4HCofThisEvent *HCE) override
BDSSDThinThing & operator=(const BDSSDThinThing &)=delete
Assignment and copy constructor not implemented nor used.
Virtual class to define interface for ordered multi-sensitive detector.
Return either G4Tubs or G4CutTubs depending on flat face.