CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
OMTFinputMaker Class Reference

#include <OMTFinputMaker.h>

Public Member Functions

OMTFinput buildInputForProcessor (const L1MuDTChambPhContainer *dtPhDigis, const L1MuDTChambThContainer *dtThDigis, const CSCCorrelatedLCTDigiCollection *cscDigis, const RPCDigiCollection *rpcDigis, unsigned int iProcessor, l1t::tftype type=l1t::tftype::omtf_pos)
 Method translating trigger digis into input matrix with global phi coordinates. More...
 
void initialize (const edm::EventSetup &es)
 
 OMTFinputMaker ()
 
 ~OMTFinputMaker ()
 

Private Member Functions

bool acceptDigi (uint32_t rawId, unsigned int iProcessor, l1t::tftype type)
 
unsigned int getInputNumber (unsigned int rawId, unsigned int iProcessor, l1t::tftype type)
 
OMTFinput processCSC (const CSCCorrelatedLCTDigiCollection *cscDigis, unsigned int iProcessor, l1t::tftype type)
 
OMTFinput processDT (const L1MuDTChambPhContainer *dtPhDigis, const L1MuDTChambThContainer *dtThDigis, unsigned int iProcessor, l1t::tftype type)
 
OMTFinput processRPC (const RPCDigiCollection *rpcDigis, unsigned int iProcessor, l1t::tftype type)
 

Private Attributes

AngleConverter myAngleConverter
 

Detailed Description

Definition at line 20 of file OMTFinputMaker.h.

Constructor & Destructor Documentation

OMTFinputMaker::OMTFinputMaker ( )

Definition at line 21 of file OMTFinputMaker.cc.

21 {}
OMTFinputMaker::~OMTFinputMaker ( )

Definition at line 30 of file OMTFinputMaker.cc.

30 { }

Member Function Documentation

bool OMTFinputMaker::acceptDigi ( uint32_t  rawId,
unsigned int  iProcessor,
l1t::tftype  type 
)
private

Check if digis are within a give processor input. Simply checks sectors range.

Clean up digis. Remove unconnected detectors

Select RPC chambers connected to OMTF

RPC RE1/2 temporarily not used (aId.region()==1 && aId.station()==1 && aId.ring()<2) ||

Definition at line 33 of file OMTFinputMaker.cc.

References OMTFConfiguration::barrelMax, OMTFConfiguration::barrelMin, l1t::bmtf, CSCDetId::chamber(), MuonSubdetId::CSC, DetId::det(), MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, CSCDetId::endcap(), OMTFConfiguration::endcap10DegMax, OMTFConfiguration::endcap10DegMin, OMTFConfiguration::endcap20DegMax, OMTFConfiguration::endcap20DegMin, OMTFConfiguration::instance(), RPCDetId::layer(), DetId::Muon, l1t::omtf_neg, l1t::omtf_pos, RPCDetId::region(), RPCDetId::ring(), CSCDetId::ring(), RPCDetId::roll(), MuonSubdetId::RPC, DTChamberId::sector(), RPCDetId::sector(), CSCDetId::station(), RPCDetId::station(), DetId::subdetId(), RPCDetId::subsector(), and DTChamberId::wheel().

Referenced by processCSC(), processDT(), and processRPC().

