00001
00002
00003
00004 #ifndef STJTRGDISABLETOWER_H
00005 #define STJTRGDISABLETOWER_H
00006
00007 #include <StjTrg.h>
00008
00009 #include <set>
00010
00011 class StjTrgDisableTower : public StjTrg {
00012
00013 public:
00014 StjTrgDisableTower(StjTrg* src, int badTowerId)
00015 : _src(src)
00016 , _badTowerIdSet(&badTowerId, &badTowerId + 1)
00017 , _runNumber(-1), _eventId(-1) { }
00018 StjTrgDisableTower(StjTrg* src, int nbadTowerIds, int* badTowerIds)
00019 : _src(src)
00020 , _badTowerIdSet(badTowerIds, badTowerIds + nbadTowerIds)
00021 , _runNumber(-1), _eventId(-1) { }
00022 virtual ~StjTrgDisableTower() { }
00023
00024 int id() { return _src->id(); }
00025
00026 int runNumber() { return _src->runNumber(); }
00027 int eventId() { return _src->eventId(); }
00028 bool hard() const { return _src->hard(); }
00029 bool soft() const { return _src->soft(); }
00030 bool passed() const { return _src->passed(); }
00031 double prescale() { return _src->prescale(); }
00032 double vertexZ() { return _src->vertexZ(); }
00033
00034 virtual std::vector<int> towers() { return std::vector<int>(); }
00035 virtual std::vector<int> towerDsmAdc() { return std::vector<int>(); }
00036 virtual std::vector<unsigned int> towerAdc() { return std::vector<unsigned int>(); }
00037 virtual std::vector<double> towerEnergy() { return std::vector<double>(); }
00038 virtual std::vector<double> towerEt() { return std::vector<double>(); }
00039
00040 virtual std::vector<int> jetPatches() { return std::vector<int>(); }
00041 virtual std::vector<int> jetPatchDsmAdc() { return std::vector<int>(); }
00042 virtual std::vector<unsigned int> jetPatchAdc() { return std::vector<unsigned int>(); }
00043 virtual std::vector<double> jetPatchEnergy() { return std::vector<double>(); }
00044 virtual std::vector<double> jetPatchEt() { return std::vector<double>(); }
00045
00046
00047 protected:
00048
00049 StjTrg* _src;
00050
00051 std::set<int> _badTowerIdSet;
00052
00053 void readIfNewEvent() const;
00054
00055 private:
00056
00057 bool isNewEvent() const;
00058 virtual void read() const = 0;
00059
00060 void readNewEvent() const;
00061
00062 mutable int _runNumber;
00063 mutable int _eventId;
00064
00065
00066 ClassDef(StjTrgDisableTower, 1)
00067
00068 };
00069
00070 #endif // STJTRGDISABLETOWER_H