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
#define REGISTER_PROXYBUILDER_METHODS()
float tof() const
deprecated name for timeOfFlight()
#define REGISTER_FWPROXYBUILDER(_name_, _type_, _purpose_, _view_)
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
const uint16_t range(const Frame &aFrame)
std::vector< SimHitTPPair > SimHitTPAssociationList
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
double vx() const
x coordinate of parent vertex position
const FWTrackingParticleProxyBuilderFullFramework & operator=(const FWTrackingParticleProxyBuilderFullFramework &)=delete
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
caConstants::TupleMultiplicity const *__restrict__ HitsOnGPU const *__restrict__ tindex_type *__restrict__ double *__restrict__ phits
double vz() const
z coordinate of parent vertex position
const SimHitTPAssociationProducer::SimHitTPAssociationList * m_assocList