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
OMTFConfigMaker Class Reference

#include <OMTFConfigMaker.h>

Public Member Functions

void fillCounts (unsigned int iProcessor, const OMTFinput &aInput)
 
void fillPhiMaps (unsigned int iProcessor, const OMTFinput &aInput)
 
void makeConnetionsMap (unsigned int iProcessor, const OMTFinput &aInput)
 
 OMTFConfigMaker (const edm::ParameterSet &cfg)
 
void printConnections (std::ostream &out, unsigned int iProcessor, unsigned int iCone)
 
void printPhiMap (std::ostream &out)
 
 ~OMTFConfigMaker ()
 

Private Member Functions

void fillInputRange (unsigned int iConfigMaker, unsigned int iCone, const OMTFinput &aInput)
 
void fillInputRange (unsigned int iConfigMaker, unsigned int iCone, unsigned int iRefLayer, unsigned int iHit)
 

Private Attributes

std::vector< std::vector< int > > minRefPhi2D
 

Detailed Description

Definition at line 16 of file OMTFConfigMaker.h.

Constructor & Destructor Documentation

OMTFConfigMaker::OMTFConfigMaker ( const edm::ParameterSet cfg)

Definition at line 14 of file OMTFConfigMaker.cc.

References minRefPhi2D, OMTFConfiguration::nPhiBins, and OMTFConfiguration::nRefLayers.

14  {
15 
16  std::vector<int> minRefPhi1D(6,2*OMTFConfiguration::nPhiBins);
17  minRefPhi2D.assign(OMTFConfiguration::nRefLayers,minRefPhi1D);
18 
19 }
static unsigned int nPhiBins
std::vector< std::vector< int > > minRefPhi2D
static unsigned int nRefLayers
OMTFConfigMaker::~OMTFConfigMaker ( )

Definition at line 22 of file OMTFConfigMaker.cc.

22 { }

Member Function Documentation

void OMTFConfigMaker::fillCounts ( unsigned int  iProcessor,
const OMTFinput aInput 
)

Fill counts in GoldenPattern pdf bins Normalised counts will make a pdf for given GP.

Definition at line 25 of file OMTFConfigMaker.cc.

26  {
27 
28 }
void OMTFConfigMaker::fillInputRange ( unsigned int  iConfigMaker,
unsigned int  iCone,
const OMTFinput aInput 
)
private

Fill map of used inputs. FIXME: using hack from OMTFConfiguration

Definition at line 107 of file OMTFConfigMaker.cc.

References OMTFinput::getLayerData(), OMTFConfiguration::measurements4D, OMTFConfiguration::nLayers, and OMTFConfiguration::nPhiBins.

Referenced by makeConnetionsMap().

109  {
110 
111  for(unsigned int iLogicLayer=0;iLogicLayer<OMTFConfiguration::nLayers;++iLogicLayer){
112  for(unsigned int iHit=0;iHit<14;++iHit){
113  bool isHit = aInput.getLayerData(iLogicLayer)[iHit]<(int)OMTFConfiguration::nPhiBins;
114  OMTFConfiguration::measurements4D[iProcessor][iRegion][iLogicLayer][iHit]+=isHit;
115  }
116  }
117 }
static unsigned int nLayers
static vector4D measurements4D
const OMTFinput::vector1D & getLayerData(unsigned int iLayer, bool giveEta=false) const
Definition: OMTFinput.cc:18
static unsigned int nPhiBins
void OMTFConfigMaker::fillInputRange ( unsigned int  iConfigMaker,
unsigned int  iCone,
unsigned int  iRefLayer,
unsigned int  iHit 
)
private

Definition at line 120 of file OMTFConfigMaker.cc.

References OMTFConfiguration::measurements4Dref.

123  {
124 
125  ++OMTFConfiguration::measurements4Dref[iProcessor][iRegion][iRefLayer][iHit];
126 
127 }
static vector4D measurements4Dref
void OMTFConfigMaker::fillPhiMaps ( unsigned int  iProcessor,
const OMTFinput aInput 
)

