ATLAS Offline Software
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>
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 
32 {
33  public:
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:
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