38 trackerHitAssociatorConfig_(consumesCollector())
71 ttree_track_hits_strip_->Branch(
"strip_rechitx", &
strip_rechitx,
"strip_rechitx/F" , bufsize);
72 ttree_track_hits_strip_->Branch(
"strip_rechity", &
strip_rechity,
"strip_rechity/F" , bufsize);
73 ttree_track_hits_strip_->Branch(
"strip_rechitz", &
strip_rechitz,
"strip_rechitz/F" , bufsize);
75 ttree_track_hits_strip_->Branch(
"strip_rechiterrx", &
strip_rechiterrx,
"strip_rechiterrx/F" , bufsize);
76 ttree_track_hits_strip_->Branch(
"strip_rechiterry", &
strip_rechiterry,
"strip_rechiterry/F" , bufsize);
78 ttree_track_hits_strip_->Branch(
"strip_rechitresx", &
strip_rechitresx,
"strip_rechitresx/F" , bufsize);
80 ttree_track_hits_strip_->Branch(
"strip_rechitresx2", &
strip_rechitresx2,
"strip_rechitresx2/F" , bufsize);
83 ttree_track_hits_strip_->Branch(
"strip_rechitresy", &
strip_rechitresy,
"strip_rechitresy/F" , bufsize);
85 ttree_track_hits_strip_->Branch(
"strip_rechitpullx", &
strip_rechitpullx,
"strip_rechitpullx/F", bufsize);
86 ttree_track_hits_strip_->Branch(
"strip_rechitpully", &
strip_rechitpully,
"strip_rechitpully/F", bufsize);
88 ttree_track_hits_strip_->Branch(
"strip_is_stereo", &
strip_is_stereo,
"strip_is_stereo/I", bufsize);
89 ttree_track_hits_strip_->Branch(
"strip_hit_type" , &
strip_hit_type ,
"strip_hit_type/I" , bufsize);
90 ttree_track_hits_strip_->Branch(
"detector_type" , &
detector_type ,
"detector_type/I" , bufsize);
92 ttree_track_hits_strip_->Branch(
"strip_trk_pt" , &
strip_trk_pt ,
"strip_trk_pt/F" , bufsize);
93 ttree_track_hits_strip_->Branch(
"strip_cotalpha" , &
strip_cotalpha ,
"strip_cotalpha/F" , bufsize);
94 ttree_track_hits_strip_->Branch(
"strip_cotbeta" , &
strip_cotbeta ,
"strip_cotbeta/F" , bufsize);
95 ttree_track_hits_strip_->Branch(
"strip_locbx" , &
strip_locbx ,
"strip_locbx/F" , bufsize);
96 ttree_track_hits_strip_->Branch(
"strip_locby" , &
strip_locby ,
"strip_locby/F" , bufsize);
97 ttree_track_hits_strip_->Branch(
"strip_locbz" , &
strip_locbz ,
"strip_locbz/F" , bufsize);
98 ttree_track_hits_strip_->Branch(
"strip_charge" , &
strip_charge ,
"strip_charge/F" , bufsize);
99 ttree_track_hits_strip_->Branch(
"strip_size" , &
strip_size ,
"strip_size/I" , bufsize);
102 ttree_track_hits_strip_->Branch(
"strip_edge" , &
strip_edge ,
"strip_edge/I" , bufsize);
103 ttree_track_hits_strip_->Branch(
"strip_nsimhit", &
strip_nsimhit,
"strip_nsimhit/I" , bufsize);
104 ttree_track_hits_strip_->Branch(
"strip_pidhit" , &
strip_pidhit ,
"strip_pidhit/I" , bufsize);
105 ttree_track_hits_strip_->Branch(
"strip_simproc", &
strip_simproc,
"strip_simproc/I" , bufsize);
108 ttree_track_hits_strip_->Branch(
"strip_subdet_id" , &
strip_subdet_id ,
"strip_subdet_id/I" , bufsize);
110 ttree_track_hits_strip_->Branch(
"strip_tib_layer" , &
strip_tib_layer ,
"strip_tib_layer/I" , bufsize);
111 ttree_track_hits_strip_->Branch(
"strip_tib_module" , &
strip_tib_module ,
"strip_tib_module/I" , bufsize);
112 ttree_track_hits_strip_->Branch(
"strip_tib_order" , &
strip_tib_order ,
"strip_tib_order/I" , bufsize);
113 ttree_track_hits_strip_->Branch(
"strip_tib_side" , &
strip_tib_side ,
"strip_tib_side/I" , bufsize);
114 ttree_track_hits_strip_->Branch(
"strip_tib_is_double_side" , &
strip_tib_is_double_side ,
"strip_tib_is_double_side/I" , bufsize);
115 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);
116 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);
117 ttree_track_hits_strip_->Branch(
"strip_tib_layer_number" , &
strip_tib_layer_number ,
"strip_tib_layer_number/I" , bufsize);
118 ttree_track_hits_strip_->Branch(
"strip_tib_string_number" , &
strip_tib_string_number ,
"strip_tib_string_number/I" , bufsize);
119 ttree_track_hits_strip_->Branch(
"strip_tib_module_number" , &
strip_tib_module_number ,
"strip_tib_module_number/I" , bufsize);
120 ttree_track_hits_strip_->Branch(
"strip_tib_is_internal_string", &
strip_tib_is_internal_string,
"strip_tib_is_internal_string/I", bufsize);
121 ttree_track_hits_strip_->Branch(
"strip_tib_is_external_string", &
strip_tib_is_external_string,
"strip_tib_is_external_string/I", bufsize);
122 ttree_track_hits_strip_->Branch(
"strip_tib_is_rphi" , &
strip_tib_is_rphi ,
"strip_tib_is_rphi/I" , bufsize);
123 ttree_track_hits_strip_->Branch(
"strip_tib_is_stereo" , &
strip_tib_is_stereo ,
"strip_tib_is_stereo/I" , bufsize);
124 ttree_track_hits_strip_->Branch(
"strip_tob_layer" , &
strip_tob_layer ,
"strip_tob_layer/I" , bufsize);
125 ttree_track_hits_strip_->Branch(
"strip_tob_module" , &
strip_tob_module ,
"strip_tob_module/I" , bufsize);
126 ttree_track_hits_strip_->Branch(
"strip_tob_side" , &
strip_tob_side ,
"strip_tob_side/I" , bufsize);
127 ttree_track_hits_strip_->Branch(
"strip_tob_is_double_side" , &
strip_tob_is_double_side ,
"strip_tob_is_double_side/I" , bufsize);
128 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);
129 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);
130 ttree_track_hits_strip_->Branch(
"strip_tob_layer_number" , &
strip_tob_layer_number ,
"strip_tob_layer_number/I" , bufsize);
131 ttree_track_hits_strip_->Branch(
"strip_tob_rod_number" , &
strip_tob_rod_number ,
"strip_tob_rod_number/I" , bufsize);
132 ttree_track_hits_strip_->Branch(
"strip_tob_module_number" , &
strip_tob_module_number ,
"strip_tob_module_number/I" , bufsize);
135 ttree_track_hits_strip_->Branch(
"strip_prob", &
strip_prob,
"strip_prob/F" , bufsize);
136 ttree_track_hits_strip_->Branch(
"strip_qbin", &
strip_qbin,
"strip_qbin/I", bufsize);
138 ttree_track_hits_strip_->Branch(
"strip_nprm", &
strip_nprm,
"strip_nprm/I", bufsize);
140 ttree_track_hits_strip_->Branch(
"strip_pidhit1" , &
strip_pidhit1 ,
"strip_pidhit1/I" , bufsize);
141 ttree_track_hits_strip_->Branch(
"strip_simproc1", &
strip_simproc1,
"strip_simproc1/I" , bufsize);
143 ttree_track_hits_strip_->Branch(
"strip_pidhit2" , &
strip_pidhit2 ,
"strip_pidhit2/I" , bufsize);
144 ttree_track_hits_strip_->Branch(
"strip_simproc2", &
strip_simproc2,
"strip_simproc2/I" , bufsize);
146 ttree_track_hits_strip_->Branch(
"strip_pidhit3" , &
strip_pidhit3 ,
"strip_pidhit3/I" , bufsize);
147 ttree_track_hits_strip_->Branch(
"strip_simproc3", &
strip_simproc3,
"strip_simproc3/I" , bufsize);
149 ttree_track_hits_strip_->Branch(
"strip_pidhit4" , &
strip_pidhit4 ,
"strip_pidhit4/I" , bufsize);
150 ttree_track_hits_strip_->Branch(
"strip_simproc4", &
strip_simproc4,
"strip_simproc4/I" , bufsize);
152 ttree_track_hits_strip_->Branch(
"strip_pidhit5" , &
strip_pidhit5 ,
"strip_pidhit5/I" , bufsize);
153 ttree_track_hits_strip_->Branch(
"strip_simproc5", &
strip_simproc5,
"strip_simproc5/I" , bufsize);
155 ttree_track_hits_strip_->Branch(
"strip_split", &
strip_split,
"strip_split/I" , bufsize);
157 ttree_track_hits_strip_->Branch(
"strip_clst_err_x", &
strip_clst_err_x,
"strip_clst_err_x/F" , bufsize);
158 ttree_track_hits_strip_->Branch(
"strip_clst_err_y", &
strip_clst_err_y,
"strip_clst_err_y/F" , bufsize);
385 cout <<
"evt = " <<
evt << endl;
388 float radtodeg = 180.0 /
math_pi;
392 float mindist = 999999.9;
421 for ( vector<Trajectory>::const_iterator it = trajCollectionHandle->begin(); it!=trajCollectionHandle->end(); ++it )
424 vector<TrajectoryMeasurement> tmColl = it->measurements();
425 for ( vector<TrajectoryMeasurement>::const_iterator itTraj = tmColl.begin(); itTraj!=tmColl.end(); ++itTraj )
428 if ( !itTraj->updatedState().isValid() )
518 if ( trans_trk_rec_hit_point ==
nullptr )
523 if ( trk_rec_hit ==
nullptr )
526 DetId detid = (trk_rec_hit)->geographicalId();
537 if ( !matchedhit && !hit2d && !hit1d )
540 position = (trk_rec_hit)->localPosition();
541 error = (trk_rec_hit)->localPositionError();
565 float locx = localDir.
x();
566 float locy = localDir.
y();
567 float locz = localDir.
z();
578 if ( StripSubdet.
stereo() == 0 )
589 if ( strip_geom_det_unit !=
nullptr )
691 if ( cluster->getSplitClusterError() > 0.0 )
700 const auto & stripCharges = cluster->amplitudes();
702 for (
unsigned int i = 0;
i < stripCharges.size(); ++
i)
704 charge += stripCharges[
i];
712 float mindist = 999999.9;
719 if ( !matched.empty())
725 int strip_nprimaries = 0;
726 int current_index = 0;
728 for ( vector<PSimHit>::const_iterator
m=matched.begin();
m<matched.end(); ++
m)
732 if ( (*m).processType() == 2 )
735 if ( current_index == 1 )
740 else if ( current_index == 2 )
745 else if ( current_index == 3 )
750 else if ( current_index == 4 )
755 else if ( current_index == 5 )
762 float dist =
abs( (hit1d)->localPosition().
x() - (*m).localPosition().x() );
836 auto & stripCharges = cluster->amplitudes();
838 for (
unsigned int i = 0;
i < stripCharges.size(); ++
i)
840 charge += stripCharges[
i];
847 float mindist = 999999.9;
854 if ( !matched.empty())
860 for ( vector<PSimHit>::const_iterator
m=matched.begin();
m<matched.end(); ++
m)
862 float dist =
abs( (hit2d)->localPosition().
x() - (*m).localPosition().x() );
926 for (TrackerGeometry::DetContainer::const_iterator it = pDD->
dets().begin(); it != pDD->
dets().end(); it++)
928 DetId detId = ((*it)->geographicalId());
931 if (dsmatch == recHitColl->
end())
continue;
940 for ( ; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter)
946 if ( matched.empty() )
948 cout <<
"SiPixelErrorEstimation::analyze: rechits without associated simhit !!!!!!!" 1091 cout <<
"SiPixelErrorEstimation::analyze: Not in a pixel detector !!!!!" << endl;
1100 if ( pixeliter->cluster()->getSplitClusterErrorX() > 0.0 &&
1101 pixeliter->cluster()->getSplitClusterErrorY() > 0.0 )
1114 const int maxPixelCol = pixeliter->cluster()->maxPixelCol();
1115 const int maxPixelRow = pixeliter->cluster()->maxPixelRow();
1116 const int minPixelCol = pixeliter->cluster()->minPixelCol();
1117 const int minPixelRow = pixeliter->cluster()->minPixelRow();
1157 if ( tmp_nrows == 80 )
1159 else if ( tmp_nrows == 160 )
1162 cout <<
"-------------------------------------------------- Wrong module size !!!" << endl;
1193 LocalError le = pixeliter->localPositionError();
1197 bool found_hit_from_generated_particle =
false;
1200 float closest_dist = 99999.9;
1201 std::vector<PSimHit>::const_iterator closest_simhit = matched.begin();
1203 for (std::vector<PSimHit>::const_iterator
m = matched.begin();
m < matched.end();
m++)
1207 int pid = (*m).particleType();
1212 float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
1213 float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
1215 float x_res = simhitx -
rechitx;
1216 float y_res = simhity -
rechity;
1218 float dist =
sqrt( x_res*x_res + y_res*y_res );
1220 if ( dist < closest_dist )
1222 closest_dist = dist;
1224 found_hit_from_generated_particle =
true;
1230 if (
checkType_ && !found_hit_from_generated_particle )
1233 all_x1 = (*closest_simhit).entryPoint().x();
1234 all_y1 = (*closest_simhit).entryPoint().y();
1235 all_z1 = (*closest_simhit).entryPoint().z();
1236 all_x2 = (*closest_simhit).exitPoint().x();
1237 all_y2 = (*closest_simhit).exitPoint().y();
1238 all_z2 = (*closest_simhit).exitPoint().z();
1241 (*closest_simhit).entryPoint().y(),
1242 (*closest_simhit).entryPoint().z() ) );
1245 (*closest_simhit).exitPoint().y(),
1246 (*closest_simhit).exitPoint().z() ) );
1256 (*closest_simhit).entryPoint().y(),
1257 (*closest_simhit).entryPoint().z() ) );
1260 (*closest_simhit).exitPoint().y(),
1261 (*closest_simhit).exitPoint().z() ) );
1298 all_simpx = (*closest_simhit).momentumAtEntry().x();
1299 all_simpy = (*closest_simhit).momentumAtEntry().y();
1300 all_simpz = (*closest_simhit).momentumAtEntry().z();
1301 all_eloss = (*closest_simhit).energyLoss();
1304 all_pidhit = (*closest_simhit).particleType();
1305 all_trkid = (*closest_simhit).trackId();
1314 SimTrackContainer::const_iterator trksiter;
1315 for (trksiter = trks.begin(); trksiter != trks.end(); trksiter++)
1316 if ( (
int)trksiter->trackId() ==
all_trkid )
1329 const std::vector<SiPixelCluster::Pixel>& pixvector = clust->pixels();
1330 for (
int i=0;
i<(
int)pixvector.size(); ++
i)
1367 reco::TrackCollection::const_iterator tciter;
1369 if ( !tracks->empty() )
1372 for ( tciter=tracks->begin(); tciter!=tracks->end(); ++tciter)
1442 position = (*it)->localPosition();
1443 error = (*it)->localPositionError();
1456 if ( matchedhit->
cluster()->getSplitClusterErrorX() > 0.0 &&
1457 matchedhit->
cluster()->getSplitClusterErrorY() > 0.0 )
1478 if ( !matched.empty() )
1481 float distx, disty, dist;
1482 bool found_hit_from_generated_particle =
false;
1484 int n_assoc_muon = 0;
1486 vector<PSimHit>::const_iterator closestit = matched.begin();
1487 for (vector<PSimHit>::const_iterator
m=matched.begin();
m<matched.end(); ++
m)
1491 int pid = (*m).particleType();
1496 float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
1497 float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
1499 distx = fabs(
rechitx - simhitx);
1500 disty = fabs(
rechity - simhity);
1501 dist =
sqrt( distx*distx + disty*disty );
1503 if ( dist < mindist )
1509 found_hit_from_generated_particle =
true;
1515 if (
checkType_ && !found_hit_from_generated_particle )
1524 DetId detId = (*it)->geographicalId();
1531 pidhit = (*closestit).particleType();
1534 simhitx = 0.5*( (*closestit).entryPoint().x() + (*closestit).exitPoint().x() );
1535 simhity = 0.5*( (*closestit).entryPoint().y() + (*closestit).exitPoint().y() );
1542 float simhitpx = (*closestit).momentumAtEntry().x();
1543 float simhitpy = (*closestit).momentumAtEntry().y();
1544 float simhitpz = (*closestit).momentumAtEntry().z();
1546 beta = atan2(simhitpz, simhitpy) * radtodeg;
1547 alpha = atan2(simhitpz, simhitpx) * radtodeg;
1553 float locx = simhitpx;
1554 float locy = simhitpy;
1555 float locz = simhitpz;
1557 bool isFlipped =
false;
1565 trk_alpha = acos(locx/
sqrt(locx*locx+locz*locz)) * radtodeg;
1569 trk_beta = acos(locy/
sqrt(locy*locy+locz*locz)) * radtodeg;
1572 phi = tciter->momentum().phi() / math_pi*180.0;
1573 eta = tciter->momentum().eta();
1575 const int maxPixelCol = (*matchedhit).cluster()->maxPixelCol();
1576 const int maxPixelRow = (*matchedhit).cluster()->maxPixelRow();
1577 const int minPixelCol = (*matchedhit).cluster()->minPixelCol();
1578 const int minPixelRow = (*matchedhit).cluster()->minPixelRow();
1610 if ( tmp_nrows == 80 )
1612 else if ( tmp_nrows == 160 )
1615 cout <<
"-------------------------------------------------- Wrong module size !!!" << endl;
1654 cout <<
"---------------- RecHit with no associated SimHit !!! -------------------------- " << endl;
1681 cout <<
"---------------------------------------------- Not a pixel detector !!!!!!!!!!!!!!" << endl;
1688 float xcenter = cl.
x();
1689 float ycenter = cl.
y();
1697 float gp_mod =
sqrt( gp.
x()*gp.
x() + gp.
y()*gp.
y() + gp.
z()*gp.
z() );
1700 float gpx = gp.
x()/gp_mod;
1701 float gpy = gp.
y()/gp_mod;
1702 float gpz = gp.
z()/gp_mod;
1729 float gv_dot_gvx = gv.
x()*gvx.
x() + gv.
y()*gvx.
y() + gv.
z()*gvx.
z();
1730 float gv_dot_gvy = gv.
x()*gvy.
x() + gv.
y()*gvy.
y() + gv.
z()*gvy.
z();
1731 float gv_dot_gvz = gv.
x()*gvz.
x() + gv.
y()*gvz.
y() + gv.
z()*gvz.
z();
1734 alpha = atan2( gv_dot_gvz, gv_dot_gvx );
1735 beta = atan2( gv_dot_gvz, gv_dot_gvy );
ClusterRef cluster() const
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
virtual int nrows() const =0
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
bool tobIsDoubleSide(const DetId &id) const
const_iterator end(bool update=false) const
Point3DBase< Scalar, LocalTag > LocalPoint
float clusterProbability(unsigned int flags=0) 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
TTree * ttree_track_hits_
bool tobIsStereo(const DetId &id) const
TrackerHitAssociator::Config trackerHitAssociatorConfig_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
int strip_tib_is_z_minus_side
virtual bool isItEdgePixelInX(int ixbin) const =0
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
void analyze(const edm::Event &, const edm::EventSetup &) override
virtual bool isItEdgePixelInY(int iybin) const =0
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.
int strip_tob_is_double_side
bool tibIsZPlusSide(const DetId &id) const
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
unsigned int tibSide(const DetId &id) const
int strip_tob_module_number
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
bool tibIsExternalString(const DetId &id) const
bool tibIsRPhi(const DetId &id) const
edm::EDGetTokenT< edm::SimTrackContainer > tSimTrackContainer
bool tibIsZMinusSide(const DetId &id) const
Local3DPoint localPosition() const
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
bool tobIsZPlusSide(const DetId &id) const
virtual bool containsBigPixelInX(int ixmin, int ixmax) const =0
unsigned int tobSide(const DetId &id) const
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
bool tobIsZMinusSide(const DetId &id) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
Abs< T >::type abs(const T &t)
SiPixelErrorEstimation(const edm::ParameterSet &)
ClusterRef cluster() const
int strip_tob_layer_number
LocalVector momentum() const
Momentum vector in the local frame.
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
virtual TrackingRecHit const * hit() const
float all_pixel_clst_err_y
int strip_tib_is_z_plus_side
T const * product() const
void computeAnglesFromDetPosition(const SiPixelCluster &cl, const GeomDetUnit &det, float &alpha, float &beta)
ClusterRef cluster() const
bool tibIsStereo(const DetId &id) const
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
unsigned short processType() const
unsigned int tobModule(const DetId &id) const
int strip_tib_string_number
const_iterator find(id_type i, bool update=false) const
Pixel cluster – collection of neighboring pixels above threshold.
virtual int ncolumns() const =0
static int position[264][3]
int strip_tib_module_number
const TrackerGeomDet * idToDet(DetId) const override
~SiPixelErrorEstimation() override
unsigned int pxfSide(const DetId &id) const
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) 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
bool tibIsInternalString(const DetId &id) const
const PositionType & position() const
T const * product() const
std::vector< SimTrack > SimTrackContainer
int strip_tib_is_double_side
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
virtual bool containsBigPixelInY(int iymin, int iymax) const =0