Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:12:50

0001 #ifndef L1T_OmtfP1_OMTFinput_H
0002 #define L1T_OmtfP1_OMTFinput_H
0003 
0004 #include "L1Trigger/L1TMuonOverlapPhase1/interface/MuonStubsInput.h"
0005 #include "L1Trigger/L1TMuonOverlapPhase1/interface/MuonStub.h"
0006 
0007 #include <vector>
0008 #include <ostream>
0009 #include <bitset>
0010 
0011 class XMLConfigReader;
0012 class OMTFConfiguration;
0013 
0014 class OMTFinput : public MuonStubsInput {
0015 public:
0016   OMTFinput(const OMTFConfiguration *);
0017 
0018   ~OMTFinput() override {}
0019 
0020   ///Read data from a XML file
0021   void readData(XMLConfigReader *aReader, unsigned int iEvent = 0, unsigned int iProcessor = 0);
0022 
0023   ///Apply shift to all data
0024   void shiftMyPhi(int phiShift);
0025 
0026   ///Merge data of two input objects.
0027   ///Method used in DiMuon studies.
0028   void mergeData(const OMTFinput *aInput);
0029 
0030   const MuonStubPtr getMuonStub(unsigned int iLayer, unsigned int iInput) const {
0031     return muonStubsInLayers.at(iLayer).at(iInput);
0032   }
0033 
0034   //if the layer is bending layer, the phiB from the iLayer -1 is returned
0035   int getPhiHw(unsigned int iLayer, unsigned int iInput) const override;
0036 
0037   //if the layer is bending layer, the eta from the iLayer -1 is returned
0038   const int getHitEta(unsigned int iLayer, unsigned int iInput) const;
0039 
0040   std::bitset<128> getRefHits(unsigned int iProcessor) const;
0041 
0042   friend std::ostream &operator<<(std::ostream &out, const OMTFinput &aInput);
0043 
0044 private:
0045   const OMTFConfiguration *myOmtfConfig = nullptr;
0046 };
0047 
0048 #endif