 |
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, V, H > &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, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &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 1150 of file Run2TriggerTowerMaker.cxx.
1155 double ped = chanCalib->pedMean();
1158 double adcCal = (
m_gainCorr > 0.) ? CLHEP::RandGaussZiggurat::shoot(rndmADCs, 1.,
m_gainCorr) : 1.;
1160 std::vector<int> digits;
1165 double adcNoise = (
m_adcVar > 0.) ? CLHEP::RandGaussZiggurat::shoot(rndmADCs,0.,
m_adcVar) : 0.;
1170 digits.push_back(
digit);
◆ addOverlay() [1/2]
StatusCode LVL1::Run2TriggerTowerMaker::addOverlay |
( |
int |
bcid, |
|
|
float |
mu |
|
) |
| |
|
privatevirtual |
Add overlay data.
Definition at line 398 of file Run2TriggerTowerMaker.cxx.
403 overlayDataTTs->setStore( &overlayDataTTsAux );
407 std::unordered_map<uint32_t,xAOD::TriggerTower*> overlayMap;
411 char decor_ttNotUsedInOverlay = 0;
412 char decor_ttUsedInOverlay = 1;
414 for (
auto tt:*overlayDataTTs) {
417 decor(*
tt) = decor_ttNotUsedInOverlay;
418 overlayMap.insert( std::make_pair(
tt->coolId() ,
tt ) );
423 bool findSizeOfPrimaryLUT(
true);
424 unsigned int sizeOfPrimaryLUT(0);
431 if (findSizeOfPrimaryLUT) {
432 findSizeOfPrimaryLUT =
false;
433 sizeOfPrimaryLUT =
tt->lut_cp().size();
434 peakOfPrimary =
tt->peak();
438 Itr
match = overlayMap.find(
tt->coolId() );
439 if (
match != overlayMap.end()) {
444 decor(*
match->second) = decor_ttUsedInOverlay;
450 for (Itr
i=overlayMap.begin();
i!=overlayMap.end();++
i) {
452 if (decor(*
tt) == decor_ttNotUsedInOverlay) {
454 std::vector<uint8_t> overlay_lut_cp(sizeOfPrimaryLUT,0.);
455 std::vector<uint8_t> overlay_lut_jep(sizeOfPrimaryLUT,0.);
458 overlay_lut_cp.at(peakOfPrimary) =
tt->cpET();
459 overlay_lut_jep.at(peakOfPrimary) =
tt->jepET();
462 tt->setPeak( peakOfPrimary );
463 tt->setLut_cp( overlay_lut_cp );
464 tt->setLut_jep( overlay_lut_jep );
472 return StatusCode::SUCCESS;
◆ addOverlay() [2/2]
Add the overlay TriggerTower to the signal TriggerTower.
Definition at line 476 of file Run2TriggerTowerMaker.cxx.
483 ATH_MSG_ERROR(
"Cannot find signal DB for tower 0x"<<std::hex<<sigTT->
coolId()<<std::dec<<
" Aborting...");
484 return StatusCode::FAILURE;
488 ATH_MSG_ERROR(
"Cannot find overlay DB for tower 0x"<<std::hex<<ovTT->
coolId()<<std::dec<<
" Aborting...");
489 return StatusCode::FAILURE;
496 std::vector<int> normOverlayDigits;
500 std::vector<int> sigLutIn,ovLutIn;
505 std::vector<int> lutOut_cp,lutOut_jep;
511 std::size_t peak = lutOut_jep.size()/2;
512 std::vector<uint_least8_t> etResultVectorCp {
uint8_t(lutOut_cp[peak]) };
513 std::vector<uint_least8_t> etResultVectorJep {
uint8_t(lutOut_jep[peak]) };
515 sigTT->
setLut_cp(std::move(etResultVectorCp));
516 sigTT->
setLut_jep(std::move(etResultVectorJep));
518 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 563 of file Run2TriggerTowerMaker.cxx.
574 output.reserve(sigIN.size());
576 for (
unsigned int i=0;
i<sigIN.size();++
i) {
581 int outSig =
signal*sigSlope - sigOffset;
582 int outOv =
overlay*ovSlope - ovOffset;
583 int outTmp = outSig + outOv;
586 if (outTmp >= ovNoiseCut) {
587 out = (outSig + outOv + 2048)>>12;
◆ calcLutOutCP()
calculate LUT out
Definition at line 521 of file Run2TriggerTowerMaker.cxx.
524 ATH_MSG_ERROR(
"Cannot process calcLutOutCP as lutCpStrategy > 2");
525 return StatusCode::FAILURE;
529 double sigSlope = sigScale * sigDB->
lutCpSlope();
530 double sigOffset = sigScale * sigDB->
lutCpOffset();
533 double ovSlope = ovScale * ovDB->
lutCpSlope();
537 calcCombinedLUT(sigLutIn,sigSlope,sigOffset,ovLutIn,ovSlope,ovOffset,ovNoiseCut,output);
539 return StatusCode::SUCCESS;
◆ calcLutOutJEP()
Definition at line 542 of file Run2TriggerTowerMaker.cxx.
545 ATH_MSG_ERROR(
"Cannot process calcLutOutJEP as lutJepStrategy > 2");
546 return StatusCode::FAILURE;
558 calcCombinedLUT(sigLutIn,sigSlope,sigOffset,ovLutIn,ovSlope,ovOffset,ovNoiseCut,output);
560 return StatusCode::SUCCESS;
◆ 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 1136 of file Run2TriggerTowerMaker.cxx.
1146 tower->setAdcPeak(digits.size()/2);
◆ etaToElement()
int LVL1::Run2TriggerTowerMaker::etaToElement |
( |
float |
feta, |
|
|
int |
layer |
|
) |
| const |
|
private |
Get integer eta bin
Definition at line 1228 of file Run2TriggerTowerMaker.cxx.
1230 constexpr
static int NELEMENTS = 33;
1232 float shiftedEta = feta + 4.9;
1234 if(fabs(shiftedEta*10.0 - (
uint)(eta+1)) < 0.01)
eta++;
1235 if(fabs(shiftedEta) < 0.01)
eta = 0;
1237 constexpr
int nBins = 16;
1238 constexpr
uint map[
nBins] = {2,6,10,14,17,19,21,23,75,77,79,80,83,87,91,95};
1240 if(eta > 23 && eta < 74) {
1245 if(
i < 8) element =
i;
1246 else element =
i + 50;
1251 if (
layer == 1 && (element == 0 || element == 64)) element = 1;
1252 else if (
layer == 1 && (element == 1 || element == 65)) element = 0;
1253 else if (
layer == 1 && (element == 2 || element == 62)) element = 3;
1254 else if (
layer == 1 && (element == 3 || element == 63)) element = 2;
1255 else if (element > 32) element = 65-element;
1258 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 309 of file Run2TriggerTowerMaker.cxx.
317 CHECK(pprCalibCont.isValid());
320 CHECK(pprDisabledTowers.isValid());
323 CHECK(pprDeadTowers.isValid());
326 CHECK(pprChanDefaults.isValid());
327 auto*
defaults = pprChanDefaults->pprChanDefaults(0);
329 ATH_MSG_ERROR(
"Could not retrieve channel 0 PprChanDefaults folder. Aborting ...");
330 throw std::runtime_error(
"Run2TriggerTowerMaker: channel 0 of PprChanDefaults not accesible");
334 const EventContext& ctx = Gaudi::Hive::currentContext();
354 ATH_MSG_ERROR(
"Unsupported Cell Type!!!!!!");
return StatusCode::FAILURE;
361 const float mu = muDecor(0);
372 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 967 of file Run2TriggerTowerMaker.cxx.
972 if(!EMTowers.isValid()){
974 sc1 = StatusCode::FAILURE;
979 if(!HECTowers.isValid()){
981 sc2 = StatusCode::FAILURE;
987 if(!TileTowers.isValid()){
989 sc3 = StatusCode::FAILURE;
993 (sc2==StatusCode::FAILURE) ||
994 (sc3==StatusCode::FAILURE))) {
996 <<
"Found Em LArTTL1 : "<<sc1 <<
endmsg
997 <<
"Found Had LArTTL1 : "<<sc2 <<
endmsg
998 <<
"Found TileTTL1 : "<<sc3<<
endmsg
1000 return StatusCode::FAILURE;
1004 if(sc1 == StatusCode::SUCCESS) {
1007 if(sc2 == StatusCode::SUCCESS) {
1010 if(sc3 == StatusCode::SUCCESS) {
1022 [
this](
const xAOD::TriggerTower*
tt){return !IsGoodTower(tt,m_deadChannelsContainer,m_disabledTowersContainer);}),
1025 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 940 of file Run2TriggerTowerMaker.cxx.
945 ATH_MSG_INFO(
"Found " << inputTTs->size() <<
" input TriggerTowers");
960 [
this](
const xAOD::TriggerTower*
tt){return !IsGoodTower(tt,m_deadChannelsContainer,m_disabledTowersContainer);}),
963 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;
223 }
catch(
const std::out_of_range&) {
224 ATH_MSG_DEBUG(
"No Legacy triggers in menu, using default scales");
240 throw std::runtime_error(
"Overlay no longer supported in Run2TriggerTowerMaker");
280 ATH_MSG_WARNING(
"Could not determine if input file is data or simulation. Will assume simulation.");
286 ATH_MSG_INFO(
"Detected data reprocessing. Will take pedestal correction values from input trigger towers.");
295 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 1182 of file Run2TriggerTowerMaker.cxx.
1184 int region = l1id->region(
id);
1185 int ieta = l1id->eta(
id);
1186 int sign = l1id->pos_neg_z(
id);
1188 double gran[4] = {0.1, 0.2, 0.1, 0.425};
1189 double offset[4] = {0., 2.5, 3.1, 3.2};
1192 if(region>=0 && region<=3) {
◆ IDphi()
Definition at line 1203 of file Run2TriggerTowerMaker.cxx.
1207 double phiMax = l1id->phi_max(regId);
1208 int iphi = l1id->phi(
id);
1209 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 376 of file Run2TriggerTowerMaker.cxx.
378 if (!
db)
return false;
379 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 1267 of file Run2TriggerTowerMaker.cxx.
1271 double nll_slope = 0.001 *
scale;
1272 double nll_offset = 0.001 * par1;
1273 double nll_ampl = 0.001 * par2;
1274 double nll_expo = 0.;
1276 nll_expo = -1. / (4096 * 0.001*par3);
1280 double nll_noise = 0.001 * par4;
1283 if (lutin * slope <
offset + nll_noise * noiseCut) {
1288 int output =
int((((
int)(2048 + nll_slope * (lutin * slope -
offset)))>>12) + nll_offset + nll_ampl *
std::exp(nll_expo * (lutin * slope -
offset)));
1289 if(output >= 255)
return 255;
1290 if(output < 0)
return 0;
◆ 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 648 of file Run2TriggerTowerMaker.cxx.
657 if (sigDigits.size() == ovDigits.size()) {
658 for (
auto x:ovDigits) normDigits.push_back(
x );
662 if (sigDigits.size() > ovDigits.size()) {
663 unsigned int pad = (sigDigits.size() - ovDigits.size()) / 2;
664 for (
unsigned int x=0;
x<pad;++
x) normDigits.push_back( 32 );
665 for (
auto x:ovDigits) normDigits.push_back(
x );
666 for (
unsigned int x=0;
x<pad;++
x) normDigits.push_back( 32 );
671 if (sigDigits.size() < ovDigits.size()) {
672 unsigned int offset = (ovDigits.size() - sigDigits.size()) / 2;
673 for (
unsigned int x=0;
x<sigDigits.size();++
x) {
675 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 684 of file Run2TriggerTowerMaker.cxx.
690 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 693 of file Run2TriggerTowerMaker.cxx.
699 ATH_MSG_ERROR(
"Tower with coolId 0x"<<std::hex<<tower->
coolId()<<std::dec<<
" Not in database! Aborting ...");
700 return StatusCode::FAILURE;
704 int pedCorrectionStrategy(0);
718 std::vector<int> fir;
735 if (pedCorrectionStrategy == 1) {
751 if (pedCorrectionStrategy == 2) {
769 std::vector<int> lutIn;
773 std::vector<int> lutOut_cp;
796 std::vector<int> lutOut_jep;
819 std::vector<int> BCIDOut;
834 std::size_t peak = lutOut_jep.size()/2;
835 std::vector<uint_least8_t> etResultVectorCp {
uint8_t(lutOut_cp[peak]) };
838 std::vector<uint_least8_t> etResultVectorJep {
uint8_t(lutOut_jep[peak]) };
852 std::array<int, 3> bcidDecision {
858 std::array<int, 3> satOverride {
864 if((bcidDecision[
range]) & (0
x1 << (BCIDOut[BCIDOut.size()/2]))) {
865 if((satOverride[
range]) & 0
x1) {
867 etResultVectorCp[0] = SATURATIONVALUE;
868 etResultVectorJep[0] = SATURATIONVALUE;
872 etResultVectorCp[0] = 0;
873 etResultVectorJep[0] = 0;
879 tower->
setLut_cp(std::move(etResultVectorCp));
880 tower->
setLut_jep(std::move(etResultVectorJep));
903 return StatusCode::SUCCESS;
◆ preProcessTower_getLutIn()
PreProcess up to LUT in.
Definition at line 598 of file Run2TriggerTowerMaker.cxx.
603 std::vector<int> fir;
605 {
db->firCoeff5(),
db->firCoeff4(),
db->firCoeff3(),
db->firCoeff2(),
db->firCoeff1()},
609 int pedCorrectionStrategy =
db->lutCpStrategy();
613 if (pedCorrectionStrategy == 1) {
617 int firPed = (
db->firCoeff5() +
db->firCoeff4() +
db->firCoeff3() +
618 db->firCoeff2() +
db->firCoeff1()) *
int(
db->pedMean() + 0.5);
629 if (pedCorrectionStrategy == 2) {
645 return StatusCode::SUCCESS;
◆ processLArTowers()
extract amplitudes from TTL1
steps over Calo towers and creates/fills trigger towers
Definition at line 1029 of file Run2TriggerTowerMaker.cxx.
1033 ATH_MSG_VERBOSE(
"Looking at retrieved tower number "<<towerNumber++<<
" ***********");
1044 std::vector<float> tower_amps = tower->samples();
1057 amps[
i] = tower_amps[j];
1067 t->setCoolId(coolId.
id());
◆ processTileTowers()
Definition at line 1074 of file Run2TriggerTowerMaker.cxx.
1079 ATH_MSG_VERBOSE(
"Looking at retrieved tower number "<<towerNumber++<<
" ***********");
1092 unsigned Ieta =
unsigned(fabs(tower_eta)*10.0);
1094 ATH_MSG_WARNING(
"TileTTL1 with invalid index for m_sinThetaHash: Ieta = " << Ieta);
1100 std::vector<float> tower_amps = tower->fsamples();
1109 for(
int i = 0;
i < 7;
i++) {
1125 t->setCoolId(
channelId(tower_eta, tower_phi, 1).
id());
1126 t->setEta(tower_eta);
1127 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 911 of file Run2TriggerTowerMaker.cxx.
918 return tt->cpET() == 0 && tt->jepET() == 0;
934 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
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
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
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.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
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
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.