Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:37:00

0001 /*
0002  * MuonStub.h
0003  *
0004  *  Created on: Dec 21, 2018
0005  *      Author: kbunkow
0006  *
0007  *      MuonStub - data structure for algorithm input
0008  */
0009 
0010 #ifndef L1T_OmtfP1_MUONSTUB_H_
0011 #define L1T_OmtfP1_MUONSTUB_H_
0012 
0013 #include <vector>
0014 #include <memory>
0015 
0016 struct MuonStub {
0017 public:
0018   enum Type {
0019     EMPTY,
0020     DT_PHI,
0021     DT_THETA,
0022     DT_PHI_ETA,
0023     DT_HIT,
0024     RPC,
0025     RPC_DROPPED,  //to mark that all clusters were dropped because there are more than 2 clusters or at least one too big cluster
0026     CSC_PHI,
0027     CSC_ETA,
0028     CSC_PHI_ETA,
0029     BARREL_SUPER_SEG,
0030   };
0031 
0032   MuonStub();
0033 
0034   MuonStub(int phiHw, int phiBHw) : phiHw(phiHw), phiBHw(phiBHw) {}
0035 
0036   virtual ~MuonStub();
0037 
0038   Type type = EMPTY;
0039 
0040   int phiHw = 0;
0041   int phiBHw = 0;
0042 
0043   static const int EMTPY_PHI = 0xffffff;
0044 
0045   int etaHw = 0;
0046   int r = 0;  //[cm] distance from beam pipe
0047   int qualityHw = 0;
0048 
0049   int bx = 0;
0050   int timing = 0;
0051 
0052   //used to address LUTs
0053   unsigned int logicLayer = 0;
0054 
0055   unsigned int input = 0;
0056 
0057   //int roll = 0;  //TODO remove
0058 
0059   int detId = 0;
0060 
0061   friend std::ostream& operator<<(std::ostream& out, const MuonStub& stub);
0062 };
0063 
0064 typedef std::vector<MuonStub> MuonStubs1D;
0065 typedef std::vector<MuonStubs1D> MuonStubs2D;
0066 
0067 typedef std::shared_ptr<MuonStub> MuonStubPtr;
0068 typedef std::vector<MuonStubPtr> MuonStubPtrs1D;
0069 typedef std::vector<MuonStubPtrs1D> MuonStubPtrs2D;
0070 
0071 #endif /* L1T_OmtfP1_MUONSTUB_H_ */