CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
FWTrackProxyBuilderFullFramework Class Reference
Inheritance diagram for FWTrackProxyBuilderFullFramework:
FWProxyBuilderBase

Public Member Functions

 FWTrackProxyBuilderFullFramework ()
 
 FWTrackProxyBuilderFullFramework (const FWTrackProxyBuilderFullFramework &)=delete
 
const
FWTrackProxyBuilderFullFramework
operator= (const FWTrackProxyBuilderFullFramework &)=delete
 
const std::string & purpose () const
 
void setItem (const FWEventItem *iItem) override
 
const std::string & typeName () const
 
const std::string & view () const
 
bool visibilityModelChanges (const FWModelId &, TEveElement *, FWViewType::EType, const FWViewContext *) override
 
 ~FWTrackProxyBuilderFullFramework () override
 
- Public Member Functions inherited from FWProxyBuilderBase
void build ()
 
virtual bool canHandle (const FWEventItem &)
 
const fireworks::Contextcontext () const
 
TEveElementList * createProduct (FWViewType::EType, const FWViewContext *)
 
 FWProxyBuilderBase ()
 
bool getHaveWindow () const
 
virtual bool havePerViewProduct (FWViewType::EType) const
 
virtual bool haveSingleProduct () const
 
const FWEventItemitem () const
 
virtual void itemBeingDestroyed (const FWEventItem *)
 
void itemChanged (const FWEventItem *)
 
int layer () const
 
void modelChanges (const FWModelIds &)
 
void removePerViewProduct (FWViewType::EType, const FWViewContext *vc)
 
void scaleChanged (const FWViewContext *)
 
void setHaveWindow (bool iFlag)
 
virtual void setInteractionList (FWInteractionList *, const std::string &)
 
void setupAddElement (TEveElement *el, TEveElement *parent, bool set_color=true) const
 
void setupElement (TEveElement *el, bool color=true) const
 
virtual bool willHandleInteraction () const
 
virtual ~FWProxyBuilderBase ()
 

Static Public Member Functions

static const std::string & classPurpose ()
 
static const std::string & classRegisterTypeName ()
 
static const std::string & classTypeName ()
 
static const std::string & classView ()
 
- Static Public Member Functions inherited from FWProxyBuilderBase
static bool representsSubPart ()
 
static std::string typeOfBuilder ()
 Used by the plugin system to determine how the proxy uses the data from FWEventItem. More...
 

Private Member Functions

void build (const FWEventItem *iItem, TEveElementList *product, const FWViewContext *) override
 
void buildTrack (TrajTrackAssociationCollection::const_iterator it, TEveCompound *comp)
 

Private Attributes

TEveTrackPropagator * m_trackerPropagator
 
const
TrajTrackAssociationCollection
m_trajToTrackMap
 

Additional Inherited Members

- Protected Types inherited from FWProxyBuilderBase
typedef std::vector< Product * >
::iterator 
Product_it
 
- Protected Member Functions inherited from FWProxyBuilderBase
virtual void buildViewType (const FWEventItem *iItem, TEveElementList *, FWViewType::EType, const FWViewContext *)
 
virtual void clean ()
 
virtual void cleanLocal ()
 
TEveCompound * createCompound (bool set_color=true, bool propagate_color_to_all_children=false) const
 
 FWProxyBuilderBase (const FWProxyBuilderBase &)
 
void increaseComponentTransparency (unsigned int index, TEveElement *holder, const std::string &name, Char_t transpOffset)
 
virtual void localModelChanges (const FWModelId &iId, TEveElement *iCompound, FWViewType::EType viewType, const FWViewContext *vc)
 
virtual void modelChanges (const FWModelIds &, Product *)
 
const FWProxyBuilderBaseoperator= (const FWProxyBuilderBase &)
 
virtual void scaleProduct (TEveElementList *parent, FWViewType::EType, const FWViewContext *vc)
 
- Protected Attributes inherited from FWProxyBuilderBase
std::vector< Product * > m_products
 

Detailed Description

Definition at line 33 of file FWTrackProxyBuilderFullFramework.cc.

