Skip to content

Commit

Permalink
Merge pull request #25700 from mmusich/checkConditionsInDigitizer
Browse files Browse the repository at this point in the history
Pixel Stuck TBM simulation: check conditions in digitizer initialization
  • Loading branch information
cmsbuild committed Jan 23, 2019
2 parents 5b2fe81 + d24ccc1 commit 0265928
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 1 deletion.
35 changes: 35 additions & 0 deletions SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizerAlgorithm.cc
Expand Up @@ -132,6 +132,41 @@ void SiPixelDigitizerAlgorithm::init(const edm::EventSetup& es) {
es.get<SiPixelStatusScenarioProbabilityRcd>().get(scenarioProbabilityHandle);
es.get<SiPixelFEDChannelContainerESProducerRcd>().get(PixelFEDChannelCollectionMapHandle);
quality_map = PixelFEDChannelCollectionMapHandle.product();

SiPixelQualityProbabilities:: probabilityMap m_probabilities = scenarioProbabilityHandle->getProbability_Map();
std::vector<std::string> allScenarios;

std::transform(quality_map->begin(),
quality_map->end(),
std::back_inserter(allScenarios),
[](const PixelFEDChannelCollectionMap::value_type &pair){return pair.first;});

std::vector<std::string> allScenariosInProb;

for(auto it = m_probabilities.begin(); it != m_probabilities.end() ; ++it){
//int PUbin = it->first;
for (const auto &entry : it->second){
auto scenario = entry.first;
auto probability = entry.second;
if(probability!=0){
if(std::find(allScenariosInProb.begin(), allScenariosInProb.end(), scenario) == allScenariosInProb.end()) {
allScenariosInProb.push_back(scenario);
}
} // if prob!=0
} // loop on the scenarios for that PU bin
} // loop on PU bins

std::vector<std::string> notFound;
std::copy_if(allScenariosInProb.begin(), allScenariosInProb.end(), std::back_inserter(notFound),
[&allScenarios](const std::string& arg)
{ return (std::find(allScenarios.begin(),allScenarios.end(), arg) == allScenarios.end());});

if(!notFound.empty()){
for(const auto &entry : notFound){
edm::LogError("SiPixelFEDChannelContainer") <<"The requested scenario: " << entry <<" is not found in the map!!"<<std::endl;
}
throw cms::Exception("SiPixelDigitizerAlgorithm")<< "Found: " << notFound.size()<< " missing scenario(s) in SiPixelStatusScenariosRcd while present in SiPixelStatusScenarioProbabilityRcd \n";
}
}

// Read template files for charge reweighting
Expand Down
Expand Up @@ -16,7 +16,7 @@ def activateStuckTBMSimulation2018NoPU(process):
tag = cms.string('SiPixelQualityProbabilities_2018_noPU_v0_mc'),
connect = cms.string('frontier://FrontierPrep/CMS_CONDITIONS')),
cms.PSet(record = cms.string('SiPixelStatusScenariosRcd'),
tag = cms.string('SiPixelFEDChannelContainer_StuckTBM_2018_v0_mc'),
tag = cms.string('SiPixelFEDChannelContainer_StuckTBM_2018_v0_fixed_mc'),
connect = cms.string('frontier://FrontierPrep/CMS_CONDITIONS')
)
)
Expand Down

0 comments on commit 0265928

Please sign in to comment.