14 #include "TEveGeoNode.h" 15 #include "TEveScalableStraightLineSet.h" 58 TEveElement& oItemHolder,
62 std::vector<fireworks::scaleMarker>
m_lines;
66 typedef std::vector<fireworks::scaleMarker> Lines_t;
71 if (vc == (*i).m_vc) {
77 TEveProjectable* pable =
static_cast<TEveProjectable*
>((*i).m_ls);
78 for (TEveProjectable::ProjList_i
j = pable->BeginProjecteds();
j != pable->EndProjecteds(); ++
j) {
79 (*j)->UpdateProjection();
87 TEveElement& oItemHolder,
90 using namespace TMath;
97 TEveScalableStraightLineSet* marker =
new TEveScalableStraightLineSet(
"MET marker");
98 marker->SetLineWidth(2);
108 marker->SetScaleCenter(0.,
Sign(r0 *
sin(theta), phi), r0 *
cos(theta));
110 marker->AddLine(0.,
Sign(r0 *
sin(theta), phi), r0 *
cos(theta), 0.,
Sign(r1 *
sin(theta), phi), r1 *
cos(theta));
113 double r2 = r1 - 0.1;
117 r2 *
cos(theta) - dy *
sin(theta),
124 r2 *
cos(theta) - dy *
sin(theta),
136 marker->SetScaleCenter(r0 *
cos(phi), r0 *
sin(phi), 0);
137 marker->AddLine(r0 *
cos(phi), r0 *
sin(phi), 0, r1 *
cos(phi), r1 *
sin(phi), 0);
140 double r2 = r1 - 0.1;
143 marker->AddLine(r2 *
cos(phi) - dy *
sin(phi), r2 *
sin(phi) + dy *
cos(phi), 0, r1 *
cos(phi), r1 *
sin(phi), 0);
145 marker->AddLine(r2 *
cos(phi) - dy *
sin(phi), r2 *
sin(phi) + dy *
cos(phi), 0, r1 *
cos(phi), r1 *
sin(phi), 0);
148 double min_phi = phi -
M_PI / 36 / 2;
149 double max_phi = phi +
M_PI / 36 / 2;
150 TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur());
151 TEveGeoShape* element =
153 element->SetPickable(kTRUE);
static float caloTransEta()
const fireworks::Context & context() const
float getScaleFactor3D() const
std::vector< fireworks::scaleMarker > m_lines
double eta() const final
momentum pseudorapidity
static const int kAllRPZBits
double theta() const final
momentum polar angle
void voteMaxEtAndEnergy(float Et, float energy) const
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
Sin< T >::type sin(const T &t)
FWViewEnergyScale * getEnergyScale() const
Geom::Theta< T > theta() const
const FWMETProxyBuilder & operator=(const FWMETProxyBuilder &)=delete
~FWMETProxyBuilder() override
void buildViewType(const reco::MET &iData, unsigned int iIndex, TEveElement &oItemHolder, FWViewType::EType type, const FWViewContext *) override
double et() const final
transverse energy
Cos< T >::type cos(const T &t)
double energy() const final
energy
static float caloR1(bool offset=true)
void cleanLocal() override
bool havePerViewProduct(FWViewType::EType) const override
void addRhoZEnergyProjection(FWProxyBuilderBase *, TEveElement *, double r_ecal, double z_ecal, double theta_min, double theta_max, double phi)
void scaleProduct(TEveElementList *parent, FWViewType::EType, const FWViewContext *vc) override
#define REGISTER_PROXYBUILDER_METHODS()
#define REGISTER_FWPROXYBUILDER(_name_, _type_, _purpose_, _view_)
static float caloZ1(bool offset=true)
TEveGeoShape * getShape(const char *name, TGeoBBox *shape, Color_t color)
double phi() const final
momentum azimuthal angle
bool haveSingleProduct() const override