Public Member Functions | |
virtual void | cleanLocal () |
FWJetProxyBuilder () | |
virtual bool | havePerViewProduct (FWViewType::EType) const |
virtual bool | haveSingleProduct () const |
REGISTER_PROXYBUILDER_METHODS () | |
virtual void | setItem (const FWEventItem *iItem) |
virtual | ~FWJetProxyBuilder () |
Protected Member Functions | |
virtual void | buildViewType (const reco::Jet &iData, unsigned int iIndex, TEveElement &oItemHolder, FWViewType::EType type, const FWViewContext *) |
virtual void | localModelChanges (const FWModelId &iId, TEveElement *iCompound, FWViewType::EType viewType, const FWViewContext *vc) |
virtual void | scaleProduct (TEveElementList *parent, FWViewType::EType, const FWViewContext *vc) |
Private Types | |
typedef std::vector < fireworks::jetScaleMarker > | Lines_t |
Private Member Functions | |
FWJetProxyBuilder (const FWJetProxyBuilder &) | |
const FWJetProxyBuilder & | operator= (const FWJetProxyBuilder &) |
TEveElementList * | requestCommon () |
void | setTextPos (fireworks::jetScaleMarker &s, const FWViewContext *vc, FWViewType::EType) |
Private Attributes | |
TEveElementList * | m_common |
std::vector < fireworks::jetScaleMarker > | m_lines |
Definition at line 47 of file FWJetProxyBuilder.cc.
typedef std::vector<fireworks::jetScaleMarker> FWJetProxyBuilder::Lines_t [private] |
Definition at line 79 of file FWJetProxyBuilder.cc.
FWJetProxyBuilder::FWJetProxyBuilder | ( | ) |
FWJetProxyBuilder::~FWJetProxyBuilder | ( | ) | [virtual] |
Definition at line 101 of file FWJetProxyBuilder.cc.
References m_common.
{ m_common->DecDenyDestroy(); }
FWJetProxyBuilder::FWJetProxyBuilder | ( | const FWJetProxyBuilder & | ) | [private] |
void FWJetProxyBuilder::buildViewType | ( | const reco::Jet & | iData, |
unsigned int | iIndex, | ||
TEveElement & | oItemHolder, | ||
FWViewType::EType | type, | ||
const FWViewContext * | vc | ||
) | [protected, virtual] |
Reimplemented from FWSimpleProxyBuilderTemplate< reco::Jet >.
Definition at line 125 of file FWJetProxyBuilder.cc.
References fireworks::Context::caloR1(), fireworks::Context::caloZ1(), fireworks::Context::caloZ2(), FWDisplayProperties::color(), FWProxyBuilderBase::context(), funct::cos(), FWEventItem::defaultDisplayProperties(), reco::LeafCandidate::energy(), reco::LeafCandidate::et(), FWEventItem::getConfig(), FWViewContext::getEnergyScale(), FWViewEnergyScale::getPlotEt(), FWViewEnergyScale::getScaleFactor3D(), FWViewType::isProjected(), FWProxyBuilderBase::item(), kJetLabelsRhoPhiOn(), kJetLabelsRhoZOn(), FWViewType::kRhoPhi, FWViewType::kRhoZ, m_lines, fireworks::scaleMarker::m_ls, M_PI, fireworks::jetScaleMarker::m_text, siStripFEDMonitor_P5_cff::Min, reco::LeafCandidate::phi(), phi, alignCSCRings::r, requestCommon(), setTextPos(), FWProxyBuilderBase::setupAddElement(), funct::sin(), findQualityFiles::size, funct::tan(), theta(), reco::LeafCandidate::theta(), FWDisplayProperties::transparency(), FWProxyBuilderConfiguration::value(), and fireworks::Context::voteMaxEtAndEnergy().
{ // add cone from shared pool TEveElementList* cones = requestCommon(); TEveElement::List_i coneIt = cones->BeginChildren(); std::advance(coneIt, iIndex); const FWDisplayProperties &dp = item()->defaultDisplayProperties(); setupAddElement( *coneIt, &oItemHolder ); (*coneIt)->SetMainTransparency(TMath::Min(100, 80 + dp.transparency() / 5)); // scale markers in projected views if (FWViewType::isProjected(type)) { m_lines.push_back(fireworks::jetScaleMarker(new TEveScalableStraightLineSet("jetline"), iData.et(), iData.energy(), vc)); fireworks::jetScaleMarker& markers = m_lines.back(); float size = 1.f; // values are saved in scale double theta = iData.theta(); double phi = iData.phi(); if ( type == FWViewType::kRhoZ ) { static const float_t offr = 4; float r_ecal = context().caloR1() + offr; float z_ecal = context().caloZ1() + offr/tan(context().caloTransAngle()); double r(0); if ( theta < context().caloTransAngle() || M_PI-theta < context().caloTransAngle()) { z_ecal = context().caloZ2() + offr/tan(context().caloTransAngle()); r = z_ecal/fabs(cos(theta)); } else { r = r_ecal/sin(theta); } markers.m_ls->SetScaleCenter( 0., (phi>0 ? r*fabs(sin(theta)) : -r*fabs(sin(theta))), r*cos(theta) ); markers.m_ls->AddLine( 0., (phi>0 ? r*fabs(sin(theta)) : -r*fabs(sin(theta))), r*cos(theta), 0., (phi>0 ? (r+size)*fabs(sin(theta)) : -(r+size)*fabs(sin(theta))), (r+size)*cos(theta) ); } else { float ecalR = context().caloR1() + 4; markers.m_ls->SetScaleCenter(ecalR*cos(phi), ecalR*sin(phi), 0); markers.m_ls->AddLine(ecalR*cos(phi), ecalR*sin(phi), 0, (ecalR+size)*cos(phi), (ecalR+size)*sin(phi), 0); } markers.m_ls->SetLineWidth(4); markers.m_ls->SetLineColor(dp.color()); FWViewEnergyScale* caloScale = vc->getEnergyScale(); markers.m_ls->SetScale(caloScale->getScaleFactor3D()*(caloScale->getPlotEt() ? iData.et() : iData.energy())); if ((type == FWViewType::kRhoZ && item()->getConfig()->value<bool>(kJetLabelsRhoZOn))|| (type == FWViewType::kRhoPhi && item()->getConfig()->value<bool>(kJetLabelsRhoPhiOn) ) ) { markers.m_text = new FWEveText(Form("%.1f", vc->getEnergyScale()->getPlotEt() ? iData.et() : iData.energy())); markers.m_text->SetMainColor( item()->defaultDisplayProperties().color()); setTextPos(markers, vc, type); } markers.m_ls->SetMarkerColor(markers.m_ls->GetMainColor()); setupAddElement( markers.m_ls, &oItemHolder ); if (markers.m_text) setupAddElement( markers.m_text, &oItemHolder , false); } context().voteMaxEtAndEnergy(iData.et(), iData.energy()); }
void FWJetProxyBuilder::cleanLocal | ( | ) | [virtual] |
Reimplemented from FWProxyBuilderBase.
Definition at line 212 of file FWJetProxyBuilder.cc.
virtual bool FWJetProxyBuilder::havePerViewProduct | ( | FWViewType::EType | ) | const [inline, virtual] |
Reimplemented from FWProxyBuilderBase.
Definition at line 53 of file FWJetProxyBuilder.cc.
{ return true; }
virtual bool FWJetProxyBuilder::haveSingleProduct | ( | void | ) | const [inline, virtual] |
Reimplemented from FWProxyBuilderBase.
Definition at line 54 of file FWJetProxyBuilder.cc.
{ return false; } // different view types
void FWJetProxyBuilder::localModelChanges | ( | const FWModelId & | iId, |
TEveElement * | iCompound, | ||
FWViewType::EType | viewType, | ||
const FWViewContext * | vc | ||
) | [protected, virtual] |
Reimplemented from FWProxyBuilderBase.
Definition at line 198 of file FWJetProxyBuilder.cc.
References i, FWProxyBuilderBase::increaseComponentTransparency(), FWModelId::index(), and m_lines.
{ increaseComponentTransparency(iId.index(), iCompound, "TEveJetCone", 80); for (Lines_t::iterator i = m_lines.begin(); i!= m_lines.end(); ++ i) { TEveStraightLineSetProjected* projLineSet = (TEveStraightLineSetProjected*)(*(*i).m_ls->BeginProjecteds()); if (projLineSet) projLineSet->UpdateProjection(); } }
const FWJetProxyBuilder& FWJetProxyBuilder::operator= | ( | const FWJetProxyBuilder & | ) | [private] |
FWJetProxyBuilder::REGISTER_PROXYBUILDER_METHODS | ( | ) |
TEveElementList * FWJetProxyBuilder::requestCommon | ( | ) | [private] |
Definition at line 107 of file FWJetProxyBuilder.cc.
References FWProxyBuilderBase::context(), funct::false, i, FWProxyBuilderBase::item(), m_common, fireworks::makeEveJetCone(), FWSimpleProxyBuilderTemplate< reco::Jet >::modelData(), and FWEventItem::size().
Referenced by buildViewType().
{ if( m_common->HasChildren() == false ) { for (int i = 0; i < static_cast<int>(item()->size()); ++i) { TEveJetCone* cone = fireworks::makeEveJetCone(modelData(i), context()); m_common->AddElement(cone); cone->SetFillColor(item()->defaultDisplayProperties().color()); cone->SetLineColor(item()->defaultDisplayProperties().color()); } } return m_common; }
void FWJetProxyBuilder::scaleProduct | ( | TEveElementList * | parent, |
FWViewType::EType | type, | ||
const FWViewContext * | vc | ||
) | [protected, virtual] |
Reimplemented from FWProxyBuilderBase.
Definition at line 219 of file FWJetProxyBuilder.cc.
References FWViewContext::getEnergyScale(), FWViewEnergyScale::getPlotEt(), FWViewEnergyScale::getScaleFactor3D(), i, m_lines, setTextPos(), and relativeConstraints::value.
{ for (Lines_t::iterator i = m_lines.begin(); i!= m_lines.end(); ++ i) { if (vc == (*i).m_vc) { float value = vc->getEnergyScale()->getPlotEt() ? (*i).m_et : (*i).m_energy; (*i).m_ls->SetScale(vc->getEnergyScale()->getScaleFactor3D() * value ); if ((*i).m_text) { (*i).m_text->SetText(Form("%.1f", value)); setTextPos(*i, vc, type); } TEveStraightLineSetProjected* projLineSet = (TEveStraightLineSetProjected*)(*(*i).m_ls->BeginProjecteds()); projLineSet->UpdateProjection(); } } }
virtual void FWJetProxyBuilder::setItem | ( | const FWEventItem * | iItem | ) | [inline, virtual] |
Reimplemented from FWProxyBuilderBase.
Definition at line 57 of file FWJetProxyBuilder.cc.
References FWProxyBuilderConfiguration::assertParam(), FWEventItem::getConfig(), kJetLabelsRhoPhiOn(), kJetLabelsRhoZOn(), and kJetOffset().
{ FWProxyBuilderBase::setItem(iItem); if (iItem) { iItem->getConfig()->assertParam(kJetLabelsRhoPhiOn, false); iItem->getConfig()->assertParam(kJetLabelsRhoZOn, false); iItem->getConfig()->assertParam(kJetOffset, 2.1, 1.0, 5.0); } }
void FWJetProxyBuilder::setTextPos | ( | fireworks::jetScaleMarker & | s, |
const FWViewContext * | vc, | ||
FWViewType::EType | type | ||
) | [private] |
Definition at line 240 of file FWJetProxyBuilder.cc.
References FWProxyBuilderBase::context(), FWEventItem::getConfig(), FWViewContext::getEnergyScale(), fireworks::Context::getMaxEnergyInEvent(), FWViewEnergyScale::getPlotEt(), FWProxyBuilderBase::item(), kJetOffset(), prof2calltree::l, fireworks::scaleMarker::m_energy, fireworks::scaleMarker::m_et, fireworks::scaleMarker::m_ls, FWEveText::m_offsetZ, fireworks::jetScaleMarker::m_text, FWEveTextProjected::UpdateProjection(), v, FWProxyBuilderConfiguration::value(), relativeConstraints::value, x, detailsBasic3DVector::y, and z.
Referenced by buildViewType(), and scaleProduct().
{ TEveChunkManager::iterator li( s.m_ls->GetLinePlex() ); li.next(); TEveStraightLineSet::Line_t &l = * ( TEveStraightLineSet::Line_t* ) li(); TEveVector v(l.fV2[0] - l.fV1[0], l.fV2[1] - l.fV1[1], l.fV2[2] - l.fV1[2] ); v.Normalize(); double off = item()->getConfig()->value<double>(kJetOffset) -1; float value = vc->getEnergyScale()->getPlotEt() ? s.m_et : s.m_energy; double trs = off * 130 * value/context().getMaxEnergyInEvent(vc->getEnergyScale()->getPlotEt()); v *= trs; float x = l.fV1[0] + v[0]; float y = l.fV1[1] + v[1]; float z = l.fV1[2] + v[2]; s.m_text->m_offsetZ = value/context().getMaxEnergyInEvent(vc->getEnergyScale()->getPlotEt()); s.m_text->RefMainTrans().SetPos(x, y, z); if ((s.m_text)->BeginProjecteds() != (s.m_text)->EndProjecteds()) { FWEveTextProjected* textProjected = (FWEveTextProjected*)(*(s.m_text)->BeginProjecteds()); textProjected->UpdateProjection(); } }
TEveElementList* FWJetProxyBuilder::m_common [private] |
Definition at line 87 of file FWJetProxyBuilder.cc.
Referenced by cleanLocal(), FWJetProxyBuilder(), requestCommon(), and ~FWJetProxyBuilder().
std::vector<fireworks::jetScaleMarker> FWJetProxyBuilder::m_lines [private] |
Definition at line 89 of file FWJetProxyBuilder.cc.
Referenced by buildViewType(), cleanLocal(), localModelChanges(), and scaleProduct().