128 std::map<uint32_t,float>
delay(
const std::vector<std::string>&);
155 std::multimap<const uint32_t,const FedChannelConnection*>
connections_;
254 ntrajs_ =
new uint32_t[trackSize];
259 for(
size_t i = 0;
i<trackSize;++
i) {
272 clusters_ = dir->
make<TTree>(
"clusters",
"cluster information");
273 clusters_->Branch(
"eventid",&
eventid_,
"eventid/i");
274 clusters_->Branch(
"runid",&
runid_,
"runid/i");
275 for(
size_t i = 0;
i<trackSize; ++
i) {
278 sprintf(buffer1,
"trackid%lu",(
unsigned long)
i);
279 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
280 clusters_->Branch(buffer1,
trackid_+i,buffer2);
282 clusters_->Branch(
"onTrack",&
onTrack_,
"onTrack/O");
283 clusters_->Branch(
"clWidth",&
clWidth_,
"clWidth/F");
284 clusters_->Branch(
"clPosition",&
clPosition_,
"clPosition/F");
285 clusters_->Branch(
"clglobalX",&
globalX_,
"clglobalX/F");
286 clusters_->Branch(
"clglobalY",&
globalY_,
"clglobalY/F");
287 clusters_->Branch(
"clglobalZ",&
globalZ_,
"clglobalZ/F");
288 clusters_->Branch(
"angle",&
angle_,
"angle/F");
289 clusters_->Branch(
"thickness",&
thickness_,
"thickness/F");
290 clusters_->Branch(
"maxCharge",&
maxCharge_,
"maxCharge/F");
296 clusters_->Branch(
"clBareCharge",&
clBareCharge_,
"clBareCharge/F");
297 clusters_->Branch(
"clBareNoise",&
clBareNoise_,
"clBareNoise/F");
298 clusters_->Branch(
"stripLength",&
stripLength_,
"stripLength/F");
299 clusters_->Branch(
"detid",&
detid_,
"detid/i");
300 clusters_->Branch(
"lldChannel",&
lldChannel_,
"lldChannel/s");
306 for(
size_t i = 0;
i<trackSize; ++
i) {
309 sprintf(buffer1,
"trackid%lu",(
unsigned long)
i);
310 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
329 for(
size_t i = 0;
i<trackSize; ++
i) {
332 sprintf(buffer1,
"tracks%lu",(
unsigned long)
i);
333 sprintf(buffer2,
"track%lu information",(
unsigned long)i);
334 TTree* thetracks_ = dir->
make<TTree>(buffer1,buffer2);
335 sprintf(buffer1,
"trackid%lu",(
unsigned long)i);
336 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
338 thetracks_->Branch(
"eventid",&
eventid_,
"eventid/i");
339 thetracks_->Branch(
"runid",&
runid_,
"runid/i");
340 thetracks_->Branch(
"chi2",&
chi2_,
"chi2/F");
341 thetracks_->Branch(
"eta",&
eta_,
"eta/F");
342 thetracks_->Branch(
"etaerr",&
etaerr_,
"etaerr/F");
343 thetracks_->Branch(
"phi",&
phi_,
"phi/F");
344 thetracks_->Branch(
"phierr",&
phierr_,
"phierr/F");
345 thetracks_->Branch(
"dedx1",&
dedx1_,
"dedx1/F");
346 thetracks_->Branch(
"dedx2",&
dedx2_,
"dedx2/F");
347 thetracks_->Branch(
"dedx3",&
dedx3_,
"dedx3/F");
348 thetracks_->Branch(
"dedxNoM",&
dedxNoM_,
"dedxNoM/i");
349 thetracks_->Branch(
"charge",&
charge_,
"charge/F");
350 thetracks_->Branch(
"quality",&
quality_,
"quality/i");
351 thetracks_->Branch(
"foundhits",&
foundhits_,
"foundhits/i");
352 thetracks_->Branch(
"lostHits",&
lostHits_,
"lostHits/i");
353 thetracks_->Branch(
"foundhitsStrips",&
foundhitsStrips_,
"foundhitsStrips/i");
354 thetracks_->Branch(
"foundhitsPixels",&
foundhitsPixels_,
"foundhitsPixels/i");
355 thetracks_->Branch(
"losthitsStrips",&
losthitsStrips_,
"losthitsStrips/i");
356 thetracks_->Branch(
"losthitsPixels",&
losthitsPixels_,
"losthitsPixels/i");
357 thetracks_->Branch(
"p",&
p_,
"p/F");
358 thetracks_->Branch(
"pt",&
pt_,
"pt/F");
359 thetracks_->Branch(
"pterr",&
pterr_,
"pterr/F");
360 thetracks_->Branch(
"ndof",&
ndof_,
"ndof/i");
361 thetracks_->Branch(
"dz",&
dz_,
"dz/F");
362 thetracks_->Branch(
"dzerr",&
dzerr_,
"dzerr/F");
363 thetracks_->Branch(
"dzCorr",&
dzCorr_,
"dzCorr/F");
364 thetracks_->Branch(
"dxy",&
dxy_,
"dxy/F");
365 thetracks_->Branch(
"dxyerr",&
dxyerr_,
"dxyerr/F");
366 thetracks_->Branch(
"dxyCorr",&
dxyCorr_,
"dxyCorr/F");
367 thetracks_->Branch(
"qoverp",&
qoverp_,
"qoverp/F");
368 thetracks_->Branch(
"xPCA",&
xPCA_,
"xPCA/F");
369 thetracks_->Branch(
"yPCA",&
yPCA_,
"yPCA/F");
370 thetracks_->Branch(
"zPCA",&
zPCA_,
"zPCA/F");
371 thetracks_->Branch(
"nLayers",&
nLayers_,
"nLayers/i");
372 thetracks_->Branch(
"trkWeightpvtx",&
trkWeightpvtx_,
"trkWeightpvtx/F");
373 thetracks_->Branch(
"vertexid",&
vertexid_,
"vertexid/i");
378 for(
size_t i = 0;
i<trackSize; ++
i) {
381 sprintf(buffer1,
"misingHits%lu",(
unsigned long)
i);
382 sprintf(buffer2,
"missing hits from track collection %lu",(
unsigned long)i);
383 TTree* themissingHits_ = dir->
make<TTree>(buffer1,buffer2);
384 sprintf(buffer1,
"trackid%lu",(
unsigned long)i);
385 sprintf(buffer2,
"trackid%lu/i",(
unsigned long)i);
387 themissingHits_->Branch(
"eventid",&
eventid_,
"eventid/i");
388 themissingHits_->Branch(
"runid",&
runid_,
"runid/i");
389 themissingHits_->Branch(
"detid",&
detid_,
"detid/i");
390 themissingHits_->Branch(
"type",&
type_,
"type/i");
391 themissingHits_->Branch(
"localX",&
clPositionX_,
"localX/F");
392 themissingHits_->Branch(
"localY",&
clPositionY_,
"localY/F");
393 themissingHits_->Branch(
"globalX",&
globalX_,
"globalX/F");
394 themissingHits_->Branch(
"globalY",&
globalY_,
"globalY/F");
395 themissingHits_->Branch(
"globalZ",&
globalZ_,
"globalZ/F");
396 themissingHits_->Branch(
"measX",&
measX_,
"measX/F");
397 themissingHits_->Branch(
"measY",&
measY_,
"measY/F");
398 themissingHits_->Branch(
"errorX",&
errorX_,
"errorX/F");
399 themissingHits_->Branch(
"errorY",&
errorY_,
"errorY/F");
404 vertices_ = dir->
make<TTree>(
"vertices",
"vertex information");
435 event_ = dir->
make<TTree>(
"events",
"event information");
450 sprintf(buffer,
"ntracks[%lu]/i",(
unsigned long)trackSize);
451 event_->Branch(
"ntracks",ntracks_,buffer);
452 sprintf(buffer,
"ntrajs[%lu]/i",(
unsigned long)trackSize);
454 sprintf(buffer,
"lowPixelProbabilityFraction[%lu]/F",(
unsigned long)trackSize);
474 event_->Branch(
"MagneticField",&
fBz_,
"MagneticField/F");
517 using namespace reco;
550 for(
int bit=0;bit<128;++bit) {
554 for(
int bit=0;bit<64;++bit) {
558 for(
int bit=0;bit<64;++bit) {
565 size_t ntrh = trh->
size();
566 for(
size_t bit=0;bit<256;++bit)
574 Point(recoBeamSpotHandle->
x0(), recoBeamSpotHandle->
y0(), recoBeamSpotHandle->
z0()) :
576 if(recoBeamSpotHandle.
isValid()) {
598 for(reco::VertexCollection::const_iterator
v=vertexColl.begin();
599 v!=vertexColl.end(); ++
v) {
630 std::vector<edm::Handle<reco::TrackCollection> > trackCollectionHandle;
631 trackCollectionHandle.resize(trackSize);
635 trackCollection.push_back(*trackCollectionHandle[index].product());
640 std::vector<std::vector<Trajectory> > trajectoryCollection;
641 std::vector<edm::Handle<std::vector<Trajectory> > > trajectoryCollectionHandle;
642 trajectoryCollectionHandle.resize(trackSize);
646 trajectoryCollection.push_back(*trajectoryCollectionHandle[index].product());
651 std::vector<TrajTrackAssociationCollection> TrajToTrackMap;
655 TrajToTrackMap.push_back(*trajTrackAssociationHandle.
product());
659 if(!(!trackCollection.empty() && !trajectoryCollection.empty()))
return;
662 std::vector<std::map<size_t,int> > trackVertices;
663 for(
size_t i=0;
i<trackSize;++
i) {
669 for(reco::VertexCollection::const_iterator
v=vertexColl.begin();
670 v!=vertexColl.end(); ++
v) {
688 for(reco::VertexCollection::const_iterator
v=pixelVertexColl.begin();
689 v!=pixelVertexColl.end(); ++
v) {
706 std::vector<double> clusterOntrackAngles =
onTrackAngles(clusters,trajectoryCollection[0]);
707 std::vector<std::pair<double,double> > pixclusterOntrackAngles =
onTrackAngles(pixelclusters,trajectoryCollection[0]);
725 std::vector< std::vector<int> > stripClusterOntrackIndices;
726 for(
size_t i = 0;
i<trackSize; ++
i) {
729 std::vector< std::vector<int> > pixelClusterOntrackIndices;
730 for(
size_t i = 0;
i<trackSize; ++
i) {
737 for (
size_t coll = 0;
coll<trackCollection.size(); ++
coll) {
738 uint32_t n_hits_barrel=0;
739 uint32_t n_hits_lowprob=0;
743 eta_ = itTrack->eta();
744 phi_ = itTrack->phi();
746 dedxNoM_ = dEdxTrack1[itTrack].numberOfMeasurements();
747 dedx1_ = dEdxTrack1[itTrack].dEdx();
748 dedx2_ = dEdxTrack2[itTrack].dEdx();
749 dedx3_ = dEdxTrack3[itTrack].dEdx();
764 nLayers_ = uint32_t(itTrack->hitPattern().trackerLayersWithMeasurement());
767 chi2_ = itTrack->chi2();
768 ndof_ = (uint32_t)itTrack->ndof();
770 dzerr_ = itTrack->dzError();
771 dzCorr_ = itTrack->dz(beamSpot);
772 dxy_ = itTrack->dxy();
775 pterr_ = itTrack->ptError();
779 xPCA_ = itTrack->vertex().x();
780 yPCA_ = itTrack->vertex().y();
781 zPCA_ = itTrack->vertex().z();
783 if(!vertexColl.empty() && !vertexColl.begin()->isFake()) {
791 std::map<size_t,int>::const_iterator theV = trackVertices[
coll].find(itTrack.
key());
792 vertexid_ = (theV!=trackVertices[
coll].end()) ? theV->second : 0;
796 for(Trajectory::DataContainer::const_iterator it = measurements.begin(); it!=measurements.end(); ++it) {
798 if(!rechit->isValid()) {
800 detid_ = rechit->geographicalId();
802 type_ = rechit->getType();
808 GlobalPoint global = it->predictedState().globalPosition();
842 if(proba<=0.0) ++n_hits_lowprob;
854 std::vector<double>::const_iterator angleIt = clusterOntrackAngles.begin();
855 uint32_t localCounter = 0;
859 uint32_t detid = DSViter->id();
860 nclusters_ += DSViter->size();
865 for(
size_t i=0;
i< trackSize; ++
i) {
866 trackid_[
i] = stripClusterOntrackIndices[
i][localCounter];
872 thickness_ = ((((DSViter->id()>>25)&0x7f)==0xd) ||
873 ((((DSViter->id()>>25)&0x7f)==0xe) && (((DSViter->id()>>5)&0x7)>4))) ? 500 : 300;
898 delete siStripClusterInfo;
905 std::vector<std::pair<double,double> >::const_iterator pixAngleIt = pixclusterOntrackAngles.begin();
910 uint32_t detid = DSViter->id();
915 for(
size_t i=0;
i< trackSize; ++
i) {
916 trackid_[
i] = pixelClusterOntrackIndices[
i][localCounter];
924 alpha_ = pixAngleIt->first;
925 beta_ = pixAngleIt->second;
926 charge_ = (iter->charge())/1000.;
979 for(std::vector<std::string>::const_iterator it =
hlNames_.begin(); it<
hlNames_.end();++it) {
980 std::cout << (i++) <<
" = " << (*it) << std::endl;
991 for(
auto fedid = feds.begin();fedid<feds.end();++fedid) {
993 for(
auto conn=connections.begin();conn<connections.end();++conn) {
995 if(conn->isConnected())
998 if(conn->isConnected()) {
1023 if(!delayMap.empty()) tmap.
save(
true, 0, 0,
"delaymap.png");
1027 if(cablingFile.is_open()) {
1029 cablingFile.getline(buffer,1024);
1030 while(!cablingFile.eof()) {
1031 std::istringstream
line(buffer);
1035 strncpy(
PSUname_,name.c_str(),256);
1036 while(!line.eof()) {
1040 cablingFile.getline(buffer,1024);
1043 edm::LogWarning(
"BadConfig") <<
" The PSU file does not exist. The psumap tree will not be filled." 1045 << std::endl <<
" Please specify a valid filename through the PSUFileName untracked parameter.";
1054 sprintf(buffer,
"trackid%lu",(
unsigned long)
i);
1055 if(
tracks_[i]->GetEntries())
tracks_[
i]->BuildIndex(buffer,
"eventid");
1065 if(
event_->GetEntries())
event_->BuildIndex(
"runid",
"eventid");
1071 const std::vector<Trajectory>& trajVec )
1073 std::vector<double>
result;
1075 std::multimap<const uint32_t,std::pair<LocalPoint,double> > onTrackPositions;
1076 for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
1078 for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
1079 double tla = meas->updatedState().localDirection().theta();
1088 std::pair< std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator,
1089 std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator> range =
1090 onTrackPositions.equal_range(DSViter->id());
1094 for(std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1096 angle =
cl->second.second;
1099 result.push_back(angle);
1113 }
else if(singlehit) {
1117 std::vector< const TrackingRecHit * > childs = multihit->
recHits();
1118 for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
1129 std::multimap<const uint32_t,std::pair<int,int> > onTrackPositions;
1130 uint32_t trackid = firstTrack;
1131 for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
1138 int thetrackid = -1;
1142 std::pair< std::multimap<uint32_t,std::pair<int,int> >::const_iterator,
1143 std::multimap<uint32_t,std::pair<int,int> >::const_iterator> range =
1144 onTrackPositions.equal_range(DSViter->id());
1147 for(std::multimap<uint32_t,std::pair<int,int> >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1148 if(fabs(
cl->second.first-iter->barycenter())<2) {
1149 thetrackid =
cl->second.second;
1152 result.push_back(thetrackid);
1166 }
else if(singlehit) {
1170 std::vector< const TrackingRecHit * > childs = multihit->
recHits();
1171 for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
1180 std::map<size_t,int>
output;
1181 uint32_t vertexid = firstVertex;
1182 for(reco::VertexCollection::const_iterator
v = vertices.begin();
v!=vertices.end(); ++
v,++vertexid) {
1185 for(;it!=lastTrack;++it) {
1186 output[it->key()] = vertexid;
1193 const std::vector<Trajectory>& trajVec )
1195 std::vector<std::pair<double,double> >
result;
1197 std::multimap<const uint32_t,std::pair<LocalPoint,std::pair<double,double> > > onTrackPositions;
1198 for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
1200 for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
1201 LocalVector localDir = meas->updatedState().localDirection();
1202 double alpha = atan2(localDir.
z(), localDir.
x());
1203 double beta = atan2(localDir.
z(), localDir.
y());
1216 std::pair< std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator,
1217 std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator> range =
1218 onTrackPositions.equal_range(DSViter->id());
1220 for(std::multimap<uint32_t,std::pair<
LocalPoint,std::pair<double, double> > >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1223 alpha =
cl->second.second.first;
1224 beta =
cl->second.second.second;
1227 result.push_back(std::make_pair(alpha,beta));
1247 std::multimap<const uint32_t,std::pair<std::pair<float, float>,
int> > onTrackPositions;
1248 uint32_t trackid = firstTrack;
1249 for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
1256 int thetrackid = -1;
1262 std::pair< std::multimap<uint32_t,std::pair<std::pair<float, float>,
int> >::const_iterator,
1263 std::multimap<uint32_t,std::pair<std::pair<float, float>,
int> >::const_iterator> range =
1264 onTrackPositions.equal_range(DSViter->id());
1265 for(std::multimap<uint32_t,std::pair<std::pair<float, float>,
int> >::const_iterator
cl = range.first;
cl!= range.second; ++
cl) {
1266 if((fabs(
cl->second.first.first-iter->x())<2)&&(fabs(
cl->second.first.second-iter->y())<2)) {
1267 thetrackid =
cl->second.second;
1270 result.push_back(thetrackid);
1288 std::stringstream
output;
1295 output <<
" layer ";
1297 output <<
", string ";
1300 output <<
", module ";
1303 output <<
" (double)";
1305 output << (tTopo->
tibIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1316 output <<
", ring ";
1317 output << tTopo->
tidRing(rawid);
1319 output <<
", module ";
1322 output <<
" (double)";
1324 output << (tTopo->
tidIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1333 output <<
" layer ";
1336 output << tTopo->
tobRod(rawid);
1337 output <<
", module ";
1340 output <<
" (double)";
1342 output << (tTopo->
tobIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1353 output <<
" sector ";
1355 output << (tTopo->
tecIsFrontPetal(rawid) ?
" Front Petal" :
" Back Petal");
1356 output <<
", module ";
1357 output << tTopo->
tecRing(rawid);
1360 output <<
" (double)";
1362 output << (tTopo->
tecIsRPhi(rawid) ?
" (rphi)" :
" (stereo)");
1368 output <<
"UNKNOWN";
1377 std::stringstream
output;
1378 output << rawid <<
" (0x" << std::hex << rawid <<
std::dec <<
")";
1396 int latencyShift = latencyCode & 0x3f;
1397 if(latencyShift>32) latencyShift -=64;
1398 if((latencyCode>>6)==2) latencyShift -= 3;
1399 if((latencyCode>>6)==1) latencyShift += 3;
1400 float correctedDelay = delay - (latencyShift*25.);
1401 return correctedDelay;
1408 std::map<uint32_t,float> delayMap;
1410 for(std::vector<std::string>::const_iterator
file=files.begin();
file<files.end();++
file){
1412 std::ifstream cablingFile(
file->c_str());
1413 if(cablingFile.is_open()) {
1416 cablingFile.getline(buffer,1024);
1417 while(!cablingFile.eof()) {
1419 size_t pos = line.find(
"dcuid");
1421 if(pos != std::string::npos) {
1423 std::string dcuids = line.substr(pos+7,line.find(
" ",pos)-pos-8);
1424 std::istringstream dcuidstr(dcuids);
1425 dcuidstr >> std::hex >> dcuid;
1427 pos = line.find(
"difpll");
1428 std::string diffs = line.substr(pos+8,line.find(
" ",pos)-pos-9);
1429 std::istringstream diffstr(diffs);
1432 delayMap[dcuid] =
delay;
1435 cablingFile.getline(buffer,1024);
1438 edm::LogWarning(
"BadConfig") <<
" The delay file does not exist. The delay map will not be filled properly." 1439 << std::endl <<
" Looking for " <<
file->c_str() <<
"." 1440 << std::endl <<
" 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
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
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::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
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_
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
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
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]
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< 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)