CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/Fireworks/Core/interface/FWRPZView.h

Go to the documentation of this file.
00001 #ifndef Fireworks_Core_FWRPZView_h
00002 #define Fireworks_Core_FWRPZView_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Core
00006 // Class  :     FWRPZView
00007 //
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Tue Feb 19 10:33:21 EST 2008
00019 // $Id: FWRPZView.h,v 1.24 2011/10/15 02:33:29 amraktad Exp $
00020 //
00021 
00022 // system include files
00023 #include <string>
00024 
00025 // user include files
00026 #include "Fireworks/Core/interface/FWEveView.h"
00027 #include "Fireworks/Core/interface/FWDoubleParameter.h"
00028 #include "Fireworks/Core/interface/FWBoolParameter.h"
00029 #include "Fireworks/Core/interface/FWEvePtr.h"
00030 #include "TEveVector.h"
00031 
00032 // forward declarations
00033 class TEveProjectionManager;
00034 class TGLMatrix;
00035 class TEveCalo2D;
00036 class TEveProjectionAxes;
00037 class TEveWindowSlot;
00038 class FWColorManager;
00039 class FWRPZViewGeometry;
00040 
00041 class FWRPZView : public FWEveView
00042 {
00043 public:
00044    FWRPZView(TEveWindowSlot* iParent, FWViewType::EType);
00045    virtual ~FWRPZView();
00046 
00047    // ---------- const member functions ---------------------
00048 
00049    virtual void addTo(FWConfiguration&) const;
00050    virtual void populateController(ViewerParameterGUI&) const;
00051    virtual TEveCaloViz* getEveCalo() const;
00052 
00053    // ---------- member functions ---------------------------
00054    virtual void setContext(const fireworks::Context&);
00055    virtual void setFrom(const FWConfiguration&);
00056    virtual void voteCaloMaxVal();
00057 
00058    virtual void eventBegin();
00059    virtual void eventEnd();
00060 
00061    //returns the new element created from this import
00062    void importElements(TEveElement* iProjectableChild, float layer, TEveElement* iProjectedParent=0);
00063  
00064    void shiftOrigin(TEveVector& center);
00065    void resetOrigin();
00066 private:
00067    FWRPZView(const FWRPZView&);    // stop default
00068    const FWRPZView& operator=(const FWRPZView&);    // stop default 
00069 
00070    void doPreScaleDistortion();
00071    void doFishEyeDistortion();
00072    void doCompression(bool);
00073    void doShiftOriginToBeamSpot();
00074 
00075 
00076    void setEtaRng();
00077    
00078    void showProjectionAxes( );
00079    void projectionAxesLabelSize( );
00080 
00081    // ---------- member data --------------------------------
00082    const  static float s_distortF;
00083    const  static float s_distortFInv;
00084 
00085    FWRPZViewGeometry* m_geometryList;
00086    TEveProjectionManager* m_projMgr;
00087    TEveProjectionAxes*    m_axes;
00088    TEveCalo2D*            m_calo;
00089 
00090 
00091    // parameters
00092 
00093    FWBoolParameter m_showPixelBarrel;
00094    FWBoolParameter m_showPixelEndcap;
00095    FWBoolParameter m_showTrackerBarrel;
00096    FWBoolParameter m_showTrackerEndcap;
00097 
00098    FWBoolParameter    m_shiftOrigin;
00099    FWDoubleParameter  m_fishEyeDistortion;
00100    FWDoubleParameter  m_fishEyeR;
00101 
00102    FWDoubleParameter  m_caloDistortion;
00103    FWDoubleParameter  m_muonDistortion;
00104    FWBoolParameter    m_showProjectionAxes;
00105    FWDoubleParameter  m_projectionAxesLabelSize;
00106    FWBoolParameter    m_compressMuon;
00107 
00108    FWBoolParameter*   m_showHF;
00109    FWBoolParameter*   m_showEndcaps;
00110 
00111 };
00112 
00113 
00114 #endif