Public Member Functions | |
FWTrackProxyBuilderFF () | |
REGISTER_PROXYBUILDER_METHODS () | |
virtual void | setItem (const FWEventItem *iItem) |
virtual bool | visibilityModelChanges (const FWModelId &, TEveElement *, FWViewType::EType, const FWViewContext *) |
virtual | ~FWTrackProxyBuilderFF () |
Private Member Functions | |
void | build (const FWEventItem *iItem, TEveElementList *product, const FWViewContext *) |
void | buildTrack (TrajTrackAssociationCollection::const_iterator it, TEveCompound *comp) |
FWTrackProxyBuilderFF (const FWTrackProxyBuilderFF &) | |
const FWTrackProxyBuilderFF & | operator= (const FWTrackProxyBuilderFF &) |
Private Attributes | |
TEveTrackPropagator * | m_trackerPropagator |
const TrajTrackAssociationCollection * | m_trajToTrackMap |
Definition at line 35 of file FWTrackProxyBuilderFF.cc.
FWTrackProxyBuilderFF::FWTrackProxyBuilderFF | ( | ) |
Definition at line 58 of file FWTrackProxyBuilderFF.cc.
References m_trackerPropagator.
: m_trackerPropagator(0), m_trajToTrackMap(0) { m_trackerPropagator = new TEveTrackPropagator(); m_trackerPropagator->SetStepper( TEveTrackPropagator::kRungeKutta ); m_trackerPropagator->SetDelta(0.01); m_trackerPropagator->SetMaxOrbs(0.7); m_trackerPropagator->IncDenyDestroy(); }
FWTrackProxyBuilderFF::~FWTrackProxyBuilderFF | ( | ) | [virtual] |
Definition at line 69 of file FWTrackProxyBuilderFF.cc.
References m_trackerPropagator.
{ m_trackerPropagator->DecDenyDestroy(); }
FWTrackProxyBuilderFF::FWTrackProxyBuilderFF | ( | const FWTrackProxyBuilderFF & | ) | [private] |
void FWTrackProxyBuilderFF::build | ( | const FWEventItem * | iItem, |
TEveElementList * | product, | ||
const FWViewContext * | vc | ||
) | [private, virtual] |
Reimplemented from FWProxyBuilderBase.
Definition at line 85 of file FWTrackProxyBuilderFF.cc.
References edm::AssociationMap< Tag >::begin(), buildTrack(), gather_cfg::cout, FWProxyBuilderBase::createCompound(), edm::AssociationMap< Tag >::end(), exception, FWEventItem::get(), FWEventItem::getConfig(), FWEventItem::getEvent(), FWProxyBuilderBase::item(), m_trackerPropagator, m_trajToTrackMap, FWProxyBuilderBase::setupAddElement(), GlobalPosition_Frontier_DevDB_cff::tag, testEve_cfg::tracks, FWProxyBuilderConfiguration::value(), and cms::Exception::what().
{ const reco::TrackCollection * tracks = 0; iItem->get( tracks ); if( tracks == 0 ) return; try { const edm::EventBase* event = item()->getEvent(); edm::InputTag tag(item()->moduleLabel(), item()->productInstanceLabel(), item()->processName()); edm::Handle<TrajTrackAssociationCollection> trajTrackAssociationHandle; event->getByLabel(tag, trajTrackAssociationHandle); m_trajToTrackMap = &*trajTrackAssociationHandle; } catch (cms::Exception &exception) { m_trajToTrackMap =0; std::cout << exception.what() << std::endl; return; } bool rnrPathMarks = item()->getConfig()->value<bool>("Rnr TrajectoryMeasurement"); if (m_trackerPropagator->GetRnrReferences() != rnrPathMarks ) m_trackerPropagator->SetRnrReferences(rnrPathMarks); unsigned track_index = 0; for(TrajTrackAssociationCollection::const_iterator it = m_trajToTrackMap->begin(); it!=m_trajToTrackMap->end(); ++it, ++track_index) { TEveCompound* comp = createCompound(); setupAddElement( comp, product ); if (item()->modelInfo(track_index).displayProperties().isVisible()) buildTrack(it, comp); } gEve->GetBrowser()->MapWindow(); }
void FWTrackProxyBuilderFF::buildTrack | ( | TrajTrackAssociationCollection::const_iterator | it, |
TEveCompound * | comp | ||
) | [private] |
Definition at line 122 of file FWTrackProxyBuilderFF.cc.
References alongMomentum, reco::TrackBase::charge(), Trajectory::direction(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), m_trackerPropagator, Trajectory::measurements(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), FWProxyBuilderBase::setupAddElement(), lumiQTWidget::t, reco::TrackBase::vx(), reco::TrackBase::vy(), reco::TrackBase::vz(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by build(), and visibilityModelChanges().
{ const reco::Track track = *it->val; const Trajectory traj = *it->key; TEveRecTrack ts; ts.fBeta = 1.; ts.fSign = track.charge(); ts.fP.Set(track.px(), track.py(), track.pz()); ts.fV.Set(track.vx(), track.vy(), track.vz()); TEveTrack* eveTrack = new TEveTrack( &ts, m_trackerPropagator); // path-marks from a trajectory std::vector<TrajectoryMeasurement> measurements = traj.measurements(); std::vector<TrajectoryMeasurement>::iterator measurements_it = measurements.begin(); std::vector<TrajectoryMeasurement>::reverse_iterator measurements_rit = measurements.rbegin(); for (size_t t=0; t != measurements.size(); ++t, ++measurements_it, ++measurements_rit) { TrajectoryStateOnSurface trajState = (traj.direction() == alongMomentum) ? measurements_it->updatedState() : measurements_rit->updatedState() ; if( !trajState.isValid() ) continue; eveTrack->AddPathMark( TEvePathMark( TEvePathMark::kReference, TEveVector(trajState.globalPosition().x(),trajState.globalPosition().y(), trajState.globalPosition().z()), TEveVector(trajState.globalMomentum().x(),trajState.globalMomentum().y(), trajState.globalMomentum().z()))); } eveTrack->MakeTrack(); setupAddElement(eveTrack, comp); }
const FWTrackProxyBuilderFF& FWTrackProxyBuilderFF::operator= | ( | const FWTrackProxyBuilderFF & | ) | [private] |
FWTrackProxyBuilderFF::REGISTER_PROXYBUILDER_METHODS | ( | ) |
void FWTrackProxyBuilderFF::setItem | ( | const FWEventItem * | iItem | ) | [virtual] |
Reimplemented from FWProxyBuilderBase.
Definition at line 74 of file FWTrackProxyBuilderFF.cc.
References FWProxyBuilderConfiguration::assertParam(), FWProxyBuilderBase::context(), FWEventItem::getConfig(), and m_trackerPropagator.
{ FWProxyBuilderBase::setItem(iItem); if (iItem) { m_trackerPropagator->SetMagFieldObj(context().getField(), false); iItem->getConfig()->assertParam("Rnr TrajectoryMeasurement", false); } }
bool FWTrackProxyBuilderFF::visibilityModelChanges | ( | const FWModelId & | iId, |
TEveElement * | iCompound, | ||
FWViewType::EType | viewType, | ||
const FWViewContext * | vc | ||
) | [virtual] |
Reimplemented from FWProxyBuilderBase.
Definition at line 153 of file FWTrackProxyBuilderFF.cc.
References edm::AssociationMap< Tag >::begin(), buildTrack(), FWEventItem::ModelInfo::displayProperties(), FWModelId::index(), info, FWDisplayProperties::isVisible(), FWModelId::item(), m_trajToTrackMap, and FWEventItem::modelInfo().
{ const FWEventItem::ModelInfo& info = iId.item()->modelInfo(iId.index()); bool returnValue = false; if (info.displayProperties().isVisible() && iCompound->NumChildren()==0 && m_trajToTrackMap) { TrajTrackAssociationCollection::const_iterator it = m_trajToTrackMap->begin(); std::advance(it, iId.index()); buildTrack(it, (TEveCompound*)iCompound); returnValue=true; } return returnValue; }
TEveTrackPropagator* FWTrackProxyBuilderFF::m_trackerPropagator [private] |
Definition at line 54 of file FWTrackProxyBuilderFF.cc.
Referenced by build(), buildTrack(), FWTrackProxyBuilderFF(), setItem(), and ~FWTrackProxyBuilderFF().
const TrajTrackAssociationCollection* FWTrackProxyBuilderFF::m_trajToTrackMap [private] |
Definition at line 55 of file FWTrackProxyBuilderFF.cc.
Referenced by build(), and visibilityModelChanges().