29 const IInterface* parent) :
32 declareInterface<LVL1::IInputTOBConverter>(
this );
66 return StatusCode::SUCCESS;
73 float fEta = muonRoI.
eta();
74 float fPhi = muonRoI.
phi();
89 et = rpcPtValues[thrNumber];
91 et = tgcPtValues[thrNumber];
94 unsigned int EtTopo =
et*10;
100 muon.setEtDouble(
static_cast<double>(EtTopo/10.));
101 muon.setEtaDouble(
static_cast<double>(etaTopo/40.));
102 muon.setPhiDouble(
static_cast<double>(phiTopo/20.));
110 muon.setIs2cand( 0 );
115 muon.setInnerCoin( 0 );
133 Monitored::Group(
m_monTool, mon_hPt, mon_hEta, mon_hPhi, mon_hBW2or3, mon_hInnerCoin, mon_hGoodMF, mon_hCharge, mon_hIs2cand, mon_hIsTGC);
143 <<
", w = " << MSG::hex << std::setw( 8 ) << roi.
getRoiID() << MSG::dec );
150 float fEta = roi.
geteta();
151 float fPhi = roi.
getphi();
161 muon.setEtDouble(
static_cast<double>(EtTopo/10.));
162 muon.setEtaDouble(
static_cast<double>(etaTopo/40.));
163 muon.setPhiDouble(
static_cast<double>(phiTopo/20.));
171 muon.setIs2cand( 0 );
176 muon.setInnerCoin( 0 );
194 Monitored::Group(
m_monTool, mon_hPt, mon_hEta, mon_hPhi, mon_hBW2or3, mon_hInnerCoin, mon_hGoodMF, mon_hCharge, mon_hIs2cand, mon_hIsTGC);
206 float eta = muonRoI.
eta();
207 float phi = muonRoI.
phi();
217 et = rpcPtValues[thrNumber];
219 et = tgcPtValues[thrNumber];
222 unsigned int EtTopo =
et*10;
227 muon.setEtDouble(
static_cast<double>(EtTopo/10.));
228 muon.setEtaDouble(
static_cast<double>(etaTopo/40.));
229 muon.setPhiDouble(
static_cast<double>(phiTopo/20.));
237 muon.setIs2cand( 0 );
242 muon.setInnerCoin( 0 );
260 Monitored::Group(
m_monTool, mon_hLateMuonPt, mon_hLateMuonEta, mon_hLateMuonPhi, mon_hLateMuonBW2or3, mon_hLateMuonInnerCoin, mon_hLateMuonGoodMF, mon_hLateMuonCharge, mon_hLateMuonIs2cand, mon_hLateMuonIsTGC);
276 float fEta = roi.
geteta();
277 float fPhi = roi.
getphi();
287 muon.setEtDouble(
static_cast<double>(EtTopo/10.));
288 muon.setEtaDouble(
static_cast<double>(etaTopo/40.));
289 muon.setPhiDouble(
static_cast<double>(phiTopo/20.));
297 muon.setIs2cand( 0 );
302 muon.setInnerCoin( 0 );
320 Monitored::Group(
m_monTool, mon_hLateMuonPt, mon_hLateMuonEta, mon_hLateMuonPhi, mon_hLateMuonBW2or3, mon_hLateMuonInnerCoin, mon_hLateMuonGoodMF, mon_hLateMuonCharge, mon_hLateMuonIs2cand, mon_hLateMuonIsTGC);
330 if ( flag ==
true ) {
return 1; }
342 ATH_CHECK( detStore()->retrieve(l1menu) );
345 const auto & exMU = l1menu->thrExtraInfo().MU();
346 auto rpcPtValues = exMU.knownRpcPtValues();
347 auto tgcPtValues = exMU.knownTgcPtValues();
350 for (
auto muonRoi : *muonROIs) {
359 const EventContext& ctx = Gaudi::Hive::currentContext();
364 ATH_MSG_DEBUG(
"Contains L1Topo LateMuons L1Muctpi object from StoreGate!" );
366 for(
const auto muonRoi : *latemuonROIs) {
385 ATH_MSG_DEBUG(
"Use MuCTPiToTopo granularity Muon ROIs: retrieve from SG");
387 const std::vector<MuCTPIL1TopoCandidate> & candList = l1topo->
getCandidates();
390 if(muCand.moreThan2CandidatesOverflow()){
392 ATH_MSG_DEBUG(
"setOverflowFromMuonInput : true (MuCTPIL1TopoCandidate from SG)");
396 ATH_MSG_ERROR(
"Couldn't retrieve L1Topo inputs from StoreGate");
397 return StatusCode::FAILURE;
405 ATH_MSG_DEBUG(
"Contains L1Topo LateMuons L1Muctpi object from StoreGate!" );
406 const std::vector<MuCTPIL1TopoCandidate> & candList = l1topoBC1->getCandidates();
415 return StatusCode::SUCCESS;
Scalar eta() const
pseudorapidity method
#define ATH_CHECK
Evaluate an expression and check for errors.
#define CHECK(...)
Evaluate an expression and check for errors.
MuCTPI input class to the L1Topo simulation.
const std::string & getSectorName() const
unsigned int getptThresholdID() const
unsigned int getphicode() const
unsigned int getptValue() const
bool getinnerCoin() const
unsigned int getMioctID() const
unsigned int getRoiID() const
unsigned int getetacode() const
MuCTPI input class to the L1Topo simulation.
const std::vector< MuCTPIL1TopoCandidate > & getCandidates() const
Group of local monitoring quantities and retain correlation when filling histograms
Declare a monitored scalar variable.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const_pointer_type cptr()
Dereference the pointer.
float eta() const
The pseudorapidity ( ) of the muon candidate.
bool getInnerCoincidence() const
Returns whether or not there was an inner coincidence in the TGC.
bool getBW3Coincidence() const
Returns whether or not there was a 3-station coincidence in the TGC.
RoISource getSource() const
Returns the system that detected the muon candidate.
int getThrNumber() const
Get the logic number of the highest threshold this RoI passed.
bool isMoreCandInRoI() const
Returns if there were other muons detected in the same RoI.
float phi() const
The azimuthal angle ( ) of the muon candidate.
@ Barrel
The muon candidate was detected in the barrel region.
Charge getCharge() const
Returns the charge sign of the muon candidate.
int getRoI() const
Get the "RoI number" (position inside the sector)
bool getGoodMF() const
Returns whether or not there was a good magnetic field quality in the TGC.
void setOverflowFromMuonInput(bool v)
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
unsigned int toTopoPhi(float phi)
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Extra patterns decribing particle interation process.