ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
HGTD_SurfaceChargesGenerator Class Reference

#include <HGTD_SurfaceChargesGenerator.h>

Inheritance diagram for HGTD_SurfaceChargesGenerator:
Collaboration diagram for HGTD_SurfaceChargesGenerator:

Public Member Functions

 HGTD_SurfaceChargesGenerator (const std::string &type, const std::string &name, const IInterface *parent)
 constructor More...
 
virtual ~HGTD_SurfaceChargesGenerator ()=default
 Destructor. More...
 
StatusCode initialize () override
 AlgTool initialize. More...
 
virtual void createSurfaceChargesFromHit (const TimedHitPtr< SiHit > &timed_hit_ptr, SiChargedDiodeCollection *diode_coll, const InDetDD::SolidStateDetectorElementBase *element, CLHEP::HepRandomEngine *rndm_engine, const EventContext &ctx) const override final
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 
 DeclareInterfaceID (IHGTD_SurfaceChargesGenerator, 1, 0)
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

FloatProperty m_small_step_length {this, "SmallStepLength", 1, ""}
 
FloatProperty m_diffusion_constant {this, "DiffusionConstant", .007, ""}
 
FloatProperty m_active_time_window {this, "ActiveTimeWindow", 1.25, "Hits within this time window are used for digitization, the rest are discarded (Given in ns)."}
 
BooleanProperty m_smear_meantime {this, "SmearMeanTime", true, "Smear mean time based on radius and luminosity"}
 
ToolHandle< HGTD_TimingResolutionm_hgtd_timing_resolution_tool {this, "TimingResolutionTool", "HGTD_TimingResolution", "Tool for smearing LGAD timing based on integrated luminosity and radius"}
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 29 of file HGTD_SurfaceChargesGenerator.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ HGTD_SurfaceChargesGenerator()

HGTD_SurfaceChargesGenerator::HGTD_SurfaceChargesGenerator ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

constructor

Definition at line 27 of file HGTD_SurfaceChargesGenerator.cxx.

29  : AthAlgTool(type, name, parent) {
30 }

◆ ~HGTD_SurfaceChargesGenerator()

virtual HGTD_SurfaceChargesGenerator::~HGTD_SurfaceChargesGenerator ( )
virtualdefault

Destructor.

Member Function Documentation

◆ createSurfaceChargesFromHit()

void HGTD_SurfaceChargesGenerator::createSurfaceChargesFromHit ( const TimedHitPtr< SiHit > &  timed_hit_ptr,
SiChargedDiodeCollection diode_coll,
const InDetDD::SolidStateDetectorElementBase element,
CLHEP::HepRandomEngine *  rndm_engine,
const EventContext &  ctx 
) const
finaloverridevirtual

Implements IHGTD_SurfaceChargesGenerator.

Definition at line 42 of file HGTD_SurfaceChargesGenerator.cxx.

