Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 13:27:00

0001 #ifndef Fireworks_Core_BuilderUtils_h
0002 #define Fireworks_Core_BuilderUtils_h
0003 
0004 #include <vector>
0005 #include <string>
0006 #include "Rtypes.h"
0007 
0008 class TEveGeoShape;
0009 class TEveElement;
0010 class TGeoBBox;
0011 class FWProxyBuilderBase;
0012 
0013 namespace edm {
0014   class EventBase;
0015 }
0016 
0017 namespace fireworks {
0018   std::pair<double, double> getPhiRange(const std::vector<double>& phis, double phi);
0019   TEveGeoShape* getShape(const char* name, TGeoBBox* shape, Color_t color);
0020 
0021   void addRhoZEnergyProjection(
0022       FWProxyBuilderBase*, TEveElement*, double r_ecal, double z_ecal, double theta_min, double theta_max, double phi);
0023 
0024   std::string getTimeGMT(const edm::EventBase& event);
0025   std::string getLocalTime(const edm::EventBase& event);
0026 
0027   void invertBox(std::vector<float>& corners);
0028   void addBox(const std::vector<float>& corners, TEveElement*, FWProxyBuilderBase*);
0029   void addCircle(double eta,
0030                  double phi,
0031                  double radius,
0032                  const unsigned int nLineSegments,
0033                  TEveElement* comp,
0034                  FWProxyBuilderBase* pb);
0035   void addDashedArrow(double phi, double size, TEveElement* comp, FWProxyBuilderBase* pb);
0036   void addDashedLine(double phi, double theta, double size, TEveElement* comp, FWProxyBuilderBase* pb);
0037   void addDoubleLines(double phi, TEveElement* comp, FWProxyBuilderBase* pb);
0038 
0039   //
0040   //  box-utilts
0041   //
0042   void energyScaledBox3DCorners(const float* corners, float scale, std::vector<float>&, bool invert = false);
0043   void drawEnergyScaledBox3D(const float* corners, float scale, TEveElement*, FWProxyBuilderBase*, bool invert = false);
0044 
0045   void energyTower3DCorners(const float* corners, float scale, std::vector<float>&, bool reflect = false);
0046   void drawEnergyTower3D(const float* corners, float scale, TEveElement*, FWProxyBuilderBase*, bool reflect = false);
0047 
0048   // AMT: is this needed ?
0049   void etScaledBox3DCorners(
0050       const float* corners, float energy, float maxEnergy, std::vector<float>& scaledCorners, bool reflect = false);
0051   void drawEtScaledBox3D(
0052       const float* corners, float energy, float maxEnergy, TEveElement*, FWProxyBuilderBase*, bool reflect = false);
0053 
0054   void etTower3DCorners(const float* corners, float scale, std::vector<float>&, bool reflect = false);
0055   void drawEtTower3D(const float* corners, float scale, TEveElement*, FWProxyBuilderBase*, bool reflect = false);
0056 }  // namespace fireworks
0057 
0058 #endif  // Fireworks_Core_BuilderUtils_h