36 ttree_track_hits_(0), ttree_track_hits_strip_(0)
69 ttree_track_hits_strip_->Branch(
"strip_rechitx", &
strip_rechitx,
"strip_rechitx/F" , bufsize);
70 ttree_track_hits_strip_->Branch(
"strip_rechity", &
strip_rechity,
"strip_rechity/F" , bufsize);
71 ttree_track_hits_strip_->Branch(
"strip_rechitz", &
strip_rechitz,
"strip_rechitz/F" , bufsize);
73 ttree_track_hits_strip_->Branch(
"strip_rechiterrx", &
strip_rechiterrx,
"strip_rechiterrx/F" , bufsize);
74 ttree_track_hits_strip_->Branch(
"strip_rechiterry", &
strip_rechiterry,
"strip_rechiterry/F" , bufsize);
76 ttree_track_hits_strip_->Branch(
"strip_rechitresx", &
strip_rechitresx,
"strip_rechitresx/F" , bufsize);
78 ttree_track_hits_strip_->Branch(
"strip_rechitresx2", &
strip_rechitresx2,
"strip_rechitresx2/F" , bufsize);
81 ttree_track_hits_strip_->Branch(
"strip_rechitresy", &
strip_rechitresy,
"strip_rechitresy/F" , bufsize);
83 ttree_track_hits_strip_->Branch(
"strip_rechitpullx", &
strip_rechitpullx,
"strip_rechitpullx/F", bufsize);
84 ttree_track_hits_strip_->Branch(
"strip_rechitpully", &
strip_rechitpully,
"strip_rechitpully/F", bufsize);
86 ttree_track_hits_strip_->Branch(
"strip_is_stereo", &
strip_is_stereo,
"strip_is_stereo/I", bufsize);
87 ttree_track_hits_strip_->Branch(
"strip_hit_type" , &
strip_hit_type ,
"strip_hit_type/I" , bufsize);
88 ttree_track_hits_strip_->Branch(
"detector_type" , &
detector_type ,
"detector_type/I" , bufsize);
90 ttree_track_hits_strip_->Branch(
"strip_trk_pt" , &
strip_trk_pt ,
"strip_trk_pt/F" , bufsize);
91 ttree_track_hits_strip_->Branch(
"strip_cotalpha" , &
strip_cotalpha ,
"strip_cotalpha/F" , bufsize);
92 ttree_track_hits_strip_->Branch(
"strip_cotbeta" , &
strip_cotbeta ,
"strip_cotbeta/F" , bufsize);
93 ttree_track_hits_strip_->Branch(
"strip_locbx" , &
strip_locbx ,
"strip_locbx/F" , bufsize);
94 ttree_track_hits_strip_->Branch(
"strip_locby" , &
strip_locby ,
"strip_locby/F" , bufsize);
95 ttree_track_hits_strip_->Branch(
"strip_locbz" , &
strip_locbz ,
"strip_locbz/F" , bufsize);
96 ttree_track_hits_strip_->Branch(
"strip_charge" , &
strip_charge ,
"strip_charge/F" , bufsize);
97 ttree_track_hits_strip_->Branch(
"strip_size" , &
strip_size ,
"strip_size/I" , bufsize);
100 ttree_track_hits_strip_->Branch(
"strip_edge" , &
strip_edge ,
"strip_edge/I" , bufsize);
101 ttree_track_hits_strip_->Branch(
"strip_nsimhit", &
strip_nsimhit,
"strip_nsimhit/I" , bufsize);
102 ttree_track_hits_strip_->Branch(
"strip_pidhit" , &
strip_pidhit ,
"strip_pidhit/I" , bufsize);
103 ttree_track_hits_strip_->Branch(
"strip_simproc", &
strip_simproc,
"strip_simproc/I" , bufsize);
106 ttree_track_hits_strip_->Branch(
"strip_subdet_id" , &
strip_subdet_id ,
"strip_subdet_id/I" , bufsize);
108 ttree_track_hits_strip_->Branch(
"strip_tib_layer" , &
strip_tib_layer ,
"strip_tib_layer/I" , bufsize);
109 ttree_track_hits_strip_->Branch(
"strip_tib_module" , &
strip_tib_module ,
"strip_tib_module/I" , bufsize);
110 ttree_track_hits_strip_->Branch(
"strip_tib_order" , &
strip_tib_order ,
"strip_tib_order/I" , bufsize);
111 ttree_track_hits_strip_->Branch(
"strip_tib_side" , &
strip_tib_side ,
"strip_tib_side/I" , bufsize);
112 ttree_track_hits_strip_->Branch(
"strip_tib_is_double_side" , &
strip_tib_is_double_side ,
"strip_tib_is_double_side/I" , bufsize);
113 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);
114 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);
115 ttree_track_hits_strip_->Branch(
"strip_tib_layer_number" , &
strip_tib_layer_number ,
"strip_tib_layer_number/I" , bufsize);
116 ttree_track_hits_strip_->Branch(
"strip_tib_string_number" , &
strip_tib_string_number ,
"strip_tib_string_number/I" , bufsize);
117 ttree_track_hits_strip_->Branch(
"strip_tib_module_number" , &
strip_tib_module_number ,
"strip_tib_module_number/I" , bufsize);
118 ttree_track_hits_strip_->Branch(
"strip_tib_is_internal_string", &
strip_tib_is_internal_string,
"strip_tib_is_internal_string/I", bufsize);
119 ttree_track_hits_strip_->Branch(
"strip_tib_is_external_string", &
strip_tib_is_external_string,
"strip_tib_is_external_string/I", bufsize);
120 ttree_track_hits_strip_->Branch(
"strip_tib_is_rphi" , &
strip_tib_is_rphi ,
"strip_tib_is_rphi/I" , bufsize);
121 ttree_track_hits_strip_->Branch(
"strip_tib_is_stereo" , &
strip_tib_is_stereo ,
"strip_tib_is_stereo/I" , bufsize);
122 ttree_track_hits_strip_->Branch(
"strip_tob_layer" , &
strip_tob_layer ,
"strip_tob_layer/I" , bufsize);
123 ttree_track_hits_strip_->Branch(
"strip_tob_module" , &
strip_tob_module ,
"strip_tob_module/I" , bufsize);
124 ttree_track_hits_strip_->Branch(
"strip_tob_side" , &
strip_tob_side ,
"strip_tob_side/I" , bufsize);
125 ttree_track_hits_strip_->Branch(
"strip_tob_is_double_side" , &
strip_tob_is_double_side ,
"strip_tob_is_double_side/I" , bufsize);
126 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);
127 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);
128 ttree_track_hits_strip_->Branch(
"strip_tob_layer_number" , &
strip_tob_layer_number ,
"strip_tob_layer_number/I" , bufsize);
129 ttree_track_hits_strip_->Branch(
"strip_tob_rod_number" , &
strip_tob_rod_number ,
"strip_tob_rod_number/I" , bufsize);
130 ttree_track_hits_strip_->Branch(
"strip_tob_module_number" , &
strip_tob_module_number ,
"strip_tob_module_number/I" , bufsize);
133 ttree_track_hits_strip_->Branch(
"strip_prob", &
strip_prob,
"strip_prob/F" , bufsize);
134 ttree_track_hits_strip_->Branch(
"strip_qbin", &
strip_qbin,
"strip_qbin/I", bufsize);
136 ttree_track_hits_strip_->Branch(
"strip_nprm", &
strip_nprm,
"strip_nprm/I", bufsize);
138 ttree_track_hits_strip_->Branch(
"strip_pidhit1" , &
strip_pidhit1 ,
"strip_pidhit1/I" , bufsize);
139 ttree_track_hits_strip_->Branch(
"strip_simproc1", &
strip_simproc1,
"strip_simproc1/I" , bufsize);
141 ttree_track_hits_strip_->Branch(
"strip_pidhit2" , &
strip_pidhit2 ,
"strip_pidhit2/I" , bufsize);
142 ttree_track_hits_strip_->Branch(
"strip_simproc2", &
strip_simproc2,
"strip_simproc2/I" , bufsize);
144 ttree_track_hits_strip_->Branch(
"strip_pidhit3" , &
strip_pidhit3 ,
"strip_pidhit3/I" , bufsize);
145 ttree_track_hits_strip_->Branch(
"strip_simproc3", &
strip_simproc3,
"strip_simproc3/I" , bufsize);
147 ttree_track_hits_strip_->Branch(
"strip_pidhit4" , &
strip_pidhit4 ,
"strip_pidhit4/I" , bufsize);
148 ttree_track_hits_strip_->Branch(
"strip_simproc4", &
strip_simproc4,
"strip_simproc4/I" , bufsize);
150 ttree_track_hits_strip_->Branch(
"strip_pidhit5" , &
strip_pidhit5 ,
"strip_pidhit5/I" , bufsize);
151 ttree_track_hits_strip_->Branch(
"strip_simproc5", &
strip_simproc5,
"strip_simproc5/I" , bufsize);
153 ttree_track_hits_strip_->Branch(
"strip_split", &
strip_split,
"strip_split/I" , bufsize);
155 ttree_track_hits_strip_->Branch(
"strip_clst_err_x", &
strip_clst_err_x,
"strip_clst_err_x/F" , bufsize);
156 ttree_track_hits_strip_->Branch(
"strip_clst_err_y", &
strip_clst_err_y,
"strip_clst_err_y/F" , bufsize);
383 cout <<
"evt = " <<
evt << endl;
386 float radtodeg = 180.0 /
math_pi;
390 float mindist = 999999.9;
392 std::vector<PSimHit> matched;
419 for ( vector<Trajectory>::const_iterator it = trajCollectionHandle->begin(); it!=trajCollectionHandle->end(); ++it )
422 vector<TrajectoryMeasurement> tmColl = it->measurements();
423 for ( vector<TrajectoryMeasurement>::const_iterator itTraj = tmColl.begin(); itTraj!=tmColl.end(); ++itTraj )
426 if ( !itTraj->updatedState().isValid() )
516 if ( trans_trk_rec_hit_point ==
NULL )
519 const TrackingRecHit *trk_rec_hit = (*trans_trk_rec_hit_point).hit();
521 if ( trk_rec_hit ==
NULL )
524 DetId detid = (trk_rec_hit)->geographicalId();
531 const SiStripMatchedRecHit2D* matchedhit =
dynamic_cast<const SiStripMatchedRecHit2D*
>( (*trans_trk_rec_hit_point).hit() );
532 const SiStripRecHit2D * hit2d =
dynamic_cast<const SiStripRecHit2D *
>( (*trans_trk_rec_hit_point).hit() );
533 const SiStripRecHit1D * hit1d =
dynamic_cast<const SiStripRecHit1D *
>( (*trans_trk_rec_hit_point).hit() );
535 if ( !matchedhit && !hit2d && !hit1d )
538 position = (trk_rec_hit)->localPosition();
539 error = (trk_rec_hit)->localPositionError();
563 float locx = localDir.
x();
564 float locy = localDir.
y();
565 float locz = localDir.
z();
576 if ( StripSubdet.
stereo() == 0 )
587 if ( strip_geom_det_unit !=
NULL )
687 const SiStripRecHit1D::ClusterRef & cluster = hit1d->cluster();
689 if ( cluster->getSplitClusterError() > 0.0 )
698 const std::vector<uint8_t>& stripCharges = cluster->amplitudes();
700 for (
unsigned int i = 0;
i < stripCharges.size(); ++
i)
702 charge += stripCharges.at(
i);
710 float mindist = 999999.9;
717 if ( !matched.empty())
723 int strip_nprimaries = 0;
724 int current_index = 0;
726 for ( vector<PSimHit>::const_iterator
m=matched.begin();
m<matched.end(); ++
m)
730 if ( (*m).processType() == 2 )
733 if ( current_index == 1 )
738 else if ( current_index == 2 )
743 else if ( current_index == 3 )
748 else if ( current_index == 4 )
753 else if ( current_index == 5 )
760 float dist =
abs( (hit1d)->localPosition().
x() - (*m).localPosition().x() );
823 const SiStripRecHit1D::ClusterRef & cluster = hit2d->cluster();
834 const std::vector<uint8_t>& stripCharges = cluster->amplitudes();
836 for (
unsigned int i = 0;
i < stripCharges.size(); ++
i)
838 charge += stripCharges.at(
i);
845 float mindist = 999999.9;
852 if ( !matched.empty())
858 for ( vector<PSimHit>::const_iterator
m=matched.begin();
m<matched.end(); ++
m)
860 float dist =
abs( (hit2d)->localPosition().
x() - (*m).localPosition().x() );
924 for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++)
926 DetId detId = ((*it)->geographicalId());
929 if (dsmatch == recHitColl->end())
continue;
935 std::vector<PSimHit> matched;
938 for ( ; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter)
944 if ( matched.empty() )
946 cout <<
"SiPixelErrorEstimation::analyze: rechits without associated simhit !!!!!!!"
1089 cout <<
"SiPixelErrorEstimation::analyze: Not in a pixel detector !!!!!" << endl;
1098 if ( pixeliter->cluster()->getSplitClusterErrorX() > 0.0 &&
1099 pixeliter->cluster()->getSplitClusterErrorY() > 0.0 )
1112 const int maxPixelCol = pixeliter->cluster()->maxPixelCol();
1113 const int maxPixelRow = pixeliter->cluster()->maxPixelRow();
1114 const int minPixelCol = pixeliter->cluster()->minPixelCol();
1115 const int minPixelRow = pixeliter->cluster()->minPixelRow();
1155 if ( tmp_nrows == 80 )
1157 else if ( tmp_nrows == 160 )
1160 cout <<
"-------------------------------------------------- Wrong module size !!!" << endl;
1180 else std::cout <<
"We are not in the pixel detector" << (int)detId.
subdetId() << endl;
1195 bool found_hit_from_generated_particle =
false;
1198 float closest_dist = 99999.9;
1199 std::vector<PSimHit>::const_iterator closest_simhit = matched.begin();
1201 for (std::vector<PSimHit>::const_iterator
m = matched.begin();
m < matched.end();
m++)
1205 int pid = (*m).particleType();
1210 float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
1211 float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
1213 float x_res = simhitx -
rechitx;
1214 float y_res = simhity -
rechity;
1216 float dist =
sqrt( x_res*x_res + y_res*y_res );
1218 if ( dist < closest_dist )
1220 closest_dist = dist;
1222 found_hit_from_generated_particle =
true;
1228 if (
checkType_ && !found_hit_from_generated_particle )
1231 all_x1 = (*closest_simhit).entryPoint().x();
1232 all_y1 = (*closest_simhit).entryPoint().y();
1233 all_z1 = (*closest_simhit).entryPoint().z();
1234 all_x2 = (*closest_simhit).exitPoint().x();
1235 all_y2 = (*closest_simhit).exitPoint().y();
1236 all_z2 = (*closest_simhit).exitPoint().z();
1239 (*closest_simhit).entryPoint().y(),
1240 (*closest_simhit).entryPoint().z() ) );
1243 (*closest_simhit).exitPoint().y(),
1244 (*closest_simhit).exitPoint().z() ) );
1254 (*closest_simhit).entryPoint().y(),
1255 (*closest_simhit).entryPoint().z() ) );
1258 (*closest_simhit).exitPoint().y(),
1259 (*closest_simhit).exitPoint().z() ) );
1274 SiPixelRecHit::ClusterRef
const& clust = pixeliter->cluster();
1296 all_simpx = (*closest_simhit).momentumAtEntry().x();
1297 all_simpy = (*closest_simhit).momentumAtEntry().y();
1298 all_simpz = (*closest_simhit).momentumAtEntry().z();
1299 all_eloss = (*closest_simhit).energyLoss();
1302 all_pidhit = (*closest_simhit).particleType();
1303 all_trkid = (*closest_simhit).trackId();
1312 SimTrackContainer::const_iterator trksiter;
1313 for (trksiter = trks.begin(); trksiter != trks.end(); trksiter++)
1314 if ( (
int)trksiter->trackId() ==
all_trkid )
1327 const std::vector<SiPixelCluster::Pixel>& pixvector = clust->pixels();
1328 for (
int i=0;
i<(int)pixvector.size(); ++
i)
1365 reco::TrackCollection::const_iterator tciter;
1367 if ( tracks->size() > 0 )
1370 for ( tciter=tracks->begin(); tciter!=tracks->end(); ++tciter)
1441 error = (*it)->localPositionError();
1449 npix = matchedhit->cluster()->size();
1450 nxpix = matchedhit->cluster()->sizeX();
1451 nypix = matchedhit->cluster()->sizeY();
1452 charge = matchedhit->cluster()->charge();
1454 if ( matchedhit->cluster()->getSplitClusterErrorX() > 0.0 &&
1455 matchedhit->cluster()->getSplitClusterErrorY() > 0.0 )
1465 hit_cprob0 = (float)matchedhit->clusterProbability(0);
1466 hit_cprob1 = (float)matchedhit->clusterProbability(1);
1467 hit_cprob2 = (float)matchedhit->clusterProbability(2);
1474 nsimhit = (int)matched.size();
1476 if ( !matched.empty() )
1479 float distx, disty, dist;
1480 bool found_hit_from_generated_particle =
false;
1482 int n_assoc_muon = 0;
1484 vector<PSimHit>::const_iterator closestit = matched.begin();
1485 for (vector<PSimHit>::const_iterator
m=matched.begin();
m<matched.end(); ++
m)
1489 int pid = (*m).particleType();
1494 float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
1495 float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
1497 distx = fabs(
rechitx - simhitx);
1498 disty = fabs(
rechity - simhity);
1499 dist =
sqrt( distx*distx + disty*disty );
1501 if ( dist < mindist )
1507 found_hit_from_generated_particle =
true;
1513 if (
checkType_ && !found_hit_from_generated_particle )
1522 DetId detId = (*it)->geographicalId();
1529 pidhit = (*closestit).particleType();
1530 simproc = (int)(*closestit).processType();
1532 simhitx = 0.5*( (*closestit).entryPoint().x() + (*closestit).exitPoint().x() );
1533 simhity = 0.5*( (*closestit).entryPoint().y() + (*closestit).exitPoint().y() );
1540 float simhitpx = (*closestit).momentumAtEntry().x();
1541 float simhitpy = (*closestit).momentumAtEntry().y();
1542 float simhitpz = (*closestit).momentumAtEntry().z();
1544 beta = atan2(simhitpz, simhitpy) * radtodeg;
1545 alpha = atan2(simhitpz, simhitpx) * radtodeg;
1551 float locx = simhitpx;
1552 float locy = simhitpy;
1553 float locz = simhitpz;
1555 bool isFlipped =
false;
1563 trk_alpha = acos(locx/
sqrt(locx*locx+locz*locz)) * radtodeg;
1567 trk_beta = acos(locy/
sqrt(locy*locy+locz*locz)) * radtodeg;
1570 phi = tciter->momentum().phi() /
math_pi*180.0;
1571 eta = tciter->momentum().eta();
1573 const int maxPixelCol = (*matchedhit).cluster()->maxPixelCol();
1574 const int maxPixelRow = (*matchedhit).cluster()->maxPixelRow();
1575 const int minPixelCol = (*matchedhit).cluster()->minPixelCol();
1576 const int minPixelRow = (*matchedhit).cluster()->minPixelRow();
1608 if ( tmp_nrows == 80 )
1610 else if ( tmp_nrows == 160 )
1613 cout <<
"-------------------------------------------------- Wrong module size !!!" << endl;
1652 cout <<
"---------------- RecHit with no associated SimHit !!! -------------------------- " << endl;
1679 cout <<
"---------------------------------------------- Not a pixel detector !!!!!!!!!!!!!!" << endl;
1686 float xcenter = cl.
x();
1687 float ycenter = cl.
y();
1695 float gp_mod =
sqrt( gp.
x()*gp.
x() + gp.
y()*gp.
y() + gp.
z()*gp.
z() );
1698 float gpx = gp.
x()/gp_mod;
1699 float gpy = gp.
y()/gp_mod;
1700 float gpz = gp.
z()/gp_mod;
1727 float gv_dot_gvx = gv.
x()*gvx.
x() + gv.
y()*gvx.
y() + gv.
z()*gvx.
z();
1728 float gv_dot_gvy = gv.
x()*gvy.
x() + gv.
y()*gvy.
y() + gv.
z()*gvy.
z();
1729 float gv_dot_gvz = gv.
x()*gvz.
x() + gv.
y()*gvz.
y() + gv.
z()*gvz.
z();
1732 alpha = atan2( gv_dot_gvz, gv_dot_gvx );
1733 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
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
bool getByToken(EDGetToken token, Handle< PROD > &result) const
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
edm::EDGetTokenT< reco::TrackCollection > tTrackCollection
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
edm::EDGetTokenT< edm::SimTrackContainer > tSimTrackContainer
virtual bool containsBigPixelInY(int iymin, int iymax) const =0
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
Abs< T >::type abs(const T &t)
virtual bool containsBigPixelInX(int ixmin, int ixmax) const =0
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.
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
unsigned int tibModule(const DetId &id) const
unsigned int pxfModule(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
edm::EDGetTokenT< std::vector< Trajectory > > tTrajectory
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
edm::EDGetTokenT< SiPixelRecHitCollection > tPixRecHitCollection
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