CMS 3D CMS Logo

L1GctInternJetData.h

Go to the documentation of this file.
00001 #ifndef L1GCTINTERNJETDATA_H
00002 #define L1GCTINTERNJETDATA_H
00003 
00004 #include <string>
00005 
00006 #include "DataFormats/L1CaloTrigger/interface/L1CaloRegionDetId.h"
00007 
00013 
00014 
00015 class L1GctInternJetData {
00016 
00017  public:
00018 
00019   enum L1GctInternJetType { null, jet_cluster, jet_cluster_minimal, jet_precluster,gct_trig_object };
00020 
00021 public:
00022 
00024   L1GctInternJetData();
00025 
00027   L1GctInternJetData(L1CaloRegionDetId rgn,
00028                      uint16_t capBlock,
00029                      uint16_t capIndex,
00030                      int16_t bx,
00031                      uint8_t sgnEta,
00032                      uint8_t oflow,
00033                      uint16_t et,
00034                      uint8_t eta,
00035                      uint8_t phi,
00036                      uint8_t tauVeto,
00037                      uint8_t rank);
00038 
00039   // 'named' constructors to avoid confusion
00041   static L1GctInternJetData fromJetCluster(L1CaloRegionDetId rgn,
00042                      uint16_t capBlock,
00043                      uint16_t capIndex,
00044                      int16_t bx,
00045                      uint32_t data);
00046 
00048   static L1GctInternJetData fromJetPreCluster(L1CaloRegionDetId rgn,
00049                      uint16_t capBlock,
00050                      uint16_t capIndex,
00051                      int16_t bx,
00052                      uint32_t data);
00053 
00055   static L1GctInternJetData fromJetClusterMinimal(L1CaloRegionDetId rgn,
00056                      uint16_t capBlock,
00057                      uint16_t capIndex,
00058                      int16_t bx,
00059                      uint32_t data);
00060 
00062   static L1GctInternJetData fromGctTrigObject(L1CaloRegionDetId rgn,
00063                      uint16_t capBlock,
00064                      uint16_t capIndex,
00065                      int16_t bx,
00066                      uint32_t data);
00067 
00068 
00070   virtual ~L1GctInternJetData();
00071 
00072 
00073   // getters
00074 
00076   L1GctInternJetData::L1GctInternJetType type() const { return type_; }
00077 
00079   L1CaloRegionDetId regionId() const { return regionId_; }
00080 
00082   bool empty() const { return (data_ == 0); }
00083 
00085   uint16_t capBlock() const { return capBlock_; }
00086 
00088   uint16_t capIndex() const { return capIndex_; }
00089 
00091   int16_t bx() const { return bx_; }
00092 
00094   uint32_t raw() const { return data_; }
00095   
00097   uint16_t rank() const { return data_ & 0x3f; }
00098   
00100   uint16_t tauVeto() const { return (data_>>6) & 0x1; }
00101 
00103   uint16_t phi() const { return (data_>>7) & 0x1f; }
00104 
00106   uint16_t eta() const { return (data_>>12) & 0xf; }
00107   
00109   uint16_t et() const { return (data_>>16) & 0xfff; }
00110 
00112   uint16_t oflow() const { return (data_>>28) & 0x1; }
00113 
00115   uint16_t sgnEta() const { return (data_>>29) & 0x1; }
00116 
00117 
00118   // setters
00119 
00121   void setRegionId(L1CaloRegionDetId rgn) { regionId_ = rgn; }
00122 
00124   void setCapBlock(uint16_t capBlock) { capBlock_ = capBlock; }
00125 
00127   void setCapIndex(uint16_t capIndex) { capIndex_ = capIndex; }
00128 
00130   void setBx(uint16_t bx) { bx_ = bx; }
00131 
00133   void setType(L1GctInternJetType type) { type_ = type; }
00134 
00136   void setRawData(uint32_t data) { data_ = data; }
00137 
00139   void setData(uint8_t sgnEta,
00140                uint8_t oflow,
00141                uint16_t et,
00142                uint8_t eta,
00143                uint8_t phi,
00144                uint8_t tauVeto,
00145                uint8_t rank);
00146 
00147 
00148   // operators
00149 
00151   bool operator==(const L1GctInternJetData& c) const;
00152   
00154   bool operator!=(const L1GctInternJetData& c) const { return !(*this == c); }
00155   
00156 
00157  private:
00158 
00159   // location in calorimeter (optionally set by unpacker)
00160   L1CaloRegionDetId regionId_;
00161 
00162   // source of the data
00163   uint16_t capBlock_;
00164   uint16_t capIndex_;
00165   int16_t bx_;
00166 
00167   // type of data
00168   L1GctInternJetType type_;
00169 
00170   // the captured data
00171   uint32_t data_;
00172 
00173  };
00174 
00175 std::ostream& operator<<(std::ostream& s, const L1GctInternJetData& cand);
00176 
00177 #endif

Generated on Tue Jun 9 17:31:10 2009 for CMSSW by  doxygen 1.5.4