00001
00002
00003 #ifndef XAODTRIGL1CALO_VERSIONS_JETELEMENT_V2_H
00004 #define XAODTRIGL1CALO_VERSIONS_JETELEMENT_V2_H
00005
00006 #include "AthLinks/ElementLink.h"
00007 #include "AthContainers/AuxElement.h"
00008
00009
00010 #include <stdint.h>
00011
00012 namespace xAOD {
00013
00020
00021 class JetElement_v2 : public SG::AuxElement{
00022 public:
00024 JetElement_v2();
00026 virtual ~JetElement_v2(){}
00027
00029 virtual void initialize(const float eta,const float phi,const unsigned int key);
00030
00032 virtual void initialize(const float eta,const float phi,const unsigned int key,
00033 const std::vector<uint16_t>& emJetElementETVec,
00034 const std::vector<uint16_t>& hadJetElementETVec,
00035 const std::vector<uint32_t>& emJetElementErrorVec,
00036 const std::vector<uint32_t>& hadJetElementErrorVec,
00037 const std::vector<uint32_t>& linkErrorVec,
00038 const uint8_t peak);
00039
00041 float eta() const;
00043 void setEta(float);
00044
00046 float phi() const;
00048 void setPhi(float);
00049
00051 unsigned int key() const;
00053 void setKey(unsigned int);
00054
00056 uint8_t peak() const;
00058 void setPeak(uint8_t);
00059
00061 const std::vector<uint16_t>& emJetElementETVec() const;
00063 void setEmJetElementETVec(const std::vector<uint16_t>&);
00064
00066 const std::vector<uint16_t>& hadJetElementETVec() const;
00068 void setHadJetElementETVec(const std::vector<uint16_t>&);
00069
00071 const std::vector<uint32_t>& emJetElementErrorVec() const;
00073 void setEmJetElementErrorVec(const std::vector<uint32_t>&);
00074
00076 const std::vector<uint32_t>& hadJetElementErrorVec() const;
00078 void setHadJetElementErrorVec(const std::vector<uint32_t>&);
00079
00081 const std::vector<uint32_t>& linkErrorVec() const;
00083 void setLinkErrorVec(const std::vector<uint32_t>&);
00084
00085
00087 unsigned int emJetElementET() const;
00089 unsigned int hadJetElementET() const;
00091 unsigned int et() const;
00092
00094 unsigned int emJetElementETSlice(unsigned int slice) const;
00096 unsigned int hadJetElementETSlice(unsigned int slice) const;
00098 unsigned int sliceET(unsigned int slice) const;
00099
00101 bool isSaturated() const;
00103 bool isEmSaturated() const;
00105 bool isHadSaturated() const;
00106
00108 uint32_t emJetElementError() const;
00110 uint32_t hadJetElementError() const;
00112 uint32_t linkError() const;
00113
00114 private:
00115 static const int m_saturationThreshold = 1023;
00116 static const int m_layerSaturationThreshold = 511;
00117 };
00118 }
00119
00120 #endif // XAODTRIGL1CALO_VERSIONS_JETELEMENT_V2_H