|
ATLAS Offline Software
|
#include <Run2TriggerTowerMaker.h>
|
| Run2TriggerTowerMaker (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~Run2TriggerTowerMaker () |
|
| Run2TriggerTowerMaker (const Run2TriggerTowerMaker &)=delete |
|
Run2TriggerTowerMaker & | operator= (const Run2TriggerTowerMaker &)=delete |
|
StatusCode | initialize () |
|
StatusCode | execute () |
| Checks that the Cell Type is supported (terminates with errors if not) and calls relevant routine to look for the cells. More...
|
|
StatusCode | finalize () |
|
void | handle (const Incident &) |
| Best if initialisation which uses COOL-derived values is done here rather than in initialize() More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
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 | 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 |
|
|
L1CaloCoolChannelId | channelId (double eta, double phi, int layer) |
| Compute L1CaloCoolChannelId (including support for old geometries) More...
|
|
StatusCode | getTriggerTowers () |
| gets collection of input TriggerTowers for reprocessing More...
|
|
StatusCode | getCaloTowers () |
| fetch Calorimeter Towers More...
|
|
void | digitize (const EventContext &ctx) |
| Convert analogue pulses to digits. More...
|
|
StatusCode | preProcess (int bcid, float mu) |
| Simulate PreProcessing on analogue amplitudes. More...
|
|
StatusCode | preProcessTower (int bcid, float mu, xAOD::TriggerTower *tower) |
|
virtual StatusCode | addOverlay (int bcid, float mu) |
| Add overlay data. More...
|
|
virtual StatusCode | addOverlay (int bcid, float mu, xAOD::TriggerTower *sigTT, xAOD::TriggerTower *ovTT) |
| Add the overlay TriggerTower to the signal TriggerTower. More...
|
|
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. More...
|
|
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 More...
|
|
StatusCode | calcLutOutJEP (const std::vector< int > &sigLutIn, const L1CaloPprChanCalib *sigDB, const std::vector< int > &ovLutIn, const L1CaloPprChanCalib *ovDB, std::vector< int > &output) |
|
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) |
|
bool | IsDeadChannel (const L1CaloPpmDeadChannels *db) const |
| Database helper functions for dead and disabled towers. More...
|
|
bool | IsDisabledChannel (const L1CaloDisabledTowers *db) const |
|
bool | IsGoodTower (const xAOD::TriggerTower *tt, const L1CaloPpmDeadChannelsContainer *dead, const L1CaloDisabledTowersContainer *disabled) const |
|
void | normaliseDigits (const std::vector< int > &sigDigits, const std::vector< int > &ovDigits, std::vector< int > &normDigits) |
| normalise the number of ADC digits for overlay More...
|
|
StatusCode | store () |
| Stores Trigger Towers in the TES, at a location defined in m_outputLocation. More...
|
|
void | processLArTowers (const LArTTL1Container *) |
| extract amplitudes from TTL1 More...
|
|
void | processTileTowers (const TileTTL1Container *) |
|
double | IDeta (const Identifier &id, const CaloLVL1_ID *caloId) |
| functions to extract eta, phi coordinates from calo tower identifiers More...
|
|
double | IDphi (const Identifier &id, const CaloLVL1_ID *caloId) |
|
std::vector< int > | ADC (CLHEP::HepRandomEngine *rndmADCs, L1CaloCoolChannelId channel, const std::vector< double > &s) const |
| Functions to simulate processing of tower signals. More...
|
|
int | EtRange (int et, unsigned short bcidEnergyRangeLow, unsigned short bcidEnergyRangeHigh) const |
|
int | etaToElement (float feta, int layer) const |
|
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) |
|
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...
|
|
|
std::string | m_digiEngine |
|
int | m_cellType |
|
double | m_adcVar |
|
double | m_adcStep |
|
double | m_gainCorr |
|
bool | m_decorateFIR |
|
bool | m_ZeroSuppress |
|
bool | m_requireAllCalos |
|
SG::ReadCondHandleKey< L1CaloPprChanCalibContainer > | m_chanCalibKey {this,"ChanCalibFolderKey","/TRIGGER/L1Calo/V2/Calibration/Physics/PprChanCalib","PprChanCalib key"} |
|
SG::ReadCondHandleKey< L1CaloPprChanDefaultsContainer > | m_chanDefaultsKey {this,"ChanDefaultsFolderKey","/TRIGGER/L1Calo/V2/Configuration/PprChanDefaults","PprChanDefaults key"} |
|
SG::ReadCondHandleKey< L1CaloDisabledTowersContainer > | m_disabledTowersKey {this,"DisabledTowersFolderKey","/TRIGGER/L1Calo/V2/Conditions/DisabledTowers","DisabledTowers key"} |
|
SG::ReadCondHandleKey< L1CaloPpmDeadChannelsContainer > | m_deadChannelsKey {this,"DeadChannelsFolderKey","/TRIGGER/L1Calo/V2/Calibration/PpmDeadChannels","PpmDeadChannels key"} |
|
std::string | m_chanCalibKeyoverlay |
|
std::string | m_chanDefaultsKeyoverlay |
|
std::string | m_disabledTowersKeyoverlay |
|
std::string | m_deadChannelsKeyoverlay |
|
ServiceHandle< IAthRNGSvc > | m_rngSvc |
|
ATHRNG::RNGWrapper * | m_rndmADCs |
|
ToolHandle< IL1TriggerTowerTool > | m_TTtool {this,"TTTool","LVL1::L1TriggerTowerTool/L1TriggerTowerTool", "The trigger tower tool"} |
|
ToolHandle< IL1CaloMappingTool > | m_mappingTool |
|
ToolHandle< LVL1BS::ITrigT1CaloDataAccessV2 > | m_bstowertool |
|
const CaloLVL1_ID * | m_caloId |
|
double | m_cpLutScale |
|
double | m_jepLutScale |
|
double | m_TileToMeV |
|
double | m_TileTTL1Ped |
|
bool | m_isDataReprocessing |
|
bool | m_doOverlay |
|
bool | m_isReco |
|
const L1CaloPprChanCalibContainer * | m_chanCalibContainer = nullptr |
|
const L1CaloDisabledTowersContainer * | m_disabledTowersContainer = nullptr |
|
const L1CaloPpmDeadChannelsContainer * | m_deadChannelsContainer = nullptr |
|
L1CaloPprChanDefaults | m_chanDefaults |
|
L1CaloPprChanCalibContainer * | m_chanCalibContaineroverlay = nullptr |
|
L1CaloDisabledTowersContainer * | m_disabledTowersContaineroverlay = nullptr |
|
L1CaloPpmDeadChannelsContainer * | m_deadChannelsContaineroverlay = nullptr |
|
L1CaloPprChanDefaults | m_chanDefaultsoverlay |
|
std::unique_ptr< xAOD::TriggerTowerContainer > | m_xaodTowers |
|
std::unique_ptr< xAOD::TriggerTowerAuxContainer > | m_xaodTowersAux |
|
std::vector< std::vector< double > > | m_xaodTowersAmps |
|
std::size_t | m_curIndex = 0u |
|
std::array< double, m_maxIetaBins > | m_sinThetaHash |
| instead of calculating the expression: double theta =2. More...
|
|
SG::ReadHandleKey< xAOD::EventInfo > | m_xaodevtKey |
|
SG::ReadDecorHandleKey< xAOD::EventInfo > | m_actMuKey { this, "actualInteractionsPerCrossingKey", "EventInfo.actualInteractionsPerCrossing", "Decoration for actual interactions per crossing" } |
|
SG::ReadHandleKey< xAOD::TriggerTowerContainer > | m_inputTTLocation |
|
SG::WriteHandleKey< xAOD::TriggerTowerContainer > | m_outputLocation |
|
SG::WriteHandleKey< xAOD::TriggerTowerContainer > | m_outputLocationRerun |
|
SG::ReadHandleKey< LArTTL1Container > | m_EmTTL1ContainerName |
|
SG::ReadHandleKey< LArTTL1Container > | m_HadTTL1ContainerName |
|
SG::ReadHandleKey< TileTTL1Container > | m_TileTTL1ContainerName |
|
SG::ReadHandleKey< TrigConf::L1Menu > | m_L1MenuKey { this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu", "L1 Menu" } |
|
DataObjIDColl | m_extendedExtraObjects |
|
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 |
|
Definition at line 89 of file Run2TriggerTowerMaker.h.
◆ StoreGateSvc_t
◆ CellTypes
◆ Run2TriggerTowerMaker() [1/2]
LVL1::Run2TriggerTowerMaker::Run2TriggerTowerMaker |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~Run2TriggerTowerMaker()
LVL1::Run2TriggerTowerMaker::~Run2TriggerTowerMaker |
( |
| ) |
|
|
virtual |
◆ Run2TriggerTowerMaker() [2/2]
◆ ADC()
std::vector< int > LVL1::Run2TriggerTowerMaker::ADC |
( |
CLHEP::HepRandomEngine * |
rndmADCs, |
|
|
L1CaloCoolChannelId |
channel, |
|
|
const std::vector< double > & |
amps |
|
) |
| const |
|
private |
Functions to simulate processing of tower signals.
Definition at line 1144 of file Run2TriggerTowerMaker.cxx.
1149 double ped = chanCalib->pedMean();
1152 double adcCal = (
m_gainCorr > 0.) ? CLHEP::RandGaussZiggurat::shoot(rndmADCs, 1.,
m_gainCorr) : 1.;
1154 std::vector<int> digits;
1159 double adcNoise = (
m_adcVar > 0.) ? CLHEP::RandGaussZiggurat::shoot(rndmADCs,0.,
m_adcVar) : 0.;
1164 digits.push_back(
digit);
◆ addOverlay() [1/2]
StatusCode LVL1::Run2TriggerTowerMaker::addOverlay |
( |
int |
bcid, |
|
|
float |
mu |
|
) |
| |
|
privatevirtual |
Add overlay data.
Definition at line 392 of file Run2TriggerTowerMaker.cxx.
397 overlayDataTTs->setStore( &overlayDataTTsAux );
401 std::unordered_map<uint32_t,xAOD::TriggerTower*> overlayMap;
405 char decor_ttNotUsedInOverlay = 0;
406 char decor_ttUsedInOverlay = 1;
408 for (
auto tt:*overlayDataTTs) {
411 decor(*
tt) = decor_ttNotUsedInOverlay;
412 overlayMap.insert( std::make_pair(
tt->coolId() ,
tt ) );
417 bool findSizeOfPrimaryLUT(
true);
418 unsigned int sizeOfPrimaryLUT(0);
425 if (findSizeOfPrimaryLUT) {
426 findSizeOfPrimaryLUT =
false;
427 sizeOfPrimaryLUT =
tt->lut_cp().size();
428 peakOfPrimary =
tt->peak();
432 Itr
match = overlayMap.find(
tt->coolId() );
433 if (
match != overlayMap.end()) {
438 decor(*
match->second) = decor_ttUsedInOverlay;
444 for (Itr
i=overlayMap.begin();
i!=overlayMap.end();++
i) {
446 if (decor(*
tt) == decor_ttNotUsedInOverlay) {
448 std::vector<uint8_t> overlay_lut_cp(sizeOfPrimaryLUT,0.);
449 std::vector<uint8_t> overlay_lut_jep(sizeOfPrimaryLUT,0.);
452 overlay_lut_cp.at(peakOfPrimary) =
tt->cpET();
453 overlay_lut_jep.at(peakOfPrimary) =
tt->jepET();
456 tt->setPeak( peakOfPrimary );
457 tt->setLut_cp( overlay_lut_cp );
458 tt->setLut_jep( overlay_lut_jep );
466 return StatusCode::SUCCESS;
◆ addOverlay() [2/2]
Add the overlay TriggerTower to the signal TriggerTower.
Definition at line 470 of file Run2TriggerTowerMaker.cxx.
477 ATH_MSG_ERROR(
"Cannot find signal DB for tower 0x"<<std::hex<<sigTT->
coolId()<<std::dec<<
" Aborting...");
478 return StatusCode::FAILURE;
482 ATH_MSG_ERROR(
"Cannot find overlay DB for tower 0x"<<std::hex<<ovTT->
coolId()<<std::dec<<
" Aborting...");
483 return StatusCode::FAILURE;
490 std::vector<int> normOverlayDigits;
494 std::vector<int> sigLutIn,ovLutIn;
499 std::vector<int> lutOut_cp,lutOut_jep;
505 std::size_t peak = lutOut_jep.size()/2;
506 std::vector<uint_least8_t> etResultVectorCp {
uint8_t(lutOut_cp[peak]) };
507 std::vector<uint_least8_t> etResultVectorJep {
uint8_t(lutOut_jep[peak]) };
509 sigTT->
setLut_cp(std::move(etResultVectorCp));
510 sigTT->
setLut_jep(std::move(etResultVectorJep));
512 return StatusCode::SUCCESS;
◆ calcCombinedLUT()
void LVL1::Run2TriggerTowerMaker::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 |
|
) |
| |
|
private |
Definition at line 557 of file Run2TriggerTowerMaker.cxx.
568 output.reserve(sigIN.size());
570 for (
unsigned int i=0;
i<sigIN.size();++
i) {
575 int outSig =
signal*sigSlope - sigOffset;
576 int outOv =
overlay*ovSlope - ovOffset;
577 int outTmp = outSig + outOv;
580 if (outTmp >= ovNoiseCut) {
581 out = (outSig + outOv + 2048)>>12;
◆ calcLutOutCP()
calculate LUT out
Definition at line 515 of file Run2TriggerTowerMaker.cxx.
518 ATH_MSG_ERROR(
"Cannot process calcLutOutCP as lutCpStrategy > 2");
519 return StatusCode::FAILURE;
523 double sigSlope = sigScale * sigDB->
lutCpSlope();
524 double sigOffset = sigScale * sigDB->
lutCpOffset();
527 double ovSlope = ovScale * ovDB->
lutCpSlope();
533 return StatusCode::SUCCESS;
◆ calcLutOutJEP()
◆ channelId()
L1CaloCoolChannelId LVL1::Run2TriggerTowerMaker::channelId |
( |
double |
eta, |
|
|
double |
phi, |
|
|
int |
layer |
|
) |
| |
|
private |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ digitize()
void LVL1::Run2TriggerTowerMaker::digitize |
( |
const EventContext & |
ctx | ) |
|
|
private |
Convert analogue pulses to digits.
Digitize pulses and store results back in xAOD::TriggerTowers.
Definition at line 1130 of file Run2TriggerTowerMaker.cxx.
1140 tower->setAdcPeak(digits.size()/2);
◆ etaToElement()
int LVL1::Run2TriggerTowerMaker::etaToElement |
( |
float |
feta, |
|
|
int |
layer |
|
) |
| const |
|
private |
Get integer eta bin
Definition at line 1222 of file Run2TriggerTowerMaker.cxx.
1224 constexpr
static int NELEMENTS = 33;
1226 float shiftedEta = feta + 4.9;
1228 if(fabs(shiftedEta*10.0 - (
uint)(eta+1)) < 0.01)
eta++;
1229 if(fabs(shiftedEta) < 0.01)
eta = 0;
1231 constexpr
int nBins = 16;
1232 constexpr
uint map[
nBins] = {2,6,10,14,17,19,21,23,75,77,79,80,83,87,91,95};
1234 if(eta > 23 && eta < 74) {
1239 if(
i < 8) element =
i;
1240 else element =
i + 50;
1245 if (
layer == 1 && (element == 0 || element == 64)) element = 1;
1246 else if (
layer == 1 && (element == 1 || element == 65)) element = 0;
1247 else if (
layer == 1 && (element == 2 || element == 62)) element = 3;
1248 else if (
layer == 1 && (element == 3 || element == 63)) element = 2;
1249 else if (element > 32) element = 65-element;
1252 element = NELEMENTS-element-1;
◆ EtRange()
int LVL1::Run2TriggerTowerMaker::EtRange |
( |
int |
et, |
|
|
unsigned short |
bcidEnergyRangeLow, |
|
|
unsigned short |
bcidEnergyRangeHigh |
|
) |
| const |
|
private |
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode LVL1::Run2TriggerTowerMaker::execute |
( |
| ) |
|
Checks that the Cell Type is supported (terminates with errors if not) and calls relevant routine to look for the cells.
Definition at line 303 of file Run2TriggerTowerMaker.cxx.
311 CHECK(pprCalibCont.isValid());
314 CHECK(pprDisabledTowers.isValid());
317 CHECK(pprDeadTowers.isValid());
320 CHECK(pprChanDefaults.isValid());
321 auto*
defaults = pprChanDefaults->pprChanDefaults(0);
323 ATH_MSG_ERROR(
"Could not retrieve channel 0 PprChanDefaults folder. Aborting ...");
324 throw std::runtime_error(
"Run2TriggerTowerMaker: channel 0 of PprChanDefaults not accesible");
328 const EventContext& ctx = Gaudi::Hive::currentContext();
348 ATH_MSG_ERROR(
"Unsupported Cell Type!!!!!!");
return StatusCode::FAILURE;
355 const float mu = muDecor(0);
366 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode LVL1::Run2TriggerTowerMaker::finalize |
( |
| ) |
|
◆ getCaloTowers()
StatusCode LVL1::Run2TriggerTowerMaker::getCaloTowers |
( |
| ) |
|
|
private |
fetch Calorimeter Towers
fetches LAr & Tile calorimeter towers
If < 7168 towers in input data will be unallocated pointers in vector.
Definition at line 961 of file Run2TriggerTowerMaker.cxx.
966 if(!EMTowers.isValid()){
968 sc1 = StatusCode::FAILURE;
973 if(!HECTowers.isValid()){
975 sc2 = StatusCode::FAILURE;
981 if(!TileTowers.isValid()){
983 sc3 = StatusCode::FAILURE;
987 (sc2==StatusCode::FAILURE) ||
988 (sc3==StatusCode::FAILURE))) {
990 <<
"Found Em LArTTL1 : "<<sc1 <<
endmsg
991 <<
"Found Had LArTTL1 : "<<sc2 <<
endmsg
992 <<
"Found TileTTL1 : "<<sc3<<
endmsg
994 return StatusCode::FAILURE;
998 if(sc1 == StatusCode::SUCCESS) {
1001 if(sc2 == StatusCode::SUCCESS) {
1004 if(sc3 == StatusCode::SUCCESS) {
1016 [
this](
const xAOD::TriggerTower*
tt){return !IsGoodTower(tt,m_deadChannelsContainer,m_disabledTowersContainer);}),
1019 return StatusCode::SUCCESS;
◆ getTriggerTowers()
StatusCode LVL1::Run2TriggerTowerMaker::getTriggerTowers |
( |
| ) |
|
|
private |
gets collection of input TriggerTowers for reprocessing
gets TriggerTowers from input collection and copies ADC digits into xAOD::TriggerTowers for reprocessing
If < 7168 towers in input data will be unallocated pointers in vector.
Definition at line 934 of file Run2TriggerTowerMaker.cxx.
939 ATH_MSG_INFO(
"Found " << inputTTs->size() <<
" input TriggerTowers");
954 [
this](
const xAOD::TriggerTower*
tt){return !IsGoodTower(tt,m_deadChannelsContainer,m_disabledTowersContainer);}),
957 return StatusCode::SUCCESS;
◆ handle()
void LVL1::Run2TriggerTowerMaker::handle |
( |
const Incident & |
inc | ) |
|
Best if initialisation which uses COOL-derived values is done here rather than in initialize()
Get global scales from configSvc
globalScale is number of GeV/count. As code is already written to use MeV/count, safest thing here is to convert:
Definition at line 214 of file Run2TriggerTowerMaker.cxx.
216 if(inc.type() !=
"BeginRun")
return;
234 throw std::runtime_error(
"Overlay no longer supported in Run2TriggerTowerMaker");
274 ATH_MSG_WARNING(
"Could not determine if input file is data or simulation. Will assume simulation.");
280 ATH_MSG_INFO(
"Detected data reprocessing. Will take pedestal correction values from input trigger towers.");
289 ATH_MSG_INFO(
"L1Calo overlay job - setting m_isDataReprocessing to false");
◆ IDeta()
functions to extract eta, phi coordinates from calo tower identifiers
Definition at line 1176 of file Run2TriggerTowerMaker.cxx.
1178 int region = l1id->region(
id);
1179 int ieta = l1id->eta(
id);
1180 int sign = l1id->pos_neg_z(
id);
1182 double gran[4] = {0.1, 0.2, 0.1, 0.425};
1183 double offset[4] = {0., 2.5, 3.1, 3.2};
1186 if(region>=0 && region<=3) {
◆ IDphi()
Definition at line 1197 of file Run2TriggerTowerMaker.cxx.
1201 double phiMax = l1id->phi_max(regId);
1202 int iphi = l1id->phi(
id);
1203 double phi = (iphi+0.5)*2*
M_PI/(phiMax+1);
◆ initialize()
StatusCode LVL1::Run2TriggerTowerMaker::initialize |
( |
| ) |
|
Definition at line 154 of file Run2TriggerTowerMaker.cxx.
167 return StatusCode::FAILURE;
173 incSvc->addListener(
this,
"BeginRun");
209 return StatusCode::SUCCESS;
◆ inputHandles()
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.
◆ IsDeadChannel()
Database helper functions for dead and disabled towers.
Definition at line 370 of file Run2TriggerTowerMaker.cxx.
372 if (!
db)
return false;
373 if (
db->errorCode() > 0 ||
db->noiseCut() > 0)
return true;
◆ IsDisabledChannel()
◆ IsGoodTower()
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ non_linear_lut()
int LVL1::Run2TriggerTowerMaker::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 |
|
) |
| |
|
private |
Definition at line 1261 of file Run2TriggerTowerMaker.cxx.
1265 double nll_slope = 0.001 *
scale;
1266 double nll_offset = 0.001 * par1;
1267 double nll_ampl = 0.001 * par2;
1268 double nll_expo = 0.;
1270 nll_expo = -1. / (4096 * 0.001*par3);
1274 double nll_noise = 0.001 * par4;
1277 if (lutin * slope <
offset + nll_noise * noiseCut) {
1282 int output =
int((((
int)(2048 + nll_slope * (lutin * slope -
offset)))>>12) + nll_offset + nll_ampl *
std::exp(nll_expo * (lutin * slope -
offset)));
1283 if(
output >= 255)
return 255;
◆ normaliseDigits()
void LVL1::Run2TriggerTowerMaker::normaliseDigits |
( |
const std::vector< int > & |
sigDigits, |
|
|
const std::vector< int > & |
ovDigits, |
|
|
std::vector< int > & |
normDigits |
|
) |
| |
|
private |
normalise the number of ADC digits for overlay
Definition at line 642 of file Run2TriggerTowerMaker.cxx.
651 if (sigDigits.size() == ovDigits.size()) {
652 for (
auto x:ovDigits) normDigits.push_back(
x );
656 if (sigDigits.size() > ovDigits.size()) {
657 unsigned int pad = (sigDigits.size() - ovDigits.size()) / 2;
658 for (
unsigned int x=0;
x<pad;++
x) normDigits.push_back( 32 );
659 for (
auto x:ovDigits) normDigits.push_back(
x );
660 for (
unsigned int x=0;
x<pad;++
x) normDigits.push_back( 32 );
665 if (sigDigits.size() < ovDigits.size()) {
666 unsigned int offset = (ovDigits.size() - sigDigits.size()) / 2;
667 for (
unsigned int x=0;
x<sigDigits.size();++
x) {
669 normDigits.push_back( ovDigits[
pos] );
◆ operator=()
◆ outputHandles()
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.
◆ preProcess()
StatusCode LVL1::Run2TriggerTowerMaker::preProcess |
( |
int |
bcid, |
|
|
float |
mu |
|
) |
| |
|
private |
Simulate PreProcessing on analogue amplitudes.
Emulate FIR filter, bunch-crossing identification & LUT, and create & fill TriggerTowers.
Definition at line 678 of file Run2TriggerTowerMaker.cxx.
684 return StatusCode::SUCCESS;
◆ preProcessTower()
StatusCode LVL1::Run2TriggerTowerMaker::preProcessTower |
( |
int |
bcid, |
|
|
float |
mu, |
|
|
xAOD::TriggerTower * |
tower |
|
) |
| |
|
private |
retrieve digits
process tower – digitial filter
dynamic pedestal correction
BCID algorithms (only possible if 7 slices readout)
In simulation external BCID is always zero, but for consistency with data we need to add it to the TriggerTower objects
Definition at line 687 of file Run2TriggerTowerMaker.cxx.
693 ATH_MSG_ERROR(
"Tower with coolId 0x"<<std::hex<<tower->
coolId()<<std::dec<<
" Not in database! Aborting ...");
694 return StatusCode::FAILURE;
698 int pedCorrectionStrategy(0);
712 std::vector<int> fir;
729 if (pedCorrectionStrategy == 1) {
745 if (pedCorrectionStrategy == 2) {
763 std::vector<int> lutIn;
767 std::vector<int> lutOut_cp;
790 std::vector<int> lutOut_jep;
813 std::vector<int> BCIDOut;
828 std::size_t peak = lutOut_jep.size()/2;
829 std::vector<uint_least8_t> etResultVectorCp {
uint8_t(lutOut_cp[peak]) };
832 std::vector<uint_least8_t> etResultVectorJep {
uint8_t(lutOut_jep[peak]) };
846 std::array<int, 3> bcidDecision {
852 std::array<int, 3> satOverride {
858 if((bcidDecision[
range]) & (0
x1 << (BCIDOut[BCIDOut.size()/2]))) {
859 if((satOverride[
range]) & 0
x1) {
861 etResultVectorCp[0] = SATURATIONVALUE;
862 etResultVectorJep[0] = SATURATIONVALUE;
866 etResultVectorCp[0] = 0;
867 etResultVectorJep[0] = 0;
873 tower->
setLut_cp(std::move(etResultVectorCp));
874 tower->
setLut_jep(std::move(etResultVectorJep));
897 return StatusCode::SUCCESS;
◆ preProcessTower_getLutIn()
PreProcess up to LUT in.
Definition at line 592 of file Run2TriggerTowerMaker.cxx.
597 std::vector<int> fir;
599 {
db->firCoeff5(),
db->firCoeff4(),
db->firCoeff3(),
db->firCoeff2(),
db->firCoeff1()},
603 int pedCorrectionStrategy =
db->lutCpStrategy();
607 if (pedCorrectionStrategy == 1) {
611 int firPed = (
db->firCoeff5() +
db->firCoeff4() +
db->firCoeff3() +
612 db->firCoeff2() +
db->firCoeff1()) *
int(
db->pedMean() + 0.5);
623 if (pedCorrectionStrategy == 2) {
639 return StatusCode::SUCCESS;
◆ processLArTowers()
extract amplitudes from TTL1
steps over Calo towers and creates/fills trigger towers
Definition at line 1023 of file Run2TriggerTowerMaker.cxx.
1027 ATH_MSG_VERBOSE(
"Looking at retrieved tower number "<<towerNumber++<<
" ***********");
1038 std::vector<float> tower_amps = tower->samples();
1051 amps[
i] = tower_amps[j];
1061 t->setCoolId(coolId.
id());
◆ processTileTowers()
Definition at line 1068 of file Run2TriggerTowerMaker.cxx.
1073 ATH_MSG_VERBOSE(
"Looking at retrieved tower number "<<towerNumber++<<
" ***********");
1086 unsigned Ieta =
unsigned(fabs(tower_eta)*10.0);
1088 ATH_MSG_WARNING(
"TileTTL1 with invalid index for m_sinThetaHash: Ieta = " << Ieta);
1094 std::vector<float> tower_amps = tower->fsamples();
1103 for(
int i = 0;
i < 7;
i++) {
1119 t->setCoolId(
channelId(tower_eta, tower_phi, 1).
id());
1120 t->setEta(tower_eta);
1121 t->setPhi(tower_phi);
◆ renounce()
◆ renounceArray()
◆ store()
StatusCode LVL1::Run2TriggerTowerMaker::store |
( |
| ) |
|
|
private |
Stores Trigger Towers in the TES, at a location defined in m_outputLocation.
Returns FAILURE if the towers could not be saved.
Returns FAILURE if the towers could not be saved.
Definition at line 905 of file Run2TriggerTowerMaker.cxx.
912 return tt->cpET() == 0 && tt->jepET() == 0;
928 return StatusCode::SUCCESS;
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_actMuKey
◆ m_adcStep
double LVL1::Run2TriggerTowerMaker::m_adcStep |
|
private |
◆ m_adcVar
double LVL1::Run2TriggerTowerMaker::m_adcVar |
|
private |
◆ m_bstowertool
◆ m_caloId
◆ m_cellType
int LVL1::Run2TriggerTowerMaker::m_cellType |
|
private |
◆ m_chanCalibContainer
◆ m_chanCalibContaineroverlay
◆ m_chanCalibKey
◆ m_chanCalibKeyoverlay
std::string LVL1::Run2TriggerTowerMaker::m_chanCalibKeyoverlay |
|
private |
◆ m_chanDefaults
◆ m_chanDefaultsKey
◆ m_chanDefaultsKeyoverlay
std::string LVL1::Run2TriggerTowerMaker::m_chanDefaultsKeyoverlay |
|
private |
◆ m_chanDefaultsoverlay
◆ m_cpLutScale
double LVL1::Run2TriggerTowerMaker::m_cpLutScale |
|
private |
◆ m_curIndex
std::size_t LVL1::Run2TriggerTowerMaker::m_curIndex = 0u |
|
private |
◆ m_deadChannelsContainer
◆ m_deadChannelsContaineroverlay
◆ m_deadChannelsKey
◆ m_deadChannelsKeyoverlay
std::string LVL1::Run2TriggerTowerMaker::m_deadChannelsKeyoverlay |
|
private |
◆ m_decorateFIR
bool LVL1::Run2TriggerTowerMaker::m_decorateFIR |
|
private |
◆ m_detStore
◆ m_digiEngine
std::string LVL1::Run2TriggerTowerMaker::m_digiEngine |
|
private |
◆ m_disabledTowersContainer
◆ m_disabledTowersContaineroverlay
◆ m_disabledTowersKey
◆ m_disabledTowersKeyoverlay
std::string LVL1::Run2TriggerTowerMaker::m_disabledTowersKeyoverlay |
|
private |
◆ m_doOverlay
bool LVL1::Run2TriggerTowerMaker::m_doOverlay |
|
private |
◆ m_EmTTL1ContainerName
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_gainCorr
double LVL1::Run2TriggerTowerMaker::m_gainCorr |
|
private |
◆ m_HadTTL1ContainerName
◆ m_inputTTLocation
◆ m_isDataReprocessing
bool LVL1::Run2TriggerTowerMaker::m_isDataReprocessing |
|
private |
◆ m_isReco
bool LVL1::Run2TriggerTowerMaker::m_isReco |
|
private |
◆ m_jepLutScale
double LVL1::Run2TriggerTowerMaker::m_jepLutScale |
|
private |
◆ m_L1MenuKey
◆ m_mappingTool
◆ m_maxIetaBins
constexpr static unsigned int LVL1::Run2TriggerTowerMaker::m_maxIetaBins = 51 |
|
staticconstexprprivate |
◆ m_outputLocation
◆ m_outputLocationRerun
◆ m_requireAllCalos
bool LVL1::Run2TriggerTowerMaker::m_requireAllCalos |
|
private |
◆ m_rndmADCs
◆ m_rngSvc
◆ m_sinThetaHash
std::array<double, m_maxIetaBins> LVL1::Run2TriggerTowerMaker::m_sinThetaHash |
|
private |
instead of calculating the expression: double theta =2.
*atan(exp(-fabs(cell_eta))); cell_energy=sin(theta)*cell_energy; for each em and had TT again, we will use a hash table
Definition at line 197 of file Run2TriggerTowerMaker.h.
◆ m_TileToMeV
double LVL1::Run2TriggerTowerMaker::m_TileToMeV |
|
private |
◆ m_TileTTL1ContainerName
◆ m_TileTTL1Ped
double LVL1::Run2TriggerTowerMaker::m_TileTTL1Ped |
|
private |
◆ m_TTtool
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_xaodevtKey
◆ m_xaodTowers
◆ m_xaodTowersAmps
std::vector<std::vector<double> > LVL1::Run2TriggerTowerMaker::m_xaodTowersAmps |
|
private |
◆ m_xaodTowersAux
◆ m_ZeroSuppress
bool LVL1::Run2TriggerTowerMaker::m_ZeroSuppress |
|
private |
◆ s_FIRLENGTH
constexpr static int LVL1::Run2TriggerTowerMaker::s_FIRLENGTH = 5 |
|
staticconstexprprivate |
◆ s_MEV
constexpr static int LVL1::Run2TriggerTowerMaker::s_MEV = 1000 |
|
staticconstexprprivate |
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
const std::vector< uint8_t > & correctionEnabled() const
get correctionEnabled
const L1CaloPpmDeadChannelsContainer * m_deadChannelsContainer
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
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.
SG::ReadHandleKey< LArTTL1Container > m_EmTTL1ContainerName
void processLArTowers(const LArTTL1Container *)
extract amplitudes from TTL1
std::string m_chanDefaultsKeyoverlay
unsigned short lutCpStrategy() const
unsigned short satBcidThreshLow() const
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
unsigned short lutCpSlope() const
const std::vector< uint8_t > & lut_cp() const
get lut_cp
virtual StatusCode addOverlay(int bcid, float mu)
Add overlay data.
int bcidDecision1() const
std::vector< int > ADC(CLHEP::HepRandomEngine *rndmADCs, L1CaloCoolChannelId channel, const std::vector< double > &s) const
Functions to simulate processing of tower signals.
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 normaliseDigits(const std::vector< int > &sigDigits, const std::vector< int > &ovDigits, std::vector< int > &normDigits)
normalise the number of ADC digits for overlay
unsigned int pedFirSum() const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
unsigned short lutJepNoiseCut() const
const std::vector< int16_t > & correction() const
get correction
void setBcidVec(const std::vector< uint8_t > &)
set bcidVec
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
#define ATH_MSG_VERBOSE(x)
std::vector< std::vector< double > > m_xaodTowersAmps
constexpr static int s_FIRLENGTH
SG::ReadHandleKey< TileTTL1Container > m_TileTTL1ContainerName
@ IS_SIMULATION
true: simulation, false: data
unsigned short bcidEnergyRangeLow() const
const std::vector< uint8_t > & bcidVec() const
get bcidVec
@ u
Enums for curvilinear frames.
int EtRange(int et, unsigned short bcidEnergyRangeLow, unsigned short bcidEnergyRangeHigh) const
int peakFinderCond() 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.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
ToolHandle< IL1TriggerTowerTool > m_TTtool
L1CaloCoolChannelId channelId(double eta, double phi, int layer)
Compute L1CaloCoolChannelId (including support for old geometries)
virtual void setOwner(IDataHandleHolder *o)=0
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
std::string m_disabledTowersKeyoverlay
unsigned short satBcidThreshHigh() const
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
unsigned short lutCpOffset() const
SG::ReadHandleKey< TrigConf::L1Menu > m_L1MenuKey
bool IsDisabledChannel(const L1CaloDisabledTowers *db) const
std::unique_ptr< xAOD::TriggerTowerAuxContainer > m_xaodTowersAux
constexpr static int s_MEV
L1CaloPprChanDefaults m_chanDefaults
void setPeak(uint8_t)
set peak
virtual StatusCode sysInitialize() override
Override sysInitialize.
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
Handle class for reading a decoration on an object.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
std::string m_deadChannelsKeyoverlay
SG::ReadHandleKey< xAOD::EventInfo > m_xaodevtKey
const L1CaloPpmDeadChannels * ppmDeadChannels(unsigned int channelId) const
unsigned short lutJepOffset() const
::StatusCode StatusCode
StatusCode definition for legacy code.
bool IsDeadChannel(const L1CaloPpmDeadChannels *db) const
Database helper functions for dead and disabled towers.
int layer() const
get layer ( 0 = EM, 1 = Had, 2 = FCAL23) - to be confirmed
Description of TriggerTower_v2.
unsigned short satBcidLevel() const
double TTL1Ped(const Identifier &) const
Returns the pedestal (in mV) for TTL1 adcs.
virtual double eta() const final
The pseudorapidity ( ) of the particle.
int bcidDecision3() const
uint32_t coolId() const
Tower identifiers.
#define CHECK(...)
Evaluate an expression and check for errors.
SG::ReadDecorHandleKey< xAOD::EventInfo > m_actMuKey
unsigned short lutCpScale() const
unsigned short lutJepSlope() const
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
AuxContainer for TriggerTower_v2.
Folder <-> Object mapping for /TRIGGER/L1Calo/V2/Calibration/Physics/PprChanCalib .
void setCorrection(const std::vector< int16_t > &)
set correction
double IDphi(const Identifier &id, const CaloLVL1_ID *caloId)
int etaToElement(float feta, int layer) const
unsigned short bcidEnergyRangeHigh() const
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
TriggerTowerContainer_v2 TriggerTowerContainer
Define the latest version of the TriggerTower container.
unsigned short lutCpNoiseCut() const
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
unsigned short firStartBit() const
unsigned short lutJepScale() const
std::unique_ptr< xAOD::TriggerTowerContainer > m_xaodTowers
ToolHandle< IL1CaloMappingTool > m_mappingTool
const CaloLVL1_ID * m_caloId
StatusCode initialize(bool used=true)
dictionary defaults
This includes now the top quark, the leptons and the bosons.
setEventNumber setTimeStamp bcid
void setLut_cp(const std::vector< uint8_t > &)
set lut_cp
static const std::string xAODTriggerTowerLocation
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
void setLut_jep(const std::vector< uint8_t > &)
set lut_jep
Class describing the basic event information.
void processTileTowers(const TileTTL1Container *)
L1CaloDisabledTowersContainer * m_disabledTowersContaineroverlay
const L1CaloPprChanCalib * pprChanCalib(unsigned int channelId) const
std::array< double, m_maxIetaBins > m_sinThetaHash
instead of calculating the expression: double theta =2.
DataObjIDColl m_extendedExtraObjects
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)
unsigned short lutJepStrategy() const
Data object for each calorimeter readout cell.
const L1CaloDisabledTowersContainer * m_disabledTowersContainer
StatusCode getCaloTowers()
fetch Calorimeter Towers
#define ATH_MSG_WARNING(x)
L1CaloPprChanCalibContainer * m_chanCalibContaineroverlay
void setCorrectionEnabled(const std::vector< uint8_t > &)
set correctionEnabled
SG::ReadCondHandleKey< L1CaloPpmDeadChannelsContainer > m_deadChannelsKey
SG::ReadCondHandleKey< L1CaloDisabledTowersContainer > m_disabledTowersKey
int sampling(const Identifier id) const
return sampling according to :
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
std::string m_chanCalibKeyoverlay
AthAlgorithm()
Default constructor:
const L1CaloPprChanCalibContainer * m_chanCalibContainer
int decisionSource() const
void setBcidExt(const std::vector< uint8_t > &)
set bcidExt
constexpr static unsigned int m_maxIetaBins
ToolHandle< LVL1BS::ITrigT1CaloDataAccessV2 > m_bstowertool
void digitize(const EventContext &ctx)
Convert analogue pulses to digits.
SG::ReadHandleKey< LArTTL1Container > m_HadTTL1ContainerName
bool is_tile(const Identifier id) const
Test wether given tower or layer is part of the Tile Calorimeter.
static const std::string xAODTriggerTowerRerunLocation
bool IsGoodTower(const xAOD::TriggerTower *tt, const L1CaloPpmDeadChannelsContainer *dead, const L1CaloDisabledTowersContainer *disabled) const
Liquid Argon TT L1 sum class.
L1CaloPpmDeadChannelsContainer * m_deadChannelsContaineroverlay
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
SG::ReadHandleKey< xAOD::TriggerTowerContainer > m_inputTTLocation
bool match(std::string s1, std::string s2)
match the individual directories of two strings
TriggerTower_v2 TriggerTower
Define the latest version of the TriggerTower class.
SG::ReadCondHandleKey< L1CaloPprChanDefaultsContainer > m_chanDefaultsKey
SG::WriteHandleKey< xAOD::TriggerTowerContainer > m_outputLocationRerun
const std::vector< uint16_t > & adc() const
get adc
int bcidDecision2() const
double TTL1Calib(const Identifier &) const
Returns the factor which converts amplitude in pCb to mV in TTL1.