Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:06

0001 #ifndef L1T_OmtfP1_OMTFConfigMaker_H
0002 #define L1T_OmtfP1_OMTFConfigMaker_H
0003 
0004 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/OMTFConfiguration.h"
0005 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/GoldenPattern.h"
0006 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/GoldenPatternResult.h"
0007 
0008 #include <map>
0009 
0010 class XMLConfigReader;
0011 class OMTFinput;
0012 
0013 namespace edm {
0014   class ParameterSet;
0015 }
0016 
0017 class OMTFConfigMaker {
0018 public:
0019   OMTFConfigMaker(OMTFConfiguration* omtf_config);
0020 
0021   ~OMTFConfigMaker();
0022 
0023   ///Fill counts in GoldenPattern pdf bins
0024   ///Normalised counts will make a pdf for given GP.
0025   void fillCounts(unsigned int iProcessor, const OMTFinput& aInput);
0026 
0027   ///Fill histograms used for making the connections
0028   ///maps
0029   void makeConnetionsMap(unsigned int iProcessor, const OMTFinput& aInput);
0030 
0031   ///Print starting iPhi for each reference layer
0032   ///in each processor
0033   void printPhiMap(std::ostream& out);
0034 
0035   ///Print connections map for given logic cone
0036   ///in given processro. Connection map
0037   ///shows counts on each input.
0038   void printConnections(std::ostream& out, unsigned int iProcessor, unsigned int iCone);
0039 
0040   ///Fill vector with minimal phi in each reference
0041   ///layer for given processor.
0042   void fillPhiMaps(unsigned int iProcessor, const OMTFinput& aInput);
0043 
0044 private:
0045   ///Fill map of used inputs.
0046   ///FIXME: using hack from OMTFConfiguration
0047   void fillInputRange(unsigned int iConfigMaker, unsigned int iCone, const OMTFinput& aInput);
0048 
0049   void fillInputRange(unsigned int iConfigMaker, unsigned int iCone, unsigned int iRefLayer, unsigned int iInput);
0050 
0051   ///Map of phi starting and ending points
0052   ///for each logic region.
0053   ///First index: reference layer number
0054   ///Second index: logic region number
0055   std::vector<std::vector<int> > minRefPhi2D;
0056   std::vector<std::vector<int> > maxRefPhi2D;
0057 
0058   OMTFConfiguration* myOmtfConfig;
0059 };
0060 
0061 #endif