35  {
36 
37  unsigned int aMin = OMTFConfiguration::instance()->barrelMin[iProcessor];
38  unsigned int aMax = OMTFConfiguration::instance()->barrelMax[iProcessor];
39  unsigned int aSector = 99;
40 
42  DetId detId(rawId);
43  if (detId.det() != DetId::Muon)
44  edm::LogError("Critical OMTFinputMaker") << "PROBLEM: hit in unknown Det, detID: "<<detId.det()<<std::endl;
45  switch (detId.subdetId()) {
46  case MuonSubdetId::RPC: {
47  RPCDetId aId(rawId);
48 
51  (aId.region()<0 ||
52  (aId.region()==0 && aId.ring()!=2) ||
53  (aId.region()==0 && aId.station()==4) ||
54  (aId.region()==0 && aId.station()==2 && aId.layer()==2 && aId.roll()==1) ||
55  (aId.region()==0 && aId.station()==3 && aId.roll()==1) ||
56  (aId.region()==1 && aId.station()==4) ||
58  (aId.region()==1 && aId.station()>0 && aId.ring()<3))
59  ) return false;
60 
62  (aId.region()>0 ||
63  (aId.region()==0 && aId.ring()!=-2) ||
64  (aId.region()==0 && aId.station()==4) ||
65  (aId.region()==0 && aId.station()==2 && aId.layer()==2 && aId.roll()==1) ||
66  (aId.region()==0 && aId.station()==3 && aId.roll()==1) ||
67  (aId.region()==-1 && aId.station()==4) ||
68  //RPC RE1/2 temporarily not used (aId.region()==1 && aId.station()==1 && aId.ring()<2) ||
69  (aId.region()==-1 && aId.station()>0 && aId.ring()<3))
70  ) return false;
71 
72  if(type==l1t::tftype::bmtf && aId.region()!=0) return false;
73 
75  (aId.region()<=0 ||
76  (aId.station()==1 && aId.ring()==3))) return false;
78  (aId.region()>=0 ||
79  (aId.station()==1 && aId.ring()==3))) return false;
81  if(aId.region()==0) aSector = aId.sector();
82  if(aId.region()!=0){
83  aSector = (aId.sector()-1)*6+aId.subsector();
84  aMin = OMTFConfiguration::instance()->endcap10DegMin[iProcessor];
85  aMax = OMTFConfiguration::instance()->endcap10DegMax[iProcessor];
86  }
87 
88  break;
89  }
90  case MuonSubdetId::DT: {
91  DTChamberId dt(rawId);
92 
93  if(type==l1t::tftype::omtf_pos && dt.wheel()!=2) return false;
94  if(type==l1t::tftype::omtf_neg && dt.wheel()!=-2) return false;
96 
97  aSector = dt.sector();
98  break;
99  }
100  case MuonSubdetId::CSC: {
101 
102  CSCDetId csc(rawId);
104  (csc.endcap()==2 || csc.ring()==1 || csc.station()==4)) return false;
106  (csc.endcap()==1 || csc.ring()==1 || csc.station()==4)) return false;
107 
109  (csc.endcap()==2 || (csc.station()==1 && csc.ring()==3))
110  ) return false;
112  (csc.endcap()==1 || (csc.station()==1 && csc.ring()==3))
113  ) return false;
114 
115  aSector = csc.chamber();
116 
117  aMin = OMTFConfiguration::instance()->endcap10DegMin[iProcessor];
118  aMax = OMTFConfiguration::instance()->endcap10DegMax[iProcessor];
119 
121  csc.station()>1 && csc.ring()==1){
122  aMin = OMTFConfiguration::instance()->endcap20DegMin[iProcessor];
123  aMax = OMTFConfiguration::instance()->endcap20DegMax[iProcessor];
124  }
125  break;
126  }
127  }
128 
129  if(aMax>aMin && aSector>=aMin && aSector<=aMax) return true;
130  if(aMax<aMin && (aSector>=aMin || aSector<=aMax)) return true;
131 
132  return false;
133 }
std::vector< unsigned int > endcap20DegMax
type
Definition: HCALResponse.h:21
float dt
Definition: AMPTWrapper.h:126
std::vector< unsigned int > endcap10DegMin
std::vector< unsigned int > endcap20DegMin
std::vector< unsigned int > endcap10DegMax
static const int CSC
Definition: MuonSubdetId.h:13
Definition: DetId.h:18
std::vector< unsigned int > barrelMin
static const int RPC
Definition: MuonSubdetId.h:14
static const int DT
Definition: MuonSubdetId.h:12
static const OMTFConfiguration * instance()
std::vector< unsigned int > barrelMax
OMTFinput OMTFinputMaker::buildInputForProcessor ( const L1MuDTChambPhContainer dtPhDigis,
const L1MuDTChambThContainer dtThDigis,
const CSCCorrelatedLCTDigiCollection cscDigis,
const RPCDigiCollection rpcDigis,
unsigned int  iProcessor,
l1t::tftype  type = l1t::tftype::omtf_pos 
)

Method translating trigger digis into input matrix with global phi coordinates.

Definition at line 360 of file OMTFinputMaker.cc.

References processCSC(), processDT(), processRPC(), and mps_fire::result.

Referenced by OMTFPatternMaker::analyze(), and OMTFReconstruction::getProcessorCandidates().

