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
00012 class EcalRecHit : public CaloRecHit {
00013 public:
00014 typedef DetId key_type;
00015
00016
00017 enum Flags {
00018 kGood=0,
00019 kPoorReco,
00020 kOutOfTime,
00021 kFaultyHardware,
00022 kNoisy,
00023 kPoorCalib,
00024 kSaturated,
00025 kLeadingEdgeRecovered,
00026 kNeighboursRecovered,
00027 kTowerRecovered,
00028 kDead,
00029 kKilled,
00030 kTPSaturated,
00031 kL1SpikeFlag,
00032 kWeird,
00033 kDiWeird,
00034 kHasSwitchToGain6,
00035 kHasSwitchToGain1,
00036
00037 kUnknown
00038 };
00039
00040
00041 enum ESFlags {
00042 kESGood,
00043 kESDead,
00044 kESHot,
00045 kESPassBX,
00046 kESTwoGoodRatios,
00047 kESBadRatioFor12,
00048 kESBadRatioFor23Upper,
00049 kESBadRatioFor23Lower,
00050 kESTS1Largest,
00051 kESTS3Largest,
00052 kESTS3Negative,
00053 kESSaturated,
00054 kESTS2Saturated,
00055 kESTS3Saturated,
00056 kESTS13Sigmas,
00057 kESTS15Sigmas
00058 };
00059
00071 EcalRecHit();
00072
00073 EcalRecHit(const DetId& id, float energy, float time, uint32_t flags = 0, uint32_t flagBits = 0);
00075
00076 DetId id() const { return DetId(detid());}
00077 bool isRecovered() const;
00078 bool isTimeValid() const;
00079 bool isTimeErrorValid() const;
00080
00081
00082 float chi2() const;
00083 float outOfTimeChi2() const;
00084
00085
00086
00087 float outOfTimeEnergy() const;
00088 float timeError() const;
00089
00090 void setChi2( float chi2 );
00091 void setOutOfTimeChi2( float chi2 );
00092 void setOutOfTimeEnergy( float energy );
00093
00094 void setTimeError( uint8_t timeErrBits );
00095
00096
00098 void setFlag(int flag) {flagBits_|= (0x1 << flag);}
00099 void unsetFlag(int flag) {flagBits_ &= ~(0x1 << flag);}
00100
00102 bool checkFlag(int flag) const{return flagBits_ & ( 0x1<<flag);}
00103
00105 bool checkFlagMask(uint32_t mask) const { return flagBits_&mask; }
00106
00108 Flags recoFlag() const ;
00109
00110 private:
00111
00113 uint32_t flagBits_;
00114 };
00115
00116 std::ostream& operator<<(std::ostream& s, const EcalRecHit& hit);
00117
00118 #endif