File indexing completed on 2024-04-06 12:11:32
0001 #ifndef Fireworks_Core_FWRPZView_h
0002 #define Fireworks_Core_FWRPZView_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <string>
0023
0024
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
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
0046
0047 void addTo(FWConfiguration&) const override;
0048 void populateController(ViewerParameterGUI&) const override;
0049 TEveCaloViz* getEveCalo() const override;
0050
0051
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
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;
0067 const FWRPZView& operator=(const FWRPZView&) = delete;
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
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
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 FWBoolParameter m_showMtdBarrel;
0099 FWBoolParameter m_showMtdEndcap;
0100
0101 FWBoolParameter m_shiftOrigin;
0102 FWDoubleParameter m_fishEyeDistortion;
0103 FWDoubleParameter m_fishEyeR;
0104
0105 FWDoubleParameter m_caloDistortion;
0106 FWDoubleParameter m_muonDistortion;
0107 FWBoolParameter m_showProjectionAxes;
0108 FWDoubleParameter m_projectionAxesLabelSize;
0109 FWBoolParameter m_compressMuon;
0110
0111 FWBoolParameter* m_showHF;
0112 FWBoolParameter* m_showEndcaps;
0113 };
0114
0115 #endif