#include <Fireworks/Core/interface/FWRPZView.h>
Description: <one line="" class="" summary>="">
Usage: <usage>
Definition at line 40 of file FWRPZView.h.
FWRPZView::FWRPZView | ( | TEveWindowSlot * | iParent, |
FWViewType::EType | id | ||
) |
Definition at line 51 of file FWRPZView.cc.
References fireworks::Context::caloR1(), FWGenericParameter< T >::changed_, doCompression(), doFishEyeDistortion(), doPreScaleDistortion(), doShiftOrigin(), FWEveView::eventScene(), FWEveView::geoScene(), FWViewType::kRhoPhi, FWViewType::kRhoPhiPF, FWViewType::kRhoZ, m_axes, m_caloDistortion, m_compressMuon, m_fishEyeDistortion, m_fishEyeR, m_muonDistortion, m_projMgr, m_shiftOrigin, m_showEndcaps, m_showHF, m_showProjectionAxes, s_distortF, setEtaRng(), showProjectionAxes(), FWGenericParameter< T >::value(), and FWEveView::viewerGL().
: FWEveView(iParent, id, 7), m_calo(0), m_shiftOrigin(this,"Shift origin to beam-spot", true), m_fishEyeDistortion(this,"Distortion",0., 0., 100.), m_fishEyeR(this,"FixedRadius",(double)fireworks::Context::caloR1(), 0.0, 150.0), m_caloDistortion(this,"Calo compression",1.0,0.01,10.), m_muonDistortion(this,"Muon compression",0.2,0.01,10.), m_showProjectionAxes(this,"Show projection axis", false), m_compressMuon(this,"Compress detectors",false), m_showHF(0), m_showEndcaps(0) { TEveProjection::EPType_e projType = (id == FWViewType::kRhoZ) ? TEveProjection::kPT_RhoZ : TEveProjection::kPT_RPhi; m_projMgr = new TEveProjectionManager(projType); m_projMgr->IncDenyDestroy(); m_projMgr->SetImportEmpty(kTRUE); m_projMgr->GetProjection()->SetDistortion(m_fishEyeDistortion.value()*s_distortF); m_projMgr->GetProjection()->SetFixR(m_fishEyeR.value()); #ifdef TEVEPROJECTIONS_DISPLACE_ORIGIN_MODE m_projMgr->GetProjection()->SetDisplaceOrigin( m_shiftOrigin.value()); #endif if ( id == FWViewType::kRhoPhi || id == FWViewType::kRhoPhiPF) { m_projMgr->GetProjection()->AddPreScaleEntry(0, fireworks::Context::caloR1(), 1.0); m_projMgr->GetProjection()->AddPreScaleEntry(0, 300, 0.2); } else { m_projMgr->GetProjection()->AddPreScaleEntry(0, fireworks::Context::caloR1(), 1.0); m_projMgr->GetProjection()->AddPreScaleEntry(1, 310, 1.0); m_projMgr->GetProjection()->AddPreScaleEntry(0, 370, 0.2); m_projMgr->GetProjection()->AddPreScaleEntry(1, 580, 0.2); } // camera viewerGL()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY); if ( TGLOrthoCamera* camera = dynamic_cast<TGLOrthoCamera*>( &(viewerGL()->CurrentCamera()) ) ) { camera->SetZoomMax(1e6); } geoScene()->GetGLScene()->SetSelectable(kFALSE); m_axes = new TEveProjectionAxes(m_projMgr); m_axes->SetRnrState(m_showProjectionAxes.value()); m_axes->SetLabelSize(0.015); m_showProjectionAxes.changed_.connect(boost::bind(&FWRPZView::showProjectionAxes,this)); eventScene()->AddElement(m_axes); if ( id != FWViewType::kRhoZ ) { m_showEndcaps = new FWBoolParameter(this,"Include EndCaps", true); m_showEndcaps->changed_.connect( boost::bind(&FWRPZView::setEtaRng, this) ); m_showHF = new FWBoolParameter(this,"Include HF", true); m_showHF->changed_.connect( boost::bind(&FWRPZView::setEtaRng, this) ); } m_shiftOrigin.changed_.connect(boost::bind(&FWRPZView::doShiftOrigin,this)); m_fishEyeDistortion.changed_.connect(boost::bind(&FWRPZView::doFishEyeDistortion,this)); m_fishEyeR.changed_.connect(boost::bind(&FWRPZView::doFishEyeDistortion,this)); m_caloDistortion.changed_.connect(boost::bind(&FWRPZView::doPreScaleDistortion,this)); m_muonDistortion.changed_.connect(boost::bind(&FWRPZView::doPreScaleDistortion,this)); m_compressMuon.changed_.connect(boost::bind(&FWRPZView::doCompression,this,_1)); }
FWRPZView::~FWRPZView | ( | ) | [virtual] |
FWRPZView::FWRPZView | ( | const FWRPZView & | ) | [private] |
void FWRPZView::addTo | ( | FWConfiguration & | iTo | ) | const [virtual] |
Reimplemented from FWEveView.
Definition at line 259 of file FWRPZView.cc.
References FWEveView::addToOrthoCamera(), and FWEveView::viewerGL().
{ FWEveView::addTo(iTo); TGLOrthoCamera* camera = dynamic_cast<TGLOrthoCamera*>( &(viewerGL()->CurrentCamera()) ); if (camera) addToOrthoCamera(camera, iTo); }
void FWRPZView::doCompression | ( | bool | flag | ) | [private] |
void FWRPZView::doFishEyeDistortion | ( | ) | [private] |
Definition at line 207 of file FWRPZView.cc.
References m_fishEyeDistortion, m_fishEyeR, m_projMgr, L1TEmulatorMonitor_cff::p, s_distortF, s_distortFInv, and FWGenericParameter< T >::value().
Referenced by FWRPZView().
{ TEveProjection* p = m_projMgr->GetProjection(); if (p->GetDistortion() != m_fishEyeDistortion.value()*s_distortFInv) p->SetDistortion(m_fishEyeDistortion.value()*s_distortF); if (p->GetFixR() != m_fishEyeR.value()) p->SetFixR(m_fishEyeR.value()); m_projMgr->ProjectChildren(); gEve->Redraw3D(); }
void FWRPZView::doPreScaleDistortion | ( | ) | [private] |
Definition at line 220 of file FWRPZView.cc.
References FWViewType::kRhoPhi, FWViewType::kRhoPhiPF, m_caloDistortion, m_muonDistortion, m_projMgr, FWViewBase::typeId(), and FWGenericParameter< T >::value().
Referenced by FWRPZView().
{ if ( typeId() == FWViewType::kRhoPhi || typeId() == FWViewType::kRhoPhiPF ) { m_projMgr->GetProjection()->ChangePreScaleEntry(0,1,m_caloDistortion.value()); m_projMgr->GetProjection()->ChangePreScaleEntry(0,2,m_muonDistortion.value()); } else { m_projMgr->GetProjection()->ChangePreScaleEntry(0,1,m_caloDistortion.value()); m_projMgr->GetProjection()->ChangePreScaleEntry(0,2,m_muonDistortion.value()); m_projMgr->GetProjection()->ChangePreScaleEntry(1,1,m_caloDistortion.value()); m_projMgr->GetProjection()->ChangePreScaleEntry(1,2,m_muonDistortion.value()); } m_projMgr->UpdateName(); m_projMgr->ProjectChildren(); gEve->Redraw3D(); }
void FWRPZView::doShiftOrigin | ( | ) | [private] |
Definition at line 192 of file FWRPZView.cc.
References m_projMgr, m_shiftOrigin, L1TEmulatorMonitor_cff::p, and FWGenericParameter< T >::value().
Referenced by FWRPZView().
{ #ifdef TEVEPROJECTIONS_DISPLACE_ORIGIN_MODE TEveProjection* p = m_projMgr->GetProjection(); if (p->GetDisplaceOrigin() != m_shiftOrigin.value()) { p->SetDisplaceOrigin( m_shiftOrigin.value()); m_projMgr->ProjectChildren(); gEve->Redraw3D(); } #endif }
void FWRPZView::eventBegin | ( | ) | [virtual] |
Reimplemented from FWEveView.
Definition at line 165 of file FWRPZView.cc.
References b, FWEveView::context(), fwLog, fireworks::Context::getBeamSpot(), fwlog::kDebug, FWViewType::kRhoZ, m_projMgr, csvReporter::r, FWViewBase::typeId(), FWViewBase::typeName(), FWEveView::viewerGL(), FWBeamSpot::x0(), FWBeamSpot::y0(), and FWBeamSpot::z0().
{ if (context().getBeamSpot()) { FWBeamSpot& b = *(context().getBeamSpot()); fwLog(fwlog::kDebug) << Form("%s::eventBegin Set projection center (%f, %f, %f) \n", typeName().c_str(), b.x0(), b.y0(), b.z0()); // projection center TEveVector center(b.x0(), b.y0(), b.z0()); m_projMgr->GetProjection()->SetCenter(center); // camera move TGLCamera& cam = viewerGL()->CurrentCamera(); cam.SetExternalCenter(true); if (typeId() != FWViewType::kRhoZ) { double r = TMath::Sqrt( b.x0()*b.x0() + b.y0()*b.y0()); cam.SetCenterVec(b.z0(), TMath::Sign(r, b.y0()), 0); } else { cam.SetCenterVec(b.x0(), b.y0(), b.z0()); } } }
TEveCaloViz * FWRPZView::getEveCalo | ( | ) | const [virtual] |
Reimplemented from FWEveView.
Definition at line 131 of file FWRPZView.cc.
References m_calo.
{ return static_cast<TEveCaloViz*>(m_calo); }
void FWRPZView::importElements | ( | TEveElement * | iProjectableChild, |
float | layer, | ||
TEveElement * | iProjectedParent = 0 |
||
) |
Definition at line 246 of file FWRPZView.cc.
References m_projMgr.
Referenced by addElements(), and FWEveViewManager::finishViewCreate().
{ float oldLayer = m_projMgr->GetCurrentDepth(); m_projMgr->SetCurrentDepth(iLayer); //make sure current depth is reset even if an exception is thrown boost::shared_ptr<TEveProjectionManager> sentry(m_projMgr, boost::bind(&TEveProjectionManager::SetCurrentDepth, _1,oldLayer)); m_projMgr->ImportElements(iChildren,iProjectedParent); }
void FWRPZView::populateController | ( | ViewerParameterGUI & | gui | ) | const [virtual] |
Reimplemented from FWEveView.
Definition at line 339 of file FWRPZView.cc.
References ViewerParameterGUI::addParam(), f, ViewerParameterGUI::getTabContainer(), FWViewType::kRhoPhi, FWViewType::kRhoPhiPF, m_caloDistortion, m_compressMuon, m_fishEyeDistortion, m_fishEyeR, m_muonDistortion, m_shiftOrigin, m_showEndcaps, m_showHF, m_showProjectionAxes, ViewerParameterGUI::requestTab(), ViewerParameterGUI::separator(), and FWViewBase::typeId().
{ FWEveView::populateController(gui); #ifdef TEVEPROJECTIONS_DISPLACE_ORIGIN_MODE gui.requestTab("Projection").addParam(&m_shiftOrigin); #endif gui.requestTab("Projection").addParam(&m_showProjectionAxes).separator(); TGCompositeFrame* f = gui.getTabContainer(); f->AddFrame(new TGLabel(f, "FishEye:")); gui.addParam(&m_fishEyeDistortion). addParam(&m_fishEyeR). separator(); f->AddFrame(new TGLabel(f, "PreScales:")); gui.requestTab("Projection"). addParam(&m_compressMuon). addParam(&m_muonDistortion). addParam(&m_caloDistortion); if (typeId() == FWViewType::kRhoPhi || typeId() == FWViewType::kRhoPhiPF) { gui.requestTab("Calo"). addParam(m_showHF). addParam(m_showEndcaps); } }
void FWRPZView::setContext | ( | const fireworks::Context & | ctx | ) | [virtual] |
Reimplemented from FWEveView.
Definition at line 137 of file FWRPZView.cc.
References FWEveView::context(), runTheMatrix::data, FWEveView::eventScene(), FWEveView::geoScene(), fireworks::Context::getCaloData(), FWRPZViewGeometry::getGeoElements(), FWViewType::kRhoPhiPF, m_calo, m_projMgr, s_geometryList, and FWViewBase::typeId().
{ FWEveView::setContext(ctx); if (!s_geometryList) { s_geometryList = new FWRPZViewGeometry(ctx); s_geometryList->IncDenyDestroy(); } m_projMgr->ImportElements(s_geometryList->getGeoElements(typeId()), geoScene()); TEveCaloData* data = context().getCaloData(); TEveCalo3D* calo3d = new TEveCalo3D(data); m_calo = static_cast<TEveCalo2D*> (m_projMgr->ImportElements(calo3d, eventScene())); if (typeId() == FWViewType::kRhoPhiPF) m_calo->SetBarrelRadius(177); else m_calo->SetBarrelRadius(context().caloR1(false)); m_calo->SetEndCapPos(context().caloZ1(false)); m_calo->SetAutoRange(false); m_calo->SetScaleAbs(true); }
void FWRPZView::setEtaRng | ( | ) | [private] |
Definition at line 283 of file FWRPZView.cc.
References fireworks::Context::caloMaxEta(), fireworks::Context::caloTransEta(), FWEveView::context(), FWViewType::kRhoZ, m_calo, m_showEndcaps, m_showHF, FWEveView::setupEnergyScale(), FWViewBase::typeId(), and FWGenericParameter< T >::value().
Referenced by FWRPZView().
{ if (typeId() != FWViewType::kRhoZ) { // rng controllers only in RhoPhi double eta_range = context().caloMaxEta(); if (!m_showHF->value() ) eta_range = 3.0; if (!m_showEndcaps->value() ) eta_range = context().caloTransEta(); m_calo->SetEta(-eta_range,eta_range); } FWEveView::setupEnergyScale(); }
void FWRPZView::setFrom | ( | const FWConfiguration & | iFrom | ) | [virtual] |
Reimplemented from FWEveView.
Definition at line 267 of file FWRPZView.cc.
References m_showProjectionAxes, FWGenericParameter< T >::set(), FWEveView::setFromOrthoCamera(), FWConfiguration::value(), relativeConstraints::value, FWConfiguration::valueForKey(), FWConfiguration::version(), and FWEveView::viewerGL().
{ FWEveView::setFrom(iFrom); TGLOrthoCamera* camera = dynamic_cast<TGLOrthoCamera*>( &(viewerGL()->CurrentCamera()) ); if (camera) setFromOrthoCamera(camera, iFrom); if (iFrom.version() < 7) { const FWConfiguration* value = iFrom.valueForKey("Show projection axes"); if (value) m_showProjectionAxes.set(value->value() == "1"); } }
void FWRPZView::showProjectionAxes | ( | ) | [private] |
Definition at line 329 of file FWRPZView.cc.
References m_axes, m_showProjectionAxes, and FWGenericParameter< T >::value().
Referenced by FWRPZView().
{ if ( m_showProjectionAxes.value() ) m_axes->SetRnrState(kTRUE); else m_axes->SetRnrState(kFALSE); gEve->Redraw3D(); }
void FWRPZView::voteCaloMaxVal | ( | ) | [virtual] |
Reimplemented from FWEveView.
Definition at line 298 of file FWRPZView.cc.
References a, FWEveView::context(), gen::k, m_calo, and fireworks::Context::voteMaxEtAndEnergy().
{ if (! m_calo->GetData()->Empty()) { m_calo->AssertCellIdCache(); Float_t sumEt, sumE; TEveCaloData::CellData_t cellData; typedef std::vector<TEveCaloData::vCellId_t*> vBinCells_t; typedef std::vector<TEveCaloData::vCellId_t*>::iterator vBinCells_i; vBinCells_t cellLists = m_calo->fCellLists; for (vBinCells_i it = cellLists.begin(); it != cellLists.end(); it++) { TEveCaloData::vCellId_t* binCells = *it; if (binCells) { sumEt = 0; sumE = 0; TEveCaloData::vCellId_i a = binCells->end(); for (TEveCaloData::vCellId_i k = binCells->begin(); k != a; ++k) { m_calo->GetData()->GetCellData((*k), cellData); sumEt += cellData.Value(true); sumE += cellData.Value(false); } // printf("vote sum %f %f \n", sumEt , sumE); context().voteMaxEtAndEnergy(sumEt, sumE); } } } }
TEveProjectionAxes* FWRPZView::m_axes [private] |
Definition at line 81 of file FWRPZView.h.
Referenced by FWRPZView(), and showProjectionAxes().
TEveCalo2D* FWRPZView::m_calo [private] |
Definition at line 82 of file FWRPZView.h.
Referenced by getEveCalo(), setContext(), setEtaRng(), voteCaloMaxVal(), and ~FWRPZView().
FWDoubleParameter FWRPZView::m_caloDistortion [private] |
Definition at line 90 of file FWRPZView.h.
Referenced by doPreScaleDistortion(), FWRPZView(), and populateController().
FWBoolParameter FWRPZView::m_compressMuon [private] |
Definition at line 93 of file FWRPZView.h.
Referenced by FWRPZView(), and populateController().
Definition at line 87 of file FWRPZView.h.
Referenced by doFishEyeDistortion(), FWRPZView(), and populateController().
FWDoubleParameter FWRPZView::m_fishEyeR [private] |
Definition at line 88 of file FWRPZView.h.
Referenced by doFishEyeDistortion(), FWRPZView(), and populateController().
FWDoubleParameter FWRPZView::m_muonDistortion [private] |
Definition at line 91 of file FWRPZView.h.
Referenced by doPreScaleDistortion(), FWRPZView(), and populateController().
TEveProjectionManager* FWRPZView::m_projMgr [private] |
Definition at line 80 of file FWRPZView.h.
Referenced by doCompression(), doFishEyeDistortion(), doPreScaleDistortion(), doShiftOrigin(), eventBegin(), FWRPZView(), importElements(), setContext(), and ~FWRPZView().
FWBoolParameter FWRPZView::m_shiftOrigin [private] |
Definition at line 86 of file FWRPZView.h.
Referenced by doShiftOrigin(), FWRPZView(), and populateController().
FWBoolParameter* FWRPZView::m_showEndcaps [private] |
Definition at line 96 of file FWRPZView.h.
Referenced by FWRPZView(), populateController(), and setEtaRng().
FWBoolParameter* FWRPZView::m_showHF [private] |
Definition at line 95 of file FWRPZView.h.
Referenced by FWRPZView(), populateController(), and setEtaRng().
Definition at line 92 of file FWRPZView.h.
Referenced by FWRPZView(), populateController(), setFrom(), and showProjectionAxes().
const float FWRPZView::s_distortF = 0.001 [static, private] |
Definition at line 77 of file FWRPZView.h.
Referenced by doFishEyeDistortion(), and FWRPZView().
const float FWRPZView::s_distortFInv = 1000 [static, private] |
Definition at line 78 of file FWRPZView.h.
Referenced by doFishEyeDistortion().
FWRPZViewGeometry * FWRPZView::s_geometryList = 0 [static, private] |
Definition at line 76 of file FWRPZView.h.
Referenced by setContext().