Go to the documentation of this file.00001 #ifndef Fireworks_Core_FWOverlapTableManager_h
00002 #define Fireworks_Core_FWOverlapTableManager_h
00003
00004
00005
00006
00007
00016
00017
00018
00019
00020
00021
00022 #include "Fireworks/Core/interface/FWGeometryTableManagerBase.h"
00023 #include "TGeoMatrix.h"
00024 #include "TGeoNode.h"
00025 #include "TGeoOverlap.h"
00026 #include <map>
00027
00028
00029 class FWOverlapTableView;
00030 class TGeoOverlap;
00031 class TGeoIterator;
00032
00033 class FWOverlapTableManager : public FWGeometryTableManagerBase
00034 {
00035 public:
00036 enum OverlapBits
00037 {
00038 kVisMarker = BIT(5),
00039 kOverlap = BIT(6),
00040 kOverlapChild = BIT(7)
00041 };
00042 FWOverlapTableManager(FWOverlapTableView*);
00043 virtual ~FWOverlapTableManager();
00044
00045 virtual void recalculateVisibility();
00046 virtual void recalculateVisibilityNodeRec(int);
00047 void importOverlaps(std::string path, double precision);
00048 virtual int numberOfColumns() const {return 7;}
00049
00050 virtual std::vector<std::string> getTitles() const;
00051
00052 FWTableCellRendererBase* cellRenderer(int iSortedRowNumber, int iCol) const;
00053
00054 void getOverlapTitles(int,TString&) const;
00055 void printOverlaps(int) const;
00056
00057 void setDaughtersSelfVisibility(int i, bool v);
00058 protected:
00059 virtual bool nodeIsParent(const NodeInfo&) const;
00060
00061
00062 private:
00063 FWOverlapTableManager(const FWOverlapTableManager&);
00064 const FWOverlapTableManager& operator=(const FWOverlapTableManager&);
00065
00066 void addOverlapEntry(TGeoOverlap*, int, int , TGeoHMatrix*);
00067 FWOverlapTableView* m_browser;
00068
00069 std::multimap<int, int> m_mapNodeOverlaps;
00070 };
00071
00072
00073 #endif