21 #include "TEveTrack.h" 22 #include "TEveCompound.h" 23 #include "TEveManager.h" 24 #include "TEveBrowser.h" 25 #include "TEveTrackPropagator.h" 46 TEveElement& oItemHolder,
64 TEveElementList* product,
72 event->getByLabel(coltag,
tpch);
78 event->getByLabel(
"xxx", simHitsTPAssoc);
81 std::cerr <<
" FWTrackingParticleProxyBuilderFullFramework::setItem() Can't get hits association list " 82 << e.what() << std::endl;
100 t.fP = TEveVector(iData.
px(), iData.
py(), iData.
pz());
101 t.fV = TEveVector(iData.
vx(), iData.
vy(), iData.
vz());
104 TEveTrack*
track =
new TEveTrack(&t,
context().getTrackPropagator());
106 track->SetLineStyle(7);
113 TEvePointSet* pointSet =
new TEvePointSet;
119 float global[3] = {0.0, 0.0, 0.0};
120 float globalDir[3] = {0.0, 0.0, 0.0};
123 std::pair<TrackingParticleRef, TrackPSimHitRef> clusterTPpairWithDummyTP(tpr,
TrackPSimHitRef());
126 clusterTPpairWithDummyTP,
130 std::vector<const PSimHit*> phits;
131 for (
auto ri =
range.first; ri !=
range.second; ++ri)
132 phits.push_back(ri->second.get());
134 std::sort(phits.begin(), phits.end(), [](
const PSimHit*
a,
const PSimHit*
b) {
return a->
tof() <
b->tof(); });
135 for (
auto phi = phits.begin();
phi != phits.end(); ++
phi) {
148 pointSet->SetNextPoint(global[0], global[1], global[2]);
153 track->AddPathMark(TEvePathMark(TEvePathMark::kReference,
154 TEveVector(global[0], global[1], global[2]),
155 TEveVector(globalDir[0], globalDir[1], globalDir[2])));
162 "TrackingParticleWithPSimHits",
const fireworks::Context & context() const
float tof() const
deprecated name for timeOfFlight()
static const int kAllRPZBits
static bool simHitTPAssociationListGreater(SimHitTPPair i, SimHitTPPair j)
LocalVector momentumAtEntry() const
The momentum of the track that produced the hit, at entry point.
FWTrackingParticleProxyBuilderFullFramework(void)
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
double py() const
y coordinate of momentum vector. Note this is taken from the first SimTrack only. ...
const FWEventItem * item() const
static const int kAll3DBits
double pz() const
z coordinate of momentum vector. Note this is taken from the first SimTrack only. ...
float charge() const
Electric charge. Note this is taken from the first SimTrack only.
Local3DPoint localPosition() const
double vy() const
y coordinate of parent vertex position
void localToGlobal(unsigned int id, const float *local, float *global, bool translatep=true) const
edm::Handle< TrackingParticleCollection > tpch
const edm::EventBase * getEvent() const
#define REGISTER_PROXYBUILDER_METHODS()
double vx() const
x coordinate of parent vertex position
#define REGISTER_FWPROXYBUILDER(_name_, _type_, _purpose_, _view_)
const FWTrackingParticleProxyBuilderFullFramework & operator=(const FWTrackingParticleProxyBuilderFullFramework &)=delete
std::vector< SimHitTPPair > SimHitTPAssociationList
edm::Ref< edm::PSimHitContainer > TrackPSimHitRef
Monte Carlo truth information used for tracking validation.
double px() const
x coordinate of momentum vector. Note this is taken from the first SimTrack only. ...
~FWTrackingParticleProxyBuilderFullFramework(void) override
const FWGeometry * getGeom() const
unsigned int detUnitId() const
const SimHitTPAssociationProducer::SimHitTPAssociationList * m_assocList