Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:51:18

0001 ///
0002 /// \class L1TwinMuxParams
0003 ///
0004 /// Description: Placeholder for BMTF parameters
0005 ///
0006 ///
0007 /// \author: Giannis Flouris
0008 /// mod : g karathanasis
0009 
0010 #ifndef L1TTwinMuxParams_h
0011 #define L1TTwinMuxParams_h
0012 
0013 #include <memory>
0014 #include <iostream>
0015 #include <vector>
0016 
0017 #include "CondFormats/Serialization/interface/Serializable.h"
0018 
0019 class L1TTwinMuxParams {
0020 public:
0021   L1TTwinMuxParams();
0022   enum { Version = 1 };
0023 
0024   class Node {
0025   public:
0026     std::string type_;
0027     unsigned version_;
0028     std::vector<double> dparams_;
0029     std::vector<unsigned> uparams_;
0030     std::vector<int> iparams_;
0031     std::vector<std::string> sparams_;
0032     Node() {
0033       type_ = "unspecified";
0034       version_ = 0;
0035     }
0036     COND_SERIALIZABLE;
0037   };
0038   enum { CONFIG = 0, NUM_TM_PARAM_NODES = 7 };
0039   enum {
0040     USERPCBXFORDTBELOWQUALITY,
0041     DphiWindow,
0042     UseOnlyRPC,
0043     UseOnlyDT,
0044     UseLowQDT,
0045     CorrectDTBxwRPC,
0046     Verbose,
0047     NUM_CONFIG_PARAMS
0048   };
0049 
0050   ~L1TTwinMuxParams() {}
0051 
0052   // FW version
0053   unsigned fwVersion() const { return fwVersion_; }
0054   void setFwVersion(unsigned fwVersion) { fwVersion_ = fwVersion; }
0055 
0056   void set_USERPCBXFORDTBELOWQUALITY(int par1) { pnodes_[CONFIG].iparams_[USERPCBXFORDTBELOWQUALITY] = par1; }
0057   int get_USERPCBXFORDTBELOWQUALITY() const { return pnodes_[CONFIG].iparams_[USERPCBXFORDTBELOWQUALITY]; }
0058 
0059   void set_UseOnlyRPC(int par1) { pnodes_[CONFIG].iparams_[UseOnlyRPC] = par1; }
0060   int get_UseOnlyRPC() const { return pnodes_[CONFIG].iparams_[UseOnlyRPC]; }
0061 
0062   void set_UseOnlyDT(int par1) { pnodes_[CONFIG].iparams_[UseOnlyDT] = par1; }
0063   int get_UseOnlyDT() const { return pnodes_[CONFIG].iparams_[UseOnlyDT]; }
0064 
0065   void set_UseLowQDT(int par1) { pnodes_[CONFIG].iparams_[UseLowQDT] = par1; }
0066   int get_UseLowQDT() const { return pnodes_[CONFIG].iparams_[UseLowQDT]; }
0067 
0068   void set_CorrectDTBxwRPC(int par1) { pnodes_[CONFIG].iparams_[CorrectDTBxwRPC] = par1; }
0069   int get_CorrectDTBxwRPC() const { return pnodes_[CONFIG].iparams_[CorrectDTBxwRPC]; }
0070 
0071   void set_Verbose(int par1) { pnodes_[CONFIG].iparams_[Verbose] = par1; }
0072   int get_Verbose() const { return pnodes_[CONFIG].iparams_[Verbose]; }
0073 
0074   void set_DphiWindowBxShift(int par1) { pnodes_[CONFIG].iparams_[DphiWindow] = par1; }
0075   int get_DphiWindowBxShift() const { return pnodes_[CONFIG].iparams_[DphiWindow]; }
0076 
0077   // print parameters to stream:
0078   void print(std::ostream&) const;
0079   friend std::ostream& operator<<(std::ostream& o, const L1TTwinMuxParams& p) {
0080     p.print(o);
0081     return o;
0082   }
0083 
0084 private:
0085   unsigned version_;
0086   unsigned fwVersion_;
0087 
0088   std::vector<Node> pnodes_;
0089   // std::vector here is just so we can use "blob" in DB and evade max size limitations...
0090 
0091   COND_SERIALIZABLE;
0092 };
0093 #endif