Constructor & Destructor Documentation

FWTrackProxyBuilderFullFramework::FWTrackProxyBuilderFullFramework ( )

Definition at line 54 of file FWTrackProxyBuilderFullFramework.cc.

References m_trackerPropagator.

55  : m_trackerPropagator(nullptr), m_trajToTrackMap(nullptr) {
56  m_trackerPropagator = new TEveTrackPropagator();
57  m_trackerPropagator->SetStepper(TEveTrackPropagator::kRungeKutta);
58  m_trackerPropagator->SetDelta(0.01);
59  m_trackerPropagator->SetMaxOrbs(0.7);
60  m_trackerPropagator->IncDenyDestroy();
61 }
const TrajTrackAssociationCollection * m_trajToTrackMap
FWTrackProxyBuilderFullFramework::~FWTrackProxyBuilderFullFramework ( )
override

Definition at line 63 of file FWTrackProxyBuilderFullFramework.cc.

References m_trackerPropagator.

63 { m_trackerPropagator->DecDenyDestroy(); }
FWTrackProxyBuilderFullFramework::FWTrackProxyBuilderFullFramework ( const FWTrackProxyBuilderFullFramework )
delete

Member Function Documentation

void FWTrackProxyBuilderFullFramework::build ( const FWEventItem iItem,
TEveElementList *  product,
const FWViewContext vc 
)
overrideprivatevirtual

Reimplemented from FWProxyBuilderBase.

Definition at line 73 of file FWTrackProxyBuilderFullFramework.cc.

References edm::AssociationMap< Tag >::begin(), buildTrack(), reco::TrackBase::charge(), AlCaHLTBitMon_QueryRunRegistry::comp, edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, gather_cfg::cout, FWProxyBuilderBase::createCompound(), edm::AssociationMap< Tag >::end(), cppFunctionSkipper::exception, FWEventItem::get(), FWEventItem::getConfig(), FWEventItem::getEvent(), mps_fire::i, FWProxyBuilderBase::item(), m_trackerPropagator, m_trajToTrackMap, FSQHLTOfflineSource_cfi::processName, reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), FWProxyBuilderBase::setupAddElement(), GlobalPosition_Frontier_DevDB_cff::tag, HLT_FULL_cff::track, tracks, FWProxyBuilderConfiguration::value(), reco::TrackBase::vx(), reco::TrackBase::vy(), reco::TrackBase::vz(), and cms::Exception::what().

75  {
76  const reco::TrackCollection* tracks = nullptr;
77  iItem->get(tracks);
78  if (tracks == nullptr)
79  return;
80 
81  try {
82  const edm::EventBase* event = item()->getEvent();
83  edm::InputTag tag(item()->moduleLabel(), item()->productInstanceLabel(), item()->processName());
84  edm::Handle<TrajTrackAssociationCollection> trajTrackAssociationHandle;
85  event->getByLabel(tag, trajTrackAssociationHandle);
86  m_trajToTrackMap = &*trajTrackAssociationHandle;
87  } catch (cms::Exception& exception) {
88  m_trajToTrackMap = nullptr;
89  std::cout << exception.what() << std::endl;
90  }
91 
92  if (m_trajToTrackMap) {
93  bool rnrPathMarks = item()->getConfig()->value<bool>("Rnr TrajectoryMeasurement");
94  if (m_trackerPropagator->GetRnrReferences() != rnrPathMarks)
95  m_trackerPropagator->SetRnrReferences(rnrPathMarks);
96 
97  unsigned track_index = 0;
99  ++it, ++track_index) {
100  TEveCompound* comp = createCompound();
101  setupAddElement(comp, product);
102 
103  if (item()->modelInfo(track_index).displayProperties().isVisible())
104  buildTrack(it, comp);
105  }
106  } else {
107  for (reco::TrackCollection::const_iterator i = tracks->begin(); i != tracks->end(); ++i) {
108  const reco::Track& track = *i;
109  TEveRecTrack ts;
110  ts.fBeta = 1.;
111  ts.fSign = track.charge();
112  ts.fP.Set(track.px(), track.py(), track.pz());
113  ts.fV.Set(track.vx(), track.vy(), track.vz());
114  TEveTrack* eveTrack = new TEveTrack(&ts, m_trackerPropagator);
115  eveTrack->MakeTrack();
116  TEveCompound* comp = createCompound();
117  setupAddElement(comp, product);
118  setupAddElement(eveTrack, comp);
119  }
120  }
121 
122  gEve->GetBrowser()->MapWindow();
123 }
FWProxyBuilderConfiguration * getConfig() const
Definition: FWEventItem.h:150
const_iterator end() const
last iterator over the map (read only)
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
void get(const T *&oData) const
Definition: FWEventItem.h:78
void buildTrack(TrajTrackAssociationCollection::const_iterator it, TEveCompound *comp)
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
auto const & tracks
cannot be loose
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:640
const FWEventItem * item() const
const TrajTrackAssociationCollection * m_trajToTrackMap
char const * what() const noexceptoverride
Definition: Exception.cc:103
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:661
const edm::EventBase * getEvent() const
Definition: FWEventItem.h:131
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:658
TEveCompound * createCompound(bool set_color=true, bool propagate_color_to_all_children=false) const
tuple cout
Definition: gather_cfg.py:144
int charge() const
track electric charge
Definition: TrackBase.h:596
const_iterator begin() const
first iterator over the map (read only)
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:655
void FWTrackProxyBuilderFullFramework::buildTrack ( TrajTrackAssociationCollection::const_iterator  it,
TEveCompound *  comp 
)
private