365  {
366 
368  result += processDT(dtPhDigis, dtThDigis, iProcessor, type);
369  result += processCSC(cscDigis, iProcessor, type);
370  result += processRPC(rpcDigis, iProcessor, type);
371  return result;
372 }
type
Definition: HCALResponse.h:21
OMTFinput processCSC(const CSCCorrelatedLCTDigiCollection *cscDigis, unsigned int iProcessor, l1t::tftype type)
OMTFinput processRPC(const RPCDigiCollection *rpcDigis, unsigned int iProcessor, l1t::tftype type)
tuple result
Definition: mps_fire.py:95
OMTFinput processDT(const L1MuDTChambPhContainer *dtPhDigis, const L1MuDTChambThContainer *dtThDigis, unsigned int iProcessor, l1t::tftype type)
unsigned int OMTFinputMaker::getInputNumber ( unsigned int  rawId,
unsigned int  iProcessor,
l1t::tftype  type 
)
private

Give input number for givedn processor, using the chamber sector number. Result is modulo allowed number of hits per chamber

on the 0-2pi border we need to add 1 30 deg sector to get the correct index

Set roll number by hand to keep common input number shift formula for all stations

Only one roll from station 3 is connected.

At the moment do not use RPC chambers splitting into rolls for bmtf part

on the 0-2pi border we need to add 4 10 deg sectors to get the correct index

on the 0-2pi border we need to add 1 30 deg sector to get the correct index

on the 0-2pi border we need to add 4 10deg sectors to get the correct index

Endcap region covers algo 10 deg sectors on the 0-2pi border we need to add 2 20deg sectors to get the correct index

Assume 2 hits per chamber

Chambers divided into two rolls have rolls number 1 and 3

Definition at line 136 of file OMTFinputMaker.cc.

References OMTFConfiguration::barrelMin, l1t::bmtf, CSCDetId::chamber(), MuonSubdetId::CSC, DetId::det(), MuonSubdetId::DT, dt, l1t::emtf_neg, l1t::emtf_pos, OMTFConfiguration::endcap10DegMin, OMTFConfiguration::endcap20DegMin, OMTFConfiguration::instance(), RPCDetId::layer(), DetId::Muon, RPCDetId::region(), CSCDetId::ring(), RPCDetId::roll(), MuonSubdetId::RPC, DTChamberId::sector(), RPCDetId::sector(), CSCDetId::station(), RPCDetId::station(), DetId::subdetId(), and RPCDetId::subsector().

Referenced by processCSC(), processDT(), and processRPC().

138  {
139 
140  unsigned int iInput = 99;
141  unsigned int aSector = 99;
142  int aMin = OMTFConfiguration::instance()->barrelMin[iProcessor];
143  int iRoll = 1;
144  int nInputsPerSector = 2;
145 
146  DetId detId(rawId);
147  if (detId.det() != DetId::Muon) edm::LogError("Critical OMTFinputMaker") << "PROBLEM: hit in unknown Det, detID: "<<detId.det()<<std::endl;
148  switch (detId.subdetId()) {
149  case MuonSubdetId::RPC: {
150  RPCDetId rpc(rawId);
151  if(rpc.region()==0){
152  nInputsPerSector = 4;
153  aSector = rpc.sector();
156  if(iProcessor==5 && aSector<3) aMin = -1;
157  //Use division into rolls
158  iRoll = rpc.roll();
161  if(rpc.station()==2 && rpc.layer()==2 && rpc.roll()==2) iRoll = 1;
163  if(rpc.station()==3){
164  iRoll = 1;
165  nInputsPerSector = 2;
166  }
168  if(type==l1t::tftype::bmtf)iRoll = 1;
169  }
170  if(rpc.region()!=0){
171  aSector = (rpc.sector()-1)*6+rpc.subsector();
172  aMin = OMTFConfiguration::instance()->endcap10DegMin[iProcessor];
175  if(iProcessor==5 && aSector<5) aMin = -4;
176  }
177  break;
178  }
179  case MuonSubdetId::DT: {
180  DTChamberId dt(rawId);
181  aSector = dt.sector();
184  if(iProcessor==5 && aSector<3) aMin = -1;
185  break;
186  }
187  case MuonSubdetId::CSC: {
188  CSCDetId csc(rawId);
189  aSector = csc.chamber();
190  aMin = OMTFConfiguration::instance()->endcap10DegMin[iProcessor];
193  if(iProcessor==5 && aSector<5) aMin = -4;
198  csc.station()>1 && csc.ring()==1){
199  aMin = OMTFConfiguration::instance()->endcap20DegMin[iProcessor];
200  if(iProcessor==5 && aSector<3) aMin = -2;
201  }
202  break;
203  }
204  }
205 
207  iInput = (aSector - aMin)*nInputsPerSector;
209  iInput+=iRoll-1;
210 
211  return iInput;
212 }
type
Definition: HCALResponse.h:21
float dt
Definition: AMPTWrapper.h:126
std::vector< unsigned int > endcap10DegMin
std::vector< unsigned int > endcap20DegMin
static const int CSC
Definition: MuonSubdetId.h:13
Definition: DetId.h:18
std::vector< unsigned int > barrelMin
static const int RPC
Definition: MuonSubdetId.h:14
static const int DT
Definition: MuonSubdetId.h:12
static const OMTFConfiguration * instance()
void OMTFinputMaker::initialize ( const edm::EventSetup es)

