15#ifndef MINBIASSCINTILLATOR_MINBIASSCINTILLATORSD_H
16#define MINBIASSCINTILLATOR_MINBIASSCINTILLATORSD_H
19#include "G4VSensitiveDetector.hh"
21#include "Identifier/Identifier.h"
31class G4TouchableHistory;
44 virtual void Initialize(G4HCofThisEvent*)
override final;
46 virtual G4bool
ProcessHits(G4Step*, G4TouchableHistory*)
override final;
92 G4double
BirkLaw(
const G4Step* aStep)
const;
98 inline double deltaT(
double time)
const {
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Identifier m_channelID[NCells]
array to cache look-ups of Identifiers for each cell (size=nCell).
double m_deltaT
granularity in time for hits
~MinBiasScintillatorSD()=default
double deltaT(double time) const
function to provide correct deltaT bin width for given time
HitVectorBuilder * m_hitCollection
const MinBiasScintSDOptions m_options
G4double BirkLaw(const G4Step *aStep) const
MinBiasScintillatorSD(const G4String &name, const std::string &hitCollectionName, const MinBiasScintSDOptions &opts)
static constexpr int NCells
int cell_index(int side, int phi, int eta) const
const TileTBID * m_tileTBID
int dist_index(int side, int eta) const
double m_lateHitTime
time for hits which are above m_timeCut threshold it is equal to m_tilesize_deltaT - m_deltaT
TileHitVectorCellBuilder< NCells > HitVectorBuilder
virtual void Initialize(G4HCofThisEvent *) override final
double m_timeCut
max allowed time for hits
double m_deltaT_cell[N_DIST]
HitVectorBuilder * GetHitCollection()
std::vector< double > m_deltaTvec
const std::string m_hitCollectionName
virtual G4bool ProcessHits(G4Step *, G4TouchableHistory *) override final
Event-owned TileHit accumulator for SDs that merge one TileSimHit per cell.
Helper class for TileCal offline identifiers of ancillary testbeam detectors and MBTS.