ATLAS Offline Software
Loading...
Searching...
No Matches
ISensitiveDetector.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef G4ATLASINTERFACES_ISENSITIVEDETECTOR_H
6#define G4ATLASINTERFACES_ISENSITIVEDETECTOR_H
7
8#include "GaudiKernel/IAlgTool.h"
9
17
19class G4VSensitiveDetector;
20
21class ISensitiveDetector : virtual public IAlgTool {
22 public:
23 ISensitiveDetector() = default;
24 virtual ~ISensitiveDetector() = default;
27
31 virtual StatusCode initializeSD() = 0;
32
37 virtual StatusCode Gather(HitCollectionMap&) = 0;
38
42 virtual StatusCode SetupEvent(HitCollectionMap&) = 0;
43
44 protected:
47 virtual G4VSensitiveDetector* makeSD() const = 0;
48};
49
50#endif
Small wrapper around hit collection map to facilitate accessing the hit collection.
ISensitiveDetector()=default
virtual StatusCode Gather(HitCollectionMap &)=0
Method to be called at the end of the athena event.
virtual ~ISensitiveDetector()=default
virtual StatusCode SetupEvent(HitCollectionMap &)=0
Method to be called at the beginning of the athena event.
virtual G4VSensitiveDetector * makeSD() const =0
Method to make the actual SD itself, which will be owned by the tool.
DeclareInterfaceID(ISensitiveDetector, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual StatusCode initializeSD()=0
Method to initialize the SD itself - this is our hook for initialization in G4, since in a multi-thre...