diff --git a/DQMOffline/CalibTracker/plugins/SiStripQualityHotStripIdentifierRoot.cc b/DQMOffline/CalibTracker/plugins/SiStripQualityHotStripIdentifierRoot.cc index a95a424d500f9..9c82aff1be165 100644 --- a/DQMOffline/CalibTracker/plugins/SiStripQualityHotStripIdentifierRoot.cc +++ b/DQMOffline/CalibTracker/plugins/SiStripQualityHotStripIdentifierRoot.cc @@ -60,131 +60,141 @@ SiStripBadStrip* SiStripQualityHotStripIdentifierRoot::getNewObject(){ bookHistos(); - if (TotNumberOfEvents>=calibrationthreshold && MeanNumberOfCluster > 0.01) + if (TotNumberOfEvents>=calibrationthreshold) { - edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] Total number of events is " << TotNumberOfEvents << ". Calibration is launched." <setProbabilityThreshold(parameters.getUntrackedParameter("ProbabilityThreshold",1.E-7)); - theIdentifier->setMinNumEntries(parameters.getUntrackedParameter("MinNumEntries",100)); - theIdentifier->setMinNumEntriesPerStrip(parameters.getUntrackedParameter("MinNumEntriesPerStrip",5)); - theIdentifier->setOccupancyThreshold(parameters.getUntrackedParameter("OccupancyThreshold",1.E-5)); - theIdentifier->setNumberOfEvents(TotNumberOfEvents); - theIdentifier->setOutputFileName(conf_.getUntrackedParameter("OccupancyRootFile","Occupancy.root"),conf_.getUntrackedParameter("WriteOccupancyRootFile",false)); - theIdentifier->setTrackerGeometry(_tracker); - - SiStripQuality* qobj = new SiStripQuality(); - theIdentifier->extractBadStrips(qobj,ClusterPositionHistoMap,SiStripQuality_);//here I insert SiStripQuality as input and get qobj as output - - //---------- - - edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"<getRegistryVectorBegin(); - SiStripBadStrip::RegistryIterator rIterEnd=qobj->getRegistryVectorEnd(); - for(;rIter!=rIterEnd;++rIter){ - SiStripBadStrip::Range range(qobj->getDataVectorBegin()+rIter->ibegin,qobj->getDataVectorBegin()+rIter->iend); - if ( ! obj->put(rIter->detid,range) ) - edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"<setLowOccupancyThreshold(parameters.getUntrackedParameter("LowOccupancyThreshold",5)); - theIdentifier2->setHighOccupancyThreshold(parameters.getUntrackedParameter("HighOccupancyThreshold",10)); - theIdentifier2->setAbsoluteLowThreshold(parameters.getUntrackedParameter("AbsoluteLowThreshold",0)); - theIdentifier2->setNumberIterations(parameters.getUntrackedParameter("NumberIterations",2)); - theIdentifier2->setAbsoluteOccupancyThreshold(parameters.getUntrackedParameter("OccupancyThreshold",1.E-5)); - theIdentifier2->setNumberOfEvents(TotNumberOfEvents); - theIdentifier2->setMinNumOfEvents(); - theIdentifier2->setOutputFileName(conf_.getUntrackedParameter("OccupancyRootFile","Occupancy.root"),conf_.getUntrackedParameter("WriteOccupancyRootFile",false)); - theIdentifier2->setTrackerGeometry(_tracker); - - SiStripQuality* qobj = new SiStripQuality(); - theIdentifier2->extractBadAPVs(qobj,ClusterPositionHistoMap,SiStripQuality_); - - //---------- - - edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"<getRegistryVectorBegin(); - SiStripBadStrip::RegistryIterator rIterEnd=qobj->getRegistryVectorEnd(); - for(;rIter!=rIterEnd;++rIter){ - SiStripBadStrip::Range range(qobj->getDataVectorBegin()+rIter->ibegin,qobj->getDataVectorBegin()+rIter->iend); - if ( ! obj->put(rIter->detid,range) ) - edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"< 0.01) { - - edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] call to SiStripBadAPVandHotStripAlgorithmFromClusterOccupancy"<setProbabilityThreshold(parameters.getUntrackedParameter("ProbabilityThreshold",1.E-7)); - theIdentifier3->setMinNumEntries(parameters.getUntrackedParameter("MinNumEntries",100)); - theIdentifier3->setMinNumEntriesPerStrip(parameters.getUntrackedParameter("MinNumEntriesPerStrip",5)); - theIdentifier3->setNumberOfEvents(TotNumberOfEvents); - theIdentifier3->setOutputFileName(conf_.getUntrackedParameter("OccupancyRootFile","Occupancy.root"),conf_.getUntrackedParameter("WriteOccupancyRootFile",false),conf_.getUntrackedParameter("DQMHistoOutputFile","DQMHistos.root"),conf_.getUntrackedParameter("WriteDQMHistoOutputFile",false)); - theIdentifier3->setTrackerGeometry(_tracker); - theIdentifier3->setLowOccupancyThreshold(parameters.getUntrackedParameter("LowOccupancyThreshold",5)); - theIdentifier3->setHighOccupancyThreshold(parameters.getUntrackedParameter("HighOccupancyThreshold",10)); - theIdentifier3->setAbsoluteLowThreshold(parameters.getUntrackedParameter("AbsoluteLowThreshold",0)); - theIdentifier3->setNumberIterations(parameters.getUntrackedParameter("NumberIterations",2)); - theIdentifier3->setAbsoluteOccupancyThreshold(parameters.getUntrackedParameter("OccupancyThreshold",1.E-5)); - theIdentifier3->setMinNumOfEvents(); - - SiStripQuality* qobj = new SiStripQuality(); - theIdentifier3->extractBadAPVSandStrips(qobj,ClusterPositionHistoMap,SiStripQuality_);//here I insert SiStripQuality as input and get qobj as output - - //---------- - - edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"<getRegistryVectorBegin(); - SiStripBadStrip::RegistryIterator rIterEnd=qobj->getRegistryVectorEnd(); - for(;rIter!=rIterEnd;++rIter){ - SiStripBadStrip::Range range(qobj->getDataVectorBegin()+rIter->ibegin,qobj->getDataVectorBegin()+rIter->iend); - if ( ! obj->put(rIter->detid,range) ) - edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"<setProbabilityThreshold(parameters.getUntrackedParameter("ProbabilityThreshold",1.E-7)); + theIdentifier->setMinNumEntries(parameters.getUntrackedParameter("MinNumEntries",100)); + theIdentifier->setMinNumEntriesPerStrip(parameters.getUntrackedParameter("MinNumEntriesPerStrip",5)); + theIdentifier->setOccupancyThreshold(parameters.getUntrackedParameter("OccupancyThreshold",1.E-5)); + theIdentifier->setNumberOfEvents(TotNumberOfEvents); + theIdentifier->setOutputFileName(conf_.getUntrackedParameter("OccupancyRootFile","Occupancy.root"),conf_.getUntrackedParameter("WriteOccupancyRootFile",false)); + theIdentifier->setTrackerGeometry(_tracker); + + SiStripQuality* qobj = new SiStripQuality(); + theIdentifier->extractBadStrips(qobj,ClusterPositionHistoMap,SiStripQuality_);//here I insert SiStripQuality as input and get qobj as output + + //---------- + + edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"<getRegistryVectorBegin(); + SiStripBadStrip::RegistryIterator rIterEnd=qobj->getRegistryVectorEnd(); + for(;rIter!=rIterEnd;++rIter){ + SiStripBadStrip::Range range(qobj->getDataVectorBegin()+rIter->ibegin,qobj->getDataVectorBegin()+rIter->iend); + if ( ! obj->put(rIter->detid,range) ) + edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"<setLowOccupancyThreshold(parameters.getUntrackedParameter("LowOccupancyThreshold",5)); + theIdentifier2->setHighOccupancyThreshold(parameters.getUntrackedParameter("HighOccupancyThreshold",10)); + theIdentifier2->setAbsoluteLowThreshold(parameters.getUntrackedParameter("AbsoluteLowThreshold",0)); + theIdentifier2->setNumberIterations(parameters.getUntrackedParameter("NumberIterations",2)); + theIdentifier2->setAbsoluteOccupancyThreshold(parameters.getUntrackedParameter("OccupancyThreshold",1.E-5)); + theIdentifier2->setNumberOfEvents(TotNumberOfEvents); + theIdentifier2->setMinNumOfEvents(); + theIdentifier2->setOutputFileName(conf_.getUntrackedParameter("OccupancyRootFile","Occupancy.root"),conf_.getUntrackedParameter("WriteOccupancyRootFile",false)); + theIdentifier2->setTrackerGeometry(_tracker); + + SiStripQuality* qobj = new SiStripQuality(); + theIdentifier2->extractBadAPVs(qobj,ClusterPositionHistoMap,SiStripQuality_); + + //---------- + + edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"<getRegistryVectorBegin(); + SiStripBadStrip::RegistryIterator rIterEnd=qobj->getRegistryVectorEnd(); + for(;rIter!=rIterEnd;++rIter){ + SiStripBadStrip::Range range(qobj->getDataVectorBegin()+rIter->ibegin,qobj->getDataVectorBegin()+rIter->iend); + if ( ! obj->put(rIter->detid,range) ) + edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"<setProbabilityThreshold(parameters.getUntrackedParameter("ProbabilityThreshold",1.E-7)); + theIdentifier3->setMinNumEntries(parameters.getUntrackedParameter("MinNumEntries",100)); + theIdentifier3->setMinNumEntriesPerStrip(parameters.getUntrackedParameter("MinNumEntriesPerStrip",5)); + theIdentifier3->setNumberOfEvents(TotNumberOfEvents); + theIdentifier3->setOutputFileName(conf_.getUntrackedParameter("OccupancyRootFile","Occupancy.root"),conf_.getUntrackedParameter("WriteOccupancyRootFile",false),conf_.getUntrackedParameter("DQMHistoOutputFile","DQMHistos.root"),conf_.getUntrackedParameter("WriteDQMHistoOutputFile",false)); + theIdentifier3->setTrackerGeometry(_tracker); + theIdentifier3->setLowOccupancyThreshold(parameters.getUntrackedParameter("LowOccupancyThreshold",5)); + theIdentifier3->setHighOccupancyThreshold(parameters.getUntrackedParameter("HighOccupancyThreshold",10)); + theIdentifier3->setAbsoluteLowThreshold(parameters.getUntrackedParameter("AbsoluteLowThreshold",0)); + theIdentifier3->setNumberIterations(parameters.getUntrackedParameter("NumberIterations",2)); + theIdentifier3->setAbsoluteOccupancyThreshold(parameters.getUntrackedParameter("OccupancyThreshold",1.E-5)); + theIdentifier3->setMinNumOfEvents(); + + SiStripQuality* qobj = new SiStripQuality(); + theIdentifier3->extractBadAPVSandStrips(qobj,ClusterPositionHistoMap,SiStripQuality_);//here I insert SiStripQuality as input and get qobj as output + + //---------- + + edm::LogInfo("SiStripQualityHotStripIdentifierRoot") <<" [SiStripQualityHotStripIdentifierRoot::getNewObject] copy SiStripObject in SiStripBadStrip"<getRegistryVectorBegin(); + SiStripBadStrip::RegistryIterator rIterEnd=qobj->getRegistryVectorEnd(); + for(;rIter!=rIterEnd;++rIter){ + SiStripBadStrip::Range range(qobj->getDataVectorBegin()+rIter->ibegin,qobj->getDataVectorBegin()+rIter->iend); + if ( ! obj->put(rIter->detid,range) ) + edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"< a; + SiStripBadStrip::Range range(a.begin(),a.end()); + if ( ! obj->put(0xFFFFFFFF,range) ) + edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"< a; - SiStripBadStrip::Range range(a.begin(),a.end()); - if ( ! obj->put(0xFFFFFFFF,range) ) - edm::LogError("SiStripQualityHotStripIdentifierRoot")<<"[SiStripQualityHotStripIdentifierRoot::getNewObject] detid already exists"<("OccupancyHisto")).c_str())==NULL)