128 std::map<uint32_t,float>
delay(
const std::vector<std::string>&);
133 virtual void endJob()
override ;
142 std::multimap<const uint32_t,const FedChannelConnection*>
connections_;
232 ntracks_ =
new uint32_t[trackLabel_.size()];
233 ntrajs_ =
new uint32_t[trackLabel_.size()];
235 trackid_ =
new uint32_t[trackLabel_.size()];
238 for(
size_t i = 0;
i<trackLabel_.size();++
i) {
251 clusters_ = dir->
make<TTree>(
"clusters",
"cluster information");
252 clusters_->Branch(
"eventid",&
eventid_,
"eventid/i");
253 clusters_->Branch(
"runid",&
runid_,
"runid/i");
254 for(
size_t i = 0;
i<trackLabel_.size(); ++
i) {
257 sprintf(buffer1,
"trackid%lu",(
unsigned long)
i);
258 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
259 clusters_->Branch(buffer1,
trackid_+i,buffer2);
261 clusters_->Branch(
"onTrack",&
onTrack_,
"onTrack/O");
262 clusters_->Branch(
"clWidth",&
clWidth_,
"clWidth/F");
263 clusters_->Branch(
"clPosition",&
clPosition_,
"clPosition/F");
264 clusters_->Branch(
"clglobalX",&
globalX_,
"clglobalX/F");
265 clusters_->Branch(
"clglobalY",&
globalY_,
"clglobalY/F");
266 clusters_->Branch(
"clglobalZ",&
globalZ_,
"clglobalZ/F");
267 clusters_->Branch(
"angle",&
angle_,
"angle/F");
268 clusters_->Branch(
"thickness",&
thickness_,
"thickness/F");
269 clusters_->Branch(
"maxCharge",&
maxCharge_,
"maxCharge/F");
275 clusters_->Branch(
"clBareCharge",&
clBareCharge_,
"clBareCharge/F");
276 clusters_->Branch(
"clBareNoise",&
clBareNoise_,
"clBareNoise/F");
277 clusters_->Branch(
"stripLength",&
stripLength_,
"stripLength/F");
278 clusters_->Branch(
"detid",&
detid_,
"detid/i");
279 clusters_->Branch(
"lldChannel",&
lldChannel_,
"lldChannel/s");
285 for(
size_t i = 0;
i<trackLabel_.size(); ++
i) {
288 sprintf(buffer1,
"trackid%lu",(
unsigned long)
i);
289 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
308 for(
size_t i = 0;
i<trackLabel_.size(); ++
i) {
311 sprintf(buffer1,
"tracks%lu",(
unsigned long)
i);
312 sprintf(buffer2,
"track%lu information",(
unsigned long)i);
313 TTree* thetracks_ = dir->
make<TTree>(buffer1,buffer2);
314 sprintf(buffer1,
"trackid%lu",(
unsigned long)i);
315 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
317 thetracks_->Branch(
"eventid",&
eventid_,
"eventid/i");
318 thetracks_->Branch(
"runid",&
runid_,
"runid/i");
319 thetracks_->Branch(
"chi2",&
chi2_,
"chi2/F");
320 thetracks_->Branch(
"eta",&
eta_,
"eta/F");
321 thetracks_->Branch(
"etaerr",&
etaerr_,
"etaerr/F");
322 thetracks_->Branch(
"phi",&
phi_,
"phi/F");
323 thetracks_->Branch(
"phierr",&
phierr_,
"phierr/F");
324 thetracks_->Branch(
"dedx1",&
dedx1_,
"dedx1/F");
325 thetracks_->Branch(
"dedx2",&
dedx2_,
"dedx2/F");
326 thetracks_->Branch(
"dedx3",&
dedx3_,
"dedx3/F");
327 thetracks_->Branch(
"dedxNoM",&
dedxNoM_,
"dedxNoM/i");
328 thetracks_->Branch(
"charge",&
charge_,
"charge/F");
329 thetracks_->Branch(
"quality",&
quality_,
"quality/i");
330 thetracks_->Branch(
"foundhits",&
foundhits_,
"foundhits/i");
331 thetracks_->Branch(
"lostHits",&
lostHits_,
"lostHits/i");
332 thetracks_->Branch(
"foundhitsStrips",&
foundhitsStrips_,
"foundhitsStrips/i");
333 thetracks_->Branch(
"foundhitsPixels",&
foundhitsPixels_,
"foundhitsPixels/i");
334 thetracks_->Branch(
"losthitsStrips",&
losthitsStrips_,
"losthitsStrips/i");
335 thetracks_->Branch(
"losthitsPixels",&
losthitsPixels_,
"losthitsPixels/i");
336 thetracks_->Branch(
"p",&
p_,
"p/F");
337 thetracks_->Branch(
"pt",&
pt_,
"pt/F");
338 thetracks_->Branch(
"pterr",&
pterr_,
"pterr/F");
339 thetracks_->Branch(
"ndof",&
ndof_,
"ndof/i");
340 thetracks_->Branch(
"dz",&
dz_,
"dz/F");
341 thetracks_->Branch(
"dzerr",&
dzerr_,
"dzerr/F");
342 thetracks_->Branch(
"dzCorr",&
dzCorr_,
"dzCorr/F");
343 thetracks_->Branch(
"dxy",&
dxy_,
"dxy/F");
344 thetracks_->Branch(
"dxyerr",&
dxyerr_,
"dxyerr/F");
345 thetracks_->Branch(
"dxyCorr",&
dxyCorr_,
"dxyCorr/F");
346 thetracks_->Branch(
"qoverp",&
qoverp_,
"qoverp/F");
347 thetracks_->Branch(
"xPCA",&
xPCA_,
"xPCA/F");
348 thetracks_->Branch(
"yPCA",&
yPCA_,
"yPCA/F");
349 thetracks_->Branch(
"zPCA",&
zPCA_,
"zPCA/F");
350 thetracks_->Branch(
"nLayers",&
nLayers_,
"nLayers/i");
351 thetracks_->Branch(
"trkWeightpvtx",&
trkWeightpvtx_,
"trkWeightpvtx/F");
352 thetracks_->Branch(
"vertexid",&
vertexid_,
"vertexid/i");
357 for(
size_t i = 0;
i<trackLabel_.size(); ++
i) {
360 sprintf(buffer1,
"misingHits%lu",(
unsigned long)
i);
361 sprintf(buffer2,
"missing hits from track collection %lu",(
unsigned long)i);
362 TTree* themissingHits_ = dir->
make<TTree>(buffer1,buffer2);
363 sprintf(buffer1,
"trackid%lu",(
unsigned long)i);
364 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
366 themissingHits_->Branch(
"eventid",&
eventid_,
"eventid/i");
367 themissingHits_->Branch(
"runid",&
runid_,
"runid/i");
368 themissingHits_->Branch(
"detid",&
detid_,
"detid/i");
369 themissingHits_->Branch(
"type",&
type_,
"type/i");
370 themissingHits_->Branch(
"localX",&
clPositionX_,
"localX/F");
371 themissingHits_->Branch(
"localY",&
clPositionY_,
"localY/F");
372 themissingHits_->Branch(
"globalX",&
globalX_,
"globalX/F");
373 themissingHits_->Branch(
"globalY",&
globalY_,
"globalY/F");
374 themissingHits_->Branch(
"globalZ",&
globalZ_,
"globalZ/F");
375 themissingHits_->Branch(
"measX",&
measX_,
"measX/F");
376 themissingHits_->Branch(
"measY",&
measY_,
"measY/F");
377 themissingHits_->Branch(
"errorX",&
errorX_,
"errorX/F");
378 themissingHits_->Branch(
"errorY",&
errorY_,
"errorY/F");
383 vertices_ = dir->
make<TTree>(
"vertices",
"vertex information");
414 event_ = dir->
make<TTree>(
"events",
"event information");
429 sprintf(buffer,
"ntracks[%lu]/i",(
unsigned long)trackLabel_.size());
430 event_->Branch(
"ntracks",ntracks_,buffer);
431 sprintf(buffer,
"ntrajs[%lu]/i",(
unsigned long)trackLabel_.size());
433 sprintf(buffer,
"lowPixelProbabilityFraction[%lu]/F",(
unsigned long)trackLabel_.size());
453 event_->Branch(
"MagneticField",&
fBz_,
"MagneticField/F");
496 using namespace reco;
529 for(
int bit=0;bit<128;++bit) {
533 for(
int bit=0;bit<64;++bit) {
537 for(
int bit=0;bit<64;++bit) {
544 size_t ntrh = trh->size();
545 for(
size_t bit=0;bit<256;++bit)
553 Point(recoBeamSpotHandle->x0(), recoBeamSpotHandle->y0(), recoBeamSpotHandle->z0()) :
555 if(recoBeamSpotHandle.isValid()) {
577 for(reco::VertexCollection::const_iterator
v=vertexColl.begin();
578 v!=vertexColl.end(); ++
v) {
607 std::vector<reco::TrackCollection> trackCollection;
608 std::vector<edm::Handle<reco::TrackCollection> > trackCollectionHandle;
613 trackCollection.push_back(*trackCollectionHandle[
index].product());
618 std::vector<std::vector<Trajectory> > trajectoryCollection;
619 std::vector<edm::Handle<std::vector<Trajectory> > > trajectoryCollectionHandle;
620 trajectoryCollectionHandle.resize(
trackLabel_.size());
624 trajectoryCollection.push_back(*trajectoryCollectionHandle[
index].product());
629 std::vector<TrajTrackAssociationCollection> TrajToTrackMap;
633 TrajToTrackMap.push_back(*trajTrackAssociationHandle.product());
637 if(!(trackCollection.size()>0 && trajectoryCollection.size()>0))
return;
640 std::vector<std::map<size_t,int> > trackVertices;
647 for(reco::VertexCollection::const_iterator
v=vertexColl.begin();
648 v!=vertexColl.end(); ++
v) {
666 for(reco::VertexCollection::const_iterator
v=pixelVertexColl.begin();
667 v!=pixelVertexColl.end(); ++
v) {
684 std::vector<double> clusterOntrackAngles =
onTrackAngles(clusters,trajectoryCollection[0]);
685 std::vector<std::pair<double,double> > pixclusterOntrackAngles =
onTrackAngles(pixelclusters,trajectoryCollection[0]);
703 std::vector< std::vector<int> > stripClusterOntrackIndices;
707 std::vector< std::vector<int> > pixelClusterOntrackIndices;
711 nclustersOntrack_ = count_if(stripClusterOntrackIndices[0].
begin(),stripClusterOntrackIndices[0].
end(),bind2nd(not_equal_to<int>(), -1));
712 npixClustersOntrack_ = count_if(pixelClusterOntrackIndices[0].
begin(),pixelClusterOntrackIndices[0].
end(),bind2nd(not_equal_to<int>(), -1));
715 for (
size_t coll = 0; coll<trackCollection.size(); ++coll) {
716 uint32_t n_hits_barrel=0;
717 uint32_t n_hits_lowprob=0;
721 eta_ = itTrack->eta();
722 phi_ = itTrack->phi();
724 dedxNoM_ = dEdxTrack1[itTrack].numberOfMeasurements();
725 dedx1_ = dEdxTrack1[itTrack].dEdx();
726 dedx2_ = dEdxTrack2[itTrack].dEdx();
727 dedx3_ = dEdxTrack3[itTrack].dEdx();
744 chi2_ = itTrack->chi2();
745 ndof_ = (uint32_t)itTrack->ndof();
747 dzerr_ = itTrack->dzError();
749 dxy_ = itTrack->dxy();
752 pterr_ = itTrack->ptError();
756 xPCA_ = itTrack->vertex().x();
757 yPCA_ = itTrack->vertex().y();
758 zPCA_ = itTrack->vertex().z();
759 nLayers_ = uint32_t(itTrack->hitPattern().trackerLayersWithMeasurement());
761 if(vertexColl.size()>0 && !vertexColl.begin()->isFake()) {
769 std::map<size_t,int>::const_iterator theV = trackVertices[coll].find(itTrack.
key());
770 vertexid_ = (theV!=trackVertices[coll].end()) ? theV->second : 0;
774 for(Trajectory::DataContainer::const_iterator it = measurements.begin(); it!=measurements.end(); ++it) {
776 if(!rechit->isValid()) {
778 detid_ = rechit->geographicalId();
780 type_ = rechit->getType();
782 LocalPoint local = it->predictedState().localPosition();
786 GlobalPoint global = it->predictedState().globalPosition();
816 DetId detId = pixhit->geographicalId();
819 double proba = pixhit->clusterProbability(0);
820 if(proba<=0.0) ++n_hits_lowprob;
832 std::vector<double>::const_iterator angleIt = clusterOntrackAngles.begin();
833 uint32_t localCounter = 0;
837 uint32_t
detid = DSViter->id();
844 trackid_[
i] = stripClusterOntrackIndices[
i][localCounter];
850 thickness_ = ((((DSViter->id()>>25)&0x7f)==0xd) ||
851 ((((DSViter->id()>>25)&0x7f)==0xe) && (((DSViter->id()>>5)&0x7)>4))) ? 500 : 300;
873 lldChannel_ = 1+(int(floor(iter->barycenter()))/256);
876 delete siStripClusterInfo;
883 std::vector<std::pair<double,double> >::const_iterator pixAngleIt = pixclusterOntrackAngles.begin();
888 uint32_t
detid = DSViter->id();
894 trackid_[
i] = pixelClusterOntrackIndices[
i][localCounter];
902 alpha_ = pixAngleIt->first;
903 beta_ = pixAngleIt->second;
904 charge_ = (iter->charge())/1000.;
957 for(std::vector<std::string>::const_iterator it =
hlNames_.begin(); it<
hlNames_.end();++it) {
958 std::cout << (i++) <<
" = " << (*it) << std::endl;
969 for(
auto fedid = feds.begin();fedid<feds.end();++fedid) {
970 auto connections =
cabling_->fedConnections(*fedid);
971 for(
auto conn=connections.begin();
conn<connections.end();++
conn) {
973 if(
conn->isConnected())
976 if(
conn->isConnected()) {
1001 if(delayMap.size()) tmap.
save(
true, 0, 0,
"delaymap.png");
1005 if(cablingFile.is_open()) {
1007 cablingFile.getline(buffer,1024);
1008 while(!cablingFile.eof()) {
1009 std::istringstream
line(buffer);
1013 strncpy(
PSUname_,name.c_str(),256);
1014 while(!line.eof()) {
1018 cablingFile.getline(buffer,1024);
1021 edm::LogWarning(
"BadConfig") <<
" The PSU file does not exist. The psumap tree will not be filled."
1023 << std::endl <<
" Please specify a valid filename through the PSUFileName untracked parameter.";
1032 sprintf(buffer,
"trackid%lu",(
unsigned long)
i);
1033 if(
tracks_[i]->GetEntries())
tracks_[
i]->BuildIndex(buffer,
"eventid");
1043 if(
event_->GetEntries())
event_->BuildIndex(
"runid",
"eventid");
1049 const std::vector<Trajectory>& trajVec )
1051 std::vector<double>
result;
1053 std::multimap<const uint32_t,std::pair<LocalPoint,double> > onTrackPositions;
1054 for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
1056 for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
1057 double tla = meas->updatedState().localDirection().theta();
1066 std::pair< std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator,
1067 std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator> range =
1068 onTrackPositions.equal_range(DSViter->id());
1072 for(std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1074 angle =
cl->second.second;
1077 result.push_back(angle);
1086 const TSiTrackerMultiRecHit* multihit=
dynamic_cast<const TSiTrackerMultiRecHit*
>(hit);
1087 const TSiStripRecHit2DLocalPos* singlehit=
dynamic_cast<const TSiStripRecHit2DLocalPos*
>(hit);
1088 const TSiStripRecHit1D* hit1d=
dynamic_cast<const TSiStripRecHit1D*
>(hit);
1090 collection.insert(std::make_pair(hit1d->geographicalId().rawId(),std::make_pair(hit1d->localPosition(),tla)));
1091 }
else if(singlehit) {
1092 collection.insert(std::make_pair(singlehit->geographicalId().rawId(),std::make_pair(singlehit->localPosition(),tla)));
1095 std::vector< const TrackingRecHit * > childs = multihit->recHits();
1096 for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
1107 std::multimap<const uint32_t,std::pair<int,int> > onTrackPositions;
1108 uint32_t trackid = firstTrack;
1109 for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
1116 int thetrackid = -1;
1120 std::pair< std::multimap<uint32_t,std::pair<int,int> >::const_iterator,
1121 std::multimap<uint32_t,std::pair<int,int> >::const_iterator> range =
1122 onTrackPositions.equal_range(DSViter->id());
1125 for(std::multimap<uint32_t,std::pair<int,int> >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1126 if(fabs(
cl->second.first-iter->barycenter())<2) {
1127 thetrackid =
cl->second.second;
1130 result.push_back(thetrackid);
1140 const SiStripRecHit2D* singlehit=
dynamic_cast<const SiStripRecHit2D*
>(hit);
1141 const SiStripRecHit1D* hit1d=
dynamic_cast<const SiStripRecHit1D*
>(hit);
1143 collection.insert(std::make_pair(hit1d->geographicalId().rawId(),std::make_pair(
int(hit1d->cluster()->barycenter()),trackid)));
1144 }
else if(singlehit) {
1145 collection.insert(std::make_pair(singlehit->geographicalId().rawId(),std::make_pair(
int(singlehit->cluster()->barycenter()),trackid)));
1148 std::vector< const TrackingRecHit * > childs = multihit->
recHits();
1149 for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
1158 std::map<size_t,int>
output;
1159 uint32_t vertexid = firstVertex;
1160 for(reco::VertexCollection::const_iterator
v = vertices.begin();
v!=vertices.end(); ++
v,++vertexid) {
1163 for(;it!=lastTrack;++it) {
1164 output[it->key()] = vertexid;
1171 const std::vector<Trajectory>& trajVec )
1173 std::vector<std::pair<double,double> >
result;
1175 std::multimap<const uint32_t,std::pair<LocalPoint,std::pair<double,double> > > onTrackPositions;
1176 for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
1178 for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
1179 LocalVector localDir = meas->updatedState().localDirection();
1180 double alpha = atan2(localDir.
z(), localDir.
x());
1181 double beta = atan2(localDir.
z(), localDir.
y());
1194 std::pair< std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator,
1195 std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator> range =
1196 onTrackPositions.equal_range(DSViter->id());
1198 for(std::multimap<uint32_t,std::pair<
LocalPoint,std::pair<double, double> > >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1201 alpha =
cl->second.second.first;
1202 beta =
cl->second.second.second;
1205 result.push_back(std::make_pair(alpha,beta));
1214 const TSiPixelRecHit* pixhit =
dynamic_cast<const TSiPixelRecHit*
>(hit);
1216 collection.insert(std::make_pair(pixhit->geographicalId().rawId(),std::make_pair(pixhit->localPosition(),std::make_pair(alpha,beta))));
1225 std::multimap<const uint32_t,std::pair<std::pair<float, float>,
int> > onTrackPositions;
1226 uint32_t trackid = firstTrack;
1227 for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
1234 int thetrackid = -1;
1240 std::pair< std::multimap<uint32_t,std::pair<std::pair<float, float>,
int> >::const_iterator,
1241 std::multimap<uint32_t,std::pair<std::pair<float, float>,
int> >::const_iterator> range =
1242 onTrackPositions.equal_range(DSViter->id());
1243 for(std::multimap<uint32_t,std::pair<std::pair<float, float>,
int> >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1244 if((fabs(
cl->second.first.first-iter->x())<2)&&(fabs(
cl->second.first.second-iter->y())<2)) {
1245 thetrackid =
cl->second.second;
1248 result.push_back(thetrackid);
1259 collection.insert(std::make_pair(pixhit->geographicalId().rawId(),std::make_pair(std::make_pair(pixhit->cluster()->x(),pixhit->cluster()->y()),trackid)));
1266 std::stringstream
output;
1273 output <<
" layer ";
1275 output <<
", string ";
1278 output <<
", module ";
1281 output <<
" (double)";
1283 output << (tTopo->
tibIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1294 output <<
", ring ";
1295 output << tTopo->
tidRing(rawid);
1297 output <<
", module ";
1300 output <<
" (double)";
1302 output << (tTopo->
tidIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1311 output <<
" layer ";
1314 output << tTopo->
tobRod(rawid);
1315 output <<
", module ";
1318 output <<
" (double)";
1320 output << (tTopo->
tobIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1331 output <<
" sector ";
1333 output << (tTopo->
tecIsFrontPetal(rawid) ?
" Front Petal" :
" Back Petal");
1334 output <<
", module ";
1335 output << tTopo->
tecRing(rawid);
1338 output <<
" (double)";
1340 output << (tTopo->
tecIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1346 output <<
"UNKNOWN";
1355 std::stringstream
output;
1356 output << rawid <<
" (0x" << std::hex << rawid << std::dec <<
")";
1374 int latencyShift = latencyCode & 0x3f;
1375 if(latencyShift>32) latencyShift -=64;
1376 if((latencyCode>>6)==2) latencyShift -= 3;
1377 if((latencyCode>>6)==1) latencyShift += 3;
1378 float correctedDelay = delay - (latencyShift*25.);
1379 return correctedDelay;
1386 std::map<uint32_t,float> delayMap;
1388 for(std::vector<std::string>::const_iterator
file=files.begin();
file<files.end();++
file){
1390 std::ifstream cablingFile(
file->c_str());
1391 if(cablingFile.is_open()) {
1394 cablingFile.getline(buffer,1024);
1395 while(!cablingFile.eof()) {
1397 size_t pos = line.find(
"dcuid");
1399 if(pos != std::string::npos) {
1401 std::string dcuids = line.substr(pos+7,line.find(
" ",pos)-pos-8);
1402 std::istringstream dcuidstr(dcuids);
1403 dcuidstr >> std::hex >> dcuid;
1405 pos = line.find(
"difpll");
1406 std::string diffs = line.substr(pos+8,line.find(
" ",pos)-pos-9);
1407 std::istringstream diffstr(diffs);
1410 delayMap[dcuid] =
delay;
1413 cablingFile.getline(buffer,1024);
1416 edm::LogWarning(
"BadConfig") <<
" The delay file does not exist. The delay map will not be filled properly."
1417 << std::endl <<
" Looking for " <<
file->c_str() <<
"."
1418 << 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
std::vector< edm::InputTag > trackLabel_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
bool tobIsDoubleSide(const DetId &id) const
edm::InputTag dedx3Label_
virtual void beginRun(const edm::Run &, const edm::EventSetup &) override
edm::InputTag pixelclusterLabel_
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 &)
float noiseRescaledByGain() const
#define DEFINE_FWK_MODULE(type)
unsigned int tecRing(const DetId &id) const
ring id
edm::InputTag dedx1Label_
const std::vector< std::string > & triggerNames() const
names of trigger paths
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
edm::InputTag pixelVertexLabel_
uint16_t physicsDeclared_
static math::XYZTLorentzVectorF thrust(const reco::TrackCollection &)
std::string toStringId(uint32_t)
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 &)
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_
edm::InputTag clusterLabel_
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
edm::InputTag dedx2Label_
Cos< T >::type cos(const T &t)
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 getByLabel(InputTag const &tag, Handle< PROD > &result) const
bool tecIsRPhi(const DetId &id) const
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.
EventAuxiliary const & eventAuxiliary() const
SubDetector subDetector() const
bool tidIsRPhi(const DetId &id) const
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
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)
edm::InputTag vertexLabel_
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 &)
std::vector< TTree * > missingHits_
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
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)