Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-08-03 04:09:59

0001 #ifndef Fireworks_Core_FWRPZView_h
0002 #define Fireworks_Core_FWRPZView_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Core
0006 // Class  :     FWRPZView
0007 //
0008 /**\class FWRPZView FWRPZView.h Fireworks/Core/interface/FWRPZView.h
0009 
0010    Description: <one line class summary>
0011 
0012    Usage:
0013     <usage>
0014 
0015  */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Tue Feb 19 10:33:21 EST 2008
0019 //
0020 
0021 // system include files
0022 #include <string>
0023 
0024 // user include files
0025 #include "Fireworks/Core/interface/FWEveView.h"
0026 #include "Fireworks/Core/interface/FWDoubleParameter.h"
0027 #include "Fireworks/Core/interface/FWBoolParameter.h"
0028 #include "Fireworks/Core/interface/FWEvePtr.h"
0029 #include "TEveVector.h"
0030 
0031 // forward declarations
0032 class TEveProjectionManager;
0033 class TGLMatrix;
0034 class TEveCalo2D;
0035 class TEveProjectionAxes;
0036 class TEveWindowSlot;
0037 class FWColorManager;
0038 class FWRPZViewGeometry;
0039 
0040 class FWRPZView : public FWEveView {
0041 public:
0042   FWRPZView(TEveWindowSlot* iParent, FWViewType::EType);
0043   ~FWRPZView() override;
0044 
0045   // ---------- const member functions ---------------------
0046 
0047   void addTo(FWConfiguration&) const override;
0048   void populateController(ViewerParameterGUI&) const override;
0049   TEveCaloViz* getEveCalo() const override;
0050 
0051   // ---------- member functions ---------------------------
0052   void setContext(const fireworks::Context&) override;
0053   void setFrom(const FWConfiguration&) override;
0054   void voteCaloMaxVal() override;
0055 
0056   void eventBegin() override;
0057   void eventEnd() override;
0058   void setupEventCenter() override;
0059 
0060   //returns the new element created from this import
0061   void importElements(TEveElement* iProjectableChild, float layer, TEveElement* iProjectedParent = nullptr);
0062 
0063   void shiftOrigin(TEveVector& center);
0064   void resetOrigin();
0065 
0066   FWRPZView(const FWRPZView&) = delete;                   // stop default
0067   const FWRPZView& operator=(const FWRPZView&) = delete;  // stop default
0068 
0069 private:
0070   void doPreScaleDistortion();
0071   void doFishEyeDistortion();
0072   void doCompression(bool);
0073   void doShiftOriginToBeamSpot();
0074 
0075   void setEtaRng();
0076 
0077   void showProjectionAxes();
0078   void projectionAxesLabelSize();
0079 
0080   // ---------- member data --------------------------------
0081   const static float s_distortF;
0082   const static float s_distortFInv;
0083 
0084   FWRPZViewGeometry* m_geometryList;
0085   TEveProjectionManager* m_projMgr;
0086   TEveProjectionAxes* m_axes;
0087   TEveCalo2D* m_calo;
0088 
0089   // parameters
0090 
0091   FWBoolParameter m_showPixelBarrel;
0092   FWBoolParameter m_showPixelEndcap;
0093   FWBoolParameter m_showTrackerBarrel;
0094   FWBoolParameter m_showTrackerEndcap;
0095   FWBoolParameter m_showRpcEndcap;
0096   FWBoolParameter m_showGEM;
0097   FWBoolParameter m_showME0;
0098 
0099   FWBoolParameter m_shiftOrigin;
0100   FWDoubleParameter m_fishEyeDistortion;
0101   FWDoubleParameter m_fishEyeR;
0102 
0103   FWDoubleParameter m_caloDistortion;
0104   FWDoubleParameter m_muonDistortion;
0105   FWBoolParameter m_showProjectionAxes;
0106   FWDoubleParameter m_projectionAxesLabelSize;
0107   FWBoolParameter m_compressMuon;
0108 
0109   FWBoolParameter* m_showHF;
0110   FWBoolParameter* m_showEndcaps;
0111 };
0112 
0113 #endif