Fill vector with minimal phi in each reference layer for given processor.

Definition at line 31 of file OMTFConfigMaker.cc.

References OMTFinput::getLayerData(), minRefPhi2D, OMTFConfiguration::nPhiBins, OMTFConfiguration::nRefLayers, and OMTFConfiguration::refToLogicNumber.

Referenced by makeConnetionsMap().

32  {
33 
35  for(unsigned int iRefLayer=0;iRefLayer<OMTFConfiguration::nRefLayers;++iRefLayer){
36  const OMTFinput::vector1D & refLayerHits = aInput.getLayerData(OMTFConfiguration::refToLogicNumber[iRefLayer]);
37  if(!refLayerHits.size()) continue;
38  for(auto itRefHit: refLayerHits){
39  int phiRef = itRefHit;
40  if(phiRef>=(int)OMTFConfiguration::nPhiBins) continue;
41  if(phiRef<0) phiRef+=OMTFConfiguration::nPhiBins;
42  if(minRefPhi2D[iRefLayer][iProcessor]<0) minRefPhi2D[iRefLayer][iProcessor]+=OMTFConfiguration::nPhiBins;
43 
44  if(iProcessor==0 || iProcessor==5){
46  minRefPhi2D[iRefLayer][iProcessor]+=OMTFConfiguration::nPhiBins/4;
47 
49  if(minRefPhi2D[iRefLayer][iProcessor]>=(int)OMTFConfiguration::nPhiBins)minRefPhi2D[iRefLayer][iProcessor]-=OMTFConfiguration::nPhiBins;
50 
51  }
52 
53  if(phiRef<minRefPhi2D[iRefLayer][iProcessor]) minRefPhi2D[iRefLayer][iProcessor] = phiRef;
54 
55  if( (iProcessor==0 || iProcessor==5) &&
56  minRefPhi2D[iRefLayer][iProcessor]<(int)OMTFConfiguration::nPhiBins) minRefPhi2D[iRefLayer][iProcessor]-=OMTFConfiguration::nPhiBins/4;
57  if(minRefPhi2D[iRefLayer][iProcessor]<0) minRefPhi2D[iRefLayer][iProcessor]+=OMTFConfiguration::nPhiBins;
58 
59  if(minRefPhi2D[iRefLayer][iProcessor]>(int)OMTFConfiguration::nPhiBins/2) minRefPhi2D[iRefLayer][iProcessor]-=OMTFConfiguration::nPhiBins;
60  }
61  }
62 }
std::vector< int > vector1D
Definition: OMTFinput.h:14
const OMTFinput::vector1D & getLayerData(unsigned int iLayer, bool giveEta=false) const
Definition: OMTFinput.cc:18
static unsigned int nPhiBins
std::vector< std::vector< int > > minRefPhi2D
static std::vector< int > refToLogicNumber
static unsigned int nRefLayers
void OMTFConfigMaker::makeConnetionsMap ( unsigned int  iProcessor,
const OMTFinput aInput 
)

Fill histograms used for making the connections maps

Always use two hits from a single chamber. As we use single muons, the second hit has to be added by hand.

Definition at line 80 of file OMTFConfigMaker.cc.

References fillInputRange(), fillPhiMaps(), OMTFinput::getLayerData(), OMTFConfiguration::getRegionNumber(), OMTFConfiguration::nRefLayers, and OMTFConfiguration::refToLogicNumber.