Definition at line 125 of file FWTrackProxyBuilderFullFramework.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(), submitPVValidationJobs::t, HLT_FULL_cff::track, 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().

126  {
127  const reco::Track& track = *it->val;
128  const Trajectory& traj = *it->key;
129 
130  TEveRecTrack ts;
131  ts.fBeta = 1.;
132  ts.fSign = track.charge();
133  ts.fP.Set(track.px(), track.py(), track.pz());
134  ts.fV.Set(track.vx(), track.vy(), track.vz());
135  TEveTrack* eveTrack = new TEveTrack(&ts, m_trackerPropagator);
136 
137  // path-marks from a trajectory
138  std::vector<TrajectoryMeasurement> measurements = traj.measurements();
139  std::vector<TrajectoryMeasurement>::iterator measurements_it = measurements.begin();
140  std::vector<TrajectoryMeasurement>::reverse_iterator measurements_rit = measurements.rbegin();
141  for (size_t t = 0; t != measurements.size(); ++t, ++measurements_it, ++measurements_rit) {
142  TrajectoryStateOnSurface trajState =
143  (traj.direction() == alongMomentum) ? measurements_it->updatedState() : measurements_rit->updatedState();
144 
145  if (!trajState.isValid())
146  continue;
147 
148  eveTrack->AddPathMark(TEvePathMark(
149  TEvePathMark::kReference,
150  TEveVector(trajState.globalPosition().x(), trajState.globalPosition().y(), trajState.globalPosition().z()),
151  TEveVector(trajState.globalMomentum().x(), trajState.globalMomentum().y(), trajState.globalMomentum().z())));
152  }
153 
154  eveTrack->MakeTrack();
155  setupAddElement(eveTrack, comp);
156 }
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
T y() const
Definition: PV3DBase.h:60
GlobalPoint globalPosition() const
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:640
PropagationDirection const & direction() const
Definition: Trajectory.cc:133
DataContainer const & measurements() const
Definition: Trajectory.h:178
T z() const
Definition: PV3DBase.h:61
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:661
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:658
GlobalVector globalMomentum() const
int charge() const
track electric charge
Definition: TrackBase.h:596
T x() const
Definition: PV3DBase.h:59
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:655
const std::string & FWTrackProxyBuilderFullFramework::classPurpose ( )
static

Definition at line 176 of file FWTrackProxyBuilderFullFramework.cc.

const std::string & FWTrackProxyBuilderFullFramework::classRegisterTypeName ( )
static

Definition at line 176 of file FWTrackProxyBuilderFullFramework.cc.