Definition at line 24 of file OMTFinputMaker.cc.

References AngleConverter::checkAndUpdateGeometry(), and myAngleConverter.

Referenced by OMTFPatternMaker::analyze(), and OMTFReconstruction::reconstruct().

25 {
27 }
AngleConverter myAngleConverter
void checkAndUpdateGeometry(const edm::EventSetup &)
Update the Geometry with current Event Setup.
OMTFinput OMTFinputMaker::processCSC ( const CSCCorrelatedLCTDigiCollection cscDigis,
unsigned int  iProcessor,
l1t::tftype  type 
)
private

Take the CSC digis, select chambers connected to given processor, convers logal angles to global scale. For CSC do NOT take the bending angle.

Check it the data fits into given processor input range

Check Trigger primitive quality. CSC central BX is 6 for some reason.

Accept CSC digis only up to eta=1.26. The nominal OMTF range is up to 1.24, but cutting at 1.24 kill efficnency at the edge. 1.26 is one eta bin above nominal.

Definition at line 257 of file OMTFinputMaker.cc.

References funct::abs(), acceptDigi(), OMTFinput::addLayerHit(), CSCDetId, AngleConverter::getGlobalEta(), getInputNumber(), OMTFConfiguration::getLayerNumber(), AngleConverter::getProcessorPhi(), OMTFConfiguration::hwToLogicLayer, OMTFConfiguration::instance(), myAngleConverter, and mps_fire::result.

Referenced by buildInputForProcessor().

259  {
260 
262  if(!cscDigis) return result;
263 
264  auto chamber = cscDigis->begin();
265  auto chend = cscDigis->end();
266  for( ; chamber != chend; ++chamber ) {
267 
268  unsigned int rawid = (*chamber).first;
270  if(!acceptDigi(rawid, iProcessor, type)) continue;
271  auto digi = (*chamber).second.first;
272  auto dend = (*chamber).second.second;
273  for( ; digi != dend; ++digi ) {
274 
277  if (abs(digi->getBX()- 6)>0) continue;
278 
279  unsigned int hwNumber = OMTFConfiguration::instance()->getLayerNumber(rawid);
280  if(OMTFConfiguration::instance()->hwToLogicLayer.find(hwNumber)==OMTFConfiguration::instance()->hwToLogicLayer.end()) continue;
281 
282 
283  //unsigned int iLayer = OMTFConfiguration::instance()->hwToLogicLayer[hwNumber];
284  auto iter = OMTFConfiguration::instance()->hwToLogicLayer.find(hwNumber);
285  unsigned int iLayer = iter->second;
286 
287  int iPhi = myAngleConverter.getProcessorPhi(iProcessor, type, CSCDetId(rawid), *digi);
288  int iEta = myAngleConverter.getGlobalEta(rawid, *digi);
292  if(abs(iEta)>1.26/2.61*240) continue;
293  unsigned int iInput= getInputNumber(rawid, iProcessor, type);
294  result.addLayerHit(iLayer,iInput,iPhi,iEta);
295  }
296  }
297  return result;
298 }
type
Definition: HCALResponse.h:21
int getGlobalEta(unsigned int rawid, const L1MuDTChambPhDigi &aDigi, const L1MuDTChambThContainer *dtThDigis)
Convert local eta coordinate to global digital microGMT scale.
tuple result
Definition: mps_fire.py:95
int getProcessorPhi(unsigned int iProcessor, l1t::tftype part, const L1MuDTChambPhDigi &digi) const
AngleConverter myAngleConverter
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool acceptDigi(uint32_t rawId, unsigned int iProcessor, l1t::tftype type)
uint32_t getLayerNumber(uint32_t rawId) const
unsigned int getInputNumber(unsigned int rawId, unsigned int iProcessor, l1t::tftype type)
std::map< int, int > hwToLogicLayer
bool addLayerHit(unsigned int iLayer, unsigned int iInput, int iPhi, int iEta)
Definition: OMTFinput.cc:45
static const OMTFConfiguration * instance()
OMTFinput OMTFinputMaker::processDT ( const L1MuDTChambPhContainer dtPhDigis,
const L1MuDTChambThContainer dtThDigis,
unsigned int  iProcessor,
l1t::tftype  type 
)
private

