CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/L1TriggerConfig/DTTPGConfig/interface/DTConfigManager.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00014 //
00015 //--------------------------------------------------
00016 #ifndef DT_CONFIG_MANAGER_H
00017 #define DT_CONFIG_MANAGER_H
00018 
00019 //---------------
00020 // C++ Headers --
00021 //---------------
00022 #include <map>
00023 
00024 //----------------------
00025 // Base Class Headers --
00026 //----------------------
00027 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigBti.h"
00028 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigTraco.h"
00029 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigTSTheta.h"
00030 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigTSPhi.h"
00031 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigTrigUnit.h" 
00032 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigSectColl.h"
00033 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigLUTs.h"
00034 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00035 #include "DataFormats/MuonDetId/interface/DTBtiId.h"
00036 #include "DataFormats/MuonDetId/interface/DTTracoId.h"
00037 #include "DataFormats/MuonDetId/interface/DTSectCollId.h"
00038 
00039 //------------------------------------
00040 // Collaborating Class Declarations --
00041 //------------------------------------
00042 
00043 //              ---------------------
00044 //              -- Class Interface --
00045 //              ---------------------
00046 
00047 
00048 class DTConfigManager {
00049 
00050  public:
00051   
00052   typedef std::map<DTBtiId,DTConfigBti>                         innerBtiMap;
00053   typedef std::map<DTTracoId,DTConfigTraco>                innerTracoMap;
00054   typedef std::map<DTChamberId,innerBtiMap>                BtiMap;
00055   typedef std::map<DTChamberId,innerTracoMap>           TracoMap;
00056   typedef std::map<DTChamberId,DTConfigTSTheta>        TSThetaMap;
00057   typedef std::map<DTChamberId,DTConfigTSPhi>           TSPhiMap;
00058   typedef std::map<DTChamberId,DTConfigTrigUnit>         TrigUnitMap;
00059   typedef std::map<DTChamberId,DTConfigLUTs>             LUTMap;
00060   typedef std::map<DTSectCollId,DTConfigSectColl>         SectCollMap;
00061 
00062  public:
00063   
00065   DTConfigManager();
00066   
00068   ~DTConfigManager();
00069 
00071   DTConfigBti* getDTConfigBti(DTBtiId) const;
00072 
00074   const std::map<DTBtiId,DTConfigBti>& getDTConfigBtiMap(DTChamberId) const;
00075   
00077   DTConfigTraco* getDTConfigTraco(DTTracoId) const;
00078 
00080   const std::map<DTTracoId,DTConfigTraco>& getDTConfigTracoMap(DTChamberId) const;
00081 
00083   DTConfigTSTheta* getDTConfigTSTheta(DTChamberId) const;
00084 
00086   DTConfigTSPhi* getDTConfigTSPhi(DTChamberId) const;
00087 
00089   DTConfigTrigUnit* getDTConfigTrigUnit(DTChamberId) const;
00090   
00092   DTConfigLUTs* getDTConfigLUTs(DTChamberId) const;
00093 
00095   DTConfigSectColl* getDTConfigSectColl(DTSectCollId) const;
00096 
00098   void setDTConfigBti(DTBtiId,DTConfigBti);
00099 
00101   void setDTConfigTraco(DTTracoId,DTConfigTraco);
00102 
00104   inline void setDTConfigTSTheta(DTChamberId chambid ,DTConfigTSTheta conf) { my_tsthetamap[chambid] = conf; };
00105 
00107   inline void setDTConfigTSPhi(DTChamberId chambid,DTConfigTSPhi conf) { my_tsphimap[chambid] = conf; };
00108 
00110   void setDTConfigTrigUnit(DTChamberId chambid,DTConfigTrigUnit conf) { my_trigunitmap[chambid] = conf; };
00111 
00113   void setDTConfigLUTs(DTChamberId chambid,DTConfigLUTs conf) { my_lutmap[chambid] = conf; };
00114 
00116   void setDTConfigSectColl(DTSectCollId sectcollid ,DTConfigSectColl conf){ my_sectcollmap[sectcollid] = conf; };
00117 
00119   inline bool getDTTPGDebug() const { return my_dttpgdebug; };
00120 
00122   inline void setDTTPGDebug(bool debug) { my_dttpgdebug = debug; };
00123   
00125   int getBXOffset() const;
00126 
00128   inline bool lutFromDB() const { return m_lutfromdb; }
00129 
00131   inline bool useAcceptParam() const { return m_acceptparam; }
00132    
00134   inline void setLutFromDB(bool lutFromDB) { m_lutfromdb = lutFromDB; }
00135 
00137   inline void setUseAcceptParam(bool acceptparam) { m_acceptparam = acceptparam; }
00138 
00140   void dumpLUTParam(DTChamberId &chambid) const;
00141 
00142  private:
00143 
00144   // maps for the whole config structure
00145   // BTI & TRACO use map<..,map<..,..> > to optimize access
00146   BtiMap       my_btimap;
00147   TracoMap     my_tracomap;
00148   TSThetaMap   my_tsthetamap;
00149   TSPhiMap     my_tsphimap;
00150   TrigUnitMap  my_trigunitmap; 
00151   LUTMap       my_lutmap;
00152   SectCollMap  my_sectcollmap;
00153   
00154   int my_bxoffset;
00155   bool my_dttpgdebug;
00156 
00157   bool m_lutfromdb;
00158   bool m_acceptparam;
00159 };
00160 
00161 #endif