Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 /*
0002  * MuonStubsInput.h
0003  *
0004  *  Created on: Jan 31, 2019
0005  *      Author: Karol Bunkowski kbunkow@cern.ch
0006  */
0007 
0008 #ifndef L1T_OmtfP1_MUONSTUBSINPUT_H_
0009 #define L1T_OmtfP1_MUONSTUBSINPUT_H_
0010 
0011 #include "L1Trigger/L1TMuonOverlapPhase1/interface/ProcConfigurationBase.h"
0012 #include "L1Trigger/L1TMuonOverlapPhase1/interface/MuonStub.h"
0013 #include <ostream>
0014 
0015 class MuonStubsInput {
0016 public:
0017   MuonStubsInput(const ProcConfigurationBase* config);
0018 
0019   virtual ~MuonStubsInput() {}
0020 
0021   virtual void addStub(unsigned int iLayer, const MuonStubPtr& stub) {
0022     muonStubsInLayers.at(iLayer).emplace_back(stub);
0023   }
0024 
0025   virtual MuonStubPtrs2D& getMuonStubs() { return muonStubsInLayers; }
0026 
0027   virtual const MuonStubPtrs2D& getMuonStubs() const { return muonStubsInLayers; }
0028 
0029   //gives stub phiHw or phiBHw - depending which layer is requested
0030   //if there is no stub at input iInput - return MuonStub::EMTPY_PHI
0031   virtual int getPhiHw(unsigned int iLayer, unsigned int iInput) const;
0032 
0033   friend std::ostream& operator<<(std::ostream& out, const MuonStubsInput& stubsInput);
0034 
0035 protected:
0036   const ProcConfigurationBase* config = nullptr;
0037 
0038   //indexing: muonStubsInLayers[iLayer][iStub]
0039   MuonStubPtrs2D muonStubsInLayers;
0040 };
0041 
0042 #endif /* L1T_OmtfP1_MUONSTUBSINPUT_H_ */