fmssim
|
00001 #ifndef _FMS_TRIGGER_YEAR2011BOARDSUM_H_ 00002 #define _FMS_TRIGGER_YEAR2011BOARDSUM_H_ 00003 00004 // 00005 // Year2011BoardSum.h 00006 // 00007 // Created by TB on 9/16/11. 00008 // Copyright 2011 BNL. All rights reserved. 00009 // 00010 00011 #include <list> 00012 00013 #include "DetectorLarge2011.h" 00014 #include "DetectorSmall2011.h" 00015 #include "Map.h" 00016 #include "Region.h" 00017 00018 namespace fms { 00019 00020 namespace trigger { 00021 00032 class QtBoard2011 : public Region { 00033 00034 public: 00035 00036 // Quadrants are 00037 // NORTH_TOP, NORTH_BOTTOM, SOUTH_TOP, SOUTH_BOTTOM 00038 // See fms::geometry::Quadrant. 00039 // Board IDs are A to J inclusive. 00040 // A-D cover the small-cell of that quadrant, E-J the large cells. 00041 // Consider using enum type in arguments... 00042 QtBoard2011(Int_t quadrant, Int_t boardId); 00043 00048 virtual Bool_t Contains(const TVector3&) const; 00049 00053 virtual Double_t GetThreshold() const { return 0.; } 00054 00055 virtual void SetThreshold(Double_t) { } 00056 00057 /* 00058 virtual Bool_t IsOverThreshold() const = 0; 00059 */ 00060 00066 virtual void SetId(Int_t); 00067 00068 virtual Int_t GetId() const; 00069 00070 protected: 00071 00072 friend class Year2011BoardSum; 00073 00074 static fms::geometry::Detector2011 smDetector; 00075 00076 Int_t mQuadrant; 00077 Int_t mBoard; 00078 mutable Int_t mId; 00079 00080 ClassDef(fms::trigger::QtBoard2011, 1) 00081 }; 00082 00083 inline void QtBoard2011::SetId(Int_t i) { mId = i; } 00084 00085 inline Int_t QtBoard2011::GetId() const { return mId; } 00086 00087 00097 class Year2011BoardSum : public Map { 00098 00099 public: 00100 00101 Year2011BoardSum(); 00102 00103 virtual ~Year2011BoardSum(); 00104 00108 virtual Region* Find(const TVector3&) const; 00109 00113 virtual UInt_t Size() const; 00114 00121 virtual Bool_t Add(Int_t, Region*); 00122 00123 virtual void Draw(Option_t* = ""); 00124 00125 std::list<Region*> mRegions; 00126 00127 ClassDef(fms::trigger::Year2011BoardSum, 1) 00128 }; 00129 00130 inline UInt_t Year2011BoardSum::Size() const { return mRegions.size(); } 00131 00132 } // namespace trigger 00133 00134 } // namespace fms 00135 00136 #endif