Go to the documentation of this file.00001 #ifndef DATAFORMATS_ECALRECHIT_H
00002 #define DATAFORMATS_ECALRECHIT_H 1
00003
00004 #include "DataFormats/CaloRecHit/interface/CaloRecHit.h"
00005 #include <vector>
00006
00013 class EcalRecHit : public CaloRecHit {
00014 public:
00015 typedef DetId key_type;
00016
00017
00018 enum Flags {
00019 kGood=0,
00020 kPoorReco,
00021 kOutOfTime,
00022 kFaultyHardware,
00023 kNoisy,
00024 kPoorCalib,
00025 kSaturated,
00026 kLeadingEdgeRecovered,
00027 kNeighboursRecovered,
00028 kTowerRecovered,
00029 kDead,
00030 kKilled,
00031 kTPSaturated,
00032 kL1SpikeFlag,
00033 kWeird,
00034 kDiWeird,
00035 kHasSwitchToGain6,
00036 kHasSwitchToGain1,
00037
00038 kUnknown
00039 };
00040
00041
00042 enum ESFlags {
00043 kESGood,
00044 kESDead,
00045 kESHot,
00046 kESPassBX,
00047 kESTwoGoodRatios,
00048 kESBadRatioFor12,
00049 kESBadRatioFor23Upper,
00050 kESBadRatioFor23Lower,
00051 kESTS1Largest,
00052 kESTS3Largest,
00053 kESTS3Negative,
00054 kESSaturated,
00055 kESTS2Saturated,
00056 kESTS3Saturated,
00057 kESTS13Sigmas,
00058 kESTS15Sigmas
00059 };
00060
00072 EcalRecHit();
00073
00074 EcalRecHit(const DetId& id, float energy, float time, uint32_t flags = 0, uint32_t flagBits = 0);
00076
00077 DetId id() const { return DetId(detid());}
00078 bool isRecovered() const;
00079 bool isTimeValid() const;
00080 bool isTimeErrorValid() const;
00081
00082
00083 float chi2() const;
00084 float outOfTimeChi2() const;
00085
00086
00087
00088 float outOfTimeEnergy() const;
00089 float timeError() const;
00090
00091 void setChi2( float chi2 );
00092 void setOutOfTimeChi2( float chi2 );
00093 void setOutOfTimeEnergy( float energy );
00094
00095 void setTimeError( uint8_t timeErrBits );
00096
00097
00099 void setFlag(int flag) {flagBits_|= (0x1 << flag);}
00100 void unsetFlag(int flag) {flagBits_ &= ~(0x1 << flag);}
00101
00103 bool checkFlag(int flag) const{return flagBits_ & ( 0x1<<flag);}
00104
00106 bool checkFlags(const std::vector<int>& flagsvec) const;
00107
00109 bool checkFlagMask(uint32_t mask) const { return flagBits_&mask; }
00110
00112 Flags recoFlag() const ;
00113
00114 private:
00115
00117 uint32_t flagBits_;
00118 };
00119
00120 std::ostream& operator<<(std::ostream& s, const EcalRecHit& hit);
00121
00122 #endif