00001
00002 #ifndef TrigConf_CaloInfo
00003 #define TrigConf_CaloInfo
00004
00005 #include <string>
00006 #include <vector>
00007 #include "TrigConfL1Data/L1DataBaseclass.h"
00008 #include "TrigConfL1Data/CaloSinCos.h"
00009 #include "TrigConfL1Data/METSigParam.h"
00010 #include "TrigConfL1Data/IsolationParam.h"
00011
00012 namespace TrigConf {
00013
00014 struct MinTOBPt {
00015 MinTOBPt() {}
00016 MinTOBPt( unsigned int ptmin,
00017 int32_t etamin,
00018 int32_t etamax,
00019 unsigned int priority) :
00020 ptmin( ptmin ), etamin( etamin ), etamax( etamax ), priority( priority )
00021 {}
00022
00023 unsigned int ptmin {0};
00024 int32_t etamin {-49};
00025 int32_t etamax {49};
00026 unsigned int priority {0};
00027 };
00028
00029
00030 class CaloInfo : public L1DataBaseclass {
00031
00032 public:
00033 CaloInfo();
00034 virtual ~CaloInfo();
00035
00036
00037 double globalScale() const { return m_GlobalScale; }
00038 float globalEmScale() const { return m_GlobalEmScale; }
00039 float globalJetScale() const { return m_GlobalJetScale; }
00040
00041 const std::vector<int>& jetWeights() const { return m_JetWeights; }
00042
00043 const std::vector<CaloSinCos>& caloSinCos() const { return m_CaloSinCos; }
00044
00045 METSigParam& metSigParam() { return m_METSigParam; }
00046 const METSigParam& metSigParam() const { return m_METSigParam; }
00047
00048 const std::vector<IsolationParam>& isolationHAIsoForEMthr() const { return m_IsolationHAIsoForEMthr;; }
00049 const std::vector<IsolationParam>& isolationEMIsoForEMthr() const { return m_IsolationEMIsoForEMthr;; }
00050 const std::vector<IsolationParam>& isolationEMIsoForTAUthr() const { return m_IsolationEMIsoForTAUthr; }
00051
00052 unsigned int jetWindowSizeSmall() const { return m_JetWindowSizeSmall; }
00053 unsigned int jetWindowSizeLarge() const { return m_JetWindowSizeLarge; }
00054
00055 const MinTOBPt & minTobEM() const { return m_tobEM; }
00056 const MinTOBPt & minTobTau() const { return m_tobTau; }
00057 const MinTOBPt & minTobJetSmall() const { return m_tobJetSmall; }
00058 const MinTOBPt & minTobJetLarge() const { return m_tobJetLarge; }
00059
00060
00061 void setGlobalScale(double val) { m_GlobalScale = val; }
00062 void setGlobalEmScale(float val) { m_GlobalEmScale = val; }
00063 void setGlobalJetScale(float val) { m_GlobalJetScale = val; }
00064 void addJetWeight(int);
00065 void addCaloSinCos(const CaloSinCos&);
00066
00067 void setIsolation(const std::string & isothrtype, unsigned int bit, const IsolationParam & isopar);
00068
00069 void setMinTobEM(const MinTOBPt & m) { m_tobEM = m; }
00070 void setMinTobTau(const MinTOBPt & m) { m_tobTau = m; }
00071 void setMinTobJetSmall(const MinTOBPt & m) { m_tobJetSmall = m; }
00072 void setMinTobJetLarge(const MinTOBPt & m) { m_tobJetLarge = m; }
00073
00074 void setJetWindowSizeSmall(unsigned int window) { m_JetWindowSizeSmall = window; }
00075 void setJetWindowSizeLarge(unsigned int window) { m_JetWindowSizeLarge = window; }
00076
00077
00078 virtual void print(const std::string& indent="", unsigned int detail=1) const;
00079 void writeXML(std::ostream & xmlfile, int indentLevel=0, int indentWidth=2) const;
00080
00081 void clear();
00082
00083 protected:
00084 float m_GlobalScale {1};
00085 float m_GlobalEmScale {1};
00086 float m_GlobalJetScale {1};
00087 std::vector<int> m_JetWeights;
00088 std::vector<CaloSinCos> m_CaloSinCos;
00089 METSigParam m_METSigParam;
00090
00091 std::vector<IsolationParam> m_IsolationHAIsoForEMthr;
00092 std::vector<IsolationParam> m_IsolationEMIsoForEMthr;
00093 std::vector<IsolationParam> m_IsolationEMIsoForTAUthr;
00094
00095 MinTOBPt m_tobEM;
00096 MinTOBPt m_tobTau;
00097 MinTOBPt m_tobJetSmall;
00098 MinTOBPt m_tobJetLarge;
00099
00100 unsigned int m_JetWindowSizeSmall {4};
00101 unsigned int m_JetWindowSizeLarge {8};
00102
00103 };
00104
00105 }
00106
00107 #endif
00108