116 const std::vector<Trajectory>&);
117 void insertMeasurement(std::multimap<
const uint32_t, std::pair<LocalPoint, double> >&,
124 const std::vector<Trajectory>&);
130 void insertMeasurement(std::multimap<
const uint32_t, std::pair<std::pair<float, float>,
int> >&,
137 std::map<uint32_t, float>
delay(
const std::vector<std::string>&);
164 std::multimap<const uint32_t, const FedChannelConnection*>
connections_;
266 ntrajs_ =
new uint32_t[trackSize];
271 for (
size_t i = 0;
i < trackSize; ++
i) {
284 clusters_ = dir->
make<TTree>(
"clusters",
"cluster information");
285 clusters_->Branch(
"eventid", &
eventid_,
"eventid/i");
286 clusters_->Branch(
"runid", &
runid_,
"runid/i");
287 for (
size_t i = 0;
i < trackSize; ++
i) {
290 sprintf(buffer1,
"trackid%lu", (
unsigned long)
i);
291 sprintf(buffer2,
"trackid%lu/i", (
unsigned long)i);
292 clusters_->Branch(buffer1,
trackid_ + i, buffer2);
294 clusters_->Branch(
"onTrack", &
onTrack_,
"onTrack/O");
295 clusters_->Branch(
"clWidth", &
clWidth_,
"clWidth/F");
296 clusters_->Branch(
"clPosition", &
clPosition_,
"clPosition/F");
297 clusters_->Branch(
"clglobalX", &
globalX_,
"clglobalX/F");
298 clusters_->Branch(
"clglobalY", &
globalY_,
"clglobalY/F");
299 clusters_->Branch(
"clglobalZ", &
globalZ_,
"clglobalZ/F");
300 clusters_->Branch(
"angle", &
angle_,
"angle/F");
301 clusters_->Branch(
"thickness", &
thickness_,
"thickness/F");
302 clusters_->Branch(
"maxCharge", &
maxCharge_,
"maxCharge/F");
308 clusters_->Branch(
"clBareCharge", &
clBareCharge_,
"clBareCharge/F");
309 clusters_->Branch(
"clBareNoise", &
clBareNoise_,
"clBareNoise/F");
310 clusters_->Branch(
"stripLength", &
stripLength_,
"stripLength/F");
311 clusters_->Branch(
"detid", &
detid_,
"detid/i");
312 clusters_->Branch(
"lldChannel", &
lldChannel_,
"lldChannel/s");
315 pixclusters_ = dir->
make<TTree>(
"pixclusters",
"pixel cluster information");
318 for (
size_t i = 0;
i < trackSize; ++
i) {
321 sprintf(buffer1,
"trackid%lu", (
unsigned long)
i);
322 sprintf(buffer2,
"trackid%lu/i", (
unsigned long)i);
341 for (
size_t i = 0;
i < trackSize; ++
i) {
344 sprintf(buffer1,
"tracks%lu", (
unsigned long)
i);
345 sprintf(buffer2,
"track%lu information", (
unsigned long)i);
346 TTree* thetracks_ = dir->
make<TTree>(buffer1, buffer2);
347 sprintf(buffer1,
"trackid%lu", (
unsigned long)i);
348 sprintf(buffer2,
"trackid%lu/i", (
unsigned long)i);
350 thetracks_->Branch(
"eventid", &
eventid_,
"eventid/i");
351 thetracks_->Branch(
"runid", &
runid_,
"runid/i");
352 thetracks_->Branch(
"chi2", &
chi2_,
"chi2/F");
353 thetracks_->Branch(
"eta", &
eta_,
"eta/F");
354 thetracks_->Branch(
"etaerr", &
etaerr_,
"etaerr/F");
355 thetracks_->Branch(
"phi", &
phi_,
"phi/F");
356 thetracks_->Branch(
"phierr", &
phierr_,
"phierr/F");
357 thetracks_->Branch(
"dedx1", &
dedx1_,
"dedx1/F");
358 thetracks_->Branch(
"dedx2", &
dedx2_,
"dedx2/F");
359 thetracks_->Branch(
"dedx3", &
dedx3_,
"dedx3/F");
360 thetracks_->Branch(
"dedxNoM", &
dedxNoM_,
"dedxNoM/i");
361 thetracks_->Branch(
"charge", &
charge_,
"charge/F");
362 thetracks_->Branch(
"quality", &
quality_,
"quality/i");
363 thetracks_->Branch(
"foundhits", &
foundhits_,
"foundhits/i");
364 thetracks_->Branch(
"lostHits", &
lostHits_,
"lostHits/i");
365 thetracks_->Branch(
"foundhitsStrips", &
foundhitsStrips_,
"foundhitsStrips/i");
366 thetracks_->Branch(
"foundhitsPixels", &
foundhitsPixels_,
"foundhitsPixels/i");
367 thetracks_->Branch(
"losthitsStrips", &
losthitsStrips_,
"losthitsStrips/i");
368 thetracks_->Branch(
"losthitsPixels", &
losthitsPixels_,
"losthitsPixels/i");
369 thetracks_->Branch(
"p", &
p_,
"p/F");
370 thetracks_->Branch(
"pt", &
pt_,
"pt/F");
371 thetracks_->Branch(
"pterr", &
pterr_,
"pterr/F");
372 thetracks_->Branch(
"ndof", &
ndof_,
"ndof/i");
373 thetracks_->Branch(
"dz", &
dz_,
"dz/F");
374 thetracks_->Branch(
"dzerr", &
dzerr_,
"dzerr/F");
375 thetracks_->Branch(
"dzCorr", &
dzCorr_,
"dzCorr/F");
376 thetracks_->Branch(
"dxy", &
dxy_,
"dxy/F");
377 thetracks_->Branch(
"dxyerr", &
dxyerr_,
"dxyerr/F");
378 thetracks_->Branch(
"dxyCorr", &
dxyCorr_,
"dxyCorr/F");
379 thetracks_->Branch(
"qoverp", &
qoverp_,
"qoverp/F");
380 thetracks_->Branch(
"xPCA", &
xPCA_,
"xPCA/F");
381 thetracks_->Branch(
"yPCA", &
yPCA_,
"yPCA/F");
382 thetracks_->Branch(
"zPCA", &
zPCA_,
"zPCA/F");
383 thetracks_->Branch(
"nLayers", &
nLayers_,
"nLayers/i");
384 thetracks_->Branch(
"trkWeightpvtx", &
trkWeightpvtx_,
"trkWeightpvtx/F");
385 thetracks_->Branch(
"vertexid", &
vertexid_,
"vertexid/i");
390 for (
size_t i = 0;
i < trackSize; ++
i) {
393 sprintf(buffer1,
"misingHits%lu", (
unsigned long)
i);
394 sprintf(buffer2,
"missing hits from track collection %lu", (
unsigned long)i);
395 TTree* themissingHits_ = dir->
make<TTree>(buffer1, buffer2);
396 sprintf(buffer1,
"trackid%lu", (
unsigned long)i);
397 sprintf(buffer2,
"trackid%lu/i", (
unsigned long)i);
399 themissingHits_->Branch(
"eventid", &
eventid_,
"eventid/i");
400 themissingHits_->Branch(
"runid", &
runid_,
"runid/i");
401 themissingHits_->Branch(
"detid", &
detid_,
"detid/i");
402 themissingHits_->Branch(
"type", &
type_,
"type/i");
403 themissingHits_->Branch(
"localX", &
clPositionX_,
"localX/F");
404 themissingHits_->Branch(
"localY", &
clPositionY_,
"localY/F");
405 themissingHits_->Branch(
"globalX", &
globalX_,
"globalX/F");
406 themissingHits_->Branch(
"globalY", &
globalY_,
"globalY/F");
407 themissingHits_->Branch(
"globalZ", &
globalZ_,
"globalZ/F");
408 themissingHits_->Branch(
"measX", &
measX_,
"measX/F");
409 themissingHits_->Branch(
"measY", &
measY_,
"measY/F");
410 themissingHits_->Branch(
"errorX", &
errorX_,
"errorX/F");
411 themissingHits_->Branch(
"errorY", &
errorY_,
"errorY/F");
416 vertices_ = dir->
make<TTree>(
"vertices",
"vertex information");
447 event_ = dir->
make<TTree>(
"events",
"event information");
462 sprintf(buffer,
"ntracks[%lu]/i", (
unsigned long)trackSize);
463 event_->Branch(
"ntracks", ntracks_, buffer);
464 sprintf(buffer,
"ntrajs[%lu]/i", (
unsigned long)trackSize);
466 sprintf(buffer,
"lowPixelProbabilityFraction[%lu]/F", (
unsigned long)trackSize);
486 event_->Branch(
"MagneticField", &
fBz_,
"MagneticField/F");
491 iConfig.
getUntrackedParameter<std::vector<std::string> >(
"DelayFileNames", std::vector<std::string>(0));
527 using namespace reco;
560 for (
int bit = 0; bit < 128; ++bit) {
564 for (
int bit = 0; bit < 64; ++bit) {
568 for (
int bit = 0; bit < 64; ++bit) {
575 size_t ntrh = trh->
size();
576 for (
size_t bit = 0; bit < 256; ++bit)
584 ?
Point(recoBeamSpotHandle->
x0(), recoBeamSpotHandle->
y0(), recoBeamSpotHandle->
z0())
586 if (recoBeamSpotHandle.
isValid()) {
608 for (reco::VertexCollection::const_iterator
v = vertexColl.begin();
v != vertexColl.end(); ++
v) {
609 if (
v->isValid() && !
v->isFake())
652 std::vector<edm::Handle<reco::TrackCollection> > trackCollectionHandle;
653 trackCollectionHandle.resize(trackSize);
663 trackCollection.push_back(*trackCollectionHandle[index].product());
668 std::vector<std::vector<Trajectory> > trajectoryCollection;
669 std::vector<edm::Handle<std::vector<Trajectory> > > trajectoryCollectionHandle;
670 trajectoryCollectionHandle.resize(trackSize);
680 trajectoryCollection.push_back(*trajectoryCollectionHandle[index].product());
685 std::vector<TrajTrackAssociationCollection> TrajToTrackMap;
696 TrajToTrackMap.push_back(*trajTrackAssociationHandle.
product());
700 if (!(!trackCollection.empty() && !trajectoryCollection.empty()))
704 std::vector<std::map<size_t, int> > trackVertices;
705 for (
size_t i = 0;
i < trackSize; ++
i) {
711 for (reco::VertexCollection::const_iterator
v = vertexColl.begin();
v != vertexColl.end(); ++
v) {
729 for (reco::VertexCollection::const_iterator
v = pixelVertexColl.begin();
v != pixelVertexColl.end(); ++
v) {
746 std::vector<double> clusterOntrackAngles =
onTrackAngles(clusters, trajectoryCollection[0]);
747 std::vector<std::pair<double, double> > pixclusterOntrackAngles =
766 std::vector<std::vector<int> > stripClusterOntrackIndices;
767 for (
size_t i = 0;
i < trackSize; ++
i) {
770 std::vector<std::vector<int> > pixelClusterOntrackIndices;
771 for (
size_t i = 0;
i < trackSize; ++
i) {
775 stripClusterOntrackIndices[0].
begin(), stripClusterOntrackIndices[0].
end(), [](
auto c) {
return c != -1; });
777 pixelClusterOntrackIndices[0].
begin(), pixelClusterOntrackIndices[0].
end(), [](
auto c) {
return c != -1; });
780 for (
size_t coll = 0;
coll < trackCollection.size(); ++
coll) {
781 uint32_t n_hits_barrel = 0;
782 uint32_t n_hits_lowprob = 0;
784 it != TrajToTrackMap[
coll].end();
788 eta_ = itTrack->eta();
789 phi_ = itTrack->phi();
791 dedxNoM_ = dEdxTrack1[itTrack].numberOfMeasurements();
792 dedx1_ = dEdxTrack1[itTrack].dEdx();
793 dedx2_ = dEdxTrack2[itTrack].dEdx();
794 dedx3_ = dEdxTrack3[itTrack].dEdx();
809 nLayers_ = uint32_t(itTrack->hitPattern().trackerLayersWithMeasurement());
812 chi2_ = itTrack->chi2();
813 ndof_ = (uint32_t)itTrack->ndof();
815 dzerr_ = itTrack->dzError();
816 dzCorr_ = itTrack->dz(beamSpot);
817 dxy_ = itTrack->dxy();
820 pterr_ = itTrack->ptError();
824 xPCA_ = itTrack->vertex().x();
825 yPCA_ = itTrack->vertex().y();
826 zPCA_ = itTrack->vertex().z();
828 if (!vertexColl.empty() && !vertexColl.begin()->isFake()) {
836 std::map<size_t, int>::const_iterator theV = trackVertices[
coll].find(itTrack.
key());
837 vertexid_ = (theV != trackVertices[
coll].end()) ? theV->second : 0;
841 for (Trajectory::DataContainer::const_iterator it = measurements.begin(); it != measurements.end(); ++it) {
843 if (!rechit->isValid()) {
845 detid_ = rechit->geographicalId();
847 type_ = rechit->getType();
853 GlobalPoint global = it->predictedState().globalPosition();
901 std::vector<double>::const_iterator angleIt = clusterOntrackAngles.begin();
902 uint32_t localCounter = 0;
907 uint32_t detid = DSViter->id();
908 nclusters_ += DSViter->size();
911 ++iter, ++angleIt, ++localCounter) {
915 for (
size_t i = 0;
i < trackSize; ++
i) {
916 trackid_[
i] = stripClusterOntrackIndices[
i][localCounter];
922 thickness_ = ((((DSViter->id() >> 25) & 0x7f) == 0xd) ||
923 ((((DSViter->id() >> 25) & 0x7f) == 0xe) && (((DSViter->id() >> 5) & 0x7) > 4)))
953 delete siStripClusterInfo;
960 std::vector<std::pair<double, double> >::const_iterator pixAngleIt = pixclusterOntrackAngles.begin();
963 DSViter != pixelclusters->end();
967 uint32_t detid = DSViter->id();
971 ++iter, ++pixAngleIt, ++localCounter) {
973 for (
size_t i = 0;
i < trackSize; ++
i) {
974 trackid_[
i] = pixelClusterOntrackIndices[
i][localCounter];
982 alpha_ = pixAngleIt->first;
983 beta_ = pixAngleIt->second;
984 charge_ = (iter->charge()) / 1000.;
1035 for (std::vector<std::string>::const_iterator it =
hlNames_.begin(); it <
hlNames_.end(); ++it) {
1036 std::cout << (i++) <<
" = " << (*it) << std::endl;
1049 for (
auto conn = connections.begin();
conn < connections.end(); ++
conn) {
1051 if (
conn->isConnected())
1054 if (
conn->isConnected()) {
1079 if (!delayMap.empty())
1080 tmap.
save(
true, 0, 0,
"delaymap.png");
1084 if (cablingFile.is_open()) {
1086 cablingFile.getline(buffer, 1024);
1087 while (!cablingFile.eof()) {
1088 std::istringstream
line(buffer);
1092 strncpy(
PSUname_, name.c_str(), 256);
1093 while (!line.eof()) {
1097 cablingFile.getline(buffer, 1024);
1100 edm::LogWarning(
"BadConfig") <<
" The PSU file does not exist. The psumap tree will not be filled." << std::endl
1102 <<
" Please specify a valid filename through the PSUFileName untracked parameter.";
1108 for (
size_t i = 0;
i <
tracks_.size(); ++
i) {
1110 sprintf(buffer,
"trackid%lu", (
unsigned long)
i);
1112 tracks_[
i]->BuildIndex(buffer,
"eventid");
1122 vertices_->BuildIndex(
"vertexid",
"eventid");
1123 if (
event_->GetEntries())
1124 event_->BuildIndex(
"runid",
"eventid");
1132 const std::vector<Trajectory>& trajVec) {
1133 std::vector<double>
result;
1135 std::multimap<const uint32_t, std::pair<LocalPoint, double> > onTrackPositions;
1136 for (std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj < trajVec.end(); ++traj) {
1138 for (Trajectory::DataContainer::iterator meas = measurements.begin(); meas != measurements.end(); ++meas) {
1139 double tla = meas->updatedState().localDirection().theta();
1149 std::pair<std::multimap<uint32_t, std::pair<LocalPoint, double> >::const_iterator,
1150 std::multimap<uint32_t, std::pair<LocalPoint, double> >::const_iterator>
1151 range = onTrackPositions.equal_range(DSViter->id());
1155 for (std::multimap<uint32_t, std::pair<LocalPoint, double> >::const_iterator
cl = range.first;
cl != range.second;
1158 angle =
cl->second.second;
1161 result.push_back(angle);
1177 }
else if (singlehit) {
1180 }
else if (multihit) {
1181 std::vector<const TrackingRecHit*> childs = multihit->
recHits();
1182 for (std::vector<const TrackingRecHit*>::const_iterator it = childs.begin(); it != childs.end(); ++it) {
1190 uint32_t firstTrack) {
1193 std::multimap<const uint32_t, std::pair<int, int> > onTrackPositions;
1194 uint32_t trackid = firstTrack;
1195 for (reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack != trackVec.end();
1196 ++itTrack, ++trackid) {
1203 int thetrackid = -1;
1208 std::pair<std::multimap<uint32_t, std::pair<int, int> >::const_iterator,
1209 std::multimap<uint32_t, std::pair<int, int> >::const_iterator>
1210 range = onTrackPositions.equal_range(DSViter->id());
1213 for (std::multimap<uint32_t, std::pair<int, int> >::const_iterator
cl = range.first;
cl != range.second; ++
cl) {
1214 if (fabs(
cl->second.first - iter->barycenter()) < 2) {
1215 thetrackid =
cl->second.second;
1218 result.push_back(thetrackid);
1235 }
else if (singlehit) {
1237 std::make_pair(
int(singlehit->
cluster()->barycenter()), trackid)));
1238 }
else if (multihit) {
1239 std::vector<const TrackingRecHit*> childs = multihit->
recHits();
1240 for (std::vector<const TrackingRecHit*>::const_iterator it = childs.begin(); it != childs.end(); ++it) {
1248 uint32_t firstVertex) {
1250 std::map<size_t, int>
output;
1251 uint32_t vertexid = firstVertex;
1252 for (reco::VertexCollection::const_iterator
v = vertices.begin();
v != vertices.end(); ++
v, ++vertexid) {
1255 for (; it != lastTrack; ++it) {
1256 output[it->key()] = vertexid;
1264 std::vector<std::pair<double, double> >
result;
1266 std::multimap<const uint32_t, std::pair<LocalPoint, std::pair<double, double> > > onTrackPositions;
1267 for (std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj < trajVec.end(); ++traj) {
1269 for (Trajectory::DataContainer::iterator meas = measurements.begin(); meas != measurements.end(); ++meas) {
1270 LocalVector localDir = meas->updatedState().localDirection();
1271 double alpha = atan2(localDir.
z(), localDir.
x());
1272 double beta = atan2(localDir.
z(), localDir.
y());
1286 std::pair<std::multimap<uint32_t, std::pair<LocalPoint, std::pair<double, double> > >::const_iterator,
1287 std::multimap<uint32_t, std::pair<LocalPoint, std::pair<double, double> > >::const_iterator>
1288 range = onTrackPositions.equal_range(DSViter->id());
1290 for (std::multimap<uint32_t, std::pair<
LocalPoint, std::pair<double, double> > >::const_iterator
cl = range.first;
1295 alpha =
cl->second.second.first;
1296 beta =
cl->second.second.second;
1299 result.push_back(std::make_pair(alpha, beta));
1315 std::make_pair(pixhit->
localPosition(), std::make_pair(alpha, beta))));
1321 uint32_t firstTrack) {
1324 std::multimap<const uint32_t, std::pair<std::pair<float, float>,
int> > onTrackPositions;
1325 uint32_t trackid = firstTrack;
1326 for (reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack != trackVec.end();
1327 ++itTrack, ++trackid) {
1334 int thetrackid = -1;
1341 std::pair<std::multimap<uint32_t, std::pair<std::pair<float, float>,
int> >::const_iterator,
1342 std::multimap<uint32_t, std::pair<std::pair<float, float>,
int> >::const_iterator>
1343 range = onTrackPositions.equal_range(DSViter->id());
1344 for (std::multimap<uint32_t, std::pair<std::pair<float, float>,
int> >::const_iterator
cl = range.first;
1347 if ((fabs(
cl->second.first.first - iter->x()) < 2) && (fabs(
cl->second.first.second - iter->y()) < 2)) {
1348 thetrackid =
cl->second.second;
1351 result.push_back(thetrackid);
1358 std::multimap<
const uint32_t, std::pair<std::pair<float, float>,
int> >&
collection,
1367 std::make_pair(std::make_pair(pixhit->
cluster()->x(), pixhit->
cluster()->y()), trackid)));
1374 std::stringstream
output;
1380 output <<
" layer ";
1382 output <<
", string ";
1385 output <<
", module ";
1388 output <<
" (double)";
1390 output << (tTopo->
tibIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1400 output <<
", ring ";
1401 output << tTopo->
tidRing(rawid);
1403 output <<
", module ";
1406 output <<
" (double)";
1408 output << (tTopo->
tidIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1416 output <<
" layer ";
1419 output << tTopo->
tobRod(rawid);
1420 output <<
", module ";
1423 output <<
" (double)";
1425 output << (tTopo->
tobIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1435 output <<
" sector ";
1437 output << (tTopo->
tecIsFrontPetal(rawid) ?
" Front Petal" :
" Back Petal");
1438 output <<
", module ";
1439 output << tTopo->
tecRing(rawid);
1442 output <<
" (double)";
1444 output << (tTopo->
tecIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1449 output <<
"UNKNOWN";
1458 std::stringstream
output;
1459 output << rawid <<
" (0x" << std::hex << rawid <<
std::dec <<
")";
1479 if (latencyShift > 32)
1481 if ((latencyCode >> 6) == 2)
1483 if ((latencyCode >> 6) == 1)
1485 float correctedDelay =
1486 delay - (latencyShift * 25.);
1487 return correctedDelay;
1494 std::map<uint32_t, float> delayMap;
1496 for (std::vector<std::string>::const_iterator
file = files.begin();
file < files.end(); ++
file) {
1498 std::ifstream cablingFile(
file->c_str());
1499 if (cablingFile.is_open()) {
1502 cablingFile.getline(buffer, 1024);
1503 while (!cablingFile.eof()) {
1505 size_t pos = line.find(
"dcuid");
1507 if (pos != std::string::npos) {
1509 std::string dcuids = line.substr(pos + 7, line.find(
" ", pos) - pos - 8);
1510 std::istringstream dcuidstr(dcuids);
1511 dcuidstr >> std::hex >> dcuid;
1513 pos = line.find(
"difpll");
1514 std::string diffs = line.substr(pos + 8, line.find(
" ", pos) - pos - 9);
1515 std::istringstream diffstr(diffs);
1518 delayMap[dcuid] =
delay;
1521 cablingFile.getline(buffer, 1024);
1524 edm::LogWarning(
"BadConfig") <<
" The delay file does not exist. The delay map will not be filled properly." 1526 <<
" Looking for " <<
file->c_str() <<
"." << std::endl
1527 <<
" Please specify valid filenames through the DelayFileNames untracked parameter.";
ClusterRef cluster() const
uint8_t maxCharge() const
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
T getParameter(std::string const &) const
EventNumber_t event() const
uint32_t foundhitsPixels_
double z0() const
z coordinate
T getUntrackedParameter(std::string const &, T const &) const
std::vector< TTree * > tracks_
const TechnicalTriggerWord & gtTechnicalTriggerWord() const
get/set technical trigger bits
bool tecIsDoubleSide(const DetId &id) const
bool tobIsDoubleSide(const DetId &id) const
EventAuxiliary const & eventAuxiliary() const override
void beginRun(const edm::Run &, const edm::EventSetup &) override
std::string cablingFileName_
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
unsigned int tidRing(const DetId &id) const
bool functionality_ontrackClusters_
virtual const GeomDetType & type() const
trackRef_iterator tracks_end() const
last iterator over tracks
std::vector< int > onTrack(edm::Handle< edmNew::DetSetVector< SiStripCluster > > &, const reco::TrackCollection &, uint32_t)
friend struct const_iterator
double sumPtSquared(const reco::Vertex &)
static float planarity(const reco::TrackCollection &)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
virtual const Topology & topology() const
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)
float noiseRescaledByGain() const
unsigned int tecRing(const DetId &id) const
ring id
~TrackerDpgAnalysis() override
bool accept() const
Has at least one path accepted the event?
const std::vector< std::string > & triggerNames() const
names of trigger paths
edm::EDGetTokenT< edm::TriggerResults > HLTToken_
constexpr uint32_t rawId() const
get the raw id
std::multimap< const uint32_t, const FedChannelConnection * > connections_
std::vector< Track > TrackCollection
collection of Tracks
Timestamp const & time() const
unsigned long long EventNumber_t
bool tidIsFrontRing(const DetId &id) const
std::vector< Vertex > VertexCollection
collection of Vertex objects
unsigned int tidWheel(const DetId &id) const
float clCorrectedSignalOverNoise_
data_type const * const_iterator
uint16_t physicsDeclared_
static math::XYZTLorentzVectorF thrust(const reco::TrackCollection &)
key_type key() const
Accessor for product key.
std::string toStringId(uint32_t)
void analyze(const edm::Event &, const edm::EventSetup &) override
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
bool tobIsRPhi(const DetId &id) const
edm::ESHandle< TrackerGeometry > tracker_
const Plane & surface() const
The nominal surface of the GeomDet.
int bunchCrossing() const
bool functionality_missingHits_
LuminosityBlockNumber_t luminosityBlock() const
static float sphericity(const reco::TrackCollection &)
edm::EDGetTokenT< reco::BeamSpot > bsToken_
bool tibIsZPlusSide(const DetId &id) const
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
double dydz() const
dydz slope
std::vector< bool > DecisionWordExtended
float signalOverNoise() const
bool functionality_pixvertices_
float * lowPixelProbabilityFraction_
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
bool functionality_events_
bool tibIsExternalString(const DetId &id) const
#define DEFINE_FWK_MODULE(type)
std::vector< TrajectoryMeasurement > DataContainer
bool tibIsRPhi(const DetId &id) const
uint32_t * globaltrackid_
uint32_t npixClustersOntrack_
std::vector< std::string > delayFileNames_
virtual LocalPoint localPosition(float strip) const =0
Class containning control, module, detector and connection information, at the level of a FED channel...
edm::ESHandle< SiStripFedCabling > cabling_
std::vector< bool > DecisionWord
typedefs
edm::EventNumber_t eventid_
FedsConstIterRange fedIds() const
unsigned int size() const
Get number of paths stored.
unsigned int tidModule(const DetId &id) const
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
static const int nMaxPVs_
float clNormalizedCharge_
bool tobIsZPlusSide(const DetId &id) const
Cos< T >::type cos(const T &t)
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > L1Token_
Tan< T >::type tan(const T &t)
static float aplanarity(const reco::TrackCollection &)
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
ClusterRef cluster() const
T * make(const Args &...args) const
make new ROOT object
std::vector< double > onTrackAngles(edm::Handle< edmNew::DetSetVector< SiStripCluster > > &, const std::vector< Trajectory > &)
bool tecIsRPhi(const DetId &id) const
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
std::vector< edm::InputTag > trackLabels_
double dxdz() const
dxdz slope
HLTConfigProvider hltConfig_
unsigned int tibModule(const DetId &id) const
unsigned int tecModule(const DetId &id) const
bool tecIsFrontPetal(const DetId &id) const
void insertMeasurement(std::multimap< const uint32_t, std::pair< LocalPoint, double > > &, const TransientTrackingRecHit *, double)
Detector identifier class for the strip tracker.
edm::EDGetTokenT< SiStripEventSummary > summaryToken_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
SubDetector subDetector() const
std::vector< edm::EDGetTokenT< reco::TrackCollection > > trackTokens_
bool tidIsRPhi(const DetId &id) const
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx2Token_
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
TrackerDpgAnalysis(const edm::ParameterSet &)
bool tidIsZPlusSide(const DetId &id) const
T const * product() const
edm::Service< TFileService > fileService
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
XYZPointD XYZPoint
point in space with cartesian internal representation
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
uint32_t foundhitsStrips_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
ClusterRef cluster() const
double sigmaZ() const
sigma z
bool tidIsDoubleSide(const DetId &id) const
const cms_uint16_t physicsDeclared() const
get/set "physics declared" bit
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
const DecisionWord & gtDecisionWord() const
get/set/print algorithms bits (decision word)
TrackingRecHit::ConstRecHitPointer ConstRecHitPointer
bool HLTDecisionBits_[256]
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
std::map< size_t, int > inVertex(const reco::TrackCollection &, const reco::VertexCollection &, uint32_t)
ConnsConstIterRange fedConnections(uint16_t fed_id) const
bool functionality_vertices_
unsigned int tobModule(const DetId &id) const
bool tecIsZPlusSide(const DetId &id) const
bool L1TechnicalBits_[64]
std::string toStringName(uint32_t, const TrackerTopology *)
float delay(const SiStripEventSummary &)
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx1Token_
Structure Point Contains parameters of Gaussian fits to DMRs.
std::vector< TTree * > missingHits_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelclusterToken_
std::vector< edm::EDGetTokenT< TrajTrackAssociationCollection > > trajTrackAssoTokens_
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx3Token_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
bool functionality_pixclusters_
const TrackerGeomDet * idToDet(DetId) const override
double y0() const
y coordinate
LocalPoint localPosition() const final
void fill_current_val(int idmod, float current_val)
unsigned int tecPetalNumber(const DetId &id) const
bool L1DecisionBits_[192]
alpha
zGenParticlesMatch = cms.InputTag(""),
DetId geographicalId() const
uint32_t nclustersOntrack_
trackRef_iterator tracks_begin() const
first iterator over tracks
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< float > > XYZTLorentzVectorF
Lorentz vector with cylindrical internal representation using pseudorapidity.
const DecisionWordExtended & gtDecisionWordExtended() const
get/set extended algorithms bits (extended decision word)
unsigned int tobRod(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
T const * product() const
const cms_uint32_t orbitNr() const
get/set orbit number
bool functionality_offtrackClusters_
TimeValue_t value() const
std::vector< edm::EDGetTokenT< std::vector< Trajectory > > > trajectoryTokens_
edm::EDGetTokenT< reco::VertexCollection > pixelVertexToken_
Power< A, B >::type pow(const A &a, const B &b)
bool functionality_tracks_
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
std::vector< std::string > hlNames_
unsigned int tobLayer(const DetId &id) const
double x0() const
x coordinate
T angle(T x1, T y1, T z1, T x2, T y2, T z2)