#include <DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualSource.h>
Definition at line 42 of file SiPixelTrackResidualSource.h.
SiPixelTrackResidualSource::SiPixelTrackResidualSource | ( | const edm::ParameterSet & | pSet | ) | [explicit] |
Definition at line 52 of file SiPixelTrackResidualSource.cc.
References bladeOn, clustersrc_, dbe_, debug_, diskOn, lat::endl(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), ladOn, layOn, modOn, phiOn, pSet_, ringOn, src_, and tracksrc_.
00052 : 00053 pSet_(pSet), 00054 modOn( pSet.getUntrackedParameter<bool>("modOn",true) ), 00055 ladOn( pSet.getUntrackedParameter<bool>("ladOn",false) ), 00056 layOn( pSet.getUntrackedParameter<bool>("layOn",false) ), 00057 phiOn( pSet.getUntrackedParameter<bool>("phiOn",false) ), 00058 ringOn( pSet.getUntrackedParameter<bool>("ringOn",false) ), 00059 bladeOn( pSet.getUntrackedParameter<bool>("bladeOn",false) ), 00060 diskOn( pSet.getUntrackedParameter<bool>("diskOn",false) ) 00061 { 00062 pSet_ = pSet; 00063 debug_ = pSet_.getUntrackedParameter<bool>("debug", false); 00064 src_ = pSet_.getParameter<edm::InputTag>("src"); 00065 clustersrc_ = pSet_.getParameter<edm::InputTag>("clustersrc"); 00066 tracksrc_ = pSet_.getParameter<edm::InputTag>("trajectoryInput"); 00067 dbe_ = edm::Service<DQMStore>().operator->(); 00068 00069 LogInfo("PixelDQM") << "SiPixelTrackResidualSource constructor" << endl; 00070 LogInfo ("PixelDQM") << "Mod/Lad/Lay/Phi " << modOn << "/" << ladOn << "/" 00071 << layOn << "/" << phiOn << std::endl; 00072 LogInfo ("PixelDQM") << "Blade/Disk/Ring" << bladeOn << "/" << diskOn << "/" 00073 << ringOn << std::endl; 00074 }
SiPixelTrackResidualSource::~SiPixelTrackResidualSource | ( | ) |
void SiPixelTrackResidualSource::analyze | ( | const edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 301 of file SiPixelTrackResidualSource.cc.
References funct::abs(), GeomDetEnumerators::barrel, edmNew::DetSetVector< T >::begin(), edm::AssociationMap< Tag >::begin(), bladeOn, TransientTrackingRecHitBuilder::build(), clustersrc_, GeomDet::components(), GenMuonPlsPt100GeV_cfg::cout, debug_cff::d0, debug_, DetId::DetId(), PTrajectoryStateOnDet::detId(), detId, diskOn, edmNew::DetSetVector< T >::end(), edm::AssociationMap< Tag >::end(), GeomDetEnumerators::endcap, lat::endl(), MonitorElement::Fill(), edmNew::DetSetVector< T >::find(), TrajectoryFitter::fit(), HLT_VtxMuL3::Fitter, edm::EventSetup::get(), edm::Event::getByLabel(), edm::ParameterSet::getParameter(), TrackerGeometry::idToDet(), int, edm::Ref< C, T, F >::isNonnull(), TrajectoryStateOnSurface::isValid(), it, ladOn, layOn, RectangularPixelTopology::localPosition(), TrajectoryStateOnSurface::localPosition(), edm::match(), Topology::measurementPosition(), Trajectory::measurements(), meClChargeNotOnTrack_all, meClChargeNotOnTrack_bpix, meClChargeNotOnTrack_fpix, meClChargeOnTrack_all, meClChargeOnTrack_bpix, meClChargeOnTrack_fpix, meClPosDisk1mzNotOnTrack, meClPosDisk1mzOnTrack, meClPosDisk1pzNotOnTrack, meClPosDisk1pzOnTrack, meClPosDisk2mzNotOnTrack, meClPosDisk2mzOnTrack, meClPosDisk2pzNotOnTrack, meClPosDisk2pzOnTrack, meClPosLayer1NotOnTrack, meClPosLayer1OnTrack, meClPosLayer2NotOnTrack, meClPosLayer2OnTrack, meClPosLayer3NotOnTrack, meClPosLayer3OnTrack, meClSizeNotOnTrack_all, meClSizeNotOnTrack_bpix, meClSizeNotOnTrack_fpix, meClSizeOnTrack_all, meClSizeOnTrack_bpix, meClSizeOnTrack_fpix, meNofClustersNotOnTrack_, meNofClustersOnTrack_, meNofTracks_, meNofTracksInPixVol_, meSubdetResidualX, meSubdetResidualY, modOn, PV3DBase< T, PVType, FrameType >::phi(), phi, phiOn, PixelSubdetector::PixelBarrel, GeomDetEnumerators::PixelBarrel, PixelBarrelName::PixelBarrelName(), PixelSubdetector::PixelEndcap, GeomDetEnumerators::PixelEndcap, PixelEndcapName::PixelEndcapName(), edm::ESHandle< T >::product(), edm::Handle< T >::product(), pSet_, ringOn, edm::AssociationMap< Tag >::size(), edmNew::DetSetVector< T >::size(), PixelGeomDetUnit::specificTopology(), GeomDet::subDetector(), DetId::subdetId(), GeomDet::surface(), tc, pyDBSRunClass::temp, theSiPixelStructure, Surface::toGlobal(), GeomDetUnit::topology(), DetId::Tracker, tracks, tracksrc_, TrajectoryStateTransform::transientState(), HLT_VtxMuL3::TTRHBuilder, PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), x, PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), y, PV3DBase< T, PVType, FrameType >::z(), and z.
00301 { 00302 00303 00304 // retrieve TrackerGeometry again and MagneticField for use in transforming 00305 // a TrackCandidate's P(ersistent)TrajectoryStateoOnDet (PTSoD) to a TrajectoryStateOnSurface (TSoS) 00306 ESHandle<TrackerGeometry> TG; 00307 iSetup.get<TrackerDigiGeometryRecord>().get(TG); 00308 const TrackerGeometry* theTrackerGeometry = TG.product(); 00309 00310 ESHandle<MagneticField> MF; 00311 iSetup.get<IdealMagneticFieldRecord>().get(MF); 00312 const MagneticField* theMagneticField = MF.product(); 00313 00314 // retrieve TransientTrackingRecHitBuilder to build TTRHs with TrackCandidate's TrackingRecHits for refitting 00315 std::string TTRHBuilder = pSet_.getParameter<std::string>("TTRHBuilder"); 00316 ESHandle<TransientTrackingRecHitBuilder> TTRHB; 00317 iSetup.get<TransientRecHitRecord>().get(TTRHBuilder, TTRHB); 00318 const TransientTrackingRecHitBuilder* theTTRHBuilder = TTRHB.product(); 00319 00320 // get a fitter to refit TrackCandidates, the same fitter as used in standard reconstruction 00321 std::string Fitter = pSet_.getParameter<std::string>("Fitter"); 00322 ESHandle<TrajectoryFitter> TF; 00323 iSetup.get<TrackingComponentsRecord>().get(Fitter, TF); 00324 const TrajectoryFitter* theFitter = TF.product(); 00325 00326 // get TrackCandidateCollection in accordance with the fitter, i.e. rs-RS, ckf-KF... 00327 std::string TrackCandidateLabel = pSet_.getParameter<std::string>("TrackCandidateLabel"); 00328 std::string TrackCandidateProducer = pSet_.getParameter<std::string>("TrackCandidateProducer"); 00329 Handle<TrackCandidateCollection> trackCandidateCollection; 00330 iEvent.getByLabel(TrackCandidateProducer, TrackCandidateLabel, trackCandidateCollection); 00331 00332 for (TrackCandidateCollection::const_iterator tc = trackCandidateCollection->begin(); 00333 tc!=trackCandidateCollection->end(); ++tc) { 00334 TrajectoryStateTransform transformer; 00335 PTrajectoryStateOnDet tcPTSoD = tc->trajectoryStateOnDet(); 00336 TrajectoryStateOnSurface tcTSoS = transformer.transientState(tcPTSoD, &(theTrackerGeometry->idToDet(tcPTSoD.detId())->surface()), 00337 theMagneticField); 00338 const TrajectorySeed& tcSeed = tc->seed(); 00339 00340 const TrackCandidate::range& tcRecHits = tc->recHits(); 00341 if (debug_) cout << "track candidate has "<< int(tcRecHits.second - tcRecHits.first) <<" hits with ID "; 00342 00343 Trajectory::RecHitContainer tcTTRHs; 00344 for (TrackingRecHitCollection::const_iterator tcRecHit = tcRecHits.first; 00345 tcRecHit!=tcRecHits.second; ++tcRecHit) { 00346 if (debug_) cout << tcRecHit->geographicalId().rawId() <<" "; 00347 00348 tcTTRHs.push_back(theTTRHBuilder->build(&(*tcRecHit))); 00349 } 00350 // note a TrackCandidate keeps only the PTSoD of the first hit as well as the seed and all the hits; 00351 // to 99.9%-recover all the hit's TSoS's, refit with the seed, the hits and an initial TSoS from the PTSoD 00352 // to get a Trajectory of all the hit's TrajectoryMeasurements (TMs) 00353 std::vector<Trajectory> refitTrajectoryCollection = theFitter->fit(tcSeed, tcTTRHs, tcTSoS); 00354 if (debug_) cout << "refitTrajectoryCollection size is "<< refitTrajectoryCollection.size() << endl; 00355 00356 if (refitTrajectoryCollection.size()>0) { // should be either 0 or 1 00357 const Trajectory& refitTrajectory = refitTrajectoryCollection.front(); 00358 00359 // retrieve and loop over all the TMs 00360 Trajectory::DataContainer refitTMs = refitTrajectory.measurements(); 00361 if (debug_) cout << "refitTrajectory has "<< refitTMs.size() <<" hits with ID "; 00362 00363 for (Trajectory::DataContainer::iterator refitTM = refitTMs.begin(); 00364 refitTM!=refitTMs.end(); refitTM++) { 00365 TransientTrackingRecHit::ConstRecHitPointer refitTTRH = refitTM->recHit(); 00366 if (debug_) cout << refitTTRH->geographicalId().rawId() <<" "; 00367 00368 // only analyze the most elemental pixel hit's TMs to calculate residuals 00369 const GeomDet* ttrhDet = refitTTRH->det(); 00370 if (ttrhDet->components().empty() && (ttrhDet->subDetector()==GeomDetEnumerators::PixelBarrel || 00371 ttrhDet->subDetector()==GeomDetEnumerators::PixelEndcap)) { 00372 00373 // combine the forward and backward states without using the hit's information (hence unbiased by the hit); 00374 // the TM's updated state keeps the state combined and updated with the hit's info but we don't use the updated state at all 00375 TrajectoryStateOnSurface combinedTSoS = TrajectoryStateCombiner().combine(refitTM->forwardPredictedState(), 00376 refitTM->backwardPredictedState()); 00377 if (refitTTRH->isValid() && combinedTSoS.isValid()) { 00378 // calculate the distance between the hit location and the track-crossing point predicted by the combined state 00379 const GeomDetUnit* GDU = dynamic_cast<const GeomDetUnit*>(ttrhDet); 00380 const Topology* theTopology = &(GDU->topology()); 00381 00382 MeasurementPoint hitPosition = theTopology->measurementPosition(refitTTRH->localPosition()); 00383 MeasurementPoint combinedTSoSPosition = theTopology->measurementPosition(combinedTSoS.localPosition()); 00384 00385 Measurement2DVector residual = hitPosition - combinedTSoSPosition; 00386 if(debug_) std::cout << "fill residual " << residual.x() << " " << residual.y() << " \n"; 00387 00388 // fill the residual histograms 00389 std::map<uint32_t, SiPixelTrackResidualModule*>::iterator pxd = theSiPixelStructure.find(refitTTRH->geographicalId().rawId()); 00390 if (pxd!=theSiPixelStructure.end()) (*pxd).second->fill(residual, modOn, ladOn, layOn, phiOn, bladeOn, diskOn, ringOn); 00391 00392 if (debug_) { 00393 if (ttrhDet->subDetector()==GeomDetEnumerators::PixelBarrel) { 00394 meSubdetResidualX[0]->Fill(residual.x()); 00395 meSubdetResidualY[0]->Fill(residual.y()); 00396 } 00397 else { 00398 meSubdetResidualX[PXFDetId(refitTTRH->geographicalId()).side()]->Fill(residual.x()); 00399 meSubdetResidualY[PXFDetId(refitTTRH->geographicalId()).side()]->Fill(residual.y()); 00400 } 00401 } 00402 } 00403 } 00404 } 00405 if (debug_) cout << endl; 00406 } 00407 } 00408 00409 //NEWPART 00410 00411 //get trajectories 00412 edm::Handle<std::vector<Trajectory> > trajCollectionHandle; 00413 iEvent.getByLabel(tracksrc_,trajCollectionHandle); 00414 const std::vector<Trajectory> trajColl = *(trajCollectionHandle.product()); 00415 00416 //get tracks 00417 edm::Handle<std::vector<reco::Track> > trackCollectionHandle; 00418 iEvent.getByLabel(tracksrc_,trackCollectionHandle); 00419 const std::vector<reco::Track> trackColl = *(trackCollectionHandle.product()); 00420 00421 //get the map 00422 edm::Handle<TrajTrackAssociationCollection> match; 00423 iEvent.getByLabel(tracksrc_,match); 00424 const TrajTrackAssociationCollection ttac = *(match.product()); 00425 00426 // get clusters 00427 edm::Handle< edmNew::DetSetVector<SiPixelCluster> > clusterColl; 00428 iEvent.getByLabel( clustersrc_, clusterColl ); 00429 const edmNew::DetSetVector<SiPixelCluster> clustColl = *(clusterColl.product()); 00430 00431 if(debug_){ 00432 std::cout << "Trajectories\t : " << trajColl.size() << std::endl; 00433 std::cout << "recoTracks \t : " << trackColl.size() << std::endl; 00434 std::cout << "Map entries \t : " << ttac.size() << std::endl; 00435 } 00436 00437 std::set<SiPixelCluster> clusterSet; 00438 TrajectoryStateCombiner tsoscomb; 00439 int tracks=0, pixeltracks=0, bpixtracks=0, fpixtracks=0; 00440 int trackclusters=0, barreltrackclusters=0, endcaptrackclusters=0; 00441 int otherclusters=0, barrelotherclusters=0, endcapotherclusters=0; 00442 00443 //Loop over map entries 00444 for(TrajTrackAssociationCollection::const_iterator it = ttac.begin();it != ttac.end(); ++it){ 00445 const edm::Ref<std::vector<Trajectory> > traj_iterator = it->key; 00446 // Trajectory Map, extract Trajectory for this track 00447 reco::TrackRef trackref = it->val; 00448 tracks++; 00449 00450 bool isBpixtrack = false, isFpixtrack = false, crossesPixVol=false; 00451 00452 //find out whether track crosses pixel fiducial volume (for cosmic tracks) 00453 00454 double d0 = (*trackref).d0(), dz = (*trackref).dz(); 00455 00456 if(abs(d0)<15 && abs(dz)<50) crossesPixVol = true; 00457 00458 std::vector<TrajectoryMeasurement> tmeasColl =traj_iterator->measurements(); 00459 std::vector<TrajectoryMeasurement>::const_iterator tmeasIt; 00460 //loop on measurements to find out whether there are bpix and/or fpix hits 00461 for(tmeasIt = tmeasColl.begin();tmeasIt!=tmeasColl.end();tmeasIt++){ 00462 if(! tmeasIt->updatedState().isValid()) continue; 00463 TransientTrackingRecHit::ConstRecHitPointer testhit = tmeasIt->recHit(); 00464 if(! testhit->isValid() || testhit->geographicalId().det() != DetId::Tracker) continue; 00465 uint testSubDetID = (testhit->geographicalId().subdetId()); 00466 if(testSubDetID==PixelSubdetector::PixelBarrel) isBpixtrack = true; 00467 if(testSubDetID==PixelSubdetector::PixelEndcap) isFpixtrack = true; 00468 }//end loop on measurements 00469 if(isBpixtrack) { 00470 bpixtracks++; 00471 if(debug_) std::cout << "bpixtrack\n"; 00472 } 00473 if(isFpixtrack) { 00474 fpixtracks++; 00475 if(debug_) std::cout << "fpixtrack\n"; 00476 } 00477 if(isBpixtrack || isFpixtrack){ 00478 pixeltracks++; 00479 00480 if(crossesPixVol) meNofTracksInPixVol_->Fill(0,1); 00481 00482 std::vector<TrajectoryMeasurement> tmeasColl = traj_iterator->measurements(); 00483 for(std::vector<TrajectoryMeasurement>::const_iterator tmeasIt = tmeasColl.begin(); tmeasIt!=tmeasColl.end(); tmeasIt++){ 00484 if(! tmeasIt->updatedState().isValid()) continue; 00485 00486 TrajectoryStateOnSurface tsos = tsoscomb( tmeasIt->forwardPredictedState(), tmeasIt->backwardPredictedState() ); 00487 TransientTrackingRecHit::ConstRecHitPointer hit = tmeasIt->recHit(); 00488 if(! hit->isValid() || hit->geographicalId().det() != DetId::Tracker ) { 00489 continue; 00490 } else { 00491 00492 // //residual 00493 const DetId & hit_detId = hit->geographicalId(); 00494 //uint IntRawDetID = (hit_detId.rawId()); 00495 uint IntSubDetID = (hit_detId.subdetId()); 00496 00497 if(IntSubDetID == 0 ) 00498 continue; 00499 00500 // get the enclosed persistent hit 00501 const TrackingRecHit *persistentHit = hit->hit(); 00502 // check if it's not null, and if it's a valid pixel hit 00503 if ((persistentHit != 0) && (typeid(*persistentHit) == typeid(SiPixelRecHit))) { 00504 // tell the C++ compiler that the hit is a pixel hit 00505 const SiPixelRecHit* pixhit = dynamic_cast<const SiPixelRecHit*>( hit->hit() ); 00506 // get the edm::Ref to the cluster 00507 edm::Ref<edmNew::DetSetVector<SiPixelCluster>, SiPixelCluster> const& clust = (*pixhit).cluster(); 00508 // check if the ref is not null 00509 if (clust.isNonnull()) { 00510 00511 //define tracker and pixel geometry and topology 00512 const TrackerGeometry& theTracker(*theTrackerGeometry); 00513 const PixelGeomDetUnit* theGeomDet = dynamic_cast<const PixelGeomDetUnit*> (theTracker.idToDet(hit_detId) ); 00514 //test if PixelGeomDetUnit exists 00515 if(theGeomDet == 0) { 00516 if(debug_) std::cout << "NO THEGEOMDET\n"; 00517 continue; 00518 } 00519 00520 const RectangularPixelTopology * topol = dynamic_cast<const RectangularPixelTopology*>(&(theGeomDet->specificTopology())); 00521 //fill histograms for clusters on tracks 00522 trackclusters++; 00523 meClChargeOnTrack_all->Fill((*clust).charge()/1000.); 00524 meClSizeOnTrack_all->Fill((*clust).size()); 00525 clusterSet.insert(*clust); 00526 00527 //find cluster global position (rphi, z) 00528 // get cluster center of gravity (of charge) 00529 float xcenter = clust->x(); 00530 float ycenter = clust->y(); 00531 // get the cluster position in local coordinates (cm) 00532 LocalPoint clustlp = topol->localPosition( MeasurementPoint(xcenter, ycenter) ); 00533 // get the cluster position in global coordinates (cm) 00534 GlobalPoint clustgp = theGeomDet->surface().toGlobal( clustlp ); 00535 00536 //find location of hit (barrel or endcap, same for cluster) 00537 bool barrel = DetId::DetId((*hit).geographicalId()).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel); 00538 bool endcap = DetId::DetId((*hit).geographicalId()).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap); 00539 if(barrel) { 00540 barreltrackclusters++; 00541 meClChargeOnTrack_bpix->Fill((*clust).charge()/1000.); 00542 meClSizeOnTrack_bpix->Fill((*clust).size()); 00543 uint32_t DBlayer = PixelBarrelName::PixelBarrelName(DetId::DetId((*hit).geographicalId())).layerName(); 00544 float phi = clustgp.phi(); 00545 float z = clustgp.z(); 00546 switch(DBlayer){ 00547 case 1: meClPosLayer1OnTrack->Fill(z,phi); break; 00548 case 2: meClPosLayer2OnTrack->Fill(z,phi); break; 00549 case 3: meClPosLayer3OnTrack->Fill(z,phi); break; 00550 00551 } 00552 00553 } 00554 if(endcap) { 00555 endcaptrackclusters++; 00556 meClChargeOnTrack_fpix->Fill((*clust).charge()/1000.); 00557 meClSizeOnTrack_fpix->Fill((*clust).size()); 00558 uint32_t DBdisk = PixelEndcapName::PixelEndcapName(DetId::DetId((*hit).geographicalId())).diskName(); 00559 float x = clustgp.x(); 00560 float y = clustgp.y(); 00561 float z = clustgp.z(); 00562 if(z>0){ 00563 if(DBdisk==1) meClPosDisk1pzOnTrack->Fill(x,y); 00564 if(DBdisk==2) meClPosDisk2pzOnTrack->Fill(x,y); 00565 } 00566 else{ 00567 if(DBdisk==1) meClPosDisk1mzOnTrack->Fill(x,y); 00568 if(DBdisk==2) meClPosDisk2mzOnTrack->Fill(x,y); 00569 } 00570 } 00571 00572 }//end if (cluster exists) 00573 00574 }//end if (persistent hit exists and is pixel hit) 00575 00576 }//end of else 00577 00578 00579 }//end for (all traj measurements of pixeltrack) 00580 }//end if (is pixeltrack) 00581 else { 00582 if(debug_) std::cout << "no pixeltrack:\n"; 00583 if(crossesPixVol) meNofTracksInPixVol_->Fill(1,1); 00584 } 00585 00586 }//end loop on map entries 00587 00588 //find clusters that are NOT on track 00589 //edmNew::DetSet<SiPixelCluster>::const_iterator di; 00590 if(debug_) std::cout << "clusters not on track: (size " << clustColl.size() << ") "; 00591 00592 for(TrackerGeometry::DetContainer::const_iterator it = TG->dets().begin(); it != TG->dets().end(); it++){ 00593 if(dynamic_cast<PixelGeomDetUnit*>((*it))!=0){ 00594 DetId detId = (*it)->geographicalId(); 00595 00596 edmNew::DetSetVector<SiPixelCluster>::const_iterator isearch = clustColl.find(detId); 00597 if( isearch != clustColl.end() ) { // Not an empty iterator 00598 edmNew::DetSet<SiPixelCluster>::const_iterator di; 00599 for(di=isearch->begin(); di!=isearch->end(); di++){ 00600 unsigned int temp = clusterSet.size(); 00601 clusterSet.insert(*di); 00602 if(clusterSet.size()>temp) { 00603 otherclusters++; 00604 meClSizeNotOnTrack_all->Fill((*di).size()); 00605 meClChargeNotOnTrack_all->Fill((*di).charge()/1000); 00606 00608 //find cluster global position (rphi, z) get cluster 00609 //define tracker and pixel geometry and topology 00610 const TrackerGeometry& theTracker(*theTrackerGeometry); 00611 const PixelGeomDetUnit* theGeomDet = dynamic_cast<const PixelGeomDetUnit*> (theTracker.idToDet(detId) ); 00612 //test if PixelGeomDetUnit exists 00613 if(theGeomDet == 0) { 00614 if(debug_) std::cout << "NO THEGEOMDET\n"; 00615 continue; 00616 } 00617 const RectangularPixelTopology * topol = dynamic_cast<const RectangularPixelTopology*>(&(theGeomDet->specificTopology())); 00618 00619 //center of gravity (of charge) 00620 float xcenter = di->x(); 00621 float ycenter = di->y(); 00622 // get the cluster position in local coordinates (cm) 00623 LocalPoint clustlp = topol->localPosition( MeasurementPoint(xcenter, ycenter) ); 00624 // get the cluster position in global coordinates (cm) 00625 GlobalPoint clustgp = theGeomDet->surface().toGlobal( clustlp ); 00626 00628 00629 //barrel 00630 if(DetId::DetId(detId).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) { 00631 meClSizeNotOnTrack_bpix->Fill((*di).size()); 00632 meClChargeNotOnTrack_bpix->Fill((*di).charge()/1000); 00633 barrelotherclusters++; 00634 uint32_t DBlayer = PixelBarrelName::PixelBarrelName(DetId::DetId(detId)).layerName(); 00635 float phi = clustgp.phi(); 00636 //float r = clustgp.perp(); 00637 float z = clustgp.z(); 00638 switch(DBlayer){ 00639 case 1: meClPosLayer1NotOnTrack->Fill(z,phi); break; 00640 case 2: meClPosLayer2NotOnTrack->Fill(z,phi); break; 00641 case 3: meClPosLayer3NotOnTrack->Fill(z,phi); break; 00642 00643 } 00644 } 00645 //endcap 00646 if(DetId::DetId(detId).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) { 00647 meClSizeNotOnTrack_fpix->Fill((*di).size()); 00648 meClChargeNotOnTrack_fpix->Fill((*di).charge()/1000); 00649 endcapotherclusters++; 00650 uint32_t DBdisk = PixelEndcapName::PixelEndcapName(DetId::DetId(detId )).diskName(); 00651 float x = clustgp.x(); 00652 float y = clustgp.y(); 00653 float z = clustgp.z(); 00654 if(z>0){ 00655 if(DBdisk==1) meClPosDisk1pzNotOnTrack->Fill(x,y); 00656 if(DBdisk==2) meClPosDisk2pzNotOnTrack->Fill(x,y); 00657 } 00658 else{ 00659 if(DBdisk==1) meClPosDisk1mzNotOnTrack->Fill(x,y); 00660 if(DBdisk==2) meClPosDisk2mzNotOnTrack->Fill(x,y); 00661 } 00662 00663 } 00664 } 00665 } 00666 } 00667 } 00668 } 00669 00670 00671 if(trackclusters>0) (meNofClustersOnTrack_)->Fill(0,trackclusters); 00672 if(barreltrackclusters>0)(meNofClustersOnTrack_)->Fill(1,barreltrackclusters); 00673 if(endcaptrackclusters>0)(meNofClustersOnTrack_)->Fill(2,endcaptrackclusters); 00674 if(otherclusters>0)(meNofClustersNotOnTrack_)->Fill(0,otherclusters); 00675 if(barrelotherclusters>0)(meNofClustersNotOnTrack_)->Fill(1,barrelotherclusters); 00676 if(endcapotherclusters>0)(meNofClustersNotOnTrack_)->Fill(2,endcapotherclusters); 00677 if(tracks>0)(meNofTracks_)->Fill(0,tracks); 00678 if(pixeltracks>0)(meNofTracks_)->Fill(1,pixeltracks); 00679 if(bpixtracks>0)(meNofTracks_)->Fill(2,bpixtracks); 00680 if(fpixtracks>0)(meNofTracks_)->Fill(3,fpixtracks); 00681 }
void SiPixelTrackResidualSource::beginJob | ( | edm::EventSetup const & | iSetup | ) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 82 of file SiPixelTrackResidualSource.cc.
References bladeOn, DQMStore::book1D(), DQMStore::book2D(), clustersrc_, dbe_, debug_, diskOn, lat::endl(), Exception, edm::EventSetup::get(), edm::InputTag::label(), ladOn, layOn, meClChargeNotOnTrack_all, meClChargeNotOnTrack_bpix, meClChargeNotOnTrack_fpix, meClChargeOnTrack_all, meClChargeOnTrack_bpix, meClChargeOnTrack_fpix, meClPosDisk1mzNotOnTrack, meClPosDisk1mzOnTrack, meClPosDisk1pzNotOnTrack, meClPosDisk1pzOnTrack, meClPosDisk2mzNotOnTrack, meClPosDisk2mzOnTrack, meClPosDisk2pzNotOnTrack, meClPosDisk2pzOnTrack, meClPosLayer1NotOnTrack, meClPosLayer1OnTrack, meClPosLayer2NotOnTrack, meClPosLayer2OnTrack, meClPosLayer3NotOnTrack, meClPosLayer3OnTrack, meClSizeNotOnTrack_all, meClSizeNotOnTrack_bpix, meClSizeNotOnTrack_fpix, meClSizeOnTrack_all, meClSizeOnTrack_bpix, meClSizeOnTrack_fpix, meNofClustersNotOnTrack_, meNofClustersOnTrack_, meNofTracks_, meNofTracksInPixVol_, meSubdetResidualX, meSubdetResidualY, modOn, phiOn, pSet_, ringOn, s, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), SiPixelFolderOrganizer::setModuleFolder(), DQMStore::setVerbose(), theSiPixelStructure, and tracksrc_.
00082 { 00083 LogInfo("PixelDQM") << "SiPixelTrackResidualSource beginJob()" << endl; 00084 00085 // retrieve TrackerGeometry for pixel dets 00086 edm::ESHandle<TrackerGeometry> TG; 00087 iSetup.get<TrackerDigiGeometryRecord>().get(TG); 00088 if (debug_) LogVerbatim("PixelDQM") << "TrackerGeometry "<< &(*TG) <<" size is "<< TG->dets().size() << endl; 00089 00090 // build theSiPixelStructure with the pixel barrel and endcap dets from TrackerGeometry 00091 for (TrackerGeometry::DetContainer::const_iterator pxb = TG->detsPXB().begin(); 00092 pxb!=TG->detsPXB().end(); pxb++) { 00093 if (dynamic_cast<PixelGeomDetUnit*>((*pxb))!=0) { 00094 SiPixelTrackResidualModule* module = new SiPixelTrackResidualModule((*pxb)->geographicalId().rawId()); 00095 theSiPixelStructure.insert(pair<uint32_t, SiPixelTrackResidualModule*>((*pxb)->geographicalId().rawId(), module)); 00096 } 00097 } 00098 for (TrackerGeometry::DetContainer::const_iterator pxf = TG->detsPXF().begin(); 00099 pxf!=TG->detsPXF().end(); pxf++) { 00100 if (dynamic_cast<PixelGeomDetUnit*>((*pxf))!=0) { 00101 SiPixelTrackResidualModule* module = new SiPixelTrackResidualModule((*pxf)->geographicalId().rawId()); 00102 theSiPixelStructure.insert(pair<uint32_t, SiPixelTrackResidualModule*>((*pxf)->geographicalId().rawId(), module)); 00103 } 00104 } 00105 LogInfo("PixelDQM") << "SiPixelStructure size is " << theSiPixelStructure.size() << endl; 00106 00107 dbe_->setVerbose(0); 00108 00109 // book residual histograms in theSiPixelFolder - one (x,y) pair of histograms per det 00110 SiPixelFolderOrganizer theSiPixelFolder; 00111 for (std::map<uint32_t, SiPixelTrackResidualModule*>::iterator pxd = theSiPixelStructure.begin(); 00112 pxd!=theSiPixelStructure.end(); pxd++) { 00113 00114 if(modOn){ 00115 if (theSiPixelFolder.setModuleFolder((*pxd).first)) (*pxd).second->book(pSet_); 00116 else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Folder Creation Failed! "; 00117 } 00118 if(ladOn){ 00119 if (theSiPixelFolder.setModuleFolder((*pxd).first,1)) { 00120 00121 (*pxd).second->book(pSet_,1); 00122 } 00123 else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource ladder Folder Creation Failed! "; 00124 } 00125 if(layOn){ 00126 if (theSiPixelFolder.setModuleFolder((*pxd).first,2)) (*pxd).second->book(pSet_,2); 00127 else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource layer Folder Creation Failed! "; 00128 } 00129 if(phiOn){ 00130 if (theSiPixelFolder.setModuleFolder((*pxd).first,3)) (*pxd).second->book(pSet_,3); 00131 else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource phi Folder Creation Failed! "; 00132 } 00133 if(bladeOn){ 00134 if (theSiPixelFolder.setModuleFolder((*pxd).first,4)) (*pxd).second->book(pSet_,4); 00135 else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Blade Folder Creation Failed! "; 00136 } 00137 if(diskOn){ 00138 if (theSiPixelFolder.setModuleFolder((*pxd).first,5)) (*pxd).second->book(pSet_,5); 00139 else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Disk Folder Creation Failed! "; 00140 } 00141 if(ringOn){ 00142 if (theSiPixelFolder.setModuleFolder((*pxd).first,6)) (*pxd).second->book(pSet_,6); 00143 else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Ring Folder Creation Failed! "; 00144 } 00145 } 00146 00147 00148 // edm::InputTag tracksrc = pSet_.getParameter<edm::InputTag>("trajectoryInput"); 00149 // edm::InputTag clustersrc = pSet_.getParameter<edm::InputTag>("clustersrc"); 00150 00151 //number of tracks 00152 dbe_->setCurrentFolder("Pixel/Tracks"); 00153 meNofTracks_ = dbe_->book1D("ntracks_" + tracksrc_.label(),"Number of Tracks",4,0,4); 00154 meNofTracks_->setAxisTitle("Number of Tracks",1); 00155 meNofTracks_->setBinLabel(1,"All"); 00156 meNofTracks_->setBinLabel(2,"Pixel"); 00157 meNofTracks_->setBinLabel(3,"BPix"); 00158 meNofTracks_->setBinLabel(4,"FPix"); 00159 00160 //number of tracks in pixel fiducial volume 00161 dbe_->setCurrentFolder("Pixel/Tracks"); 00162 meNofTracksInPixVol_ = dbe_->book1D("ntracksInPixVol_" + tracksrc_.label(),"Number of Tracks crossing Pixel fiducial Volume",2,0,2); 00163 meNofTracksInPixVol_->setAxisTitle("Number of Tracks",1); 00164 meNofTracksInPixVol_->setBinLabel(1,"With Hits"); 00165 meNofTracksInPixVol_->setBinLabel(2,"Without Hits"); 00166 00167 //number of clusters (associated to track / not associated) 00168 dbe_->setCurrentFolder("Pixel/Clusters/OnTrack"); 00169 meNofClustersOnTrack_ = dbe_->book1D("nclusters_" + clustersrc_.label(),"Number of Clusters (on track)",3,0,3); 00170 meNofClustersOnTrack_->setAxisTitle("Number of Clusters on Track",1); 00171 meNofClustersOnTrack_->setBinLabel(1,"All"); 00172 meNofClustersOnTrack_->setBinLabel(2,"BPix"); 00173 meNofClustersOnTrack_->setBinLabel(3,"FPix"); 00174 dbe_->setCurrentFolder("Pixel/Clusters/OffTrack"); 00175 meNofClustersNotOnTrack_ = dbe_->book1D("nclusters_" + clustersrc_.label(),"Number of Clusters (off track)",3,0,3); 00176 meNofClustersNotOnTrack_->setAxisTitle("Number of Clusters off Track",1); 00177 meNofClustersNotOnTrack_->setBinLabel(1,"All"); 00178 meNofClustersNotOnTrack_->setBinLabel(2,"BPix"); 00179 meNofClustersNotOnTrack_->setBinLabel(3,"FPix"); 00180 00181 //cluster charge and size 00182 //charge 00183 //on track 00184 dbe_->setCurrentFolder("Pixel/Clusters/OnTrack"); 00185 meClChargeOnTrack_all = dbe_->book1D("charge_" + clustersrc_.label(),"Charge (on track)",500,0.,500.); 00186 meClChargeOnTrack_all->setAxisTitle("Charge size (MeV)",1); 00187 meClChargeOnTrack_bpix = dbe_->book1D("charge_" + clustersrc_.label() + "_Barrel","Charge (on track, barrel)",500,0.,500.); 00188 meClChargeOnTrack_bpix->setAxisTitle("Charge size (MeV)",1); 00189 meClChargeOnTrack_fpix = dbe_->book1D("charge_" + clustersrc_.label() + "_Endcap","Charge (on track, endcap)",500,0.,500.); 00190 meClChargeOnTrack_fpix->setAxisTitle("Charge size (MeV)",1); 00191 //off track 00192 dbe_->setCurrentFolder("Pixel/Clusters/OffTrack"); 00193 meClChargeNotOnTrack_all = dbe_->book1D("charge_" + clustersrc_.label(),"Charge (off track)",500,0.,500.); 00194 meClChargeNotOnTrack_all->setAxisTitle("Charge size (MeV)",1); 00195 meClChargeNotOnTrack_bpix = dbe_->book1D("charge_" + clustersrc_.label() + "_Barrel","Charge (off track, barrel)",500,0.,500.); 00196 meClChargeNotOnTrack_bpix->setAxisTitle("Charge size (MeV)",1); 00197 meClChargeNotOnTrack_fpix = dbe_->book1D("charge_" + clustersrc_.label() + "_Endcap","Charge (off track, endcap)",500,0.,500.); 00198 meClChargeNotOnTrack_fpix->setAxisTitle("Charge size (MeV)",1); 00199 //size 00200 //on track 00201 dbe_->setCurrentFolder("Pixel/Clusters/OnTrack"); 00202 meClSizeOnTrack_all = dbe_->book1D("size_" + clustersrc_.label(),"Size (on track)",100,0.,100.); 00203 meClSizeOnTrack_all->setAxisTitle("Cluster size (in pixels)",1); 00204 meClSizeOnTrack_bpix = dbe_->book1D("size" + clustersrc_.label() + "_Barrel","Size (on track, barrel)",100,0.,100.); 00205 meClSizeOnTrack_bpix->setAxisTitle("Cluster size (in pixels)",1); 00206 meClSizeOnTrack_fpix = dbe_->book1D("size_" + clustersrc_.label() + "_Endcap","Size (on track, endcap)",100,0.,100.); 00207 meClSizeOnTrack_fpix->setAxisTitle("Cluster size (in pixels)",1); 00208 //off track 00209 dbe_->setCurrentFolder("Pixel/Clusters/OffTrack"); 00210 meClSizeNotOnTrack_all = dbe_->book1D("size_" + clustersrc_.label(),"Size (off track)",100,0.,100.); 00211 meClSizeNotOnTrack_all->setAxisTitle("Cluster size (in pixels)",1); 00212 00213 meClSizeNotOnTrack_bpix = dbe_->book1D("size_" + clustersrc_.label() + "_Barrel","Size (off track, barrel)",100,0.,100.); 00214 meClSizeNotOnTrack_bpix->setAxisTitle("Cluster size (in pixels)",1); 00215 00216 meClSizeNotOnTrack_fpix = dbe_->book1D("size_" + clustersrc_.label() + "_Endcap","Size (off track, endcap)",100,0.,100.); 00217 meClSizeNotOnTrack_fpix->setAxisTitle("Cluster size (in pixels)",1); 00218 00219 00220 //cluster global position 00221 //on track 00222 dbe_->setCurrentFolder("Pixel/Clusters/OnTrack"); 00223 //bpix 00224 meClPosLayer1OnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_Layer_1","Clusters Layer1 (on track)",200,-30.,30.,128,-3.2,3.2); 00225 meClPosLayer1OnTrack->setAxisTitle("Global Z (cm)",1); 00226 meClPosLayer1OnTrack->setAxisTitle("Global #phi",2); 00227 meClPosLayer2OnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_Layer_2","Clusters Layer2 (on track)",200,-30.,30.,128,-3.2,3.2); 00228 meClPosLayer2OnTrack->setAxisTitle("Global Z (cm)",1); 00229 meClPosLayer2OnTrack->setAxisTitle("Global #phi",2); 00230 meClPosLayer3OnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_Layer_3","Clusters Layer3 (on track)",200,-30.,30.,128,-3.2,3.2); 00231 meClPosLayer3OnTrack->setAxisTitle("Global Z (cm)",1); 00232 meClPosLayer3OnTrack->setAxisTitle("Global #phi",2); 00233 //fpix 00234 meClPosDisk1pzOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_pz_Disk_1","Clusters +Z Disk1 (on track)",80,-20.,20.,80,-20.,20.); 00235 meClPosDisk1pzOnTrack->setAxisTitle("Global X (cm)",1); 00236 meClPosDisk1pzOnTrack->setAxisTitle("Global Y (cm)",2); 00237 meClPosDisk2pzOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_pz_Disk_2","Clusters +Z Disk2 (on track)",80,-20.,20.,80,-20.,20.); 00238 meClPosDisk2pzOnTrack->setAxisTitle("Global X (cm)",1); 00239 meClPosDisk2pzOnTrack->setAxisTitle("Global Y (cm)",2); 00240 meClPosDisk1mzOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_mz_Disk_1","Clusters -Z Disk1 (on track)",80,-20.,20.,80,-20.,20.); 00241 meClPosDisk1mzOnTrack->setAxisTitle("Global X (cm)",1); 00242 meClPosDisk1mzOnTrack->setAxisTitle("Global Y (cm)",2); 00243 meClPosDisk2mzOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_mz_Disk_2","Clusters -Z Disk2 (on track)",80,-20.,20.,80,-20.,20.); 00244 meClPosDisk2mzOnTrack->setAxisTitle("Global X (cm)",1); 00245 meClPosDisk2mzOnTrack->setAxisTitle("Global Y (cm)",2); 00246 //not on track 00247 dbe_->setCurrentFolder("Pixel/Clusters/OffTrack"); 00248 //bpix 00249 meClPosLayer1NotOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_Layer_1","Clusters Layer1 (off track)",200,-30.,30.,128,-3.2,3.2); 00250 meClPosLayer1NotOnTrack->setAxisTitle("Global Z (cm)",1); 00251 meClPosLayer1NotOnTrack->setAxisTitle("Global #phi",2); 00252 meClPosLayer2NotOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_Layer_2","Clusters Layer2 (off track)",200,-30.,30.,128,-3.2,3.2); 00253 meClPosLayer2NotOnTrack->setAxisTitle("Global Z (cm)",1); 00254 meClPosLayer2NotOnTrack->setAxisTitle("Global #phi",2); 00255 meClPosLayer3NotOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_Layer_3","Clusters Layer3 (off track)",200,-30.,30.,128,-3.2,3.2); 00256 meClPosLayer3NotOnTrack->setAxisTitle("Global Z (cm)",1); 00257 meClPosLayer3NotOnTrack->setAxisTitle("Global #phi",2); 00258 //fpix 00259 meClPosDisk1pzNotOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_pz_Disk_1","Clusters +Z Disk1 (off track)",80,-20.,20.,80,-20.,20.); 00260 meClPosDisk1pzNotOnTrack->setAxisTitle("Global X (cm)",1); 00261 meClPosDisk1pzNotOnTrack->setAxisTitle("Global Y (cm)",2); 00262 meClPosDisk2pzNotOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_pz_Disk_2","Clusters +Z Disk2 (off track)",80,-20.,20.,80,-20.,20.); 00263 meClPosDisk2pzNotOnTrack->setAxisTitle("Global X (cm)",1); 00264 meClPosDisk2pzNotOnTrack->setAxisTitle("Global Y (cm)",2); 00265 meClPosDisk1mzNotOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_mz_Disk_1","Clusters -Z Disk1 (off track)",80,-20.,20.,80,-20.,20.); 00266 meClPosDisk1mzNotOnTrack->setAxisTitle("Global X (cm)",1); 00267 meClPosDisk1mzNotOnTrack->setAxisTitle("Global Y (cm)",2); 00268 meClPosDisk2mzNotOnTrack = dbe_->book2D("position_" + clustersrc_.label() + "_mz_Disk_2","Clusters -Z Disk2 (off track)",80,-20.,20.,80,-20.,20.); 00269 meClPosDisk2mzNotOnTrack->setAxisTitle("Global X (cm)",1); 00270 meClPosDisk2mzNotOnTrack->setAxisTitle("Global Y (cm)",2); 00271 00272 if (debug_) { 00273 // book summary residual histograms in a debugging folder - one (x,y) pair of histograms per subdetector 00274 dbe_->setCurrentFolder("debugging"); 00275 char hisID[80]; 00276 for (int s=0; s<3; s++) { 00277 sprintf(hisID,"residual_x_subdet_%i",s); 00278 meSubdetResidualX[s] = dbe_->book1D(hisID,"Pixel Hit-to-Track Residual in X",500,-5.,5.); 00279 00280 sprintf(hisID,"residual_y_subdet_%i",s); 00281 meSubdetResidualY[s] = dbe_->book1D(hisID,"Pixel Hit-to-Track Residual in Y",500,-5.,5.); 00282 } 00283 } 00284 }
Reimplemented from edm::EDAnalyzer.
Definition at line 287 of file SiPixelTrackResidualSource.cc.
References dbe_, lat::endl(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), pSet_, and DQMStore::save().
00287 { 00288 LogInfo("PixelDQM") << "SiPixelTrackResidualSource endJob()"; 00289 00290 // save the residual histograms to an output root file 00291 bool saveFile = pSet_.getUntrackedParameter<bool>("saveFile", true); 00292 if (saveFile) { 00293 std::string outputFile = pSet_.getParameter<std::string>("outputFile"); 00294 LogInfo("PixelDQM") << " - saving histograms to "<< outputFile.data(); 00295 dbe_->save(outputFile); 00296 } 00297 LogInfo("PixelDQM") << endl; // dbe_->showDirStructure(); 00298 }
bool SiPixelTrackResidualSource::bladeOn [private] |
Definition at line 63 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().
Definition at line 54 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().
DQMStore* SiPixelTrackResidualSource::dbe_ [private] |
Definition at line 56 of file SiPixelTrackResidualSource.h.
Referenced by beginJob(), endJob(), and SiPixelTrackResidualSource().
bool SiPixelTrackResidualSource::debug_ [private] |
Definition at line 58 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().
bool SiPixelTrackResidualSource::diskOn [private] |
Definition at line 63 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().
bool SiPixelTrackResidualSource::ladOn [private] |
Definition at line 61 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().
bool SiPixelTrackResidualSource::layOn [private] |
Definition at line 61 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().
Definition at line 77 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 78 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 79 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 74 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 75 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 76 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 100 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 96 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 98 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 94 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 101 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 97 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 99 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 95 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 90 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 87 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 91 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 88 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 92 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 89 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 83 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 84 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 85 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 80 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 81 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 82 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 73 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 72 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 70 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 71 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
MonitorElement* SiPixelTrackResidualSource::meSubdetResidualX[3] [private] |
Definition at line 67 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
MonitorElement* SiPixelTrackResidualSource::meSubdetResidualY[3] [private] |
Definition at line 68 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
bool SiPixelTrackResidualSource::modOn [private] |
Definition at line 59 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().
bool SiPixelTrackResidualSource::phiOn [private] |
Definition at line 61 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().
Definition at line 52 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), endJob(), and SiPixelTrackResidualSource().
bool SiPixelTrackResidualSource::ringOn [private] |
Definition at line 63 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().
Definition at line 53 of file SiPixelTrackResidualSource.h.
Referenced by SiPixelTrackResidualSource().
std::map<uint32_t, SiPixelTrackResidualModule*> SiPixelTrackResidualSource::theSiPixelStructure [private] |
Definition at line 65 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), and beginJob().
Definition at line 55 of file SiPixelTrackResidualSource.h.
Referenced by analyze(), beginJob(), and SiPixelTrackResidualSource().