 |
ATLAS Offline Software
|
#include <jFexEmulatedTowers.h>
|
| | jFexEmulatedTowers (const std::string &name, ISvcLocator *svc) |
| |
| virtual StatusCode | initialize () override |
| | Function initialising the algorithm. More...
|
| |
| virtual StatusCode | execute (const EventContext &) const override |
| | Function executing the algorithm. More...
|
| |
| virtual StatusCode | sysInitialize () override |
| | Override sysInitialize. More...
|
| |
| virtual bool | isClonable () const override |
| | Specify if the algorithm is clonable. More...
|
| |
| virtual unsigned int | cardinality () const override |
| | Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
| |
| virtual StatusCode | sysExecute (const EventContext &ctx) override |
| | Execute an algorithm. More...
|
| |
| virtual const DataObjIDColl & | extraOutputDeps () const override |
| | Return the list of extra output dependencies. More...
|
| |
| virtual bool | filterPassed (const EventContext &ctx) const |
| |
| virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
| |
| 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 |
| |
|
| StatusCode | ReadFibersfromFile (const std::string &) |
| |
| StatusCode | ReadSCfromFile (const std::string &) |
| |
| StatusCode | ReadTilefromFile (const std::string &) |
| |
| bool | isBadSCellID (const std::string &) const |
| |
| 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...
|
| |
|
| constexpr static unsigned int | mapIndex (unsigned int jfex, unsigned int fpga, unsigned int channel, unsigned int tower) |
| |
|
| SG::ReadHandleKey< CaloCellContainer > | m_SCellKey {this, "SCell", "SCell", "SCell container"} |
| |
| SG::ReadHandleKey< xAOD::TriggerTowerContainer > | m_triggerTowerKey {this, "xODTriggerTowers", "xAODTriggerTowers", "xAODTriggerTowers container"} |
| |
| SG::WriteHandleKey< xAOD::jFexTowerContainer > | m_jTowersWriteKey {this,"jTowersWriteKey" ,"L1_jFexEmulatedTowers", "Write jFexEDM Trigger Tower container"} |
| |
| Gaudi::Property< std::string > | m_FiberMapping {this, "jFexTowerMapping", PathResolver::find_calib_file("L1CaloFEXByteStream/2023-08-01/jFexTowerMap.txt"), "Text file to convert from hardware fiber to eta-phi location"} |
| |
| Gaudi::Property< bool > | m_apply_masking {this, "SCellMasking", true, "Applies masking. Only use for data"} |
| |
| Gaudi::Property< bool > | m_isDATA {this, "isDATA" , true, "Tells the algorithm if it is data. Used for xAOD::TriggerTower WARNING due to the 0 supresion"} |
| |
| Gaudi::Property< bool > | m_doThinning {this, "DoThinning" , true, "Remove overlapped towers. Only FPGA Core region is saved"} |
| |
| Gaudi::Property< std::string > | m_jFEX2Scellmapping {this, "jFEX2SCmapping" , PathResolver::find_calib_file("L1CaloFEXByteStream/2022-10-19/jfex_SCID.txt") , "Text file to convert from simulation ID to SuperCell Identifier"} |
| |
| Gaudi::Property< std::string > | m_jFEX2Tilemapping {this, "jFEX2Tilemapping", PathResolver::find_calib_file("L1CaloFEXByteStream/2022-10-19/jfex_TileID.txt"), "Text file to convert from simulation ID to Tile Identifier"} |
| |
| std::unordered_map< uint32_t, std::vector< uint64_t > > | m_map_TTower2SCellsEM |
| |
| std::unordered_map< uint32_t, std::vector< uint64_t > > | m_map_TTower2SCellsHAD |
| |
| std::unordered_map< uint32_t, std::tuple< uint32_t, float, float > > | m_map_TTower2Tile |
| |
| std::unordered_map< unsigned int, std::array< float, 6 > > | m_Firm2Tower_map |
| |
| SG::ReadHandleKey< CaloCellContainer > | m_CaloCellKey {this, "CaloCell", "", "Calo Cell container, supply AllCalo to activate"} |
| | {map index, {IDsimulation,eta,phi,source,iEta,iPhi}} More...
|
| |
| ToolHandle< ICaloSuperCellIDTool > | m_scellIdTool {this, "CaloSuperCellIDTool", "", "Offline / SuperCell ID mapping tool"} |
| |
| const CaloCell_ID * | m_caloCellIdHelper {} |
| |
| SG::ReadDecorHandleKey< xAOD::TriggerTowerContainer > | m_readTileOfflineDecorKey { this, "TileOfflineETKey", m_triggerTowerKey, "", "decoration of offline energy from Tile Towers" } |
| |
| SG::WriteDecorHandleKey< xAOD::jFexTowerContainer > | m_caloCellSumETdecorKey {this, "CaloCellSumEtdecorKey", m_jTowersWriteKey, "", "Offline Calo Cell Et information of the jTower in MeV"} |
| |
| SG::WriteDecorHandleKey< xAOD::jFexTowerContainer > | m_jtowerEtMeVdecorKey { this, "jtowerEtMeVdecorKey", m_jTowersWriteKey, "jtowerEtMeV", "jFex Tower Et in MeV"} |
| |
| SG::WriteDecorHandleKey< xAOD::jFexTowerContainer > | m_jtowerEtTimingMeVdecorKey { this, "jtowerEtTimingMeVdecorKey", m_jTowersWriteKey, "jtowerEtTimingMeV", "jFex Tower Et, after timing cut, in MeV"} |
| |
| DataObjIDColl | m_extendedExtraObjects |
| | Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
| |
| 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 37 of file jFexEmulatedTowers.h.
◆ StoreGateSvc_t
◆ jFexEmulatedTowers()
| LVL1::jFexEmulatedTowers::jFexEmulatedTowers |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
svc |
|
) |
| |
◆ cardinality()
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.
◆ 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);
◆ 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.
◆ 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.
◆ 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()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
| StatusCode LVL1::jFexEmulatedTowers::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
Function executing the algorithm.
Definition at line 76 of file jFexEmulatedTowers.cxx.
80 if(!ScellContainer.isValid()) {
81 ATH_MSG_ERROR(
"Could not retrieve collection " << ScellContainer.key() );
82 return StatusCode::FAILURE;
87 if(!triggerTowerContainer.isValid()) {
88 ATH_MSG_ERROR(
"Could not retrieve collection " << triggerTowerContainer.key() );
89 return StatusCode::FAILURE;
96 if(!caloCellContainer.isValid()) {
97 ATH_MSG_ERROR(
"Could not retrieve collection " << caloCellContainer.key() );
98 return StatusCode::FAILURE;
100 caloCells = caloCellContainer.cptr();
106 ATH_CHECK(jTowersContainer.record(std::make_unique<xAOD::jFexTowerContainer>(), std::make_unique<xAOD::jFexTowerAuxContainer>()));
107 ATH_MSG_DEBUG(
"Recorded jFexEmulatedTower container with key " << jTowersContainer.key());
109 if(ScellContainer->empty() || triggerTowerContainer->empty() ){
110 ATH_MSG_WARNING(
"Cannot fill jTowers here, at least one container is empty. ScellContainer.size="<<ScellContainer->size() <<
" or triggerTowerContainer.size=" << triggerTowerContainer->size() );
111 return StatusCode::SUCCESS;
115 std::unordered_map< uint64_t, const CaloCell*> map_ScellID2ptr;
117 for(
const CaloCell* scell : *ScellContainer){
118 const uint64_t ID = scell->ID().get_compact();
119 map_ScellID2ptr[
ID] = scell;
123 std::unordered_map< uint32_t, const xAOD::TriggerTower*> map_TileID2ptr;
128 if(std::abs(tower->eta())>1.5 || tower->sampling()!=1)
continue;
130 map_TileID2ptr[tower->coolId()]=tower;
136 unsigned int jfex = (
key >> 16) & 0xf;
137 unsigned int fpga = (
key >> 12) & 0xf;
139 unsigned int tower = (
key >> 0 ) & 0xf;
141 const auto [f_IDSimulation,
eta,
phi, f_source, f_iEta, f_iPhi] = element;
144 unsigned int IDSimulation =
static_cast<int>(f_IDSimulation);
145 unsigned int source =
static_cast<int>(f_source);
146 unsigned int iEta =
static_cast<int>(f_iEta);
147 unsigned int iPhi =
static_cast<int>(f_iPhi);
151 uint16_t Total_Et_Timing_encoded = 0;
154 float caloCellSumET(0);
155 int Total_Et_decoded(0);
156 int Total_Et_Timing_decoded(0);
159 const std::unordered_map< uint32_t, std::vector<uint64_t> > * ptr_TTower2Cells;
170 auto it_TTower2SCells = (*ptr_TTower2Cells).find(IDSimulation);
171 if(it_TTower2SCells == (*ptr_TTower2Cells).end()) {
172 ATH_MSG_ERROR(
"jFEX ID: "<<IDSimulation<<
" not found on map m_map_TTower2SCellsEM/HAD");
173 return StatusCode::FAILURE;
177 int Total_Timing_Et = 0;
178 float Total_Et_float = 0;
181 for (
auto const& SCellID : it_TTower2SCells->second ) {
183 auto it_ScellID2ptr = map_ScellID2ptr.find(SCellID);
184 if(it_ScellID2ptr == map_ScellID2ptr.end()) {
185 if(
m_isDATA)
ATH_MSG_DEBUG(
"Scell ID: 0x"<<std::hex<< (SCellID >> 32) <<std::dec<<
" not found in the CaloCell Container, skipping");
190 const CaloCell* myCell = it_ScellID2ptr->second;
192 bool isMasked =
m_apply_masking ? ((myCell)->provenance()&0x80) :
false;
195 bool passTiming = ( (myCell)->provenance() & 0x200 );
197 invalid &= isInvalid;
200 jTower_sat |= isSaturated;
207 }
else if( isInvalid ) {
212 if(
val!=0) Total_Et_float += myCell->
et();
215 Total_Timing_Et += (passTiming) ?
val : 0;
219 const std::vector<Identifier> caloCellIds =
m_scellIdTool->superCellToOfflineID(myCell->
ID());
220 float caloCellEt(0.);
222 for(
auto& caloCellId : caloCellIds) {
225 caloCellEt += caloCell->
e()*caloCell->
sinTh();
227 caloCellSumET += caloCellEt;
234 Total_Et_encoded = 0;
235 Total_Et_Timing_encoded = 0;
237 Total_Et_encoded = 4095;
238 Total_Et_Timing_encoded = 4095;
257 ATH_MSG_ERROR(
"ID: "<<IDSimulation<<
" not found on map m_map_TTower2Tile");
258 return StatusCode::FAILURE;
264 auto it_TileID2ptr = map_TileID2ptr.find(
TileID);
265 if(it_TileID2ptr == map_TileID2ptr.end()) {
270 Total_Et_encoded = (it_TileID2ptr->second)->cpET();
273 Total_Et_decoded = Total_Et_encoded * 500;
274 Total_Et_Timing_decoded = Total_Et_encoded * 500;
279 if ( cellEtByLayer_handle.isAvailable() ) {
280 std::vector<float> cellEtByLayer = cellEtByLayer_handle(*it_TileID2ptr->second);
282 caloCellSumET = 1000.0 *
std::accumulate(cellEtByLayer.begin(), cellEtByLayer.end(), 0.0);
287 std::vector<uint16_t> vtower_ET;
289 vtower_ET.push_back(Total_Et_encoded);
291 std::vector<char> vtower_SAT;
295 vtower_SAT.push_back(jTower_sat);
297 jTowersContainer->push_back( std::make_unique<xAOD::jFexTower>() );
298 jTowersContainer->back()->initialize(
eta,
phi,
iEta,
iPhi, IDSimulation,
source, vtower_ET, jfex, fpga,
channel, tower, vtower_SAT );
300 if(
m_doThinning && !jTowersContainer->back()->isCore() ){
301 jTowersContainer->pop_back();
306 (jTowerCaloCellSumEt) (*jTowersContainer->back()) = caloCellSumET;
311 (jTowerEtMeV) (*jTowersContainer->back()) = Total_Et_decoded;
315 (jTowerEtTimingMeV) (*jTowersContainer->back()) = Total_Et_Timing_decoded;
321 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()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ filterPassed()
◆ initialize()
| StatusCode LVL1::jFexEmulatedTowers::initialize |
( |
| ) |
|
|
overridevirtual |
Function initialising the algorithm.
Definition at line 33 of file jFexEmulatedTowers.cxx.
35 ATH_MSG_INFO(
"Initializing L1CaloFEXAlgos/jFexEmulatedTowers algorithm with name: "<<
name());
73 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.
◆ isBadSCellID()
| bool LVL1::jFexEmulatedTowers::isBadSCellID |
( |
const std::string & |
ID | ) |
const |
|
private |
◆ isClonable()
◆ mapIndex()
| constexpr unsigned int LVL1::jFexEmulatedTowers::mapIndex |
( |
unsigned int |
jfex, |
|
|
unsigned int |
fpga, |
|
|
unsigned int |
channel, |
|
|
unsigned int |
tower |
|
) |
| |
|
staticconstexprprivate |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ 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.
◆ ReadFibersfromFile()
| StatusCode LVL1::jFexEmulatedTowers::ReadFibersfromFile |
( |
const std::string & |
fileName | ) |
|
|
private |
Definition at line 325 of file jFexEmulatedTowers.cxx.
332 if ( !
file.is_open() ){
334 return StatusCode::FAILURE;
339 while ( std::getline (
file,
line) ) {
342 if(
line[0] ==
'#')
continue;
345 std::stringstream oneLine(
line);
348 std::vector<float> elements;
350 while(std::getline(oneLine, element,
' '))
352 elements.push_back(std::stof(element));
357 if(elements.size() != 10){
359 return StatusCode::FAILURE;
362 std::array<float,6> aux_arr{ {elements.at(7),elements.at(8),elements.at(9),elements.at(4),elements.at(5),elements.at(6)} };
370 return StatusCode::SUCCESS;
◆ ReadSCfromFile()
| StatusCode LVL1::jFexEmulatedTowers::ReadSCfromFile |
( |
const std::string & |
fileName | ) |
|
|
private |
Definition at line 379 of file jFexEmulatedTowers.cxx.
386 if ( !
file.is_open() ){
388 return StatusCode::FAILURE;
393 while ( std::getline (
file,
line) ) {
394 std::vector<uint64_t> SCellvectorEM;
395 SCellvectorEM.clear();
396 std::vector<uint64_t> SCellvectorHAD;
397 SCellvectorHAD.clear();
400 if(
line[0] ==
'#')
continue;
403 std::stringstream oneSCellID(
line);
406 std::string substr =
"";
410 while(std::getline(oneSCellID, substr,
' '))
414 TTID = std::stoi(substr);
419 return StatusCode::FAILURE;
423 uint64_t scid_uint64 = std::strtoull(substr.c_str(),
nullptr, 0);
426 if(scid_uint64 == 0xffffffffffffffff)
continue;
429 if(
elem<14) SCellvectorEM.push_back(scid_uint64);
430 else SCellvectorHAD.push_back(scid_uint64);
440 return StatusCode::SUCCESS;
◆ ReadTilefromFile()
| StatusCode LVL1::jFexEmulatedTowers::ReadTilefromFile |
( |
const std::string & |
fileName | ) |
|
|
private |
Definition at line 456 of file jFexEmulatedTowers.cxx.
461 if ( !
file.is_open() ){
463 return StatusCode::FAILURE;
468 while ( std::getline (
file,
line) ) {
471 if(
line[0] ==
'#')
continue;
474 std::stringstream oneLine(
line);
476 std::vector<std::string> elements;
477 std::string element =
"";
479 while(std::getline(oneLine, element,
' ')){
480 elements.push_back(element);
483 if(elements.size() != 4){
484 ATH_MSG_ERROR(
"Invalid number of element in " <<
line <<
". Expecting 4 elements {jFexID, TileID, eta, phi}");
485 return StatusCode::FAILURE;
488 uint32_t jFexID = std::stoi( elements.at(0) );
490 float eta = std::stof( elements.at(2) );
491 float phi = std::stof( elements.at(3) );
498 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
◆ sysExecute()
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ 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_apply_masking
| Gaudi::Property<bool> LVL1::jFexEmulatedTowers::m_apply_masking {this, "SCellMasking", true, "Applies masking. Only use for data"} |
|
private |
◆ m_caloCellIdHelper
◆ m_CaloCellKey
◆ m_caloCellSumETdecorKey
◆ m_detStore
◆ m_doThinning
| Gaudi::Property<bool> LVL1::jFexEmulatedTowers::m_doThinning {this, "DoThinning" , true, "Remove overlapped towers. Only FPGA Core region is saved"} |
|
private |
◆ m_evtStore
◆ m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_FiberMapping
| Gaudi::Property<std::string> LVL1::jFexEmulatedTowers::m_FiberMapping {this, "jFexTowerMapping", PathResolver::find_calib_file("L1CaloFEXByteStream/2023-08-01/jFexTowerMap.txt"), "Text file to convert from hardware fiber to eta-phi location"} |
|
private |
◆ m_Firm2Tower_map
| std::unordered_map<unsigned int, std::array<float,6> > LVL1::jFexEmulatedTowers::m_Firm2Tower_map |
|
private |
◆ m_isDATA
| Gaudi::Property<bool> LVL1::jFexEmulatedTowers::m_isDATA {this, "isDATA" , true, "Tells the algorithm if it is data. Used for xAOD::TriggerTower WARNING due to the 0 supresion"} |
|
private |
◆ m_jFEX2Scellmapping
| Gaudi::Property<std::string> LVL1::jFexEmulatedTowers::m_jFEX2Scellmapping {this, "jFEX2SCmapping" , PathResolver::find_calib_file("L1CaloFEXByteStream/2022-10-19/jfex_SCID.txt") , "Text file to convert from simulation ID to SuperCell Identifier"} |
|
private |
◆ m_jFEX2Tilemapping
| Gaudi::Property<std::string> LVL1::jFexEmulatedTowers::m_jFEX2Tilemapping {this, "jFEX2Tilemapping", PathResolver::find_calib_file("L1CaloFEXByteStream/2022-10-19/jfex_TileID.txt"), "Text file to convert from simulation ID to Tile Identifier"} |
|
private |
◆ m_jtowerEtMeVdecorKey
◆ m_jtowerEtTimingMeVdecorKey
◆ m_jTowersWriteKey
◆ m_map_TTower2SCellsEM
| std::unordered_map< uint32_t, std::vector<uint64_t> > LVL1::jFexEmulatedTowers::m_map_TTower2SCellsEM |
|
private |
◆ m_map_TTower2SCellsHAD
| std::unordered_map< uint32_t, std::vector<uint64_t> > LVL1::jFexEmulatedTowers::m_map_TTower2SCellsHAD |
|
private |
◆ m_map_TTower2Tile
| std::unordered_map< uint32_t, std::tuple<uint32_t,float,float> > LVL1::jFexEmulatedTowers::m_map_TTower2Tile |
|
private |
◆ m_readTileOfflineDecorKey
◆ m_scellIdTool
| ToolHandle<ICaloSuperCellIDTool> LVL1::jFexEmulatedTowers::m_scellIdTool {this, "CaloSuperCellIDTool", "", "Offline / SuperCell ID mapping tool"} |
|
private |
◆ m_SCellKey
◆ m_triggerTowerKey
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
SG::ReadDecorHandleKey< xAOD::TriggerTowerContainer > m_readTileOfflineDecorKey
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
Scalar phi() const
phi method
std::vector< Identifier > ID
Scalar eta() const
pseudorapidity method
accumulate
Update flags based on parser line args.
float round(const float toRound, const unsigned int decimals)
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)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
virtual double e() const override final
get energy (data member) (synonym to method energy()
Gaudi::Property< std::string > m_jFEX2Scellmapping
StatusCode ReadTilefromFile(const std::string &)
bool empty() const
Test if the key is blank.
bool isBadSCellID(const std::string &) const
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
double energy() const
get energy (data member)
An algorithm that can be simultaneously executed in multiple threads.
static int Expand(unsigned int code)
Uncompress data.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
ToolHandle< ICaloSuperCellIDTool > m_scellIdTool
Handle class for reading a decoration on an object.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Helper class for TileCal offline identifiers.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
static unsigned int Compress(float floatEt, bool empty=false)
Compress data.
Handle class for adding a decoration to an object.
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
const CaloCell_ID * m_caloCellIdHelper
Description of TriggerTower_v2.
virtual double et() const override final
get et
std::unordered_map< unsigned int, std::array< float, 6 > > m_Firm2Tower_map
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.
AthROOTErrorHandlerSvc * svc
SG::ReadHandleKey< CaloCellContainer > m_CaloCellKey
{map index, {IDsimulation,eta,phi,source,iEta,iPhi}}
uint16_t quality() const
get quality (data member)
SG::WriteHandleKey< xAOD::jFexTowerContainer > m_jTowersWriteKey
virtual void renounce()=0
const CaloCell * findCell(const IdentifierHash theHash) const
fast find method given identifier hash.
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
std::unordered_map< uint32_t, std::vector< uint64_t > > m_map_TTower2SCellsHAD
std::unordered_map< uint32_t, std::vector< uint64_t > > m_map_TTower2SCellsEM
Identifier ID() const
get ID (from cached data member) non-virtual and inline for fast access
SG::ReadHandleKey< xAOD::TriggerTowerContainer > m_triggerTowerKey
Container class for CaloCell.
SG::ReadHandleKey< CaloCellContainer > m_SCellKey
Gaudi::Property< std::string > m_jFEX2Tilemapping
Data object for each calorimeter readout cell.
#define ATH_MSG_WARNING(x)
StatusCode ReadSCfromFile(const std::string &)
Gaudi::Property< bool > m_apply_masking
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual StatusCode sysInitialize() override
Override sysInitialize.
Gaudi::Property< bool > m_isDATA
StatusCode ReadFibersfromFile(const std::string &)
SG::WriteDecorHandleKey< xAOD::jFexTowerContainer > m_jtowerEtMeVdecorKey
std::unordered_map< uint32_t, std::tuple< uint32_t, float, float > > m_map_TTower2Tile
Gaudi::Property< std::string > m_FiberMapping
SG::WriteDecorHandleKey< xAOD::jFexTowerContainer > m_caloCellSumETdecorKey
SG::WriteDecorHandleKey< xAOD::jFexTowerContainer > m_jtowerEtTimingMeVdecorKey
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
setScale setgFexType iEta
Gaudi::Property< bool > m_doThinning
virtual double sinTh() const override final
get sin(theta) (through CaloDetDescrElement)
virtual double eta() const override final
get eta (through CaloDetDescrElement)
constexpr static unsigned int mapIndex(unsigned int jfex, unsigned int fpga, unsigned int channel, unsigned int tower)