129 std::map<uint32_t,float>
delay(
const std::vector<std::string>&);
134 virtual void endJob()
override ;
156 std::multimap<const uint32_t,const FedChannelConnection*>
connections_;
253 ntrajs_ =
new uint32_t[trackSize];
258 for(
size_t i = 0;
i<trackSize;++
i) {
271 clusters_ = dir->
make<TTree>(
"clusters",
"cluster information");
272 clusters_->Branch(
"eventid",&
eventid_,
"eventid/i");
273 clusters_->Branch(
"runid",&
runid_,
"runid/i");
274 for(
size_t i = 0;
i<trackSize; ++
i) {
277 sprintf(buffer1,
"trackid%lu",(
unsigned long)
i);
278 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
279 clusters_->Branch(buffer1,
trackid_+i,buffer2);
281 clusters_->Branch(
"onTrack",&
onTrack_,
"onTrack/O");
282 clusters_->Branch(
"clWidth",&
clWidth_,
"clWidth/F");
283 clusters_->Branch(
"clPosition",&
clPosition_,
"clPosition/F");
284 clusters_->Branch(
"clglobalX",&
globalX_,
"clglobalX/F");
285 clusters_->Branch(
"clglobalY",&
globalY_,
"clglobalY/F");
286 clusters_->Branch(
"clglobalZ",&
globalZ_,
"clglobalZ/F");
287 clusters_->Branch(
"angle",&
angle_,
"angle/F");
288 clusters_->Branch(
"thickness",&
thickness_,
"thickness/F");
289 clusters_->Branch(
"maxCharge",&
maxCharge_,
"maxCharge/F");
295 clusters_->Branch(
"clBareCharge",&
clBareCharge_,
"clBareCharge/F");
296 clusters_->Branch(
"clBareNoise",&
clBareNoise_,
"clBareNoise/F");
297 clusters_->Branch(
"stripLength",&
stripLength_,
"stripLength/F");
298 clusters_->Branch(
"detid",&
detid_,
"detid/i");
299 clusters_->Branch(
"lldChannel",&
lldChannel_,
"lldChannel/s");
305 for(
size_t i = 0;
i<trackSize; ++
i) {
308 sprintf(buffer1,
"trackid%lu",(
unsigned long)
i);
309 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
328 for(
size_t i = 0;
i<trackSize; ++
i) {
331 sprintf(buffer1,
"tracks%lu",(
unsigned long)
i);
332 sprintf(buffer2,
"track%lu information",(
unsigned long)i);
333 TTree* thetracks_ = dir->
make<TTree>(buffer1,buffer2);
334 sprintf(buffer1,
"trackid%lu",(
unsigned long)i);
335 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
337 thetracks_->Branch(
"eventid",&
eventid_,
"eventid/i");
338 thetracks_->Branch(
"runid",&
runid_,
"runid/i");
339 thetracks_->Branch(
"chi2",&
chi2_,
"chi2/F");
340 thetracks_->Branch(
"eta",&
eta_,
"eta/F");
341 thetracks_->Branch(
"etaerr",&
etaerr_,
"etaerr/F");
342 thetracks_->Branch(
"phi",&
phi_,
"phi/F");
343 thetracks_->Branch(
"phierr",&
phierr_,
"phierr/F");
344 thetracks_->Branch(
"dedx1",&
dedx1_,
"dedx1/F");
345 thetracks_->Branch(
"dedx2",&
dedx2_,
"dedx2/F");
346 thetracks_->Branch(
"dedx3",&
dedx3_,
"dedx3/F");
347 thetracks_->Branch(
"dedxNoM",&
dedxNoM_,
"dedxNoM/i");
348 thetracks_->Branch(
"charge",&
charge_,
"charge/F");
349 thetracks_->Branch(
"quality",&
quality_,
"quality/i");
350 thetracks_->Branch(
"foundhits",&
foundhits_,
"foundhits/i");
351 thetracks_->Branch(
"lostHits",&
lostHits_,
"lostHits/i");
352 thetracks_->Branch(
"foundhitsStrips",&
foundhitsStrips_,
"foundhitsStrips/i");
353 thetracks_->Branch(
"foundhitsPixels",&
foundhitsPixels_,
"foundhitsPixels/i");
354 thetracks_->Branch(
"losthitsStrips",&
losthitsStrips_,
"losthitsStrips/i");
355 thetracks_->Branch(
"losthitsPixels",&
losthitsPixels_,
"losthitsPixels/i");
356 thetracks_->Branch(
"p",&
p_,
"p/F");
357 thetracks_->Branch(
"pt",&
pt_,
"pt/F");
358 thetracks_->Branch(
"pterr",&
pterr_,
"pterr/F");
359 thetracks_->Branch(
"ndof",&
ndof_,
"ndof/i");
360 thetracks_->Branch(
"dz",&
dz_,
"dz/F");
361 thetracks_->Branch(
"dzerr",&
dzerr_,
"dzerr/F");
362 thetracks_->Branch(
"dzCorr",&
dzCorr_,
"dzCorr/F");
363 thetracks_->Branch(
"dxy",&
dxy_,
"dxy/F");
364 thetracks_->Branch(
"dxyerr",&
dxyerr_,
"dxyerr/F");
365 thetracks_->Branch(
"dxyCorr",&
dxyCorr_,
"dxyCorr/F");
366 thetracks_->Branch(
"qoverp",&
qoverp_,
"qoverp/F");
367 thetracks_->Branch(
"xPCA",&
xPCA_,
"xPCA/F");
368 thetracks_->Branch(
"yPCA",&
yPCA_,
"yPCA/F");
369 thetracks_->Branch(
"zPCA",&
zPCA_,
"zPCA/F");
370 thetracks_->Branch(
"nLayers",&
nLayers_,
"nLayers/i");
371 thetracks_->Branch(
"trkWeightpvtx",&
trkWeightpvtx_,
"trkWeightpvtx/F");
372 thetracks_->Branch(
"vertexid",&
vertexid_,
"vertexid/i");
377 for(
size_t i = 0;
i<trackSize; ++
i) {
380 sprintf(buffer1,
"misingHits%lu",(
unsigned long)
i);
381 sprintf(buffer2,
"missing hits from track collection %lu",(
unsigned long)i);
382 TTree* themissingHits_ = dir->
make<TTree>(buffer1,buffer2);
383 sprintf(buffer1,
"trackid%lu",(
unsigned long)i);
384 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
386 themissingHits_->Branch(
"eventid",&
eventid_,
"eventid/i");
387 themissingHits_->Branch(
"runid",&
runid_,
"runid/i");
388 themissingHits_->Branch(
"detid",&
detid_,
"detid/i");
389 themissingHits_->Branch(
"type",&
type_,
"type/i");
390 themissingHits_->Branch(
"localX",&
clPositionX_,
"localX/F");
391 themissingHits_->Branch(
"localY",&
clPositionY_,
"localY/F");
392 themissingHits_->Branch(
"globalX",&
globalX_,
"globalX/F");
393 themissingHits_->Branch(
"globalY",&
globalY_,
"globalY/F");
394 themissingHits_->Branch(
"globalZ",&
globalZ_,
"globalZ/F");
395 themissingHits_->Branch(
"measX",&
measX_,
"measX/F");
396 themissingHits_->Branch(
"measY",&
measY_,
"measY/F");
397 themissingHits_->Branch(
"errorX",&
errorX_,
"errorX/F");
398 themissingHits_->Branch(
"errorY",&
errorY_,
"errorY/F");
403 vertices_ = dir->
make<TTree>(
"vertices",
"vertex information");
434 event_ = dir->
make<TTree>(
"events",
"event information");
449 sprintf(buffer,
"ntracks[%lu]/i",(
unsigned long)trackSize);
450 event_->Branch(
"ntracks",ntracks_,buffer);
451 sprintf(buffer,
"ntrajs[%lu]/i",(
unsigned long)trackSize);
453 sprintf(buffer,
"lowPixelProbabilityFraction[%lu]/F",(
unsigned long)trackSize);
473 event_->Branch(
"MagneticField",&
fBz_,
"MagneticField/F");
516 using namespace reco;
549 for(
int bit=0;bit<128;++bit) {
553 for(
int bit=0;bit<64;++bit) {
557 for(
int bit=0;bit<64;++bit) {
564 size_t ntrh = trh->size();
565 for(
size_t bit=0;bit<256;++bit)
573 Point(recoBeamSpotHandle->x0(), recoBeamSpotHandle->y0(), recoBeamSpotHandle->z0()) :
575 if(recoBeamSpotHandle.isValid()) {
597 for(reco::VertexCollection::const_iterator
v=vertexColl.begin();
598 v!=vertexColl.end(); ++
v) {
628 std::vector<reco::TrackCollection> trackCollection;
629 std::vector<edm::Handle<reco::TrackCollection> > trackCollectionHandle;
630 trackCollectionHandle.resize(trackSize);
634 trackCollection.push_back(*trackCollectionHandle[
index].product());
639 std::vector<std::vector<Trajectory> > trajectoryCollection;
640 std::vector<edm::Handle<std::vector<Trajectory> > > trajectoryCollectionHandle;
641 trajectoryCollectionHandle.resize(trackSize);
645 trajectoryCollection.push_back(*trajectoryCollectionHandle[
index].product());
650 std::vector<TrajTrackAssociationCollection> TrajToTrackMap;
654 TrajToTrackMap.push_back(*trajTrackAssociationHandle.product());
658 if(!(trackCollection.size()>0 && trajectoryCollection.size()>0))
return;
661 std::vector<std::map<size_t,int> > trackVertices;
662 for(
size_t i=0;
i<trackSize;++
i) {
668 for(reco::VertexCollection::const_iterator
v=vertexColl.begin();
669 v!=vertexColl.end(); ++
v) {
687 for(reco::VertexCollection::const_iterator
v=pixelVertexColl.begin();
688 v!=pixelVertexColl.end(); ++
v) {
705 std::vector<double> clusterOntrackAngles =
onTrackAngles(clusters,trajectoryCollection[0]);
706 std::vector<std::pair<double,double> > pixclusterOntrackAngles =
onTrackAngles(pixelclusters,trajectoryCollection[0]);
724 std::vector< std::vector<int> > stripClusterOntrackIndices;
725 for(
size_t i = 0;
i<trackSize; ++
i) {
728 std::vector< std::vector<int> > pixelClusterOntrackIndices;
729 for(
size_t i = 0;
i<trackSize; ++
i) {
732 nclustersOntrack_ = count_if(stripClusterOntrackIndices[0].
begin(),stripClusterOntrackIndices[0].
end(),bind2nd(not_equal_to<int>(), -1));
733 npixClustersOntrack_ = count_if(pixelClusterOntrackIndices[0].
begin(),pixelClusterOntrackIndices[0].
end(),bind2nd(not_equal_to<int>(), -1));
736 for (
size_t coll = 0;
coll<trackCollection.size(); ++
coll) {
737 uint32_t n_hits_barrel=0;
738 uint32_t n_hits_lowprob=0;
742 eta_ = itTrack->eta();
743 phi_ = itTrack->phi();
745 dedxNoM_ = dEdxTrack1[itTrack].numberOfMeasurements();
746 dedx1_ = dEdxTrack1[itTrack].dEdx();
747 dedx2_ = dEdxTrack2[itTrack].dEdx();
748 dedx3_ = dEdxTrack3[itTrack].dEdx();
765 chi2_ = itTrack->chi2();
766 ndof_ = (uint32_t)itTrack->ndof();
768 dzerr_ = itTrack->dzError();
770 dxy_ = itTrack->dxy();
773 pterr_ = itTrack->ptError();
777 xPCA_ = itTrack->vertex().x();
778 yPCA_ = itTrack->vertex().y();
779 zPCA_ = itTrack->vertex().z();
780 nLayers_ = uint32_t(itTrack->hitPattern().trackerLayersWithMeasurement());
782 if(vertexColl.size()>0 && !vertexColl.begin()->isFake()) {
790 std::map<size_t,int>::const_iterator theV = trackVertices[
coll].find(itTrack.
key());
791 vertexid_ = (theV!=trackVertices[
coll].end()) ? theV->second : 0;
795 for(Trajectory::DataContainer::const_iterator it = measurements.begin(); it!=measurements.end(); ++it) {
797 if(!rechit->isValid()) {
799 detid_ = rechit->geographicalId();
801 type_ = rechit->getType();
803 LocalPoint local = it->predictedState().localPosition();
807 GlobalPoint global = it->predictedState().globalPosition();
837 DetId detId = pixhit->geographicalId();
840 double proba = pixhit->clusterProbability(0);
841 if(proba<=0.0) ++n_hits_lowprob;
853 std::vector<double>::const_iterator angleIt = clusterOntrackAngles.begin();
854 uint32_t localCounter = 0;
858 uint32_t
detid = DSViter->id();
864 for(
size_t i=0;
i< trackSize; ++
i) {
865 trackid_[
i] = stripClusterOntrackIndices[
i][localCounter];
871 thickness_ = ((((DSViter->id()>>25)&0x7f)==0xd) ||
872 ((((DSViter->id()>>25)&0x7f)==0xe) && (((DSViter->id()>>5)&0x7)>4))) ? 500 : 300;
894 lldChannel_ = 1+(int(floor(iter->barycenter()))/256);
897 delete siStripClusterInfo;
904 std::vector<std::pair<double,double> >::const_iterator pixAngleIt = pixclusterOntrackAngles.begin();
909 uint32_t
detid = DSViter->id();
914 for(
size_t i=0;
i< trackSize; ++
i) {
915 trackid_[
i] = pixelClusterOntrackIndices[
i][localCounter];
923 alpha_ = pixAngleIt->first;
924 beta_ = pixAngleIt->second;
925 charge_ = (iter->charge())/1000.;
978 for(std::vector<std::string>::const_iterator it =
hlNames_.begin(); it<
hlNames_.end();++it) {
979 std::cout << (i++) <<
" = " << (*it) << std::endl;
990 for(
auto fedid = feds.begin();fedid<feds.end();++fedid) {
991 auto connections =
cabling_->fedConnections(*fedid);
992 for(
auto conn=connections.begin();
conn<connections.end();++
conn) {
994 if(
conn->isConnected())
997 if(
conn->isConnected()) {
1022 if(delayMap.size()) tmap.
save(
true, 0, 0,
"delaymap.png");
1026 if(cablingFile.is_open()) {
1028 cablingFile.getline(buffer,1024);
1029 while(!cablingFile.eof()) {
1030 std::istringstream
line(buffer);
1034 strncpy(
PSUname_,name.c_str(),256);
1035 while(!line.eof()) {
1039 cablingFile.getline(buffer,1024);
1042 edm::LogWarning(
"BadConfig") <<
" The PSU file does not exist. The psumap tree will not be filled."
1044 << std::endl <<
" Please specify a valid filename through the PSUFileName untracked parameter.";
1053 sprintf(buffer,
"trackid%lu",(
unsigned long)
i);
1054 if(
tracks_[i]->GetEntries())
tracks_[
i]->BuildIndex(buffer,
"eventid");
1064 if(
event_->GetEntries())
event_->BuildIndex(
"runid",
"eventid");
1070 const std::vector<Trajectory>& trajVec )
1072 std::vector<double>
result;
1074 std::multimap<const uint32_t,std::pair<LocalPoint,double> > onTrackPositions;
1075 for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
1077 for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
1078 double tla = meas->updatedState().localDirection().theta();
1087 std::pair< std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator,
1088 std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator> range =
1089 onTrackPositions.equal_range(DSViter->id());
1093 for(std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1095 angle =
cl->second.second;
1098 result.push_back(angle);
1107 const TSiTrackerMultiRecHit* multihit=
dynamic_cast<const TSiTrackerMultiRecHit*
>(hit);
1108 const SiStripRecHit2D* singlehit=
dynamic_cast<const SiStripRecHit2D*
>(hit);
1109 const SiStripRecHit1D* hit1d=
dynamic_cast<const SiStripRecHit1D*
>(hit);
1111 collection.insert(std::make_pair(hit1d->geographicalId().rawId(),std::make_pair(hit1d->localPosition(),tla)));
1112 }
else if(singlehit) {
1113 collection.insert(std::make_pair(singlehit->geographicalId().rawId(),std::make_pair(singlehit->localPosition(),tla)));
1116 std::vector< const TrackingRecHit * > childs = multihit->recHits();
1117 for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
1128 std::multimap<const uint32_t,std::pair<int,int> > onTrackPositions;
1129 uint32_t trackid = firstTrack;
1130 for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
1137 int thetrackid = -1;
1141 std::pair< std::multimap<uint32_t,std::pair<int,int> >::const_iterator,
1142 std::multimap<uint32_t,std::pair<int,int> >::const_iterator> range =
1143 onTrackPositions.equal_range(DSViter->id());
1146 for(std::multimap<uint32_t,std::pair<int,int> >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1147 if(fabs(
cl->second.first-iter->barycenter())<2) {
1148 thetrackid =
cl->second.second;
1151 result.push_back(thetrackid);
1161 const SiStripRecHit2D* singlehit=
dynamic_cast<const SiStripRecHit2D*
>(hit);
1162 const SiStripRecHit1D* hit1d=
dynamic_cast<const SiStripRecHit1D*
>(hit);
1164 collection.insert(std::make_pair(hit1d->geographicalId().rawId(),std::make_pair(
int(hit1d->cluster()->barycenter()),trackid)));
1165 }
else if(singlehit) {
1166 collection.insert(std::make_pair(singlehit->geographicalId().rawId(),std::make_pair(
int(singlehit->cluster()->barycenter()),trackid)));
1169 std::vector< const TrackingRecHit * > childs = multihit->
recHits();
1170 for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
1179 std::map<size_t,int>
output;
1180 uint32_t vertexid = firstVertex;
1181 for(reco::VertexCollection::const_iterator
v = vertices.begin();
v!=vertices.end(); ++
v,++vertexid) {
1184 for(;it!=lastTrack;++it) {
1185 output[it->key()] = vertexid;
1192 const std::vector<Trajectory>& trajVec )
1194 std::vector<std::pair<double,double> >
result;
1196 std::multimap<const uint32_t,std::pair<LocalPoint,std::pair<double,double> > > onTrackPositions;
1197 for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
1199 for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
1200 LocalVector localDir = meas->updatedState().localDirection();
1201 double alpha = atan2(localDir.
z(), localDir.
x());
1202 double beta = atan2(localDir.
z(), localDir.
y());
1215 std::pair< std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator,
1216 std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator> range =
1217 onTrackPositions.equal_range(DSViter->id());
1219 for(std::multimap<uint32_t,std::pair<
LocalPoint,std::pair<double, double> > >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1222 alpha =
cl->second.second.first;
1223 beta =
cl->second.second.second;
1226 result.push_back(std::make_pair(alpha,beta));
1237 collection.insert(std::make_pair(pixhit->geographicalId().rawId(),std::make_pair(pixhit->localPosition(),std::make_pair(alpha,beta))));
1246 std::multimap<const uint32_t,std::pair<std::pair<float, float>,
int> > onTrackPositions;
1247 uint32_t trackid = firstTrack;
1248 for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
1255 int thetrackid = -1;
1261 std::pair< std::multimap<uint32_t,std::pair<std::pair<float, float>,
int> >::const_iterator,
1262 std::multimap<uint32_t,std::pair<std::pair<float, float>,
int> >::const_iterator> range =
1263 onTrackPositions.equal_range(DSViter->id());
1264 for(std::multimap<uint32_t,std::pair<std::pair<float, float>,
int> >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1265 if((fabs(
cl->second.first.first-iter->x())<2)&&(fabs(
cl->second.first.second-iter->y())<2)) {
1266 thetrackid =
cl->second.second;
1269 result.push_back(thetrackid);
1280 collection.insert(std::make_pair(pixhit->geographicalId().rawId(),std::make_pair(std::make_pair(pixhit->cluster()->x(),pixhit->cluster()->y()),trackid)));
1287 std::stringstream
output;
1294 output <<
" layer ";
1296 output <<
", string ";
1299 output <<
", module ";
1302 output <<
" (double)";
1304 output << (tTopo->
tibIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1315 output <<
", ring ";
1316 output << tTopo->
tidRing(rawid);
1318 output <<
", module ";
1321 output <<
" (double)";
1323 output << (tTopo->
tidIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1332 output <<
" layer ";
1335 output << tTopo->
tobRod(rawid);
1336 output <<
", module ";
1339 output <<
" (double)";
1341 output << (tTopo->
tobIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1352 output <<
" sector ";
1354 output << (tTopo->
tecIsFrontPetal(rawid) ?
" Front Petal" :
" Back Petal");
1355 output <<
", module ";
1356 output << tTopo->
tecRing(rawid);
1359 output <<
" (double)";
1361 output << (tTopo->
tecIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1367 output <<
"UNKNOWN";
1376 std::stringstream
output;
1377 output << rawid <<
" (0x" << std::hex << rawid << std::dec <<
")";
1395 int latencyShift = latencyCode & 0x3f;
1396 if(latencyShift>32) latencyShift -=64;
1397 if((latencyCode>>6)==2) latencyShift -= 3;
1398 if((latencyCode>>6)==1) latencyShift += 3;
1399 float correctedDelay = delay - (latencyShift*25.);
1400 return correctedDelay;
1407 std::map<uint32_t,float> delayMap;
1409 for(std::vector<std::string>::const_iterator
file=files.begin();
file<files.end();++
file){
1411 std::ifstream cablingFile(
file->c_str());
1412 if(cablingFile.is_open()) {
1415 cablingFile.getline(buffer,1024);
1416 while(!cablingFile.eof()) {
1418 size_t pos = line.find(
"dcuid");
1420 if(pos != std::string::npos) {
1422 std::string dcuids = line.substr(pos+7,line.find(
" ",pos)-pos-8);
1423 std::istringstream dcuidstr(dcuids);
1424 dcuidstr >> std::hex >> dcuid;
1426 pos = line.find(
"difpll");
1427 std::string diffs = line.substr(pos+8,line.find(
" ",pos)-pos-9);
1428 std::istringstream diffstr(diffs);
1431 delayMap[dcuid] =
delay;
1434 cablingFile.getline(buffer,1024);
1437 edm::LogWarning(
"BadConfig") <<
" The delay file does not exist. The delay map will not be filled properly."
1438 << std::endl <<
" Looking for " <<
file->c_str() <<
"."
1439 << std::endl <<
" Please specify valid filenames through the DelayFileNames untracked parameter.";
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_
T getUntrackedParameter(std::string const &, T const &) const
std::vector< TTree * > tracks_
bool tecIsDoubleSide(const DetId &id) const
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
bool tobIsDoubleSide(const DetId &id) const
virtual void beginRun(const edm::Run &, const edm::EventSetup &) override
std::string cablingFileName_
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 LocalPoint localPosition(const MeasurementPoint &) const =0
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
float noiseRescaledByGain() const
#define DEFINE_FWK_MODULE(type)
unsigned int tecRing(const DetId &id) const
ring id
const std::vector< std::string > & triggerNames() const
names of trigger paths
edm::EDGetTokenT< edm::TriggerResults > HLTToken_
std::vector< Track > TrackCollection
collection of Tracks
Timestamp const & time() const
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 &)
std::string toStringId(uint32_t)
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 >
virtual 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
virtual const Topology & topology() const =0
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
std::vector< TrajectoryMeasurement > DataContainer
virtual std::vector< const TrackingRecHit * > recHits() const
Access to component RecHits (if any)
bool tibIsRPhi(const DetId &id) const
uint32_t * globaltrackid_
uint32_t npixClustersOntrack_
std::vector< std::string > delayFileNames_
Class containning control, module, detector and connection information, at the level of a FED channel...
edm::ESHandle< SiStripFedCabling > cabling_
std::vector< bool > DecisionWord
typedefs
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
TrackingRecHit::ConstRecHitPointer ConstRecHitPointer
Cos< T >::type cos(const T &t)
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)
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
T * make(const Args &...args) const
make new ROOT object
virtual void endJob() override
virtual const GeomDetType & type() const =0
std::vector< double > onTrackAngles(edm::Handle< edmNew::DetSetVector< SiStripCluster > > &, const std::vector< Trajectory > &)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
bool tecIsRPhi(const DetId &id) const
std::vector< edm::InputTag > trackLabels_
HLTConfigProvider hltConfig_
unsigned int tibModule(const DetId &id) const
std::multimap< const uint32_t, const FedChannelConnection * > connections_
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_
EventAuxiliary const & eventAuxiliary() const
SubDetector subDetector() const
std::vector< edm::EDGetTokenT< reco::TrackCollection > > trackTokens_
bool tidIsRPhi(const DetId &id) const
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
edm::Service< TFileService > fileService
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
bool tidIsDoubleSide(const DetId &id) const
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
key_type key() const
Accessor for product key.
T const * product() const
const DecisionWord & gtDecisionWord() const
get/set/print algorithms bits (decision word)
bool HLTDecisionBits_[256]
std::map< size_t, int > inVertex(const reco::TrackCollection &, const reco::VertexCollection &, uint32_t)
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_
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_
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
virtual LocalPoint localPosition(float strip) const =0
void fill_current_val(int idmod, float current_val)
unsigned int tecPetalNumber(const DetId &id) const
bool L1DecisionBits_[192]
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.
unsigned int tobRod(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
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< std::string > hlNames_
unsigned int tobLayer(const DetId &id) const
T angle(T x1, T y1, T z1, T x2, T y2, T z2)