ATLAS Offline Software
TGCOutputModifier.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // First the corresponding header.
7 
11 
12 namespace LVL1TGCTrigger {
13 
14  TGCOutputModifier::TGCOutputModifier( const std::string& name, ISvcLocator* pSvcLocator )
15  :
16  AthReentrantAlgorithm(name, pSvcLocator)
17  {
18  }
19 
21  {
22  }
23 
24 
25 
28  {
29  ATH_MSG_INFO( "=======================================" );
30  ATH_MSG_INFO( "Initialisation for TGCOutputModifier" );
31  ATH_MSG_INFO( "NSWVetoMode="<<m_nswVetoMode.value());
32  ATH_MSG_INFO( "EmulateA="<<m_emulateA.value());
33  ATH_MSG_INFO( "EmulateC="<<m_emulateC.value());
34  ATH_MSG_INFO( "EtaBoundary1="<<m_etaBoundary1.value() );
35  ATH_MSG_INFO( "DeltaEtaCut1="<<m_deltaEtaCut1.value() );
36  ATH_MSG_INFO( "DeltaPhiCut1="<<m_deltaPhiCut1.value() );
37  ATH_MSG_INFO( "DeltaThetaCut1="<<m_deltaThetaCut1.value() );
38  ATH_MSG_INFO( "EtaBoundary2="<<m_etaBoundary2.value() );
39  ATH_MSG_INFO( "DeltaEtaCut2="<<m_deltaEtaCut2.value() );
40  ATH_MSG_INFO( "DeltaPhiCut2="<<m_deltaPhiCut2.value() );
41  ATH_MSG_INFO( "DeltaThetaCut2="<<m_deltaThetaCut2.value() );
42  ATH_MSG_INFO( "InputMuctpiLocation="<<m_inputKey.key() );
43  ATH_MSG_INFO( "OutputMuctpiLocation="<<m_outputKey.key() );
44  ATH_MSG_INFO( "MuonSegmentContainer="<<m_musegKey.key() );
45  ATH_MSG_INFO( "=======================================" );
46 
49  ATH_CHECK(m_recTGCRoiTool.retrieve());
50  ATH_CHECK(m_musegKey.initialize(m_nswVetoMode.value()));
51  return StatusCode::SUCCESS;
52  }
53 
55  StatusCode TGCOutputModifier::execute(const EventContext& eventContext) const
56  {
58  if(!rh_muctpiTgc.isValid()){
59  ATH_MSG_ERROR("Cannot retrieve LVL1MUONIF::Lvl1MuCTPIInputPhase1");
60  return StatusCode::FAILURE;
61  }
62  const LVL1MUONIF::Lvl1MuCTPIInputPhase1* inTgc2Muctpi = rh_muctpiTgc.cptr();
63 
64  std::vector<const xAOD::MuonSegment*> muSegDataColl;
65  if( m_nswVetoMode.value() ){
67  if(!rh_museg.isValid()){
68  ATH_MSG_ERROR("Cannot retrieve xAOD::MuonSegmentContainer");
69  return StatusCode::FAILURE;
70  }
71  const xAOD::MuonSegmentContainer* muSegContainer = rh_museg.cptr();
72  for(auto seg : *muSegContainer){
73  if(seg->chamberIndex() != Muon::MuonStationIndex::EIS &&
74  seg->chamberIndex() != Muon::MuonStationIndex::EIL &&
75  seg->chamberIndex() != Muon::MuonStationIndex::CSS &&
76  seg->chamberIndex() != Muon::MuonStationIndex::CSL )continue;
77  muSegDataColl.push_back(seg);
78  }
79  }
80 
82  ATH_CHECK(wh_muctpiTgc.record(std::make_unique<LVL1MUONIF::Lvl1MuCTPIInputPhase1>()));
83  LVL1MUONIF::Lvl1MuCTPIInputPhase1* outTgc2Muctpi = wh_muctpiTgc.ptr();
84 
87  LVL1MUONIF::Lvl1MuCTPIInputPhase1::MuonSystem::Forward};
88  for(auto isys : tgc_systems){
89  auto data = &inTgc2Muctpi->getData(isys); // const std::vector<Lvl1MuVectWithBC>&
90  for(auto bcmu : *data){ // Lvl1MuVectWithBC
91  int bcid = bcmu.first;
92  auto muvec = bcmu.second; // Lvl1MuVect
93  for(size_t i = 0 ; i < muvec.size() ; i++){ // i = system index = MaxSectors * Side + Sectors
94  auto sectorData = muvec.at(i).get();// std::shared_ptr <Lvl1MuSectorLogicDataPhase1>
95  if(!sectorData){
96  ATH_MSG_WARNING("sectorData is null!");
97  continue;
98  }
101  size_t isub = (i<numberOfSectors)
102  ?(LVL1MUONIF::Lvl1MuCTPIInputPhase1::MuonSubSystem::C_side):(LVL1MUONIF::Lvl1MuCTPIInputPhase1::MuonSubSystem::A_side);
103  size_t isec = i % numberOfSectors;
104  if(i != inTgc2Muctpi->getSystemIndex(isys,isub,isec)){
105  ATH_MSG_WARNING("System Index Mismatch!!");
106  continue;
107  }
109  Copy(sectorData,sldata);
110  Update(muSegDataColl,sldata,isys,isub,isec);
111  outTgc2Muctpi->setSectorLogicData(sldata,isys,isub,isec,bcid);
112  }else if(isys==LVL1MUONIF::Lvl1MuCTPIInputPhase1::MuonSystem::Forward){
114  size_t isub = (i<numberOfSectors)
115  ?(LVL1MUONIF::Lvl1MuCTPIInputPhase1::MuonSubSystem::C_side):(LVL1MUONIF::Lvl1MuCTPIInputPhase1::MuonSubSystem::A_side);
116  size_t isec = i % numberOfSectors;
117  if(i != inTgc2Muctpi->getSystemIndex(isys,isub,isec)){
118  ATH_MSG_WARNING("System Index Mismatch!!");
119  continue;
120  }
122  Copy(sectorData,sldata);
123  Update(muSegDataColl,sldata,isys,isub,isec);
124  outTgc2Muctpi->setSectorLogicData(sldata,isys,isub,isec,bcid);
125  }else{
126  ATH_MSG_WARNING("Unknown system. Barrel? isys="<<isys);
127  }
128  }
129  }
130  }
131 
132  return StatusCode::SUCCESS;
133  }
134 
136  LVL1MUONIF::Lvl1MuSectorLogicDataPhase1& sldataNew ) const
137  {
138  sldataNew.clear2candidatesInSector();
139  if(sldataOrg->is2candidatesInSector()) sldataNew.set2candidatesInSector();
140  sldataNew.bcid(sldataOrg->bcid());
141  for (unsigned int icand=0;
142  icand<LVL1MUONIF::NCAND[LVL1MUONIF::Lvl1MuCTPIInputPhase1::Endcap];icand++){
143  sldataNew.roi(icand,sldataOrg->roi(icand));
144  sldataNew.pt(icand,sldataOrg->pt(icand));
145  sldataNew.ovl(icand,sldataOrg->ovl(icand));
146  sldataNew.charge(icand,sldataOrg->charge(icand));
147  sldataNew.bw2or3(icand,sldataOrg->bw2or3(icand));
148  sldataNew.goodmf(icand,sldataOrg->goodmf(icand));
149  sldataNew.innercoin(icand,sldataOrg->innercoin(icand));
150  sldataNew.clear2candidates(icand);
151  if(sldataOrg->is2candidates(icand))sldataNew.set2candidates(icand);
152  }
153  }
154  void TGCOutputModifier::Update(const std::vector<const xAOD::MuonSegment*>& muSegDataColl,
156  size_t systemId,
157  size_t subSystemId,
158  size_t sectorId) const
159  {
160  if(subSystemId==LVL1MUONIF::Lvl1MuCTPIInputPhase1::idSideA() && !m_emulateA.value()) return;
161  if(subSystemId==LVL1MUONIF::Lvl1MuCTPIInputPhase1::idSideC() && !m_emulateC.value()) return;
162  int tmpside = (subSystemId==LVL1MUONIF::Lvl1MuCTPIInputPhase1::idSideA())?(1):(0);
163  int tmpsector = sectorId;
165  unsigned int sectorAddress = (tmpside) + (tmpsector<<1) + (tmptype<<6);
166  for (unsigned int icand=0;
167  icand<LVL1MUONIF::NCAND[LVL1MUONIF::Lvl1MuCTPIInputPhase1::Endcap];icand++){
168  if(sldata.pt(icand)<0)continue;
169  int roi = sldata.roi(icand);
170  unsigned long int roiWord = (roi<<2)+(sectorAddress<<14);
172  if( !m_recTGCRoiTool->roiData(roiWord,roiData).isSuccess() )continue;
173  TVector3 roiPos;
174  roiPos.SetPtEtaPhi(10,roiData.eta(),roiData.phi());
175  if( std::abs(roiPos.Eta()) < 1.3 ) continue; // only NSW region
176  ATH_MSG_DEBUG("RoI pT=" << sldata.pt(icand)
177  << " roiEta=" << roiPos.Eta()
178  << " roiPhi=" << roiPos.Phi()
179  << " flagF=" << sldata.bw2or3(icand)
180  << " flagC=" << sldata.innercoin(icand)
181  << " flagH=" << sldata.goodmf(icand) );
182  bool matched = !m_nswVetoMode.value();
183  double deltaEtaCut=0,deltaPhiCut=0,deltaThetaCut=0;
184  if( std::abs(roiPos.Eta()) < m_etaBoundary1.value() ){
185  deltaEtaCut=m_deltaEtaCut1.value();
186  deltaPhiCut=m_deltaPhiCut1.value();
187  deltaThetaCut=m_deltaThetaCut1.value();
188  }else if( std::abs(roiPos.Eta()) > m_etaBoundary2.value() ){
189  deltaEtaCut=m_deltaEtaCut2.value();
190  deltaPhiCut=m_deltaPhiCut2.value();
191  deltaThetaCut=m_deltaThetaCut2.value();
192  }else{
193  matched = true;
194  }
195  for(const auto seg : muSegDataColl){
196  TVector3 segPos(seg->x(),seg->y(),seg->z());
197  TVector3 segVec(seg->px(),seg->py(),seg->pz());
198  float deltaEta = std::abs( segPos.Eta() - roiPos.Eta() );
199  float deltaPhi = std::abs( segPos.DeltaPhi( roiPos ) );
200  float deltaTheta = std::abs( segVec.Theta() - segPos.Theta() );
201  bool tmpmatched = (deltaEta < deltaEtaCut &&
202  deltaPhi < deltaPhiCut &&
203  deltaTheta < deltaThetaCut);
204  ATH_MSG_DEBUG(" matched=" << tmpmatched
205  << " RoI pT=" << sldata.pt(icand)
206  << " roiEta=" << roiPos.Eta()
207  << " roiPhi=" << roiPos.Phi()
208  << " segEta=" << segPos.Eta()
209  << " segPhi=" << segPos.Phi()
210  << " segEtaVec=" << segVec.Eta()
211  << " segPhiVec=" << segVec.Phi()
212  << " chi2=" << seg->chiSquared()
213  << " ndof=" << seg->numberDoF()
214  << " sector=" << seg->sector()
215  << " etaIndex=" << seg->etaIndex()
216  << " technology=" << seg->technology()
217  << " nPrecisionHits=" << seg->nPrecisionHits()
218  << " nPhiLayers=" << seg->nPhiLayers()
219  << " nTrigEtaLayers=" << seg->nTrigEtaLayers()
220  << " deltaEta=" << deltaEta
221  << " deltaPhi=" << deltaPhi
222  << " deltaTheta=" << deltaTheta);
223  matched |= tmpmatched;
224  }
225  sldata.innercoin(icand,matched);
226  }
227  }
228 
229 }
230 
231 
LVL1MUONIF::Lvl1MuCTPIInputPhase1::NumberOfForwardSector
@ NumberOfForwardSector
Definition: Lvl1MuCTPIInputPhase1.h:53
LVL1MUONIF::Lvl1MuCTPIInputPhase1::setSectorLogicData
void setSectorLogicData(const Lvl1MuSectorLogicDataPhase1 &data, size_t systemAddress, size_t subSystemAddress, size_t sectorAddress, int bcid=0)
Definition: Lvl1MuCTPIInputPhase1.cxx:74
LVL1::TrigT1MuonRecRoiData
Definition: TrigT1MuonRecRoiData.h:10
Muon::MuonStationIndex::CSS
@ CSS
Definition: MuonStationIndex.h:18
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
LVL1MUONIF::Lvl1MuCTPIInputPhase1::idForwardSystem
static size_t idForwardSystem()
Definition: Lvl1MuCTPIInputPhase1.h:138
DetType::Endcap
@ Endcap
Definition: DetType.h:14
LVL1TGCTrigger::TGCOutputModifier::m_outputKey
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInputPhase1 > m_outputKey
Definition: TGCOutputModifier.h:51
LVL1TGCTrigger::TGCOutputModifier::~TGCOutputModifier
virtual ~TGCOutputModifier()
Definition: TGCOutputModifier.cxx:20
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Lvl1MuSectorLogicConstantsPhase1.h
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::innercoin
int innercoin(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:56
xAOD::deltaPhi
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
Definition: L2StandAloneMuon_v1.cxx:160
LVL1TGCTrigger::TGCOutputModifier::Update
void Update(const std::vector< const xAOD::MuonSegment * > &segs, LVL1MUONIF::Lvl1MuSectorLogicDataPhase1 &sldata, size_t systemAddress, size_t subSystemAddress, size_t sectorAddress) const
Definition: TGCOutputModifier.cxx:154
LVL1MUONIF::Lvl1MuCTPIInputPhase1
Class representing (part of) the input data to the MuCTPI for Phase 1.
Definition: Lvl1MuCTPIInputPhase1.h:33
LVL1::TrigT1MuonRecRoiData::eta
double eta(void) const
Definition: TrigT1MuonRecRoiData.h:22
LVL1TGCTrigger::TGCOutputModifier::m_deltaThetaCut2
DoubleProperty m_deltaThetaCut2
Definition: TGCOutputModifier.h:57
LVL1TGCTrigger::TGCOutputModifier::m_emulateC
BooleanProperty m_emulateC
Definition: TGCOutputModifier.h:63
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::bw2or3
int bw2or3(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:57
LVL1TGCTrigger::TGCOutputModifier::m_emulateA
BooleanProperty m_emulateA
Definition: TGCOutputModifier.h:62
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
LVL1MUONIF::Lvl1MuCTPIInputPhase1::MuonSystem
MuonSystem
Definition: Lvl1MuCTPIInputPhase1.h:47
LVL1MUONIF::Lvl1MuEndcapSectorLogicDataPhase1
Class representing data from an endcap SL board.
Definition: Lvl1MuEndcapSectorLogicDataPhase1.h:26
Muon::MuonStationIndex::EIS
@ EIS
Definition: MuonStationIndex.h:18
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::ovl
int ovl(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:51
LVL1TGCTrigger::TGCOutputModifier::m_etaBoundary1
DoubleProperty m_etaBoundary1
Definition: TGCOutputModifier.h:60
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
TGCOutputModifier.h
Lvl1MuCTPIInputPhase1.h
xAOD::roiWord
roiWord
Definition: TrigMissingET_v1.cxx:36
LVL1TGCTrigger::TGCOutputModifier::Copy
void Copy(const LVL1MUONIF::Lvl1MuSectorLogicDataPhase1 *sldataOrg, LVL1MUONIF::Lvl1MuSectorLogicDataPhase1 &sldataNew) const
Definition: TGCOutputModifier.cxx:135
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::set2candidatesInSector
void set2candidatesInSector()
Definition: Lvl1MuSectorLogicDataPhase1.h:60
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
P4Helpers::deltaEta
double deltaEta(const I4Momentum &p1, const I4Momentum &p2)
Computes efficiently .
Definition: P4Helpers.h:53
lumiFormat.i
int i
Definition: lumiFormat.py:92
LVL1MUONIF::Lvl1MuCTPIInputPhase1::idSideA
static size_t idSideA()
Definition: Lvl1MuCTPIInputPhase1.h:140
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::WriteHandle::ptr
pointer_type ptr()
Dereference the pointer.
LVL1TGCTrigger::TGCOutputModifier::m_deltaThetaCut1
DoubleProperty m_deltaThetaCut1
Definition: TGCOutputModifier.h:54
LVL1TGCTrigger::TGCOutputModifier::TGCOutputModifier
TGCOutputModifier(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TGCOutputModifier.cxx:14
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LVL1MUONIF::Lvl1MuCTPIInputPhase1::getSystemIndex
size_t getSystemIndex(size_t systemAddress, size_t subSystemAddress, size_t sectorAddress) const
Definition: Lvl1MuCTPIInputPhase1.h:158
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::clear2candidates
void clear2candidates(size_t id)
Definition: Lvl1MuSectorLogicDataPhase1.h:69
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1
Base class for the data coming from one SL board.
Definition: Lvl1MuSectorLogicDataPhase1.h:35
CaloCondBlobAlgs_fillNoiseFromASCII.systemId
systemId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:108
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::charge
int charge(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:53
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
LVL1::TrigT1MuonRecRoiData::phi
double phi(void) const
Definition: TrigT1MuonRecRoiData.h:23
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
LVL1TGCTrigger
Definition: LVL1TGCTrigger.cxx:47
LVL1MUONIF::Lvl1MuCTPIInputPhase1::NumberOfEndcapSector
@ NumberOfEndcapSector
Definition: Lvl1MuCTPIInputPhase1.h:52
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::set2candidates
void set2candidates(size_t id)
Definition: Lvl1MuSectorLogicDataPhase1.h:68
LVL1TGCTrigger::TGCOutputModifier::m_nswVetoMode
BooleanProperty m_nswVetoMode
Definition: TGCOutputModifier.h:64
LVL1TGCTrigger::TGCOutputModifier::initialize
virtual StatusCode initialize() override
Regular Gaudi algorithm initialization function.
Definition: TGCOutputModifier.cxx:27
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LVL1TGCTrigger::TGCOutputModifier::m_musegKey
SG::ReadHandleKey< xAOD::MuonSegmentContainer > m_musegKey
Definition: TGCOutputModifier.h:53
LVL1TGCTrigger::TGCOutputModifier::m_inputKey
SG::ReadHandleKey< LVL1MUONIF::Lvl1MuCTPIInputPhase1 > m_inputKey
Definition: TGCOutputModifier.h:50
LVL1TGCTrigger::TGCOutputModifier::m_deltaEtaCut2
DoubleProperty m_deltaEtaCut2
Definition: TGCOutputModifier.h:58
python.ElectronD3PDObject.matched
matched
Definition: ElectronD3PDObject.py:138
LVL1MUONIF::Lvl1MuForwardSectorLogicDataPhase1
Class representing data from an forward SL board.
Definition: Lvl1MuForwardSectorLogicDataPhase1.h:26
LVL1TGCTrigger::TGCOutputModifier::m_deltaPhiCut1
DoubleProperty m_deltaPhiCut1
Definition: TGCOutputModifier.h:56
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition: EventInfo_v1.cxx:133
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::goodmf
int goodmf(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:55
LVL1TGCTrigger::TGCOutputModifier::m_deltaEtaCut1
DoubleProperty m_deltaEtaCut1
Definition: TGCOutputModifier.h:55
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::pt
int pt(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:52
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
MuCTPIL1Topo.h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LVL1MUONIF::Lvl1MuCTPIInputPhase1::idSideC
static size_t idSideC()
Definition: Lvl1MuCTPIInputPhase1.h:141
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::is2candidates
bool is2candidates(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:54
LVL1TGCTrigger::TGCOutputModifier::m_etaBoundary2
DoubleProperty m_etaBoundary2
Definition: TGCOutputModifier.h:61
LVL1TGCTrigger::TGCOutputModifier::m_recTGCRoiTool
ToolHandle< LVL1::ITrigT1MuonRecRoiTool > m_recTGCRoiTool
Definition: TGCOutputModifier.h:52
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::roi
int roi(size_t id) const
Definition: Lvl1MuSectorLogicDataPhase1.h:50
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::bcid
int bcid() const
Definition: Lvl1MuSectorLogicDataPhase1.h:48
LVL1TGCTrigger::TGCOutputModifier::execute
virtual StatusCode execute(const EventContext &eventContext) const override
Regular Gaudi algorithm execute function.
Definition: TGCOutputModifier.cxx:55
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::clear2candidatesInSector
void clear2candidatesInSector()
Definition: Lvl1MuSectorLogicDataPhase1.h:61
LVL1TGCTrigger::TGCOutputModifier::m_deltaPhiCut2
DoubleProperty m_deltaPhiCut2
Definition: TGCOutputModifier.h:59
LVL1MUONIF::Lvl1MuSectorLogicDataPhase1::is2candidatesInSector
bool is2candidatesInSector() const
Definition: Lvl1MuSectorLogicDataPhase1.h:47
LVL1MUONIF::Lvl1MuCTPIInputPhase1::Endcap
@ Endcap
Definition: Lvl1MuCTPIInputPhase1.h:47
LVL1MUONIF::Lvl1MuCTPIInputPhase1::getData
const std::vector< Lvl1MuVectWithBC > & getData(MuonSystem system) const
Definition: Lvl1MuCTPIInputPhase1.h:181
Muon::MuonStationIndex::CSL
@ CSL
Definition: MuonStationIndex.h:18
Muon::MuonStationIndex::EIL
@ EIL
Definition: MuonStationIndex.h:18