00001
00002
00003 #ifndef XAODTRIGL1CALO_VERSIONS_TRIGGERTOWER_V2_H
00004 #define XAODTRIGL1CALO_VERSIONS_TRIGGERTOWER_V2_H
00005
00006
00007 #include "xAODBase/IParticle.h"
00008 #include "AthLinks/ElementLink.h"
00009 #include "AthContainers/AuxElement.h"
00010
00011
00012 #include "CxxUtils/final.h"
00013 #include "CxxUtils/override.h"
00014
00015
00016 #include <stdint.h>
00017
00018 namespace xAOD {
00019
00045
00046 class TriggerTower_v2 : public IParticle{
00047 public:
00049 TriggerTower_v2();
00051 TriggerTower_v2(const TriggerTower_v2& other);
00053 TriggerTower_v2& operator=(const TriggerTower_v2& other);
00055 virtual ~TriggerTower_v2(){}
00056
00060
00062 virtual double pt() const ATH_FINAL;
00063
00065 virtual double eta() const ATH_FINAL;
00066 void setEta(float);
00067
00069 virtual double phi() const ATH_FINAL;
00070 void setPhi(float);
00071
00073 virtual double m() const ATH_FINAL;
00074
00076 virtual double e() const ATH_FINAL;
00077
00079 virtual double rapidity() const ATH_FINAL;
00080
00082 typedef IParticle::FourMom_t FourMom_t;
00083
00085 virtual const FourMom_t& p4() const ATH_FINAL;
00086
00088 virtual Type::ObjectType type() const ATH_FINAL;
00089
00091
00093
00094 virtual void initialize(const uint32_t CoolId,const float Eta,const float Phi);
00095
00096 virtual void initialize(const uint32_t CoolId,const float Eta,const float Phi,
00097 const std::vector<uint8_t>& Lut_cp,const std::vector<uint8_t>& Lut_jep,
00098 const std::vector<int16_t>& Correction,const std::vector<uint8_t>& CorrectionEnabled,
00099 const std::vector<uint8_t>& BcidVec,const std::vector<uint16_t>& Adc,
00100 const std::vector<uint8_t>& BcidExt,const std::vector<uint8_t>& Sat80Vec,
00101 const uint32_t ErrorWord,
00102 const uint8_t Peak,
00103 const uint8_t AdcPeak);
00104
00106
00108 uint32_t coolId() const;
00110 void setCoolId(uint32_t);
00111
00113 int layer() const;
00115 int sampling() const;
00116
00117
00118
00120 const std::vector<uint8_t>& lut_cp() const;
00122 void setLut_cp(const std::vector<uint8_t>&);
00123
00125 const std::vector<uint8_t>& lut_jep() const;
00127 void setLut_jep(const std::vector<uint8_t>&);
00128
00130 const std::vector<int16_t>& correction() const;
00132 void setCorrection(const std::vector<int16_t>&);
00133
00135 const std::vector<uint8_t>& correctionEnabled() const;
00137 void setCorrectionEnabled(const std::vector<uint8_t>&);
00138
00140 const std::vector<uint8_t>& bcidVec() const;
00142 void setBcidVec(const std::vector<uint8_t>&);
00143
00144
00145
00146
00148 const std::vector<uint16_t>& adc() const;
00150 void setAdc(const std::vector<uint16_t>&);
00151
00153 const std::vector<uint8_t>& bcidExt() const;
00155 void setBcidExt(const std::vector<uint8_t>&);
00156
00158 const std::vector<uint8_t>& sat80Vec() const;
00160 void setSat80Vec(const std::vector<uint8_t>&);
00161
00162
00163
00164
00166 uint32_t errorWord() const;
00168 void setErrorWord(uint32_t);
00169
00170
00171
00173 uint8_t peak() const;
00175 void setPeak(uint8_t);
00176
00178 uint8_t adcPeak() const;
00180 void setAdcPeak(uint8_t);
00181
00182
00184 uint8_t cpET() const;
00185
00187 uint8_t jepET() const;
00188
00190 bool isCpSaturated() const;
00191 bool isJepSaturated() const;
00192
00193 private:
00194 static const uint8_t m_saturation = 255;
00195
00197 mutable FourMom_t m_p4;
00199 mutable bool m_p4Cached;
00200
00201 };
00202 }
00203
00204 #endif // XAODTRIGL1CALO_VERSIONS_TRIGGERTOWER_V2_H