CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/Fireworks/Core/src/FWOverlapTableManager.h

Go to the documentation of this file.
00001 #ifndef Fireworks_Core_FWOverlapTableManager_h
00002 #define Fireworks_Core_FWOverlapTableManager_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Core
00006 // Class  :     FWOverlapTableManager
00007 // 
00016 //
00017 // Original Author:  
00018 //         Created:  Wed Jan  4 20:34:38 CET 2012
00019 // $Id: FWOverlapTableManager.h,v 1.4 2012/04/25 06:09:35 amraktad Exp $
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    //   virtual  const char* cellName(const NodeInfo& data) const;
00061 
00062 private:
00063    FWOverlapTableManager(const FWOverlapTableManager&); // stop default
00064    const FWOverlapTableManager& operator=(const FWOverlapTableManager&); // stop default
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