14 #include "TEveGeoNode.h" 15 #include "TEveScalableStraightLineSet.h" 60 std::vector<fireworks::scaleMarker>
m_lines;
66 typedef std::vector<fireworks::scaleMarker> Lines_t;
72 if ( vc == (*i).m_vc )
79 TEveProjectable *pable =
static_cast<TEveProjectable*
>((*i).m_ls);
80 for (TEveProjectable::ProjList_i j = pable->BeginProjecteds(); j != pable->EndProjecteds(); ++j)
82 (*j)->UpdateProjection();
91 using namespace TMath;
98 TEveScalableStraightLineSet*
marker =
new TEveScalableStraightLineSet(
"MET marker" );
99 marker->SetLineWidth( 2 );
115 marker->SetScaleCenter( 0.,
Sign(r0*
sin(theta), phi), r0*
cos(theta) );
117 marker->AddLine( 0.,
Sign(r0*
sin(theta), phi), r0*
cos(theta),
118 0.,
Sign(r1*
sin(theta), phi), r1*
cos(theta) );
121 double r2 = r1 - 0.1;
123 marker->AddLine( 0.,
Sign(r2*
sin(theta) + dy*
cos(theta), phi), r2*
cos(theta) -dy*
sin(theta),
124 0.,
Sign(r1*
sin(theta), phi), r1*
cos(theta) );
126 marker->AddLine( 0.,
Sign(r2*
sin(theta) + dy*
cos(theta), phi), r2*
cos(theta) -dy*
sin(theta),
127 0.,
Sign(r1*
sin(theta), phi), r1*
cos(theta) );
131 theta - 0.04, theta + 0.04,
139 marker->SetScaleCenter( r0*
cos(phi), r0*
sin(phi), 0 );
140 marker->AddLine( r0*
cos(phi), r0*
sin(phi), 0,
141 r1*
cos(phi), r1*
sin(phi), 0);
144 double r2 = r1 - 0.1;
147 marker->AddLine( r2*
cos(phi) -dy*
sin(phi), r2*
sin(phi) + dy*
cos(phi), 0,
148 r1*
cos(phi), r1*
sin(phi), 0);
150 marker->AddLine( r2*
cos(phi) -dy*
sin(phi), r2*
sin(phi) + dy*
cos(phi), 0,
151 r1*
cos(phi), r1*
sin(phi), 0);
154 double min_phi = phi-
M_PI/36/2;
155 double max_phi = phi+
M_PI/36/2;
156 TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur());
158 element->SetPickable( kTRUE );
static float caloTransEta()
const fireworks::Context & context() const
float getScaleFactor3D() const
std::vector< fireworks::scaleMarker > m_lines
#define REGISTER_PROXYBUILDER_METHODS()
#define REGISTER_FWPROXYBUILDER(_name_, _type_, _purpose_, _view_)
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
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