81  {
82 
83  fillPhiMaps(iProcessor,aInput);
84 
85  for(unsigned int iRefLayer=0;iRefLayer<OMTFConfiguration::nRefLayers;++iRefLayer){
86  const OMTFinput::vector1D & refLayerHits = aInput.getLayerData(OMTFConfiguration::refToLogicNumber[iRefLayer]);
87  if(!refLayerHits.size()) continue;
89  for(unsigned int iInput=0;iInput<refLayerHits.size();++iInput){
90  int phiRef = refLayerHits[iInput];
91  unsigned int iRegion = OMTFConfiguration::getRegionNumber(iProcessor,iRefLayer,phiRef);
92 
93  //if(iRegion==0) std::cout<<aInput<<std::endl;
94 
95  if(iRegion>5) continue;
96  fillInputRange(iProcessor,iRegion,aInput);
97  fillInputRange(iProcessor,iRegion,iRefLayer,iInput);
101  if(iInput%2==0) fillInputRange(iProcessor,iRegion,iRefLayer,iInput+1);
102  }
103  }
104 }
static unsigned int getRegionNumber(unsigned int iProcessor, unsigned int iRefLayer, int iPhi)
void fillPhiMaps(unsigned int iProcessor, const OMTFinput &aInput)
std::vector< int > vector1D
Definition: OMTFinput.h:14
const OMTFinput::vector1D & getLayerData(unsigned int iLayer, bool giveEta=false) const
Definition: OMTFinput.cc:18
static std::vector< int > refToLogicNumber
static unsigned int nRefLayers
void fillInputRange(unsigned int iConfigMaker, unsigned int iCone, const OMTFinput &aInput)
void OMTFConfigMaker::printConnections ( std::ostream &  out,
unsigned int  iProcessor,
unsigned int  iCone 
)

Print connections map for given logic cone in given processro. Connection map shows counts on each input.

Definition at line 130 of file OMTFConfigMaker.cc.

References OMTFConfiguration::measurements4Dref, and OMTFConfiguration::nLayers.

132  {
133 
134  out<<"iProcessor: "<<iProcessor
135  <<" iRegion: "<<iRegion
136  <<std::endl;
137 
138  out<<"Ref hits"<<std::endl;
139  for(unsigned int iLogicLayer=0;iLogicLayer<OMTFConfiguration::nLayers;++iLogicLayer){
140  out<<"Logic layer: "<<iLogicLayer<<" Hits: ";
141  for(unsigned int iInput=0;iInput<14;++iInput){
142  out<<OMTFConfiguration::measurements4Dref[iProcessor][iRegion][iLogicLayer][iInput]<<"\t";
143  }
144  out<<std::endl;
145  }
146  /*
147  out<<"Measurement hits"<<std::endl;
148  for(unsigned int iLogicLayer=0;iLogicLayer<OMTFConfiguration::nLayers;++iLogicLayer){
149  out<<"Logic layer: "<<iLogicLayer<<" Hits: ";
150  for(unsigned int iInput=0;iInput<14;++iInput){
151  out<<OMTFConfiguration::measurements4D[iProcessor][iRegion][iLogicLayer][iInput]<<"\t";
152  }
153  out<<std::endl;
154  }
155  */
156  out<<std::endl;
157 }
static unsigned int nLayers
static vector4D measurements4Dref
void OMTFConfigMaker::printPhiMap ( std::ostream &  out)

Print starting iPhi for each reference layer in each processor

Definition at line 65 of file OMTFConfigMaker.cc.

References minRefPhi2D, OMTFConfiguration::nRefLayers, and OMTFConfiguration::processorPhiVsRefLayer.

65  {
66 
67  for(unsigned int iRefLayer=0;iRefLayer<OMTFConfiguration::nRefLayers;++iRefLayer){
68  for(unsigned int iProcessor=0;iProcessor<6;++iProcessor){
69  out<<" "<<minRefPhi2D[iRefLayer][iProcessor]<<"\t";
70 
71  OMTFConfiguration::processorPhiVsRefLayer[iProcessor][iRefLayer] = minRefPhi2D[iRefLayer][iProcessor];
72 
73  }
74  out<<std::endl;
75  }
76  out<<std::endl;
77 }
static std::vector< std::vector< int > > processorPhiVsRefLayer
std::vector< std::vector< int > > minRefPhi2D
static unsigned int nRefLayers

Member Data Documentation

std::vector<std::vector<int> > OMTFConfigMaker::minRefPhi2D
private

Map of phi starting points First index: reference layer number Second index: processor number

Definition at line 66 of file OMTFConfigMaker.h.

Referenced by fillPhiMaps(), OMTFConfigMaker(), and printPhiMap().