17 int aPhiMin,
int aPhiMax,
19 unsigned int aRefLayer):
23 range(std::pair<int,int>(aPhiMin,aPhiMax)){}
28 return iPhi>=
range.first &&
38 <<
" iInput: "<<aRefHitDef.
iInput
39 <<
" iRegion: "<<aRefHitDef.
iRegion
40 <<
" range: ("<<aRefHitDef.
range.first
41 <<
", "<<aRefHitDef.
range.second<<std::endl;
50 std::vector<int> aLayer1D(
nInputs(),0);
54 aLayer2D.assign(
nLayers(),aLayer1D);
83 std::copy(connectedSectorsStartVec->begin(), connectedSectorsStartVec->begin()+6,
barrelMin.begin());
87 std::copy(connectedSectorsEndVec->begin(), connectedSectorsEndVec->begin()+6,
barrelMax.begin());
92 const std::vector<L1TMuonOverlapParams::LayerMapNode> *layerMap = omtfParams->
layerMap();
94 for(
unsigned int iLayer=0;iLayer<
nLayers();++iLayer){
104 const std::vector<L1TMuonOverlapParams::RefLayerMapNode> *refLayerMap = omtfParams->
refLayerMap();
105 for(
unsigned int iRefLayer=0;iRefLayer<
nRefLayers();++iRefLayer){
124 std::vector<std::pair<int,int> > aRefHit1D(
nLogicRegions(),std::pair<int,int>(9999,9999));
126 std::vector<std::vector<std::pair<int,int> > > aRefHit2D;
132 std::vector<RefHitDef> aRefHitsDefs(
nRefHits());
137 const std::vector<L1TMuonOverlapParams::RefHitNode> *refHitMap = omtfParams->
refHitMap();
138 const std::vector<L1TMuonOverlapParams::LayerInputNode> *layerInputMap = omtfParams->
layerInputMap();
139 unsigned int tmpIndex = 0;
140 for(
unsigned int iProcessor=0;iProcessor<
nProcessors();++iProcessor){
141 for(
unsigned int iRefLayer=0;iRefLayer<
nRefLayers();++iRefLayer){
142 int iPhiStart = phiStartMap->at(iRefLayer+iProcessor*
nRefLayers());
145 for(
unsigned int iRefHit=0;iRefHit<
nRefHits();++iRefHit){
146 int iPhiMin = refHitMap->at(iRefHit+iProcessor*
nRefHits()).iPhiMin;
147 int iPhiMax = refHitMap->at(iRefHit+iProcessor*
nRefHits()).iPhiMax;
148 unsigned int iInput = refHitMap->at(iRefHit+iProcessor*
nRefHits()).iInput;
149 unsigned int iRegion = refHitMap->at(iRefHit+iProcessor*
nRefHits()).iRegion;
150 unsigned int iRefLayer = refHitMap->at(iRefHit+iProcessor*
nRefHits()).iRefLayer;
154 for(
unsigned int iLogicRegion=0;iLogicRegion<
nLogicRegions();++iLogicRegion){
155 for(
unsigned int iLayer=0;iLayer<
nLayers();++iLayer){
157 unsigned int iFirstInput = layerInputMap->at(tmpIndex).iFirstInput;
158 unsigned int nInputsInRegion = layerInputMap->at(tmpIndex).nInputs;
159 connections[iProcessor][iLogicRegion][iLayer] = std::pair<unsigned int, unsigned int>(iFirstInput,nInputsInRegion);
174 out<<
"nLayers(): "<<aConfig.
nLayers()
181 for(
unsigned int iProcessor = 0;iProcessor<aConfig.
nProcessors(); ++iProcessor){
182 out<<
"Processor: "<<iProcessor;
183 for(
unsigned int iRefLayer=0;iRefLayer<aConfig.
nRefLayers();++iRefLayer){
199 if(iPhiStart<0) iPhiStart+=
nPhiBins();
201 if(iPhiStart+(
int)coneSize<(
int)
nPhiBins()){
202 return iPhiStart<=iPhi && iPhiStart+(int)coneSize>iPhi;
205 return iPhiStart<=iPhi;
208 return iPhi<iPhiStart+(int)coneSize-(
int)
nPhiBins();
215 unsigned int iRefLayer,
218 for(
unsigned int iRegion=0;iRegion<
nLogicRegions();++iRegion){
242 std::cout <<
"PROBLEM: hit in unknown Det, detID: "<<detId.
det()<<std::endl;
250 if(isBarrel) aLayer = aId.
station() <=2 ?
265 if(csc.
ring()==2 && csc.
station()==1) aLayer = 1811;
266 if(csc.
station()==4) aLayer = 4;
271 int hwNumber = aLayer+100*detId.
subdetId();
bool fitsRange(int iPhi) const
std::vector< unsigned int > endcap20DegMax
std::vector< vector1D_pair > vector2D_pair
const std::vector< LayerMapNode > * layerMap() const
std::map< int, int > logicToLogic
std::vector< unsigned int > endcap10DegMin
std::vector< std::pair< unsigned int, unsigned int > > vector1D_pair
unsigned int nRefLayers() const
unsigned int nRefHits() const
unsigned int hwNumber
short layer number used within OMTF emulator
const std::vector< int > * connectedSectorsEnd() const
void initCounterMatrices()
bool isBarrel(GeomDetEnumerators::SubDetector m)
bool isInRegionRange(int iPhiStart, unsigned int coneSize, int iPhi) const
unsigned int nLayers() const
unsigned int logicNumber
logic numer of the layer
unsigned int nPhiBins() const
unsigned int nProcessors() const
std::vector< std::vector< int > > processorPhiVsRefLayer
unsigned int iInput
Hit input number within a cone.
vector4D measurements4D
4D matrices used during creation of the connections tables.
std::ostream & operator<<(std::ostream &out, const ALILine &li)
std::map< int, int > logicToHwLayer
std::vector< vector2D > vector3D
std::vector< unsigned int > endcap20DegMin
std::vector< int > refToLogicNumber
std::vector< unsigned int > endcap10DegMax
U second(std::pair< T, U > const &p)
const std::vector< LayerInputNode > * layerInputMap() const
vector4D measurements4Dref
unsigned int getRegionNumberFromMap(unsigned int iInput, unsigned int iRefLayer, int iPhi) const
unsigned int nPdfAddrBits() const
std::vector< vector1D > vector2D
tuple omtfParams
OMTF ESProducer.
unsigned int nHitsPerLayer() const
std::vector< std::vector< RefHitDef > > refHitsDefs
vector3D_pair connections
Map of connections.
unsigned int nInputs() const
std::vector< int > vector1D
RefHitDef(unsigned int aInput=15, int aPhiMin=5760, int aPhiMax=5760, unsigned int aRegion=99, unsigned int aRefLayer=99)
bool bendingLayer
Is this a bending layers?
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
void configure(const L1TMuonOverlapParams *omtfParams)
std::vector< unsigned int > barrelMin
uint32_t getLayerNumber(uint32_t rawId) const
unsigned int refLayer
Reference layer number.
const std::vector< int > * globalPhiStartMap() const
std::pair< int, int > range
int globalPhiStart(unsigned int iProcessor) const
std::set< int > bendingLayers
std::map< int, int > hwToLogicLayer
L1TMuonOverlapParams rawParams
unsigned int iRefLayer
Reference layer logic number (0-7)
unsigned int logicNumber
Corresponding logical layer number.
unsigned int connectedToLayer
unsigned int nLogicRegions() const
unsigned int iRegion
Region number assigned to this referecne hit.
const std::vector< RefLayerMapNode > * refLayerMap() const
int station() const
Return the station number.
std::vector< std::vector< std::vector< std::pair< int, int > > > > regionPhisVsRefLayerVsInput
unsigned int nPdfValBits() const
Detector det() const
get the detector field from this detid
const std::vector< int > * connectedSectorsStart() const
std::vector< unsigned int > barrelMax
const std::vector< RefHitNode > * refHitMap() const
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.