ATLAS Offline Software
InnerDetector
InDetDigitization
SiDigitization
SiDigitization
ISurfaceChargesGenerator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
10
#ifndef SIDIGITIZATION_ISURFACECHARGESGENERATOR_H
11
#define SIDIGITIZATION_ISURFACECHARGESGENERATOR_H
12
13
// Input/output classes
14
#include <list>
15
#include "
SiDigitization/SiSurfaceCharge.h
"
16
#include "
HitManagement/TimedHitPtr.h
"
17
18
#include "GaudiKernel/IAlgTool.h"
19
#include "GaudiKernel/EventContext.h"
20
21
class
SiHit
;
22
23
namespace
InDetDD
{
24
class
SiDetectorElement;
25
class
SCT_ModuleSideDesign;
26
}
27
namespace
CLHEP
{
28
class
HepRandomEngine;
29
}
30
31
class
ISiSurfaceChargesInserter
32
{
33
public
:
34
virtual
~ISiSurfaceChargesInserter
() {}
35
virtual
void
operator()
(
const
SiSurfaceCharge
& scharge) = 0;
36
};
37
38
static
const
InterfaceID IID_ISurfaceChargesGenerator(
"ISurfaceChargesGenerator"
,1,0);
39
40
class
ISurfaceChargesGenerator
:
virtual
public
IAlgTool {
41
43
// Public methods:
45
public
:
46
47
//Retrieve interface ID
48
static
const
InterfaceID&
interfaceID
() {
return
IID_ISurfaceChargesGenerator; }
49
50
// Destructor:
51
virtual
~ISurfaceChargesGenerator
() {}
52
53
virtual
void
process
(
const
InDetDD::SiDetectorElement
* ele,
54
const
TimedHitPtr<SiHit>
& phit,
55
ISiSurfaceChargesInserter
& inserter,
56
CLHEP::HepRandomEngine * rndmEngine,
57
const
EventContext& ctx) =0;
58
/*
59
//We may need an alternative method like this, if calls to
60
//SCT_ModuleSideDesign::getMother() prove costly
61
//In which case, perhaps this Interface class should be specific to
62
//ITkStrip/SCT rather than common to both, since only ITkStrip
63
//Needs to support split sensors in all its SurfaceChargeGenerators
64
virtual void processSplit(const InDetDD::SCT_ModuleSideDesign* mother,
65
const InDetDD::SiDetectorElement* ele,
66
const TimedHitPtr<SiHit>& phit,
67
const ISiSurfaceChargesInserter& inserter,
68
CLHEP::HepRandomEngine * rndmEngine,
69
const EventContext& ctx) const =0;
70
*/
71
virtual
void
setFixedTime
(
float
fixedTime) =0;
72
};
73
74
#endif // SIDIGITIZATION_ISURFACECHARGESGENERATOR_H
SiSurfaceCharge
Definition:
SiSurfaceCharge.h:23
ISiSurfaceChargesInserter::~ISiSurfaceChargesInserter
virtual ~ISiSurfaceChargesInserter()
Definition:
ISurfaceChargesGenerator.h:34
ISurfaceChargesGenerator
Definition:
ISurfaceChargesGenerator.h:40
ISurfaceChargesGenerator::~ISurfaceChargesGenerator
virtual ~ISurfaceChargesGenerator()
Definition:
ISurfaceChargesGenerator.h:51
TimedHitPtr< SiHit >
ISurfaceChargesGenerator::interfaceID
static const InterfaceID & interfaceID()
Definition:
ISurfaceChargesGenerator.h:48
SiHit
Definition:
SiHit.h:19
TimedHitPtr.h
ISiSurfaceChargesInserter::operator()
virtual void operator()(const SiSurfaceCharge &scharge)=0
CLHEP
STD'S.
Definition:
IAtRndmGenSvc.h:19
ISurfaceChargesGenerator::setFixedTime
virtual void setFixedTime(float fixedTime)=0
ISurfaceChargesGenerator::process
virtual void process(const InDetDD::SiDetectorElement *ele, const TimedHitPtr< SiHit > &phit, ISiSurfaceChargesInserter &inserter, CLHEP::HepRandomEngine *rndmEngine, const EventContext &ctx)=0
InDetDD::SiDetectorElement
Definition:
SiDetectorElement.h:109
InDetDD
Message Stream Member.
Definition:
FakeTrackBuilder.h:8
ISiSurfaceChargesInserter
Definition:
ISurfaceChargesGenerator.h:32
SiSurfaceCharge.h
Generated on Thu Nov 7 2024 21:17:31 for ATLAS Offline Software by
1.8.18