const std::string & FWTrackProxyBuilderFullFramework::classTypeName ( )
static

Definition at line 176 of file FWTrackProxyBuilderFullFramework.cc.

const std::string & FWTrackProxyBuilderFullFramework::classView ( )
static

Definition at line 176 of file FWTrackProxyBuilderFullFramework.cc.

const FWTrackProxyBuilderFullFramework& FWTrackProxyBuilderFullFramework::operator= ( const FWTrackProxyBuilderFullFramework )
delete
const std::string& FWTrackProxyBuilderFullFramework::purpose ( ) const
inline

Definition at line 38 of file FWTrackProxyBuilderFullFramework.cc.

void FWTrackProxyBuilderFullFramework::setItem ( const FWEventItem iItem)
overridevirtual

Reimplemented from FWProxyBuilderBase.

Definition at line 65 of file FWTrackProxyBuilderFullFramework.cc.

References FWProxyBuilderConfiguration::assertParam(), FWProxyBuilderBase::context(), FWEventItem::getConfig(), CaloRecHitAuxSetter::getField(), m_trackerPropagator, and FWProxyBuilderBase::setItem().

65  {
67  if (iItem) {
68  m_trackerPropagator->SetMagFieldObj(context().getField(), false);
69  iItem->getConfig()->assertParam("Rnr TrajectoryMeasurement", false);
70  }
71 }
const fireworks::Context & context() const
FWProxyBuilderConfiguration * getConfig() const
Definition: FWEventItem.h:150
virtual void setItem(const FWEventItem *iItem)
constexpr unsigned getField(const uint32_t u, const unsigned mask, const unsigned offset)
FWGenericParameter< T > * assertParam(const std::string &name, T def)
const std::string& FWTrackProxyBuilderFullFramework::typeName ( ) const
inline

Definition at line 38 of file FWTrackProxyBuilderFullFramework.cc.

const std::string& FWTrackProxyBuilderFullFramework::view ( ) const
inline

Definition at line 38 of file FWTrackProxyBuilderFullFramework.cc.

bool FWTrackProxyBuilderFullFramework::visibilityModelChanges ( const FWModelId iId,
TEveElement *  iCompound,
FWViewType::EType  viewType,
const FWViewContext vc 
)
overridevirtual

Reimplemented from FWProxyBuilderBase.

Definition at line 158 of file FWTrackProxyBuilderFullFramework.cc.

References edm::AssociationMap< Tag >::begin(), buildTrack(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, FWEventItem::ModelInfo::displayProperties(), FWModelId::index(), info(), FWDisplayProperties::isVisible(), FWModelId::item(), m_trajToTrackMap, and FWEventItem::modelInfo().

161  {
162  const FWEventItem::ModelInfo& info = iId.item()->modelInfo(iId.index());
163  bool returnValue = false;
164  if (info.displayProperties().isVisible() && iCompound->NumChildren() == 0 && m_trajToTrackMap) {
166  std::advance(it, iId.index());
167  buildTrack(it, (TEveCompound*)iCompound);
168  returnValue = true;
169  }
170  return returnValue;
171 }
static const TGPicture * info(bool iBackgroundIsBlack)
const FWDisplayProperties & displayProperties() const
Definition: FWEventItem.h:64
void buildTrack(TrajTrackAssociationCollection::const_iterator it, TEveCompound *comp)
const TrajTrackAssociationCollection * m_trajToTrackMap
int index() const
Definition: FWModelId.h:41
const_iterator begin() const
first iterator over the map (read only)
ModelInfo modelInfo(int iIndex) const
Definition: FWEventItem.cc:446
const FWEventItem * item() const
Definition: FWModelId.h:39

Member Data Documentation

TEveTrackPropagator* FWTrackProxyBuilderFullFramework::m_trackerPropagator
private
const TrajTrackAssociationCollection* FWTrackProxyBuilderFullFramework::m_trajToTrackMap
private

Definition at line 51 of file FWTrackProxyBuilderFullFramework.cc.

Referenced by build(), and visibilityModelChanges().