![]() |
![]() |
#include "Mixing/Base/interface/BMixingModule.h"
#include "FWCore/Utilities/interface/GetPassID.h"
#include "FWCore/Utilities/interface/GetReleaseVersion.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/EventPrincipal.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "DataFormats/Provenance/interface/ModuleDescription.h"
#include "DataFormats/Common/interface/Handle.h"
Go to the source code of this file.
Namespaces | |
namespace | edm |
Functions | |
boost::shared_ptr< edm::PileUp > | maybeMakePileUp (edm::ParameterSet const &ps, std::string sourceName, const int minb, const int maxb, const bool playback) |
boost::shared_ptr<edm::PileUp> @11040::maybeMakePileUp | ( | edm::ParameterSet const & | ps, | |
std::string | sourceName, | |||
const int | minb, | |||
const int | maxb, | |||
const bool | playback | |||
) | [static] |
Definition at line 26 of file BMixingModule.cc.
References find(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNames(), and names.
Referenced by edm::BMixingModule::BMixingModule().
00027 { 00028 boost::shared_ptr<edm::PileUp> pileup; // value to be returned 00029 // Make sure we have a parameter named 'sourceName' 00030 vector<string> names = ps.getParameterNames(); 00031 if (find(names.begin(), names.end(), sourceName) 00032 != names.end()) 00033 { 00034 // We have the parameter 00035 // and if we have either averageNumber or cfg by luminosity... make the PileUp 00036 double averageNumber; 00037 edm::ParameterSet psin=ps.getParameter<edm::ParameterSet>(sourceName); 00038 if (psin.getParameter<std::string>("type")!="none") { 00039 vector<string> namesIn = psin.getParameterNames(); 00040 if (find(namesIn.begin(), namesIn.end(), std::string("nbPileupEvents")) 00041 != namesIn.end()) { 00042 edm::ParameterSet psin_average=psin.getParameter<edm::ParameterSet>("nbPileupEvents"); 00043 vector<string> namesAverage = psin_average.getParameterNames(); 00044 if (find(namesAverage.begin(), namesAverage.end(), std::string("averageNumber")) 00045 != namesAverage.end()) 00046 { 00047 averageNumber=psin_average.getParameter<double>("averageNumber"); 00048 pileup.reset(new edm::PileUp(ps.getParameter<edm::ParameterSet>(sourceName),minb,maxb,averageNumber,playback)); 00049 edm::LogInfo("MixingModule") <<" Created source "<<sourceName<<" with minBunch,maxBunch "<<minb<<" "<<maxb<<" and averageNumber "<<averageNumber; 00050 } 00051 00052 //special for pileup input 00053 else if (sourceName=="input" && find(namesAverage.begin(), namesAverage.end(), std::string("Lumi")) 00054 != namesAverage.end() && find(namesAverage.begin(), namesAverage.end(), std::string("sigmaInel")) 00055 != namesAverage.end()) { 00056 averageNumber=psin_average.getParameter<double>("Lumi")*psin_average.getParameter<double>("sigmaInel")*ps.getParameter<int>("bunchspace")/1000*3564./2808.; //FIXME 00057 pileup.reset(new edm::PileUp(ps.getParameter<edm::ParameterSet>(sourceName),minb,maxb,averageNumber,playback)); 00058 edm::LogInfo("MixingModule") <<" Created source "<<sourceName<<" with minBunch,maxBunch "<<minb<<" "<<maxb; 00059 edm::LogInfo("MixingModule")<<" Luminosity configuration, average number used is "<<averageNumber; 00060 } 00061 } 00062 } 00063 } 00064 return pileup; 00065 }