47  {
48 
49  const SiHit& hit = *timed_hit_ptr;
50 
51  float time_of_flight = timed_hit_ptr.eventTime() + hit.meanTime();
52 
53  //NB this "expected time" will change once we need to follow the beamspot!!
54  float tof_expected = element->center().norm() / Gaudi::Units::c_light;
55 
56  ATH_MSG_DEBUG("event time = " << timed_hit_ptr.eventTime() << ", mean time ="
57  << hit.meanTime() << ", tof =" << time_of_flight
58  << ", tof exp =" << tof_expected);
59 
60  // the ALTIROC ASIC has an active window of 2.5ns around the expected TOA, all
61  // hits outside that window are ignored (modulo some early hits with large
62  // TOT that spill over). So ignore hits outside of this time window
63  if (std::abs(time_of_flight - tof_expected) > m_active_time_window) {
64  return;
65  }
66 
67  // check the status of truth information for this SiHit
68  // some Truth information is cut for pile up events
69  const HepMcParticleLink trklink = HepMcParticleLink::getRedirectedLink(hit.particleLink(), timed_hit_ptr.eventId(), ctx); // This link should now correctly resolve to the TruthEvent McEventCollection in the main StoreGateSvc.
71  if (hit.truthID() != 0 || hit.truthBarcode() != 0) { // if the hit was not caused by a delta-ray then one of these must be true
72  if (not trklink.isValid()) {
73  // TODO consider extending this check to reject links to
74  // GenEvents other than the first one in the McEventCollection,
75  // so that the digitization output doesn't change if pile-up
76  // truth is saved.
77  hitproc = SiCharge::cut_track;
78  }
79  }
80 
81  float sensor_thickness = element->design().thickness();
82  int readout_side = element->design().readoutSide();
83 
84  float pixel_size_xphi = element->design().phiPitch();
85  float pixel_size_xeta = element->design().etaPitch();
86 
87  Amg::Vector3D element_center = element->center();
88  ATH_MSG_DEBUG("x and y, z are: " << element_center.x() << ", "
89  << element_center.y() << ", "
90  << element_center.z());
91  float element_r = sqrt(element_center.x() * element_center.x() +
92  element_center.y() * element_center.y());
93 
94  const CLHEP::Hep3Vector start_pos(hit.localStartPosition());
95  const CLHEP::Hep3Vector end_pos(hit.localEndPosition());
96 
97  ATH_MSG_DEBUG("start_pos xEta=" << start_pos[SiHit::xEta]
98  << ", xPhi=" << start_pos[SiHit::xPhi]
99  << ", xDep=" << start_pos[SiHit::xDep]);
100 
101  CLHEP::Hep3Vector direction = end_pos - start_pos;
102  float deposit_length = direction.mag();
103  int n_steps = deposit_length / m_small_step_length + 1;
104  // the start and end pos can sit at the same position. Resizing the
105  // zero-length Hep3Vector would cause an error, so this we protect against
106  if (deposit_length > 1.e-10) {
107  direction.setMag(deposit_length / static_cast<float>(n_steps));
108  }
109 
110  float tot_eloss = hit.energyLoss();
111  // FIXME using the mean ionization energy in Silicon
112  const float tot_charge = tot_eloss / (3.62 * CLHEP::eV);
113 
114  float charge_per_step = tot_charge / static_cast<float>(n_steps);
115 
116  // FIXME is this correct? does the eventTime include a "later" truth event and
117  // the meanTime is just the TOF?
118  ATH_MSG_DEBUG(">>>>>>> before processing, event_t, t, E, r: "
119  << timed_hit_ptr.eventTime() << ", " << hit.meanTime() << ", "
120  << tot_eloss << ", " << element_r);
121 
122  if (m_smear_meantime) {
123  // Smearing based on radius and luminosity, and substract the time shift
124  // due to pulse leading edge (0.408 ns)
125  time_of_flight = m_hgtd_timing_resolution_tool->calculateTime(
126  time_of_flight, tot_eloss, element_r, rndm_engine) -
127  0.408;
128  }
129  ATH_MSG_DEBUG(">>>>>>> after processing, t: " << time_of_flight);
130 
131  // FIXME needed to check for deposits in guardrings. This should be taken over
132  // by the module design class and not hardcoded here!
133 
134  float xphi_offset = 9.75;
135  float xeta_offset = 19.5;
136  // FIXME this should be handled by the module design class in the future
137  float interpad = 50 * CLHEP::micrometer;
138 
139  for (int i_step = 0; i_step < n_steps; i_step++) {
140  CLHEP::Hep3Vector surface_pos = start_pos + i_step * direction;
141  ATH_MSG_DEBUG("surface_pos x=" << surface_pos.x()
142  << ", y=" << surface_pos.y()
143  << ", z=" << surface_pos.z());
144  ATH_MSG_DEBUG("surface_pos xEta=" << surface_pos[SiHit::xEta]
145  << ", xPhi=" << surface_pos[SiHit::xPhi]
146  << ", xDep=" << surface_pos[SiHit::xDep]);
147  // NB! y aka xPhi is the long side of the module!
148  // DEBUG surface_pos x=9.08365, y=-1.17206, z=-0.025
149  // DEBUG surface_pos xEta=-0.025, xPhi=-1.17206, xDep=9.08365
150  // FIXME: eta, phi andd dep need to be revisited in Rel 22!
151 
152  // Distance between charge and readout side. p_design->readoutSide() is
153  // +1 if readout side is in +ve depth axis direction and visa-versa.
154  // FIXME ask Noemi about what happens here
155  float spess =
156  0.5 * sensor_thickness - readout_side * surface_pos[SiHit::xDep];
157  if (spess < 0) {
158  spess = 0; // FIXME this means I am on the surface already?
159  }
160  // diffusion sigma
161  // FIXME where is the 0.3 from?
162  float rdif = m_diffusion_constant * std::sqrt(spess / 0.3);
163 
164  // position at the surface, adding smearing
165  // FIXME currently no Lorentz angle considered, can be studied in the future
166  float surf_pos_xphi = surface_pos[SiHit::xPhi] +
167  rdif * CLHEP::RandGaussZiggurat::shoot(rndm_engine);
168  float surf_pos_xeta = surface_pos[SiHit::xEta] +
169  rdif * CLHEP::RandGaussZiggurat::shoot(rndm_engine);
170 
171  // if the deposit is outside the guard ring, don't consider it
172  if (fabs(surf_pos_xphi) > xphi_offset or
173  fabs(surf_pos_xeta) > xeta_offset) {
174  ATH_MSG_DEBUG("Hit in guard ring");
175  continue;
176  }
177 
178  int bin_xphi = floor(fabs(surf_pos_xphi + xphi_offset) / pixel_size_xphi);
179  int bin_xeta = floor(fabs(surf_pos_xeta + xeta_offset) / pixel_size_xeta);
180 
181  float pos_xphi_inpixel =
182  fabs(surf_pos_xphi + xphi_offset) - float(bin_xphi) * pixel_size_xphi;
183  float pos_xeta_inpixel =
184  fabs(surf_pos_xeta + xeta_offset) - float(bin_xeta) * pixel_size_xeta;
185 
186  bool is_interpad_xphi = (pos_xphi_inpixel < interpad or
187  pos_xphi_inpixel > (pixel_size_xphi - interpad));
188  bool is_interpad_xeta = (pos_xeta_inpixel < interpad or
189  pos_xeta_inpixel > (pixel_size_xeta - interpad));
190 
191  // check if the charge is sitting in the interpad region
192  if (is_interpad_xphi or is_interpad_xeta) {
193  ATH_MSG_DEBUG("Hit in interpad region");
194  continue;
195  }
196  // charges deposited within the active sensor get added
197  const InDetDD::SiLocalPosition position(
198  element->hitLocalToLocal(surf_pos_xeta, surf_pos_xphi));
199 
200  SiSurfaceCharge surface_charge(
201  position, SiCharge(charge_per_step, time_of_flight, hitproc,
202  trklink)); // FIXME is this obj even needed?
203 
204  InDetDD::SiCellId cell_id =
205  element->cellIdOfPosition(surface_charge.position());
206  ATH_MSG_DEBUG("cell_id x=" << cell_id);
207  if (cell_id.isValid()) {
208  // add this charge to the collection (or merge in existing charged diode)
209  diode_coll->add(cell_id, surface_charge.charge());
210  }
211  } // END LOOP over steps
212 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ DeclareInterfaceID()

IHGTD_SurfaceChargesGenerator::DeclareInterfaceID ( IHGTD_SurfaceChargesGenerator  ,
,
 
)
inherited

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ initialize()

StatusCode HGTD_SurfaceChargesGenerator::initialize ( )
override

AlgTool initialize.

Definition at line 32 of file HGTD_SurfaceChargesGenerator.cxx.

32  {
33  ATH_MSG_DEBUG("HGTD_SurfaceChargesGenerator::initialize()");
34 
36 
38 
39  return StatusCode::SUCCESS;
40 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_active_time_window

FloatProperty HGTD_SurfaceChargesGenerator::m_active_time_window {this, "ActiveTimeWindow", 1.25, "Hits within this time window are used for digitization, the rest are discarded (Given in ns)."}
private

Definition at line 55 of file HGTD_SurfaceChargesGenerator.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_diffusion_constant

FloatProperty HGTD_SurfaceChargesGenerator::m_diffusion_constant {this, "DiffusionConstant", .007, ""}
private

Definition at line 54 of file HGTD_SurfaceChargesGenerator.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_hgtd_timing_resolution_tool

ToolHandle<HGTD_TimingResolution> HGTD_SurfaceChargesGenerator::m_hgtd_timing_resolution_tool {this, "TimingResolutionTool", "HGTD_TimingResolution", "Tool for smearing LGAD timing based on integrated luminosity and radius"}
private

Definition at line 57 of file HGTD_SurfaceChargesGenerator.h.

◆ m_small_step_length

FloatProperty HGTD_SurfaceChargesGenerator::m_small_step_length {this, "SmallStepLength", 1, ""}
private

Definition at line 53 of file HGTD_SurfaceChargesGenerator.h.

◆ m_smear_meantime

BooleanProperty HGTD_SurfaceChargesGenerator::m_smear_meantime {this, "SmearMeanTime", true, "Smear mean time based on radius and luminosity"}
private

Definition at line 56 of file HGTD_SurfaceChargesGenerator.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
SiHit::xPhi
@ xPhi
Definition: SiHit.h:162
SiSurfaceCharge
Definition: SiSurfaceCharge.h:23
InDetDD::SolidStateDetectorElementBase::cellIdOfPosition
SiCellId cellIdOfPosition(const Amg::Vector2D &localPos) const
As in previous method but returns SiCellId.
Definition: SolidStateDetectorElementBase.cxx:224
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
InDetDD::DetectorDesign::thickness
double thickness() const
Method which returns thickness of the silicon wafer.
Definition: DetectorDesign.h:271
SiHit::localEndPosition
HepGeom::Point3D< double > localEndPosition() const
Definition: SiHit.cxx:153
HGTD_SurfaceChargesGenerator::m_active_time_window
FloatProperty m_active_time_window
Definition: HGTD_SurfaceChargesGenerator.h:55
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDetDD::SolidStateDetectorElementBase::center
virtual const Amg::Vector3D & center() const override final
Center in global coordinates.
InDetDD::DetectorDesign::etaPitch
virtual double etaPitch() const =0
SiCharge::track
@ track
Definition: SiCharge.h:28
InDetDD::SiCellId::isValid
bool isValid() const
Test if its in a valid state.
Definition: SiCellId.h:136
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
InDetDD::DetectorDesign::readoutSide
int readoutSide() const
ReadoutSide.
Definition: DetectorDesign.h:291
SiCharge
Definition: SiCharge.h:25
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
HGTD_SurfaceChargesGenerator::m_diffusion_constant
FloatProperty m_diffusion_constant
Definition: HGTD_SurfaceChargesGenerator.h:54
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
SiHit
Definition: SiHit.h:19
SiHit::meanTime
double meanTime() const
Definition: SiHit.h:180
TimedHitPtr::eventTime
float eventTime() const
t0 offset of the bunch xing containing the hit in ns.
Definition: TimedHitPtr.h:50
InDetDD::SiLocalPosition
Definition: SiLocalPosition.h:31
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
HGTD_SurfaceChargesGenerator::m_hgtd_timing_resolution_tool
ToolHandle< HGTD_TimingResolution > m_hgtd_timing_resolution_tool
Definition: HGTD_SurfaceChargesGenerator.h:57
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDetDD::SolidStateDetectorElementBase::design
virtual const DetectorDesign & design() const
access to the local description (inline):
SiHit::truthBarcode
int truthBarcode() const
Definition: SiHit.cxx:202
SiHit::particleLink
const HepMcParticleLink & particleLink() const
Definition: SiHit.h:190
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
python.SystemOfUnits.micrometer
int micrometer
Definition: SystemOfUnits.py:71
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
InDetDD::SolidStateDetectorElementBase::hitLocalToLocal
Amg::Vector2D hitLocalToLocal(double xEta, double xPhi) const
Simulation/Hit local frame to reconstruction local frame.
Definition: SolidStateDetectorElementBase.cxx:95
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
SiHit::energyLoss
double energyLoss() const
Definition: SiHit.h:175
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
python.SystemOfUnits.eV
int eV
Definition: SystemOfUnits.py:155
HGTD_SurfaceChargesGenerator::m_small_step_length
FloatProperty m_small_step_length
Definition: HGTD_SurfaceChargesGenerator.h:53
SiHit::xDep
@ xDep
Definition: SiHit.h:162
SiHit::truthID
int truthID() const
Definition: SiHit.cxx:208
SiCharge::Process
Process
Definition: SiCharge.h:28
python.PhysicalConstants.c_light
float c_light
Definition: PhysicalConstants.py:63
SiHit::xEta
@ xEta
Definition: SiHit.h:162
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
SiChargedDiodeCollection::add
void add(const InDetDD::SiCellId &diode, const T &charge)
Definition: SiChargedDiodeCollection.h:299
InDetDD::SiCellId
Definition: SiCellId.h:29
SiCharge::cut_track
@ cut_track
Definition: SiCharge.h:28
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
h
TimedHitPtr::eventId
unsigned short eventId() const
the index of the component event in PileUpEventInfo.
Definition: TimedHitPtr.h:42
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
InDetDD::DetectorDesign::phiPitch
virtual double phiPitch() const =0
Pitch in phi direction.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
readCCLHist.float
float
Definition: readCCLHist.py:83
SiHit::localStartPosition
HepGeom::Point3D< double > localStartPosition() const
Definition: SiHit.cxx:146
fitman.k
k
Definition: fitman.py:528
HGTD_SurfaceChargesGenerator::m_smear_meantime
BooleanProperty m_smear_meantime
Definition: HGTD_SurfaceChargesGenerator.h:56