Take the DT digis, select chambers connected to given processor, convers logal angles to global scale. For DT take also the bending angle.

Check it the data fits into given processor input range

Check Trigger primitive quality Ts2Tag() == 0 - take only first track from DT Trigger Server BxCnt() == 0 - ?? code()>=3 - take only double layer hits, HH, HL and LL

Definition at line 215 of file OMTFinputMaker.cc.

References acceptDigi(), OMTFinput::addLayerHit(), L1MuDTChambPhContainer::getContainer(), AngleConverter::getGlobalEta(), getInputNumber(), OMTFConfiguration::getLayerNumber(), AngleConverter::getProcessorPhi(), OMTFConfiguration::hwToLogicLayer, OMTFConfiguration::instance(), myAngleConverter, and mps_fire::result.

Referenced by buildInputForProcessor().

219 {
220 
222  if(!dtPhDigis) return result;
223 
224  for (const auto digiIt: *dtPhDigis->getContainer()) {
225 
226  DTChamberId detid(digiIt.whNum(),digiIt.stNum(),digiIt.scNum()+1);
227 
229  if(!acceptDigi(detid.rawId(), iProcessor, type)) continue;
230 
235  // FIXME (MK): at least Ts2Tag selection is not correct! Check it
236  if (digiIt.bxNum()!= 0 || digiIt.BxCnt()!= 0 || digiIt.Ts2Tag()!= 0 || digiIt.code()<4) continue;
237 
238  unsigned int hwNumber = OMTFConfiguration::instance()->getLayerNumber(detid.rawId());
240 
241  //unsigned int iLayer = OMTFConfiguration::instance()->hwToLogicLayer[hwNumber];
242  auto iter = OMTFConfiguration::instance()->hwToLogicLayer.find(hwNumber);
243  unsigned int iLayer = iter->second;
244 
245  int iPhi = myAngleConverter.getProcessorPhi(iProcessor, type, digiIt);
246  int iEta = myAngleConverter.getGlobalEta(detid.rawId(), digiIt, dtThDigis);
247  unsigned int iInput= getInputNumber(detid.rawId(), iProcessor, type);
248  result.addLayerHit(iLayer,iInput,iPhi,iEta);
249  result.addLayerHit(iLayer+1,iInput,digiIt.phiB(),iEta);
250  }
251 
252  return result;
253 
254 }
type
Definition: HCALResponse.h:21
int getGlobalEta(unsigned int rawid, const L1MuDTChambPhDigi &aDigi, const L1MuDTChambThContainer *dtThDigis)
Convert local eta coordinate to global digital microGMT scale.
tuple result
Definition: mps_fire.py:95
int getProcessorPhi(unsigned int iProcessor, l1t::tftype part, const L1MuDTChambPhDigi &digi) const
AngleConverter myAngleConverter
bool acceptDigi(uint32_t rawId, unsigned int iProcessor, l1t::tftype type)
uint32_t getLayerNumber(uint32_t rawId) const
unsigned int getInputNumber(unsigned int rawId, unsigned int iProcessor, l1t::tftype type)
Phi_Container const * getContainer() const
std::map< int, int > hwToLogicLayer
bool addLayerHit(unsigned int iLayer, unsigned int iInput, int iPhi, int iEta)
Definition: OMTFinput.cc:45
static const OMTFConfiguration * instance()
OMTFinput OMTFinputMaker::processRPC ( const RPCDigiCollection rpcDigis,
unsigned int  iProcessor,
l1t::tftype  type 
)
private

Decluster nearby hits in single chamber, by taking average cluster position, expressed in half RPC strip: pos = (cluster_begin + cluster_end)

Find clusters of consecutive fired strips. Have to copy the digis in chamber to sort them (not optimal). NOTE: when copying I select only digis with bx==0 //FIXME: find a better place/way to filtering digi against quality/BX etc.

Definition at line 304 of file OMTFinputMaker.cc.

