36 ttree_track_hits_(0), ttree_track_hits_strip_(0)
63 ttree_track_hits_strip_->Branch(
"strip_rechitx", &
strip_rechitx,
"strip_rechitx/F" , bufsize);
64 ttree_track_hits_strip_->Branch(
"strip_rechity", &
strip_rechity,
"strip_rechity/F" , bufsize);
65 ttree_track_hits_strip_->Branch(
"strip_rechitz", &
strip_rechitz,
"strip_rechitz/F" , bufsize);
67 ttree_track_hits_strip_->Branch(
"strip_rechiterrx", &
strip_rechiterrx,
"strip_rechiterrx/F" , bufsize);
68 ttree_track_hits_strip_->Branch(
"strip_rechiterry", &
strip_rechiterry,
"strip_rechiterry/F" , bufsize);
70 ttree_track_hits_strip_->Branch(
"strip_rechitresx", &
strip_rechitresx,
"strip_rechitresx/F" , bufsize);
72 ttree_track_hits_strip_->Branch(
"strip_rechitresx2", &
strip_rechitresx2,
"strip_rechitresx2/F" , bufsize);
75 ttree_track_hits_strip_->Branch(
"strip_rechitresy", &
strip_rechitresy,
"strip_rechitresy/F" , bufsize);
77 ttree_track_hits_strip_->Branch(
"strip_rechitpullx", &
strip_rechitpullx,
"strip_rechitpullx/F", bufsize);
78 ttree_track_hits_strip_->Branch(
"strip_rechitpully", &
strip_rechitpully,
"strip_rechitpully/F", bufsize);
80 ttree_track_hits_strip_->Branch(
"strip_is_stereo", &
strip_is_stereo,
"strip_is_stereo/I", bufsize);
81 ttree_track_hits_strip_->Branch(
"strip_hit_type" , &
strip_hit_type ,
"strip_hit_type/I" , bufsize);
82 ttree_track_hits_strip_->Branch(
"detector_type" , &
detector_type ,
"detector_type/I" , bufsize);
84 ttree_track_hits_strip_->Branch(
"strip_trk_pt" , &
strip_trk_pt ,
"strip_trk_pt/F" , bufsize);
85 ttree_track_hits_strip_->Branch(
"strip_cotalpha" , &
strip_cotalpha ,
"strip_cotalpha/F" , bufsize);
86 ttree_track_hits_strip_->Branch(
"strip_cotbeta" , &
strip_cotbeta ,
"strip_cotbeta/F" , bufsize);
87 ttree_track_hits_strip_->Branch(
"strip_locbx" , &
strip_locbx ,
"strip_locbx/F" , bufsize);
88 ttree_track_hits_strip_->Branch(
"strip_locby" , &
strip_locby ,
"strip_locby/F" , bufsize);
89 ttree_track_hits_strip_->Branch(
"strip_locbz" , &
strip_locbz ,
"strip_locbz/F" , bufsize);
90 ttree_track_hits_strip_->Branch(
"strip_charge" , &
strip_charge ,
"strip_charge/F" , bufsize);
91 ttree_track_hits_strip_->Branch(
"strip_size" , &
strip_size ,
"strip_size/I" , bufsize);
94 ttree_track_hits_strip_->Branch(
"strip_edge" , &
strip_edge ,
"strip_edge/I" , bufsize);
95 ttree_track_hits_strip_->Branch(
"strip_nsimhit", &
strip_nsimhit,
"strip_nsimhit/I" , bufsize);
96 ttree_track_hits_strip_->Branch(
"strip_pidhit" , &
strip_pidhit ,
"strip_pidhit/I" , bufsize);
97 ttree_track_hits_strip_->Branch(
"strip_simproc", &
strip_simproc,
"strip_simproc/I" , bufsize);
100 ttree_track_hits_strip_->Branch(
"strip_subdet_id" , &
strip_subdet_id ,
"strip_subdet_id/I" , bufsize);
102 ttree_track_hits_strip_->Branch(
"strip_tib_layer" , &
strip_tib_layer ,
"strip_tib_layer/I" , bufsize);
103 ttree_track_hits_strip_->Branch(
"strip_tib_module" , &
strip_tib_module ,
"strip_tib_module/I" , bufsize);
104 ttree_track_hits_strip_->Branch(
"strip_tib_order" , &
strip_tib_order ,
"strip_tib_order/I" , bufsize);
105 ttree_track_hits_strip_->Branch(
"strip_tib_side" , &
strip_tib_side ,
"strip_tib_side/I" , bufsize);
106 ttree_track_hits_strip_->Branch(
"strip_tib_is_double_side" , &
strip_tib_is_double_side ,
"strip_tib_is_double_side/I" , bufsize);
107 ttree_track_hits_strip_->Branch(
"strip_tib_is_z_plus_side" , &
strip_tib_is_z_plus_side ,
"strip_tib_is_z_plus_side/I" , bufsize);
108 ttree_track_hits_strip_->Branch(
"strip_tib_is_z_minus_side" , &
strip_tib_is_z_minus_side ,
"strip_tib_is_z_minus_side/I" , bufsize);
109 ttree_track_hits_strip_->Branch(
"strip_tib_layer_number" , &
strip_tib_layer_number ,
"strip_tib_layer_number/I" , bufsize);
110 ttree_track_hits_strip_->Branch(
"strip_tib_string_number" , &
strip_tib_string_number ,
"strip_tib_string_number/I" , bufsize);
111 ttree_track_hits_strip_->Branch(
"strip_tib_module_number" , &
strip_tib_module_number ,
"strip_tib_module_number/I" , bufsize);
112 ttree_track_hits_strip_->Branch(
"strip_tib_is_internal_string", &
strip_tib_is_internal_string,
"strip_tib_is_internal_string/I", bufsize);
113 ttree_track_hits_strip_->Branch(
"strip_tib_is_external_string", &
strip_tib_is_external_string,
"strip_tib_is_external_string/I", bufsize);
114 ttree_track_hits_strip_->Branch(
"strip_tib_is_rphi" , &
strip_tib_is_rphi ,
"strip_tib_is_rphi/I" , bufsize);
115 ttree_track_hits_strip_->Branch(
"strip_tib_is_stereo" , &
strip_tib_is_stereo ,
"strip_tib_is_stereo/I" , bufsize);
116 ttree_track_hits_strip_->Branch(
"strip_tob_layer" , &
strip_tob_layer ,
"strip_tob_layer/I" , bufsize);
117 ttree_track_hits_strip_->Branch(
"strip_tob_module" , &
strip_tob_module ,
"strip_tob_module/I" , bufsize);
118 ttree_track_hits_strip_->Branch(
"strip_tob_side" , &
strip_tob_side ,
"strip_tob_side/I" , bufsize);
119 ttree_track_hits_strip_->Branch(
"strip_tob_is_double_side" , &
strip_tob_is_double_side ,
"strip_tob_is_double_side/I" , bufsize);
120 ttree_track_hits_strip_->Branch(
"strip_tob_is_z_plus_side" , &
strip_tob_is_z_plus_side ,
"strip_tob_is_z_plus_side/I" , bufsize);
121 ttree_track_hits_strip_->Branch(
"strip_tob_is_z_minus_side" , &
strip_tob_is_z_minus_side ,
"strip_tob_is_z_minus_side/I" , bufsize);
122 ttree_track_hits_strip_->Branch(
"strip_tob_layer_number" , &
strip_tob_layer_number ,
"strip_tob_layer_number/I" , bufsize);
123 ttree_track_hits_strip_->Branch(
"strip_tob_rod_number" , &
strip_tob_rod_number ,
"strip_tob_rod_number/I" , bufsize);
124 ttree_track_hits_strip_->Branch(
"strip_tob_module_number" , &
strip_tob_module_number ,
"strip_tob_module_number/I" , bufsize);
127 ttree_track_hits_strip_->Branch(
"strip_prob", &
strip_prob,
"strip_prob/F" , bufsize);
128 ttree_track_hits_strip_->Branch(
"strip_qbin", &
strip_qbin,
"strip_qbin/I", bufsize);
130 ttree_track_hits_strip_->Branch(
"strip_nprm", &
strip_nprm,
"strip_nprm/I", bufsize);
132 ttree_track_hits_strip_->Branch(
"strip_pidhit1" , &
strip_pidhit1 ,
"strip_pidhit1/I" , bufsize);
133 ttree_track_hits_strip_->Branch(
"strip_simproc1", &
strip_simproc1,
"strip_simproc1/I" , bufsize);
135 ttree_track_hits_strip_->Branch(
"strip_pidhit2" , &
strip_pidhit2 ,
"strip_pidhit2/I" , bufsize);
136 ttree_track_hits_strip_->Branch(
"strip_simproc2", &
strip_simproc2,
"strip_simproc2/I" , bufsize);
138 ttree_track_hits_strip_->Branch(
"strip_pidhit3" , &
strip_pidhit3 ,
"strip_pidhit3/I" , bufsize);
139 ttree_track_hits_strip_->Branch(
"strip_simproc3", &
strip_simproc3,
"strip_simproc3/I" , bufsize);
141 ttree_track_hits_strip_->Branch(
"strip_pidhit4" , &
strip_pidhit4 ,
"strip_pidhit4/I" , bufsize);
142 ttree_track_hits_strip_->Branch(
"strip_simproc4", &
strip_simproc4,
"strip_simproc4/I" , bufsize);
144 ttree_track_hits_strip_->Branch(
"strip_pidhit5" , &
strip_pidhit5 ,
"strip_pidhit5/I" , bufsize);
145 ttree_track_hits_strip_->Branch(
"strip_simproc5", &
strip_simproc5,
"strip_simproc5/I" , bufsize);
147 ttree_track_hits_strip_->Branch(
"strip_split", &
strip_split,
"strip_split/I" , bufsize);
149 ttree_track_hits_strip_->Branch(
"strip_clst_err_x", &
strip_clst_err_x,
"strip_clst_err_x/F" , bufsize);
150 ttree_track_hits_strip_->Branch(
"strip_clst_err_y", &
strip_clst_err_y,
"strip_clst_err_y/F" , bufsize);
377 cout <<
"evt = " <<
evt << endl;
380 float radtodeg = 180.0 /
math_pi;
384 float mindist = 999999.9;
386 std::vector<PSimHit> matched;
413 for ( vector<Trajectory>::const_iterator it = trajCollectionHandle->begin(); it!=trajCollectionHandle->end(); ++it )
416 vector<TrajectoryMeasurement> tmColl = it->measurements();
417 for ( vector<TrajectoryMeasurement>::const_iterator itTraj = tmColl.begin(); itTraj!=tmColl.end(); ++itTraj )
420 if ( !itTraj->updatedState().isValid() )
510 if ( trans_trk_rec_hit_point ==
NULL )
513 const TrackingRecHit *trk_rec_hit = (*trans_trk_rec_hit_point).hit();
515 if ( trk_rec_hit ==
NULL )
518 DetId detid = (trk_rec_hit)->geographicalId();
525 const SiStripMatchedRecHit2D* matchedhit =
dynamic_cast<const SiStripMatchedRecHit2D*
>( (*trans_trk_rec_hit_point).hit() );
526 const SiStripRecHit2D * hit2d =
dynamic_cast<const SiStripRecHit2D *
>( (*trans_trk_rec_hit_point).hit() );
527 const SiStripRecHit1D * hit1d =
dynamic_cast<const SiStripRecHit1D *
>( (*trans_trk_rec_hit_point).hit() );
529 if ( !matchedhit && !hit2d && !hit1d )
532 position = (trk_rec_hit)->localPosition();
533 error = (trk_rec_hit)->localPositionError();
557 float locx = localDir.
x();
558 float locy = localDir.
y();
559 float locz = localDir.
z();
570 if ( StripSubdet.
stereo() == 0 )
581 if ( strip_geom_det_unit !=
NULL )
681 const SiStripRecHit1D::ClusterRef & cluster = hit1d->cluster();
683 if ( cluster->getSplitClusterError() > 0.0 )
692 const std::vector<uint8_t>& stripCharges = cluster->amplitudes();
694 for (
unsigned int i = 0;
i < stripCharges.size(); ++
i)
696 charge += stripCharges.at(
i);
704 float mindist = 999999.9;
711 if ( !matched.empty())
717 int strip_nprimaries = 0;
718 int current_index = 0;
720 for ( vector<PSimHit>::const_iterator
m=matched.begin();
m<matched.end(); ++
m)
724 if ( (*m).processType() == 2 )
727 if ( current_index == 1 )
732 else if ( current_index == 2 )
737 else if ( current_index == 3 )
742 else if ( current_index == 4 )
747 else if ( current_index == 5 )
754 float dist =
abs( (hit1d)->localPosition().
x() - (*m).localPosition().x() );
817 const SiStripRecHit1D::ClusterRef & cluster = hit2d->cluster();
828 const std::vector<uint8_t>& stripCharges = cluster->amplitudes();
830 for (
unsigned int i = 0;
i < stripCharges.size(); ++
i)
832 charge += stripCharges.at(
i);
839 float mindist = 999999.9;
846 if ( !matched.empty())
852 for ( vector<PSimHit>::const_iterator
m=matched.begin();
m<matched.end(); ++
m)
854 float dist =
abs( (hit2d)->localPosition().
x() - (*m).localPosition().x() );
918 for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++)
920 DetId detId = ((*it)->geographicalId());
923 if (dsmatch == recHitColl->end())
continue;
929 std::vector<PSimHit> matched;
932 for ( ; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter)
938 if ( matched.empty() )
940 cout <<
"SiPixelErrorEstimation::analyze: rechits without associated simhit !!!!!!!"
1083 cout <<
"SiPixelErrorEstimation::analyze: Not in a pixel detector !!!!!" << endl;
1092 if ( pixeliter->cluster()->getSplitClusterErrorX() > 0.0 &&
1093 pixeliter->cluster()->getSplitClusterErrorY() > 0.0 )
1106 const int maxPixelCol = pixeliter->cluster()->maxPixelCol();
1107 const int maxPixelRow = pixeliter->cluster()->maxPixelRow();
1108 const int minPixelCol = pixeliter->cluster()->minPixelCol();
1109 const int minPixelRow = pixeliter->cluster()->minPixelRow();
1149 if ( tmp_nrows == 80 )
1151 else if ( tmp_nrows == 160 )
1154 cout <<
"-------------------------------------------------- Wrong module size !!!" << endl;
1174 else std::cout <<
"We are not in the pixel detector" << (int)detId.
subdetId() << endl;
1189 bool found_hit_from_generated_particle =
false;
1192 float closest_dist = 99999.9;
1193 std::vector<PSimHit>::const_iterator closest_simhit = matched.begin();
1195 for (std::vector<PSimHit>::const_iterator
m = matched.begin();
m < matched.end();
m++)
1199 int pid = (*m).particleType();
1204 float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
1205 float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
1207 float x_res = simhitx -
rechitx;
1208 float y_res = simhity -
rechity;
1210 float dist =
sqrt( x_res*x_res + y_res*y_res );
1212 if ( dist < closest_dist )
1214 closest_dist = dist;
1216 found_hit_from_generated_particle =
true;
1222 if (
checkType_ && !found_hit_from_generated_particle )
1225 all_x1 = (*closest_simhit).entryPoint().x();
1226 all_y1 = (*closest_simhit).entryPoint().y();
1227 all_z1 = (*closest_simhit).entryPoint().z();
1228 all_x2 = (*closest_simhit).exitPoint().x();
1229 all_y2 = (*closest_simhit).exitPoint().y();
1230 all_z2 = (*closest_simhit).exitPoint().z();
1233 (*closest_simhit).entryPoint().y(),
1234 (*closest_simhit).entryPoint().z() ) );
1237 (*closest_simhit).exitPoint().y(),
1238 (*closest_simhit).exitPoint().z() ) );
1248 (*closest_simhit).entryPoint().y(),
1249 (*closest_simhit).entryPoint().z() ) );
1252 (*closest_simhit).exitPoint().y(),
1253 (*closest_simhit).exitPoint().z() ) );
1268 SiPixelRecHit::ClusterRef
const& clust = pixeliter->cluster();
1290 all_simpx = (*closest_simhit).momentumAtEntry().x();
1291 all_simpy = (*closest_simhit).momentumAtEntry().y();
1292 all_simpz = (*closest_simhit).momentumAtEntry().z();
1293 all_eloss = (*closest_simhit).energyLoss();
1296 all_pidhit = (*closest_simhit).particleType();
1297 all_trkid = (*closest_simhit).trackId();
1306 SimTrackContainer::const_iterator trksiter;
1307 for (trksiter = trks.begin(); trksiter != trks.end(); trksiter++)
1308 if ( (
int)trksiter->trackId() ==
all_trkid )
1321 const std::vector<SiPixelCluster::Pixel>& pixvector = clust->pixels();
1322 for (
int i=0;
i<(int)pixvector.size(); ++
i)
1359 reco::TrackCollection::const_iterator tciter;
1361 if ( tracks->size() > 0 )
1364 for ( tciter=tracks->begin(); tciter!=tracks->end(); ++tciter)
1435 error = (*it)->localPositionError();
1443 npix = matchedhit->cluster()->size();
1444 nxpix = matchedhit->cluster()->sizeX();
1445 nypix = matchedhit->cluster()->sizeY();
1446 charge = matchedhit->cluster()->charge();
1448 if ( matchedhit->cluster()->getSplitClusterErrorX() > 0.0 &&
1449 matchedhit->cluster()->getSplitClusterErrorY() > 0.0 )
1459 hit_cprob0 = (float)matchedhit->clusterProbability(0);
1460 hit_cprob1 = (float)matchedhit->clusterProbability(1);
1461 hit_cprob2 = (float)matchedhit->clusterProbability(2);
1468 nsimhit = (int)matched.size();
1470 if ( !matched.empty() )
1473 float distx, disty, dist;
1474 bool found_hit_from_generated_particle =
false;
1476 int n_assoc_muon = 0;
1478 vector<PSimHit>::const_iterator closestit = matched.begin();
1479 for (vector<PSimHit>::const_iterator
m=matched.begin();
m<matched.end(); ++
m)
1483 int pid = (*m).particleType();
1488 float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
1489 float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
1491 distx = fabs(
rechitx - simhitx);
1492 disty = fabs(
rechity - simhity);
1493 dist =
sqrt( distx*distx + disty*disty );
1495 if ( dist < mindist )
1501 found_hit_from_generated_particle =
true;
1507 if (
checkType_ && !found_hit_from_generated_particle )
1516 DetId detId = (*it)->geographicalId();
1523 pidhit = (*closestit).particleType();
1524 simproc = (int)(*closestit).processType();
1526 simhitx = 0.5*( (*closestit).entryPoint().x() + (*closestit).exitPoint().x() );
1527 simhity = 0.5*( (*closestit).entryPoint().y() + (*closestit).exitPoint().y() );
1534 float simhitpx = (*closestit).momentumAtEntry().x();
1535 float simhitpy = (*closestit).momentumAtEntry().y();
1536 float simhitpz = (*closestit).momentumAtEntry().z();
1538 beta = atan2(simhitpz, simhitpy) * radtodeg;
1539 alpha = atan2(simhitpz, simhitpx) * radtodeg;
1545 float locx = simhitpx;
1546 float locy = simhitpy;
1547 float locz = simhitpz;
1549 bool isFlipped =
false;
1557 trk_alpha = acos(locx/
sqrt(locx*locx+locz*locz)) * radtodeg;
1561 trk_beta = acos(locy/
sqrt(locy*locy+locz*locz)) * radtodeg;
1564 phi = tciter->momentum().phi() /
math_pi*180.0;
1565 eta = tciter->momentum().eta();
1567 const int maxPixelCol = (*matchedhit).cluster()->maxPixelCol();
1568 const int maxPixelRow = (*matchedhit).cluster()->maxPixelRow();
1569 const int minPixelCol = (*matchedhit).cluster()->minPixelCol();
1570 const int minPixelRow = (*matchedhit).cluster()->minPixelRow();
1602 if ( tmp_nrows == 80 )
1604 else if ( tmp_nrows == 160 )
1607 cout <<
"-------------------------------------------------- Wrong module size !!!" << endl;
1646 cout <<
"---------------- RecHit with no associated SimHit !!! -------------------------- " << endl;
1673 cout <<
"---------------------------------------------- Not a pixel detector !!!!!!!!!!!!!!" << endl;
1680 float xcenter = cl.
x();
1681 float ycenter = cl.
y();
1689 float gp_mod =
sqrt( gp.
x()*gp.
x() + gp.
y()*gp.
y() + gp.
z()*gp.
z() );
1692 float gpx = gp.
x()/gp_mod;
1693 float gpy = gp.
y()/gp_mod;
1694 float gpz = gp.
z()/gp_mod;
1721 float gv_dot_gvx = gv.
x()*gvx.
x() + gv.
y()*gvx.
y() + gv.
z()*gvx.
z();
1722 float gv_dot_gvy = gv.
x()*gvy.
x() + gv.
y()*gvy.
y() + gv.
z()*gvy.
z();
1723 float gv_dot_gvz = gv.
x()*gvz.
x() + gv.
y()*gvz.
y() + gv.
z()*gvz.
z();
1726 alpha = atan2( gv_dot_gvz, gv_dot_gvx );
1727 beta = atan2( gv_dot_gvz, gv_dot_gvy );
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
T getParameter(std::string const &) const
EventNumber_t event() const
T getUntrackedParameter(std::string const &, T const &) const
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
bool tobIsDoubleSide(const DetId &id) const
virtual bool containsBigPixelInX(const int &ixmin, const int &ixmax) const =0
bool tibIsDoubleSide(const DetId &id) const
unsigned int tibLayer(const DetId &id) const
unsigned int tibString(const DetId &id) const
int strip_tib_is_internal_string
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
TTree * ttree_track_hits_
bool tobIsStereo(const DetId &id) const
virtual int ncolumns() const =0
int strip_tib_is_z_minus_side
int strip_tob_is_z_minus_side
#define DEFINE_FWK_MODULE(type)
unsigned int pxfDisk(const DetId &id) const
unsigned int pxbLadder(const DetId &id) const
std::vector< Track > TrackCollection
collection of Tracks
virtual int nrows() const =0
virtual ~SiPixelErrorEstimation()
unsigned int pxbModule(const DetId &id) const
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
int strip_tob_is_z_plus_side
bool tobIsRPhi(const DetId &id) const
const Plane & surface() const
The nominal surface of the GeomDet.
static int position[TOTALCHAMBERS][3]
int strip_tob_is_double_side
bool tibIsZPlusSide(const DetId &id) const
unsigned int tibSide(const DetId &id) const
int strip_tob_module_number
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
virtual bool isItEdgePixelInX(int ixbin) const =0
bool tibIsExternalString(const DetId &id) const
bool tibIsRPhi(const DetId &id) const
bool tibIsZMinusSide(const DetId &id) const
Local3DPoint localPosition() const
bool tobIsZPlusSide(const DetId &id) const
unsigned int tobSide(const DetId &id) const
bool tobIsZMinusSide(const DetId &id) const
SiPixelErrorEstimation(const edm::ParameterSet &)
int strip_tob_layer_number
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
LocalVector momentum() const
Momentum vector in the local frame.
virtual bool containsBigPixelInY(const int &iymin, const int &iymax) const =0
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
unsigned int tibModule(const DetId &id) const
unsigned int pxfModule(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
Point3DBase< float, LocalTag > Local3DPoint
Detector identifier class for the strip tracker.
unsigned int stereo() const
stereo
float all_pixel_clst_err_y
int strip_tib_is_z_plus_side
void computeAnglesFromDetPosition(const SiPixelCluster &cl, const GeomDetUnit &det, float &alpha, float &beta)
bool tibIsStereo(const DetId &id) const
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
T const * product() const
T const * product() const
unsigned short processType() const
unsigned int tobModule(const DetId &id) const
int strip_tib_string_number
Pixel cluster – collection of neighboring pixels above threshold.
virtual bool isItEdgePixelInY(int iybin) const =0
int strip_tib_module_number
std::vector< PSimHit > associateHit(const TrackingRecHit &thit)
unsigned int pxfSide(const DetId &id) const
int strip_tib_layer_number
TTree * ttree_track_hits_strip_
int strip_tib_is_external_string
unsigned int tobRod(const DetId &id) const
float all_pixel_clst_err_x
ModuleGeometry moduleGeometry() const
virtual void analyze(const edm::Event &, const edm::EventSetup &)
bool tibIsInternalString(const DetId &id) const
const PositionType & position() const
std::vector< SimTrack > SimTrackContainer
int strip_tib_is_double_side
tuple size
Write out results.
unsigned int pxfPanel(const DetId &id) const
unsigned int pxfBlade(const DetId &id) const
unsigned int tobLayer(const DetId &id) const
unsigned int tibOrder(const DetId &id) const