CMS 3D CMS Logo

BMixingModule.cc File Reference

#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::PileUpmaybeMakePileUp (edm::ParameterSet const &ps, std::string sourceName, const int minb, const int maxb, const bool playback)


Function Documentation

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   }


Generated on Tue Jun 9 17:54:38 2009 for CMSSW by  doxygen 1.5.4