|
ATLAS Offline Software
|
Go to the documentation of this file.
26 #ifndef TRIGT1CALOSIM_RUN2TRIGGERTOWERMAKER_H
27 #define TRIGT1CALOSIM_RUN2TRIGGERTOWERMAKER_H
38 #include "GaudiKernel/ServiceHandle.h"
39 #include "GaudiKernel/ToolHandle.h"
77 namespace CLHEP {
class HepRandomEngine; }
80 class ITrigT1CaloDataAccessV2;
85 class IL1CaloMappingTool;
86 class InternalTriggerTower;
109 void handle(
const Incident&);
155 ToolHandle<IL1TriggerTowerTool>
m_TTtool{
this,
"TTTool",
"LVL1::L1TriggerTowerTool/L1TriggerTowerTool",
"The trigger tower tool"};
209 void digitize(
const EventContext& ctx);
225 void calcCombinedLUT(
const std::vector<int>& sigIN,
const int sigSlope,
const int sigOffset,
226 const std::vector<int>& ovIN,
const int ovSlope,
const int ovOffset,
const int ovNoiseCut,std::vector<int>&
output);
235 void normaliseDigits(
const std::vector<int>& sigDigits,
const std::vector<int>& ovDigits,std::vector<int>& normDigits);
251 std::vector<int>
ADC(CLHEP::HepRandomEngine* rndmADCs,
253 int EtRange(
int et,
unsigned short bcidEnergyRangeLow,
unsigned short bcidEnergyRangeHigh)
const;
260 int non_linear_lut(
int lutin,
unsigned short offset,
unsigned short slope,
unsigned short noiseCut,
unsigned short scale,
short par1,
short par2,
short par3,
short par4);
Property holding a SG store/key/clid from which a ReadHandle is made.
const L1CaloPpmDeadChannelsContainer * m_deadChannelsContainer
StatusCode calcLutOutCP(const std::vector< int > &sigLutIn, const L1CaloPprChanCalib *sigDB, const std::vector< int > &ovLutIn, const L1CaloPprChanCalib *ovDB, std::vector< int > &output)
calculate LUT out
StatusCode store()
Stores Trigger Towers in the TES, at a location defined in m_outputLocation.
StatusCode preProcess(int bcid, float mu)
Simulate PreProcessing on analogue amplitudes.
Extra patterns decribing particle interation process.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Folder <-> Object mapping for /TRIGGER/L1Calo/V1/Calibration/PpmDeadChannels .
SG::ReadHandleKey< LArTTL1Container > m_EmTTL1ContainerName
void processLArTowers(const LArTTL1Container *)
extract amplitudes from TTL1
std::string m_chanDefaultsKeyoverlay
L1CaloPprChanDefaults m_chanDefaultsoverlay
virtual StatusCode addOverlay(int bcid, float mu)
Add overlay data.
Tool providing the mapping of the online and offline TriggerTower identifiers as well as the TT-cells...
std::vector< int > ADC(CLHEP::HepRandomEngine *rndmADCs, L1CaloCoolChannelId channel, const std::vector< double > &s) const
Functions to simulate processing of tower signals.
virtual ~Run2TriggerTowerMaker()
void normaliseDigits(const std::vector< int > &sigDigits, const std::vector< int > &ovDigits, std::vector< int > &normDigits)
normalise the number of ADC digits for overlay
StatusCode preProcessTower(int bcid, float mu, xAOD::TriggerTower *tower)
StatusCode calcLutOutJEP(const std::vector< int > &sigLutIn, const L1CaloPprChanCalib *sigDB, const std::vector< int > &ovLutIn, const L1CaloPprChanCalib *ovDB, std::vector< int > &output)
ATHRNG::RNGWrapper * m_rndmADCs
Run2TriggerTowerMaker(const Run2TriggerTowerMaker &)=delete
std::vector< std::vector< double > > m_xaodTowersAmps
constexpr static int s_FIRLENGTH
SG::ReadHandleKey< TileTTL1Container > m_TileTTL1ContainerName
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
@ u
Enums for curvilinear frames.
int EtRange(int et, unsigned short bcidEnergyRangeLow, unsigned short bcidEnergyRangeHigh) const
StatusCode preProcessTower_getLutIn(int bcid, float mu, xAOD::TriggerTower *tower, const L1CaloPprChanCalib *db, const std::vector< int > &digits, std::vector< int > &output)
PreProcess up to LUT in.
ToolHandle< IL1TriggerTowerTool > m_TTtool
L1CaloCoolChannelId channelId(double eta, double phi, int layer)
Compute L1CaloCoolChannelId (including support for old geometries)
std::string m_disabledTowersKeyoverlay
SG::ReadHandleKey< TrigConf::L1Menu > m_L1MenuKey
Run2TriggerTowerMaker(const std::string &name, ISvcLocator *pSvcLocator)
bool IsDisabledChannel(const L1CaloDisabledTowers *db) const
std::unique_ptr< xAOD::TriggerTowerAuxContainer > m_xaodTowersAux
constexpr static int s_MEV
L1CaloPprChanDefaults m_chanDefaults
Property holding a SG store/key/clid from which a WriteHandle is made.
SG::ReadCondHandleKey< L1CaloPprChanCalibContainer > m_chanCalibKey
double IDeta(const Identifier &id, const CaloLVL1_ID *caloId)
functions to extract eta, phi coordinates from calo tower identifiers
bool m_isDataReprocessing
std::string m_deadChannelsKeyoverlay
SG::ReadHandleKey< xAOD::EventInfo > m_xaodevtKey
::StatusCode StatusCode
StatusCode definition for legacy code.
bool IsDeadChannel(const L1CaloPpmDeadChannels *db) const
Database helper functions for dead and disabled towers.
Description of TriggerTower_v2.
SG::ReadDecorHandleKey< xAOD::EventInfo > m_actMuKey
StatusCode execute()
Checks that the Cell Type is supported (terminates with errors if not) and calls relevant routine to ...
Folder <-> Object mapping for /TRIGGER/L1Calo/V2/Calibration/Physics/PprChanCalib .
Container class for LArTTL1.
double IDphi(const Identifier &id, const CaloLVL1_ID *caloId)
int etaToElement(float feta, int layer) const
Run2TriggerTowerMaker & operator=(const Run2TriggerTowerMaker &)=delete
Helper class for offline TT identifiers.
A wrapper class for event-slot-local random engines.
int non_linear_lut(int lutin, unsigned short offset, unsigned short slope, unsigned short noiseCut, unsigned short scale, short par1, short par2, short par3, short par4)
ServiceHandle< IAthRNGSvc > m_rngSvc
StatusCode getTriggerTowers()
gets collection of input TriggerTowers for reprocessing
std::unique_ptr< xAOD::TriggerTowerContainer > m_xaodTowers
ToolHandle< IL1CaloMappingTool > m_mappingTool
const CaloLVL1_ID * m_caloId
setEventNumber setTimeStamp bcid
void processTileTowers(const TileTTL1Container *)
L1CaloDisabledTowersContainer * m_disabledTowersContaineroverlay
std::array< double, m_maxIetaBins > m_sinThetaHash
instead of calculating the expression: double theta =2.
Folder <-> Object mapping for /TRIGGER/L1Calo/V1/Conditions/DisabledTowers .
An STL vector of pointers that by default owns its pointed-to elements.
SG::WriteHandleKey< xAOD::TriggerTowerContainer > m_outputLocation
void calcCombinedLUT(const std::vector< int > &sigIN, const int sigSlope, const int sigOffset, const std::vector< int > &ovIN, const int ovSlope, const int ovOffset, const int ovNoiseCut, std::vector< int > &output)
Data object for each calorimeter readout cell.
const L1CaloDisabledTowersContainer * m_disabledTowersContainer
StatusCode getCaloTowers()
fetch Calorimeter Towers
L1CaloPprChanCalibContainer * m_chanCalibContaineroverlay
SG::ReadCondHandleKey< L1CaloPpmDeadChannelsContainer > m_deadChannelsKey
SG::ReadCondHandleKey< L1CaloDisabledTowersContainer > m_disabledTowersKey
manage multiple RandomEngines in thread-safe way.
std::string m_chanCalibKeyoverlay
const L1CaloPprChanCalibContainer * m_chanCalibContainer
constexpr static unsigned int m_maxIetaBins
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Folder <-> Object mapping for /TRIGGER/L1Calo/V2/Configuration/PprChanDefaults .
ToolHandle< LVL1BS::ITrigT1CaloDataAccessV2 > m_bstowertool
void digitize(const EventContext &ctx)
Convert analogue pulses to digits.
SG::ReadHandleKey< LArTTL1Container > m_HadTTL1ContainerName
bool IsGoodTower(const xAOD::TriggerTower *tt, const L1CaloPpmDeadChannelsContainer *dead, const L1CaloDisabledTowersContainer *disabled) const
L1CaloPpmDeadChannelsContainer * m_deadChannelsContaineroverlay
SG::ReadHandleKey< xAOD::TriggerTowerContainer > m_inputTTLocation
TriggerTower_v2 TriggerTower
Define the latest version of the TriggerTower class.
SG::WriteHandleKey< xAOD::TriggerTowerContainer > m_outputLocationRerun
SG::ReadCondHandleKey< L1CaloPprChanDefaultsContainer > m_chanDefaultsKey
void handle(const Incident &)
Best if initialisation which uses COOL-derived values is done here rather than in initialize()