![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <LVL1TGCTrigger.h>
|
| LVL1TGCTrigger (const std::string &name, ISvcLocator *pSvcLocator) |
| standard constructor and destructor for algorithms More...
|
|
virtual | ~LVL1TGCTrigger () |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | start () override |
|
virtual StatusCode | execute () override |
|
virtual StatusCode | finalize () override |
|
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 |
|
|
StatusCode | processOneBunch (const TgcDigitContainer *, LVL1MUONIF::Lvl1MuCTPIInputPhase1 *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &) |
|
void | doMaskOperation (const TgcDigitContainer *, std::map< Identifier, int > &) |
|
void | fillTGCEvent (const std::map< Identifier, int > &, TGCEvent &) |
|
void | recordRdoSLB (TGCSector *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &) |
|
void | recordRdoHPT (TGCSector *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &) |
|
void | recordRdoInner (TGCSector *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &) |
|
void | recordRdoSL (TGCSector *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &) |
|
StatusCode | getMaskedChannel () |
|
int | getCharge (int dR, int Zdir) |
|
void | extractFromString (const std::string &, std::vector< int > &) |
|
bool | addRawData (std::unique_ptr< TgcRawData > rawdata, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &tgcrdo) |
|
int | getLPTTypeInRawData (int type) |
|
void | FillSectorLogicData (LVL1MUONIF::Lvl1MuSectorLogicDataPhase1 *sldata, const TGCTrackSelectorOut *trackSelectorOut) |
|
StatusCode | getCabling () |
|
TGCArguments * | tgcArgs () |
|
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...
|
|
|
const ITGCcablingSvc * | m_cabling |
|
StringProperty | m_keyMuCTPIInput_TGC {this,"MuCTPIInput_TGC","L1MuctpiStoreTGC"} |
|
StringProperty | m_MaskFileName12 {this,"MaskFileName12",""} |
| property, see LVL1TGCTrigger::LVL1TGCTrigger More...
|
|
ShortProperty | m_CurrentBunchTag {this,"CurrentBunchTag",TgcDigit::BC_CURRENT} |
| property, see LVL1TGCTrigger::LVL1TGCTrigger More...
|
|
BooleanProperty | m_ProcessAllBunches {this,"ProcessAllBunhes",true} |
|
BooleanProperty | m_OutputTgcRDO {this,"OutputTgcRDO",true} |
| property, see LVL1TGCTrigger::LVL1TGCTrigger More...
|
|
BooleanProperty | m_USE_CONDDB {this, "USE_CONDDB", true} |
|
BooleanProperty | m_SHPTORED {this, "SHPTORED", true} |
|
BooleanProperty | m_USEINNER {this, "USEINNER", true} |
|
BooleanProperty | m_INNERVETO {this,"INNERVETO",true} |
|
BooleanProperty | m_FULLCW {this,"FULLCW",false} |
|
BooleanProperty | m_TILEMU {this,"TILEMU",true} |
|
BooleanProperty | m_USENSW {this,"USENSW",false} |
|
BooleanProperty | m_FORCENSWCOIN {this,"FORCENSWCOIN",true} |
|
BooleanProperty | m_USEBIS78 {this,"USEBIS78",false} |
|
BooleanProperty | m_useRun3Config {this,"useRun3Config",false} |
|
StringProperty | m_NSWSideInfo {this,"NSWSideInfo",""} |
|
bool | m_firstTime {true} |
|
uint16_t | m_bctagInProcess {TgcDigit::BC_UNDEFINED} |
|
TGCDatabaseManager * | m_db |
|
std::unique_ptr< TGCTimingManager > | m_TimingManager |
|
std::unique_ptr< TGCElectronicsSystem > | m_system |
|
int | m_nEventInSector |
|
TGCInnerTrackletSlotHolder | m_innerTrackletSlotHolder |
|
bool | m_debuglevel |
|
TGCArguments | m_tgcArgs |
|
SG::WriteHandleKey< TgcRdoContainer > | m_keyTgcRdo {this,"TgcRdo","TGCRDO2","Location of TgcRdoContainer"} |
|
SG::ReadHandleKey< TgcRdoContainer > | m_keyTgcRdoIn {this,"InputRDO","TGCRDO","Location of input TgcRdoContainer"} |
|
SG::ReadHandleKey< TgcDigitContainer > | m_keyTgcDigit {this,"InputData_perEvent","TGC_DIGITS","Location of TgcDigitContainer"} |
|
SG::ReadHandleKey< TileMuonReceiverContainer > | m_keyTileMu {this,"TileMuRcv_Input","TileMuRcvCnt","Location of TileMuonReceiverContainer"} |
|
SG::ReadHandleKey< Muon::NSW_TrigRawDataContainer > | m_keyNSWTrigOut {this,"NSWTrigger_Input","L1_NSWTrigContainer","Location of NSW_TrigRawDataContainer"} |
|
SG::ReadHandleKey< Muon::RpcBis78_TrigRawDataContainer > | m_keyBIS78TrigOut {this,"BIS78Trig_Input","BIS78TrigContainer","Location of RpcBis78_TrigRawDataContainer"} |
|
SG::ReadCondHandleKey< TGCTriggerData > | m_readCondKey {this,"ReadCondKey","TGCTriggerData"} |
|
SG::ReadCondHandleKey< TGCTriggerLUTs > | m_readLUTs_CondKey {this,"ReadLUTCondKey","TGCTriggerLUTs"} |
|
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInputPhase1 > | m_muctpiPhase1Key {this, "MuctpiPhase1LocationTGC", "L1MuctpiStoreTGC", "Location of muctpiPhase1 for Tgc"} |
|
SG::ReadHandleKey< ByteStreamMetadataContainer > | m_bsMetaDataContRHKey {this, "ByteStreamMetadataRHKey", "ByteStreamMetadata", "Location to retrieve the detector mask"} |
|
std::map< Identifier, int > | m_MaskedChannel |
| mask channel map More...
|
|
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 67 of file LVL1TGCTrigger.h.
◆ StoreGateSvc_t
◆ LVL1TGCTrigger()
LVL1TGCTrigger::LVL1TGCTrigger::LVL1TGCTrigger |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
standard constructor and destructor for algorithms
Definition at line 51 of file LVL1TGCTrigger.cxx.
◆ ~LVL1TGCTrigger()
LVL1TGCTrigger::LVL1TGCTrigger::~LVL1TGCTrigger |
( |
| ) |
|
|
virtual |
◆ addRawData()
bool LVL1TGCTrigger::LVL1TGCTrigger::addRawData |
( |
std::unique_ptr< TgcRawData > |
rawdata, |
|
|
std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> & |
tgcrdo |
|
) |
| |
|
private |
Definition at line 1216 of file LVL1TGCTrigger.cxx.
1221 std::map<std::pair<int, int>, std::unique_ptr<TgcRdo>>
::iterator itRdo = tgcrdo.find(subDetectorRod);
1223 if (itRdo==tgcrdo.end()) {
1227 thisRdo->push_back(std::move(rawdata));
1228 tgcrdo.insert(std::map<std::pair<int, int>, std::unique_ptr<TgcRdo>>::
value_type(subDetectorRod, std::move(thisRdo)));
1230 itRdo->second->push_back(std::move(rawdata));
◆ 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()
◆ doMaskOperation()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode LVL1TGCTrigger::LVL1TGCTrigger::execute |
( |
| ) |
|
|
overridevirtual |
Definition at line 134 of file LVL1TGCTrigger.cxx.
137 const EventContext& ctx = getContext();
141 if(
getCabling().isFailure())
return StatusCode::FAILURE;
169 std::map<std::pair<int, int>, std::unique_ptr<TgcRdo>> tgcrdo;
174 if(!readTgcDigitContainer.isValid()){
176 return StatusCode::FAILURE;
181 ATH_CHECK(wh_muctpiTgc.record(std::make_unique<LVL1MUONIF::Lvl1MuCTPIInputPhase1>()));
187 sc = StatusCode::SUCCESS;
208 if (
sc.isFailure()) {
218 if(!rdoContIn.isValid()){
221 }
else if(rdoContIn->size()>0) {
223 for(; itR!=rdoContIn->end(); ++itR){
224 const TgcRdo* rdoIn = (*itR);
226 std::map<std::pair<int, int>, std::unique_ptr<TgcRdo>>
::iterator itRdo = tgcrdo.find(subDetectorRod);
227 if (itRdo!=tgcrdo.end()) {
231 itRdo->second->push_back(std::make_unique<TgcRawData>(*rd));
239 auto trgContainer=std::make_unique<TgcRdoContainer>();
240 for(
const auto& tgcRdoMap : tgcrdo){
241 for(
const auto rawData : *tgcRdoMap.second){
242 trgContainer->push_back(rawData);
245 ATH_CHECK(tgcL1rdoHandle.record(std::move(trgContainer)));
◆ extractFromString()
void LVL1TGCTrigger::LVL1TGCTrigger::extractFromString |
( |
const std::string & |
str, |
|
|
std::vector< int > & |
v |
|
) |
| |
|
private |
Definition at line 1167 of file LVL1TGCTrigger.cxx.
1169 if (
str.empty())
return;
1172 if (
line.empty())
break;
1173 int i =
line.find(
' ');
1174 if (
i==(
int)std::string::npos && !
line.empty()) {
1178 std::string temp =
line;
1179 temp.erase(
i,
line.size());
1180 v.push_back(
atoi(temp.c_str()));
◆ 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();
◆ FillSectorLogicData()
◆ fillTGCEvent()
void LVL1TGCTrigger::LVL1TGCTrigger::fillTGCEvent |
( |
const std::map< Identifier, int > & |
tgcDigitIDs, |
|
|
TGCEvent & |
event |
|
) |
| |
|
private |
Definition at line 426 of file LVL1TGCTrigger.cxx.
429 for(
const auto& itCh : tgcDigitIDs) {
451 int subDetectorID, srodID, sswID, sbLoc, channelID;
467 srodID, sswID,sbLoc);
471 <<
" octant#=" << octantNumber
472 <<
" mod#=" << moduleNumber
473 <<
" layer#=" << layerNumber <<
" r#=" << rNumber
474 <<
" isStrip=" << wireOrStrip
475 <<
" ch#=" << channelNumber <<
endmsg
476 <<
" --> readoutID: sudetID=" << subDetectorID
477 <<
" srodID=" << srodID <<
" sswID=" << sswID
478 <<
" slbID=" << slbID <<
" chID=" << channelID);
481 TGCReadoutIndex
index(zdire,octantNumber,moduleNumber,rNumber,layerNumber);
483 event.NewASDOut(
index,
494 <<
" vector size : " <<
event.GetNASDOut() );
495 for(
int iout=1; iout<=
event.GetNASDOut(); iout++){
496 TGCASDOut* asdout = (
event.GetASDOutVector()[iout-1]);
497 ATH_MSG_DEBUG(
" Z:" << asdout->GetTGCReadoutIndex().GetZDirection() <<
498 " O:" << asdout->GetTGCReadoutIndex().GetOctantNumber() <<
499 " M:" << asdout->GetTGCReadoutIndex().GetModuleNumber() <<
500 " R:" << asdout->GetTGCReadoutIndex().GetRNumber() <<
501 " L:" << asdout->GetTGCReadoutIndex().GetLayerNumber() <<
502 " S:" << asdout->GetSignalType() <<
503 " I:" << asdout->GetHitID() <<
504 " T:" << asdout->GetHitToF() );
◆ finalize()
StatusCode LVL1TGCTrigger::LVL1TGCTrigger::finalize |
( |
| ) |
|
|
overridevirtual |
◆ getCabling()
StatusCode LVL1TGCTrigger::LVL1TGCTrigger::getCabling |
( |
| ) |
|
|
private |
Definition at line 1236 of file LVL1TGCTrigger.cxx.
1243 ATH_CHECK(service(
"Muon::TGCCablingServerSvc", TgcCabGet));
1248 int maxRodId, maxSRodId, maxSswId, maxSbloc,minChannelId, maxChannelId;
1250 if (maxRodId ==12) {
1253 ATH_MSG_FATAL(
"Old TGCcablingSvc(octant segmentation) can not be used !");
1254 return StatusCode::FAILURE;
1266 return StatusCode::SUCCESS;
◆ getCharge()
int LVL1TGCTrigger::LVL1TGCTrigger::getCharge |
( |
int |
dR, |
|
|
int |
Zdir |
|
) |
| |
|
private |
◆ getLPTTypeInRawData()
int LVL1TGCTrigger::LVL1TGCTrigger::getLPTTypeInRawData |
( |
int |
type | ) |
|
|
private |
◆ getMaskedChannel()
StatusCode LVL1TGCTrigger::LVL1TGCTrigger::getMaskedChannel |
( |
| ) |
|
|
private |
Definition at line 1038 of file LVL1TGCTrigger.cxx.
1041 if (
fname.empty())
return StatusCode::SUCCESS;
1050 return StatusCode::FAILURE;
1055 std::vector<std::string>
mask;
1057 while(getline(
fin,aLine)) {
1058 if (aLine.compare(0,3,
"///")!=0)
break;
1060 int id_type =
atoi(aLine.c_str());
1061 while(getline(
fin,aLine)) {
1062 if (!aLine.empty())
mask.push_back(aLine);
1067 std::vector<int>
ids;
1069 int nmasked=0, nfired=0;
1070 for(
int ich=0; ich<(
int)
mask.size(); ich++) {
1071 std::string
ch =
mask[ich];
1075 if (id_type==1 &&
ids.size()==8) {
1076 int sysno1 = (
ids[1]==-99 ? -1 :
ids[1]);
int sysno2=(
ids[1]==-99 ? 1 :
ids[1]);
1077 int octno1 = (
ids[2]==-99 ? 0 :
ids[2]);
int octno2=(
ids[2]==-99 ? 7 :
ids[2]);
1078 for(
int sysno=sysno1; sysno<=sysno2; sysno+=2) {
1079 for(
int octno=octno1; octno<=octno2; octno++) {
1083 <<
" sys=" << sysno <<
" oct=" << octno <<
" modno=" <<
ids[3]
1084 <<
" layerno=" <<
ids[4] <<
" rNumber=" <<
ids[5]
1085 <<
" strip=" <<
ids[6] <<
" chno=" <<
ids[7] );
1088 ATH_MSG_WARNING(
"This onlineID is not valid and cannot be converted to offline ID." );
1090 <<
" layerno=" <<
ids[4] <<
" rNumber=" <<
ids[5]
1091 <<
" strip=" <<
ids[6] <<
" chno=" <<
ids[7] );
1094 if (OnOff==0) nmasked+=1;
1095 else if (OnOff==1) nfired+=1;
1100 }
else if (id_type==2 &&
ids.size()==6) {
1101 int sysno1 = (
ids[1]==-99 ? 103 :
ids[1]);
int sysno2=(
ids[1]==-99 ? 104 :
ids[1]);
1102 int octno1 = (
ids[2]==-99 ? 0 :
ids[2]);
int octno2=(
ids[2]==-99 ? 7 :
ids[2]);
1103 for(
int sysno=sysno1; sysno<=sysno2; sysno+=1) {
1104 for(
int octno=octno1; octno<=octno2; octno++) {
1107 <<
" subdetectorID=" << sysno <<
" rodId=" << octno <<
" sswID=" <<
ids[3]
1108 <<
" SBLoc=" <<
ids[4] <<
" channelId=" <<
ids[5] );
1110 ATH_MSG_WARNING(
"This readoutID is not valid and cannot be converted to offline ID " );
1111 ATH_MSG_WARNING(
"subdetectorID=" << sysno <<
" rodId=" << octno <<
" sswID=" <<
ids[3]
1112 <<
" SBLoc=" <<
ids[4] <<
" channelId=" <<
ids[5] );
1115 if (OnOff==0) nmasked+=1;
1116 else if (OnOff==1) nfired+=1;
1121 }
else if (id_type==3 &&
ids.size()==2) {
1125 if (OnOff==0) nmasked+=1;
1126 else if (OnOff==1) nfired+=1;
1129 ATH_MSG_INFO(
"Invalid input. Idtype or number of parameters are invalid: idtype=" << id_type
1130 <<
" number of elements = " <<
ids.size() );
1131 return StatusCode::FAILURE;
1135 ATH_MSG_INFO(
"Total number of masked channels ... " << nmasked);
1136 ATH_MSG_INFO(
"Total number of fired channels ... " << nfired);
1138 return StatusCode::SUCCESS;
◆ initialize()
StatusCode LVL1TGCTrigger::LVL1TGCTrigger::initialize |
( |
| ) |
|
|
overridevirtual |
◆ 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.
◆ 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.
◆ processOneBunch()
Definition at line 250 of file LVL1TGCTrigger.cxx.
256 std::map<Identifier, int> tgcDigitIDs;
276 for(
int j=0; j<
m_system->getNumberOfOctant(); j+=1){
277 for(
int k=0;
k<
m_system->getNumberOfModule();
k+=1){
278 TGCSector* sector =
m_system->getSector(
i,j,
k);
279 if((sector!=0)&&(sector->hasHit())){
294 int sectoraddr_endcap = 0;
295 int sectoraddr_forward = 0;
296 for(
int j=0; j<
m_system->getNumberOfOctant(); j+=1){
297 for(
int k=0;
k<
m_system->getNumberOfModule();
k+=1){
299 TGCSector* sector =
m_system->getSector(
i,j,
k);
300 if(sector==0)
continue;
307 if((sector->hasHit())){
312 sector->getSL()->setInnerTrackletSlots(innerTrackletSlots);
316 if(sector->hasHit()) sector->clearNumberOfHit();
328 std::shared_ptr<TGCTrackSelectorOut> trackSelectorOut;
329 sector->getSL()->getTrackSelectorOutput(trackSelectorOut);
331 std::shared_ptr<LVL1TGC::TGCNSW> nsw =
m_system->getNSW();
332 int module = sector->getModuleId();
340 sectorId = ((
module/3)*2+
module%3) + sector->getOctantId()*6;
341 std::shared_ptr<const LVL1TGC::NSWTrigOut> pNSWOut = nsw->
getOutput(sector->getRegionType(),
361 sectorId = (
module/3) + sector->getOctantId()*3;
362 std::shared_ptr<const LVL1TGC::NSWTrigOut> pNSWOut = nsw->
getOutput(sector->getRegionType(),
378 trackSelectorOut.get()->reset();
387 return StatusCode::SUCCESS;
◆ recordRdoHPT()
void LVL1TGCTrigger::LVL1TGCTrigger::recordRdoHPT |
( |
TGCSector * |
sector, |
|
|
std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> & |
tgcrdo |
|
) |
| |
|
private |
Definition at line 665 of file LVL1TGCTrigger.cxx.
668 if(sector->hasHit() ==
false)
return;
671 int subDetectorId, rodId, sswId, sbLoc, secId;
674 int startEndcapSector, coverageOfEndcapSector;
675 int startForwardSector, coverageOfForwardSector;
679 coverageOfEndcapSector,
681 coverageOfForwardSector
688 isAside = (sector->getSideId()==0);
690 int module = sector->getModuleId();
694 sectorId = ((
module/3)*2+
module%3) + sector->getOctantId()*6;
696 sectorId = (
module/3) + sector->getOctantId()*3;
702 secId = sectorId % coverageOfEndcapSector;
704 secId = sectorId % coverageOfForwardSector;
707 phi = (isEndcap ? (sectorId+46)%48+1 : (sectorId+23)%24+1);
709 for(
int itype=0; itype<2; itype++) {
711 for(
unsigned int ihpb=0; ihpb<sector->getNumberOfHPB(itype); ihpb++) {
712 TGCHighPtBoard * hpb = sector->getHPB(itype, ihpb);
713 if (0==hpb)
continue;
714 TGCHighPtChipOut *
out = hpb->getOutput();
715 if (0==
out)
continue;
719 subDetectorId, rodId, sswId, sbLoc);
728 if (!
out->getSel(ichip, icand))
continue;
731 int hitId =
out->getHitID(ichip, icand);
734 bool isHPT =
out->getPt(ichip,icand)==
PtHigh ? 1 : 0;
736 static_cast<uint16_t>(subDetectorId),
740 isStrip, (!isEndcap), secId, chip, icand,
742 out->getPos(ichip, icand),
743 out->getDev(ichip, icand),
749 <<
" side=" << ( (isAside)?
"A" :
"C")
750 << (isEndcap ?
"EC" :
"FWD")
751 <<
" w/s=" << ( (
isStrip)?
"s" :
"w")
752 <<
" id=" << hpb->getId()
756 <<
" block=" <<
out->getHitID(ichip, icand)
757 <<
" subMatrix=" <<
out->getPos(ichip, icand)
758 <<
" dev=" <<
out->getDev(ichip, icand)
759 <<
" srod=" << rodId <<
" sswId=" << sswId <<
" SBLoc=" << sbLoc );
766 if (hitId == 1) oredId = 5;
767 else if (hitId == 2) oredId = 6;
768 else if (hitId == 5) oredId = 1;
769 else if (hitId == 6) oredId = 2;
771 std::unique_ptr<TgcRawData> rawdata2(
773 static_cast<uint16_t>(subDetectorId),
777 isStrip, (!isEndcap), secId, chip, icand,
779 out->getPos(ichip, icand),
780 out->getDev(ichip, icand),
◆ recordRdoInner()
void LVL1TGCTrigger::LVL1TGCTrigger::recordRdoInner |
( |
TGCSector * |
sector, |
|
|
std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> & |
tgcrdo |
|
) |
| |
|
private |
Definition at line 798 of file LVL1TGCTrigger.cxx.
801 bool isAside = sector->getSideId()==0;
803 if (!isEndcap)
return;
806 int module = sector->getModuleId();
807 int octant = sector->getOctantId();
809 int phi = (sectorId+46)%48+1;
812 int subDetectorId=0, rodId=0, sswId=0, sbLoc=0;
815 subDetectorId, rodId, sswId, sbLoc);
817 ATH_MSG_WARNING(
"TGCcablingSvc::ReadoutIDfromSLID fails in recordRdoInner()" );
824 int startEndcapSector, coverageOfEndcapSector;
825 int startForwardSector, coverageOfForwardSector;
828 coverageOfEndcapSector,
830 coverageOfForwardSector
833 ATH_MSG_WARNING(
"LVL1TGCTrigger::recordRdoInner --- bad rodId " << rodId );
839 secId = sectorId % coverageOfEndcapSector;
841 secId = sectorId % coverageOfForwardSector;
849 const TGCInnerTrackletSlot* innerTrackletSlots[n_slots] = {0, 0, 0, 0};
851 octant,
module, innerTrackletSlots);
853 std::array<int, n_slots>inner_eifi;
856 for (
int i_slot = 0; i_slot < n_slots; i_slot++) {
857 if (inner_eifi[i_slot] > 0) {
859 static_cast<uint16_t>(subDetectorId),
865 static_cast<uint16_t>(inner_eifi[i_slot]),
873 int inner_tile =
m_system->getTMDB()->getInnerTileBits(sector->getSideId(), sectorId);
875 if (inner_tile > 0) {
879 static_cast<uint16_t>(subDetectorId),
893 std::shared_ptr<const LVL1TGC::NSWTrigOut> nsw_trigout =
m_system->getNSW()->getOutput(region, !isAside, sectorId);
894 for (
int icand=0; icand<(
int)nsw_trigout->
getNSWeta().size(); icand++ ){
896 static_cast<uint16_t>(subDetectorId),
915 std::shared_ptr<const LVL1TGC::BIS78TrigOut> bis78_trigout =
m_system->getBIS78()->getOutput(sectorId);
916 for (
int icand=0; icand<(
int)bis78_trigout->
getBIS78eta().size(); icand++ ){
918 static_cast<uint16_t>(subDetectorId),
◆ recordRdoSL()
void LVL1TGCTrigger::LVL1TGCTrigger::recordRdoSL |
( |
TGCSector * |
sector, |
|
|
std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> & |
tgcrdo |
|
) |
| |
|
private |
Definition at line 935 of file LVL1TGCTrigger.cxx.
939 std::shared_ptr<TGCTrackSelectorOut> selectorOut;
940 sector->getSL()->getTrackSelectorOutput(selectorOut);
942 if (selectorOut ==
nullptr)
return;
943 if (selectorOut->getNCandidate() == 0)
return;
948 bool isAside = (sector->getSideId()==0);
951 int Zdir= (isAside) ? 1 : -1;
954 int module = sector->getModuleId();
957 sectorId = ((
module/3)*2+
module%3) + sector->getOctantId()*6;
959 sectorId = (
module/3) + sector->getOctantId()*3;
965 int startEndcapSector, coverageOfEndcapSector;
966 int startForwardSector, coverageOfForwardSector;
970 coverageOfEndcapSector,
972 coverageOfForwardSector
976 secId = sectorId % coverageOfEndcapSector;
978 secId = sectorId % coverageOfForwardSector;
982 phi = (isEndcap ? (sectorId+46)%48+1 : (sectorId+23)%24+1);
985 int subDetectorId = 0, sswId = 0, sbLoc = 0;
987 subDetectorId, rodId, sswId, sbLoc);
990 << (isEndcap ?
" Endcap-" :
" Forward-")
991 << (isAside ?
"A " :
"C ")
997 int inner=0, coinFlag=0;
999 for (
unsigned int icand=0; icand < (
unsigned int)selectorOut->getNCandidate(); ++icand) {
1001 bool muplus =
getCharge(selectorOut->getDR(icand), Zdir)==1 ? 1 : 0;
1002 threshold = selectorOut->getPtLevel(icand);
1003 roi = ((selectorOut->getR(icand))<<2)+(selectorOut->getPhi(icand));
1004 if (selectorOut->getInnerVeto(icand))
veto = 1;
1007 inner = selectorOut->getInnerCoincidenceFlag(icand);
1008 coinFlag = selectorOut->getCoincidenceType(icand);
1012 static_cast<uint16_t>(subDetectorId),
1023 <<
" side=" << (isAside ?
"A " :
"C ")
1024 <<
" reg=" << (isEndcap ?
"EC" :
"FWD")
1026 <<
" cand=" <<
index
1027 <<
" charge=" << (muplus ?
"mu+" :
"mu-")
1031 <<
" srod=" << rodId <<
" sswId=" << sswId <<
" SBLoc=" << sbLoc
1032 <<
" inner=" << inner <<
" coinFlag=" << coinFlag );
◆ recordRdoSLB()
void LVL1TGCTrigger::LVL1TGCTrigger::recordRdoSLB |
( |
TGCSector * |
sector, |
|
|
std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> & |
tgcrdo |
|
) |
| |
|
private |
Definition at line 541 of file LVL1TGCTrigger.cxx.
546 int subDetectorId, rodId, sswId, sbLoc, secId, secIdEIFI;
548 bool isAside, isEndcap;
int phi, moduleType,
id, phiEIFI;
549 isAside = (sector->getSideId()==0 ? 1 : 0);
551 int module = sector->getModuleId();
560 phi = (isEndcap ? (secId+46+sector->getOctantId()*6)%48+1 : (secId+23+sector->getOctantId()*3)%24+1);
564 phiEIFI = (secIdEIFI+23+sector->getOctantId()*3)%24+1;
567 const int NumberOfSLBType = 6;
569 for(
int itype=0; itype<NumberOfSLBType; itype++) {
573 for(
unsigned int index=0;
index<sector->getNumberOfSB(itype);
index++) {
574 TGCSlaveBoard * slb = sector->getSB(itype,
index);
575 if (0==slb)
continue;
577 const TGCSlaveBoardOut *
out = slb->getOutput();
578 if (0==
out)
continue;
588 subDetectorId, rodId,
593 <<
" side=" << ((isAside) ?
"A":
"C")
594 <<
" region=" << ((isEndcap) ?
"Endcap" :
"Forward")
595 <<
" type=" << moduleType
597 <<
" subDetectorId=" << subDetectorId
598 <<
" rodId=" << rodId
599 <<
" sswId=" << sswId
600 <<
" sbLoc=" << sbLoc);
605 for(
int iData=0; iData<
out->getNumberOfData(); iData++) {
606 if (!
out->getHit(iData))
continue;
610 int subMat = iData % 4;
621 static_cast<uint16_t>(subDetectorId),
626 type,
out->getDev(iData), seg, subMat,
627 out->getPos(iData)));
632 bool setEIFITriggerBit =
639 static_cast<unsigned int>(subMat),
642 if(!setEIFITriggerBit) {
644 <<
" sideId= " << sector->getSideId()
645 <<
" slotId= " << phiEIFI
646 <<
" region= " << (isEndcap ?
"EI" :
"FI")
648 <<
" subMat(iBit)= " <<
static_cast<unsigned int>(subMat) );
652 ATH_MSG_DEBUG(
" recordRdoSLB : reg=" << (isEndcap ?
"EC" :
"FWD")
653 <<
" srod=" << rodId <<
" sswId=" << sswId
654 <<
" SBLoc=" << sbLoc <<
" type=" << itype
655 <<
" iData(subMat:seg)=" << iData <<
" pos="
656 <<
out->getPos(iData) <<
" dev=" <<
out->getDev(iData) );
◆ renounce()
◆ renounceArray()
◆ start()
StatusCode LVL1TGCTrigger::LVL1TGCTrigger::start |
( |
| ) |
|
|
overridevirtual |
Definition at line 1142 of file LVL1TGCTrigger.cxx.
1145 ATH_MSG_DEBUG(
"Retrieving Detector Mask from ByteStream metadata container");
1147 if (bsmdc.isValid() && !bsmdc->empty()) {
1152 std::vector<eformat::SubDetector> subDetOff;
1153 eformat::helper::DetectorMask(~detMaskLeast, ~detMaskMost).sub_detectors(subDetOff);
1154 auto sideA = std::find_if(subDetOff.begin(), subDetOff.end(), [](
const eformat::SubDetector &
s) {
1155 return (s == eformat::MUON_MMEGA_ENDCAP_A_SIDE || s == eformat::MUON_STGC_ENDCAP_A_SIDE); });
1156 auto sideC = std::find_if(subDetOff.begin(), subDetOff.end(), [](
const eformat::SubDetector &
s) {
1157 return (s == eformat::MUON_MMEGA_ENDCAP_C_SIDE || s == eformat::MUON_STGC_ENDCAP_C_SIDE); });
1163 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.
◆ tgcArgs()
◆ updateVHKA()
◆ m_bctagInProcess
◆ m_bsMetaDataContRHKey
◆ m_cabling
◆ m_CurrentBunchTag
ShortProperty LVL1TGCTrigger::LVL1TGCTrigger::m_CurrentBunchTag {this,"CurrentBunchTag",TgcDigit::BC_CURRENT} |
|
private |
◆ m_db
◆ m_debuglevel
bool LVL1TGCTrigger::LVL1TGCTrigger::m_debuglevel |
|
private |
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_firstTime
bool LVL1TGCTrigger::LVL1TGCTrigger::m_firstTime {true} |
|
private |
◆ m_FORCENSWCOIN
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_FORCENSWCOIN {this,"FORCENSWCOIN",true} |
|
private |
◆ m_FULLCW
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_FULLCW {this,"FULLCW",false} |
|
private |
◆ m_innerTrackletSlotHolder
◆ m_INNERVETO
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_INNERVETO {this,"INNERVETO",true} |
|
private |
◆ m_keyBIS78TrigOut
◆ m_keyMuCTPIInput_TGC
StringProperty LVL1TGCTrigger::LVL1TGCTrigger::m_keyMuCTPIInput_TGC {this,"MuCTPIInput_TGC","L1MuctpiStoreTGC"} |
|
private |
◆ m_keyNSWTrigOut
◆ m_keyTgcDigit
◆ m_keyTgcRdo
◆ m_keyTgcRdoIn
◆ m_keyTileMu
◆ m_MaskedChannel
std::map<Identifier, int> LVL1TGCTrigger::LVL1TGCTrigger::m_MaskedChannel |
|
private |
◆ m_MaskFileName12
StringProperty LVL1TGCTrigger::LVL1TGCTrigger::m_MaskFileName12 {this,"MaskFileName12",""} |
|
private |
◆ m_muctpiPhase1Key
◆ m_nEventInSector
int LVL1TGCTrigger::LVL1TGCTrigger::m_nEventInSector |
|
private |
◆ m_NSWSideInfo
StringProperty LVL1TGCTrigger::LVL1TGCTrigger::m_NSWSideInfo {this,"NSWSideInfo",""} |
|
private |
◆ m_OutputTgcRDO
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_OutputTgcRDO {this,"OutputTgcRDO",true} |
|
private |
◆ m_ProcessAllBunches
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_ProcessAllBunches {this,"ProcessAllBunhes",true} |
|
private |
◆ m_readCondKey
◆ m_readLUTs_CondKey
◆ m_SHPTORED
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_SHPTORED {this, "SHPTORED", true} |
|
private |
◆ m_system
◆ m_tgcArgs
◆ m_TILEMU
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_TILEMU {this,"TILEMU",true} |
|
private |
◆ m_TimingManager
std::unique_ptr<TGCTimingManager> LVL1TGCTrigger::LVL1TGCTrigger::m_TimingManager |
|
private |
◆ m_USE_CONDDB
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_USE_CONDDB {this, "USE_CONDDB", true} |
|
private |
◆ m_USEBIS78
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_USEBIS78 {this,"USEBIS78",false} |
|
private |
◆ m_USEINNER
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_USEINNER {this, "USEINNER", true} |
|
private |
◆ m_USENSW
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_USENSW {this,"USENSW",false} |
|
private |
◆ m_useRun3Config
BooleanProperty LVL1TGCTrigger::LVL1TGCTrigger::m_useRun3Config {this,"useRun3Config",false} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
SG::ReadCondHandleKey< TGCTriggerData > m_readCondKey
StringProperty m_NSWSideInfo
SG::ReadHandleKey< TileMuonReceiverContainer > m_keyTileMu
virtual void getReadoutIDRanges(int &maxRodId, int &maxSRodId, int &maxSswId, int &maxSbloc, int &minChannelId, int &maxChannelId) const =0
Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Old TgcRdo
const std::vector< uint8_t > & getBIS78Deta() const
void set_USE_CONDDB(bool v)
Scalar phi() const
phi method
void set_FORCE_NSW_COIN(bool v)
std::vector< Identifier > ID
static std::string find_file(const std::string &logical_file_name, const std::string &search_path, SearchType search_type=LocalSearch)
virtual bool getOfflineIDfromOnlineID(Identifier &offlineID, const int subsystemNumber, const int octantNumber, const int moduleNumber, const int layerNumber, const int rNumber, const int wireOrStrip, const int channelNumber) const =0
void fillTGCEvent(const std::map< Identifier, int > &, TGCEvent &)
SG::ReadHandleKey< Muon::RpcBis78_TrigRawDataContainer > m_keyBIS78TrigOut
int getLPTTypeInRawData(int type)
static constexpr int s_NHitInTrackSelector
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
int innercoin(size_t id) const
BooleanProperty m_INNERVETO
const std::vector< uint8_t > & getBIS78eta() const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
BooleanProperty m_USE_CONDDB
uint16_t subDetectorId() const
int bw2or3(size_t id) const
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
Class representing data from an endcap SL board.
StatusCode getMaskedChannel()
BooleanProperty m_ProcessAllBunches
TGCDatabaseManager * m_db
virtual void setOwner(IDataHandleHolder *o)=0
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
virtual bool getOfflineIDfromReadoutID(Identifier &offlineID, const int subDetectorID, const int rodID, const int sswID, const int sbLoc, const int channelID, bool orChannel=false) const =0
const std::vector< uint8_t > & getNSWeta() const
BooleanProperty m_USEINNER
void set_USE_BIS78(bool v)
void recordRdoInner(TGCSector *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &)
const std::vector< uint8_t > & getBIS78Dphi() const
BooleanProperty m_OutputTgcRDO
property, see LVL1TGCTrigger::LVL1TGCTrigger
const std::vector< bool > & getNSWmonitor() const
const ITGCcablingSvc * m_cabling
StringProperty m_MaskFileName12
property, see LVL1TGCTrigger::LVL1TGCTrigger
uint16_t subDetectorId() const
virtual StatusCode sysInitialize() override
Override sysInitialize.
SG::ReadCondHandleKey< TGCTriggerLUTs > m_readLUTs_CondKey
std::map< Identifier, int > m_MaskedChannel
mask channel map
POOL::TEvent event(POOL::TEvent::kClassAccess)
StatusCode processOneBunch(const TgcDigitContainer *, LVL1MUONIF::Lvl1MuCTPIInputPhase1 *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
SG::ReadHandleKey< TgcDigitContainer > m_keyTgcDigit
int getCharge(int dR, int Zdir)
void set_MSGLEVEL(const MSG::Level v)
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual bool getRDOHighPtIDfromSimHighPtID(const bool isForward, const bool isStrip, int &index, int &chip, int &hitId) const =0
void clear2candidates(size_t id)
const std::vector< uint8_t > & getNSWDtheta() const
void set_SHPT_ORED(bool v)
BooleanProperty m_useRun3Config
bool useRun3Config() const
bool addRawData(std::unique_ptr< TgcRawData > rawdata, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &tgcrdo)
int charge(size_t id) const
SG::ReadHandleKey< ByteStreamMetadataContainer > m_bsMetaDataContRHKey
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInputPhase1 > m_muctpiPhase1Key
void recordRdoSL(TGCSector *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ShortProperty m_CurrentBunchTag
property, see LVL1TGCTrigger::LVL1TGCTrigger
bool isActive(int cwtype) const
const std::vector< int > & getNSWTriggerProcessor() const
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
void set2candidates(size_t id)
virtual bool getSLBIDfromReadoutID(int &phi, bool &isAside, bool &isEndcap, int &moduleType, int &id, const int subsectorID, const int rodID, const int sswID, const int sbLoc) const =0
uint16_t bcId(uint32_t data)
void recordRdoSLB(TGCSector *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &)
uint16_t m_bctagInProcess
Class representing data from an forward SL board.
StatusCode initialize(bool used=true)
const std::vector< uint8_t > & getBIS78phi() const
void doMaskOperation(const TgcDigitContainer *, std::map< Identifier, int > &)
int goodmf(size_t id) const
void getInnerTrackletBits(const TGCInnerTrackletSlot *innerTrackletSlots[], std::array< int, NUMBER_OF_SLOTS_PER_TRIGGER_SECTOR > &eifi_bits) const
void set_useRun3Config(bool v)
BooleanProperty m_FORCENSWCOIN
DataObjIDColl m_extendedExtraObjects
virtual bool getReadoutIDfromOfflineID(const Identifier &offlineID, int &subDetectorID, int &rodID, int &sswID, int &sbLoc, int &channelID, bool adChannel=false) const =0
virtual bool getSReadoutIDfromSLID(const int phi, const bool isAside, const bool isEndcap, int &subsectorID, int &srodID, int &sswID, int &sbLoc) const =0
bool setTriggerBit(const int sideId, const int slotId, const unsigned int region, const unsigned int readout, const unsigned int iBit, const bool triggerBit)
void getInnerTrackletSlots(const int sideId, const int octId, const int moduleId, const TGCInnerTrackletSlot *innerTrackletSlots[]) const
SG::ReadHandleKey< TgcRdoContainer > m_keyTgcRdoIn
#define ATH_MSG_WARNING(x)
void recordRdoHPT(TGCSector *, std::map< std::pair< int, int >, std::unique_ptr< TgcRdo >> &)
void extractFromString(const std::string &, std::vector< int > &)
void set_USE_INNER(bool v)
An unit object of TGC ROD output.
unsigned bcTag(unsigned bcBitMap)
void set_INNER_VETO(bool v)
@ NUMBER_OF_SLOTS_PER_TRIGGER_SECTOR
virtual bool getOnlineIDfromOfflineID(const Identifier &offlineID, int &subsystemNumber, int &octantNumber, int &moduleNumber, int &layerNumber, int &rNumber, int &wireOrStrip, int &channelNumber) const =0
std::unique_ptr< TGCTimingManager > m_TimingManager
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const std::vector< uint8_t > & getNSWphi() const
void set_NSWSideInfo(const std::string &v)
void FillSectorLogicData(LVL1MUONIF::Lvl1MuSectorLogicDataPhase1 *sldata, const TGCTrackSelectorOut *trackSelectorOut)
virtual StatusCode giveCabling(const ITGCcablingSvc *&) const =0
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
TGCSide
The sides of TGC (A- or C-side)
AthAlgorithm()
Default constructor:
void clear2candidatesInSector()
Use IdentifiableContainer with TgcDigitCollection.
std::vector< std::string > veto
these patterns are anded
virtual bool getReadoutIDfromHPTID(const int phi, const bool isAside, const bool isEndcap, const bool isStrip, const int id, int &subsectorID, int &rodID, int &sswID, int &sbLoc) const =0
Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current TgcRawData
virtual bool getReadoutIDfromSLBID(const int phi, const bool isAside, const bool isEndcap, const int moduleType, const int id, int &subsectorID, int &rodID, int &sswID, int &sbLoc) const =0
TGCInnerTrackletSlotHolder m_innerTrackletSlotHolder
SG::ReadHandleKey< Muon::NSW_TrigRawDataContainer > m_keyNSWTrigOut
virtual bool getCoveragefromSRodID(const int srodID, double &startPhi, double &endPhi) const =0
@ NCandidateInTrackSelector
BooleanProperty m_USEBIS78
BooleanProperty m_SHPTORED
std::shared_ptr< const NSWTrigOut > getOutput(LVL1TGCTrigger::TGCRegionType region, int side, int TGC_TriggerSector) const
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::unique_ptr< TGCElectronicsSystem > m_system
SG::WriteHandleKey< TgcRdoContainer > m_keyTgcRdo