5#ifndef LARL1SIM_LARTTL1MAKER_H
6#define LARL1SIM_LARTTL1MAKER_H
19#include "Gaudi/Property.h"
20#include "GaudiKernel/ServiceHandle.h"
48 class HepRandomEngine;
64 public IIncidentListener
81 virtual StatusCode
execute()
override;
83 virtual StatusCode
finalize()
override;
84 virtual void handle(
const Incident&)
override;
100 std::vector<float> visEnergy,
const int refTime)
const;
103 std::vector<float>& inputV, CLHEP::HepRandomEngine* rndmEngine);
114 void setSeed(
const std::string& algName,
const EventContext& ctx);
127 "Use MC16-style random number seeding"};
136 PublicToolHandle<CaloTriggerTowerService>
m_ttSvc{
this,
"CaloTriggerTowerService",
"CaloTriggerTowerService"};
234 {
this,
"EmBarrelHitContainerName",
"LArHitEMB"},
235 {
this,
"EmEndCapHitContainerName",
"LArHitEMEC"},
236 {
this,
"HecHitContainerName",
"LArHitHEC"},
237 {
this,
"ForWardHitContainerName",
"LArHitFCAL"}
243 Gaudi::Property<bool>
m_PileUp{
this,
"PileUp",
false};
255 "Specify a value to get a pair of LArTTL1 containers with the truth hits in them"};
Scalar eta() const
pseudorapidity method
interface to a tool that returns the time offset of the current trigger.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Helper class for offline cell identifiers.
Helper class for offline TT identifiers.
Helper class for LArEM offline identifiers.
Helper class for LArFCAL offline identifiers.
Helper class for LArHEC offline identifiers.
The aim of this algorithm is the simulation of the LAr analogue trigger tower sums.
std::vector< std::vector< float > > m_noiseRmsFcal
auxiliary FCAL data: noise rms
std::vector< float > m_sinThetaEmec
auxiliary EMEC data: sin(theta)
std::vector< std::vector< float > > m_calibCoeffFcal
auxiliary FCAL data: calibration coefficients
SG::WriteHandleKey< LArTTL1Container > m_HadTTL1ContainerName
algorithm property: container name for the HAD TTL1s
SG::WriteHandleKey< LArTTL1Container > m_EmTTL1ContainerName
algorithm property: container name for the EM TTL1s
Gaudi::Property< bool > m_useLegacyRandomSeeds
void setSeed(const std::string &algName, uint64_t ev, uint64_t run)
virtual StatusCode finalize() override
Gaudi::Property< bool > m_useTriggerTime
Alorithm property: use trigger time or not.
void setSeed(const std::string &algName, const EventContext &ctx)
std::vector< std::vector< float > > m_pulseShapeDerEm
auxiliary EM data: pulse shape derivative
std::vector< float > m_sinThetaEmb
auxiliary EMBarrel data: sin(theta)
virtual void handle(const Incident &) override
IChronoStatSvc * m_chronSvc
std::vector< float > computeNoise(const Identifier towerId, const int Ieta, std::vector< float > &inputV, CLHEP::HepRandomEngine *rndmEngine)
std::vector< std::vector< float > > m_pulseShapeDerFcal
auxiliary FCAL data: pulse shape derivatives
std::vector< std::vector< float > > m_pulseShapeFcal
auxiliary FCAL data: pulse shapes
std::vector< float > m_satEnergyHec
auxiliary HEC data: saturation energy
std::vector< float > computeSignal(const Identifier towerId, const int Ieta, const int specialCase, std::vector< float > visEnergy, const int refTime) const
initialize hit map
Gaudi::Property< std::string > m_truthHitsContainer
key for saving truth
const LArHEC_ID * m_hecHelper
pointer to the offline HEC helper
PublicToolHandle< CaloTriggerTowerService > m_ttSvc
const LArEM_ID * m_emHelper
pointer to the offline EM helper
SG::ReadHandleKey< LArHitEMap > m_hitMapKey
hit map
std::vector< std::vector< float > > m_autoCorrHec
auxiliary HEC data: auto-correlation matrix
std::vector< float > m_noiseRmsEmec
auxiliary EMEC data: noise rms
Gaudi::Property< std::vector< float > > m_calibCoeffFcalHad
auxiliary FCAL data: calibration coefficients
virtual StatusCode initialize() override
Read ascii files for auxiliary data (puslse shapes, noise, etc...)
std::vector< float > m_autoCorrEm
auxiliary EM data: auto-correlation matrix
const CaloLVL1_ID * m_lvl1Helper
pointer to the offline TT helper
static const short s_NBDEPTHS
number of sampling (in depth)
static const short s_MAXSAMPLES
max number of samples in pulse shape
static constexpr int s_nEta
std::vector< std::vector< float > > m_pulseShapeEm
auxiliary EM data: pulse shapes
Gaudi::Property< bool > m_PileUp
algorithm property: pile up or not
std::vector< float > m_sinThetaHec
auxiliary HEC data: sin(theta)
std::vector< float > m_refEnergyEm
auxiliary EM data: reference energies for saturation simulation
const LArFCAL_ID * m_fcalHelper
pointer to the offline FCAL helper
PublicToolHandle< ITriggerTime > m_triggerTimeTool
Alorithm property: name of the TriggerTimeTool.
std::vector< float > m_noiseRmsHec
auxiliary HEC data: noise rms
std::vector< float > m_pulseShapeDerHec
auxiliary HEC data: pulse shape derivative
Gaudi::Property< float > m_debugThresh
algorithm property: debug threshold
Gaudi::Property< std::string > m_randomStreamName
void setSeed(size_t seed)
const CaloCell_ID * m_OflHelper
pointer to the offline id helper
StatusCode readAuxiliary()
method called at the begining of execute() to fill the hit map
Gaudi::Property< bool > m_chronoTest
algorithm property: switch chrono on
Gaudi::Property< bool > m_noEmCalibMode
algorithm property: no calibration mode for EM towers
std::vector< float > m_pulseShapeHec
auxiliary HEC data: pulse shape
static const short s_NBETABINS
number of eta bins
Gaudi::Property< std::vector< float > > m_calibCoeffEmec
auxiliary EMEC data: calibration coeeficient
Gaudi::Property< bool > m_NoiseOnOff
algorithm property: noise (in all sub-detectors) is on if true
Gaudi::Property< uint32_t > m_randomSeedOffset
std::array< SG::ReadHandleKey< LArHitContainer >, 4 > m_xxxHitContainerName
ServiceHandle< IAthRNGSvc > m_RandomSvc
Gaudi::Property< bool > m_noHadCalibMode
algorithm property: no calibration mode for had towers
std::vector< float > m_noiseRmsEmb
auxiliary EMBarrel data: noise rms
std::vector< float > m_cellRelGainFcal
auxiliary FCAL data: relative gains
static const short s_NBENERGIES
number of energies at which saturation is described (em)
SG::ReadCondHandleKey< ILArfSampl > m_fSamplKey
Sampling fractions retrieved from DB.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
virtual bool isClonable() const override final
static const short s_NBSAMPLES
number of samples in TTL1s
std::vector< float > m_autoCorrFcal
auxiliary FCAL data: auto-correlation matrix
static const short s_PEAKPOS
peak position
virtual StatusCode execute() override
Create LArTTL1 object save in TES (2 containers: 1 EM, 1 hadronic)
Gaudi::Property< std::vector< float > > m_calibCoeffEmb
auxiliary EMBarrel data: calibration coefficient
Gaudi::Property< std::vector< float > > m_calibCoeffFcalEm
auxiliary FCAL data: calibration coefficients
int decodeInverse(int region, int eta)
Gaudi::Property< std::vector< float > > m_calibCoeffHec
auxiliary HEC data: calibration coefficients
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.