References acceptDigi(), OMTFinput::addLayerHit(), RPCDigi::bx(), HLT_FULL_cff::clusters, AngleConverter::getGlobalEta(), getInputNumber(), OMTFConfiguration::getLayerNumber(), AngleConverter::getProcessorPhi(), OMTFConfiguration::hwToLogicLayer, OMTFConfiguration::instance(), myAngleConverter, DetId::rawId(), mps_fire::result, reco::return(), and rpcPrimitiveCmp().

Referenced by buildInputForProcessor().

306  {
307 
308  OMTFinput result;
309  if(!rpcDigis) return result;
310  std::stringstream str;
311 
312  const RPCDigiCollection & rpcDigiCollection = *rpcDigis;
313  for (auto rollDigis : rpcDigiCollection) {
314  RPCDetId roll = rollDigis.first;
315  unsigned int rawid = roll.rawId();
316  if(!acceptDigi(rawid, iProcessor, type)) continue;
320  std::vector<RPCDigi> digisCopy;
321  std::copy_if(rollDigis.second.first, rollDigis.second.second, std::back_inserter(digisCopy), [](const RPCDigi & aDigi){return (aDigi.bx()==0);});
322  std::sort(digisCopy.begin(),digisCopy.end(),rpcPrimitiveCmp);
323  typedef std::pair<unsigned int, unsigned int> Cluster;
324  std::vector<Cluster> clusters;
325  for(auto & digi: digisCopy) {
326  if(clusters.empty()) clusters.push_back(Cluster(digi.strip(),digi.strip()));
327  else if (digi.strip() - clusters.back().second == 1) clusters.back().second = digi.strip();
328  else if (digi.strip() - clusters.back().second > 1) clusters.push_back(Cluster(digi.strip(),digi.strip()));
329  }
330 
331  for (auto & cluster: clusters) {
332  int iPhiHalfStrip1 = myAngleConverter.getProcessorPhi(iProcessor, type, roll, cluster.first);
333  int iPhiHalfStrip2 = myAngleConverter.getProcessorPhi(iProcessor, type, roll, cluster.second);
334  int iPhi = (iPhiHalfStrip1+iPhiHalfStrip2)/2;
335  int iEta = myAngleConverter.getGlobalEta(rawid, cluster.first);
336  unsigned int hwNumber = OMTFConfiguration::instance()->getLayerNumber(rawid);
337  //unsigned int iLayer = OMTFConfiguration::instance()->hwToLogicLayer[hwNumber];
338  auto iter = OMTFConfiguration::instance()->hwToLogicLayer.find(hwNumber);
339  unsigned int iLayer = iter->second;
340 
341  unsigned int iInput= getInputNumber(rawid, iProcessor, type);
342  result.addLayerHit(iLayer,iInput,iPhi,iEta);
343 
344  str<<" RPC halfDigi "
345  <<" begin: "<<cluster.first<<" end: "<<cluster.second
346  <<" iPhi: "<<iPhi
347  <<" iEta: "<<iEta
348  <<" hwNumber: "<<hwNumber
349  <<" iInput: "<<iInput
350  <<" iLayer: "<<iLayer
351  <<std::endl;
352  }
353  }
354 
355  edm::LogInfo("OMTFInputMaker")<<str.str();
356  return result;
357 }
type
Definition: HCALResponse.h:21
int bx() const
Definition: RPCDigi.cc:47
int getGlobalEta(unsigned int rawid, const L1MuDTChambPhDigi &aDigi, const L1MuDTChambThContainer *dtThDigis)
Convert local eta coordinate to global digital microGMT scale.
tuple result
Definition: mps_fire.py:95
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
int getProcessorPhi(unsigned int iProcessor, l1t::tftype part, const L1MuDTChambPhDigi &digi) const
AngleConverter myAngleConverter
bool acceptDigi(uint32_t rawId, unsigned int iProcessor, l1t::tftype type)
uint32_t getLayerNumber(uint32_t rawId) const
unsigned int getInputNumber(unsigned int rawId, unsigned int iProcessor, l1t::tftype type)
std::map< int, int > hwToLogicLayer
return(e1-e2)*(e1-e2)+dp *dp
bool rpcPrimitiveCmp(const RPCDigi &a, const RPCDigi &b)
bool addLayerHit(unsigned int iLayer, unsigned int iInput, int iPhi, int iEta)
Definition: OMTFinput.cc:45
static const OMTFConfiguration * instance()

Member Data Documentation

AngleConverter OMTFinputMaker::myAngleConverter
private

Definition at line 76 of file OMTFinputMaker.h.

Referenced by initialize(), processCSC(), processDT(), and processRPC().