103 m_pileupcollection(iConfig.getParameter<edm::InputTag>(
"pileupSummaryCollection")),
104 m_mctruthcollection(iConfig.getParameter<edm::InputTag>(
"mcTruthCollection")),
105 m_useweight(iConfig.getParameter<bool>(
"useWeight")),
106 m_weight(iConfig.getParameter<edm::InputTag>(
"weightProduct"))
116 m_hnvtx = tfserv->
make<TH1F>(
"nvtx",
"Number of pileup vertices",60,-0.5,59.5);
117 m_hnvtx->GetXaxis()->SetTitle(
"Number of Interactions");
119 m_hlumi = tfserv->
make<TH1F>(
"lumi",
"BX luminosity*xsect",200,0.,50.);
120 m_hlumi->GetXaxis()->SetTitle(
"Average Number of Interactions");
122 m_hnvtxvslumi = tfserv->
make<TH2F>(
"nvtxvslumi",
"Npileup vs BX luminosity*xsect",200,0.,50.,60,-0.5,59.5);
123 m_hnvtxvslumi->GetXaxis()->SetTitle(
"Average Number of Interactions");
m_hnvtxvslumi->GetYaxis()->SetTitle(
"Number of Interactions");
126 m_hnvtxweight = tfserv->
make<TH1F>(
"nvtxweight",
"Number of pileup vertices (1-w)",60,-0.5,59.5);
127 m_hnvtxweight->GetXaxis()->SetTitle(
"Number of Interactions");
128 m_hnvtxweightprof = tfserv->
make<TProfile>(
"nvtxweightprof",
"Mean (1-w) vs Number of pileup interactions",60,-0.5,59.5);
132 m_hmainvtxx = tfserv->
make<TH1F>(
"mainvtxx",
"Main vertex x position",200,-.5,.5);
134 m_hmainvtxy = tfserv->
make<TH1F>(
"mainvtxy",
"Main vertex y position",200,-.5,.5);
136 m_hmainvtxz = tfserv->
make<TH1F>(
"mainvtxz",
"Main vertex z position",600,-30.,30.);
138 m_hpileupvtxz = tfserv->
make<TH1F>(
"pileupvtxz",
"PileUp vertices z position",600,-30.,30.);
179 if(pileupinfos.isValid()) {
183 std::vector<PileupSummaryInfo>::const_iterator pileupinfo;
184 for(pileupinfo = pileupinfos->begin(); pileupinfo != pileupinfos->end() ; ++pileupinfo) {
185 if(pileupinfo->getBunchCrossing()==0)
break;
190 if(pileupinfo->getBunchCrossing()!=0) {
191 edm::LogError(
"NoInTimePileUpInfo") <<
"Cannot find the in-time pileup info " << pileupinfo->getBunchCrossing();
197 m_hnvtxvslumi->Fill(pileupinfo->getTrueNumInteractions(),pileupinfo->getPU_NumInteractions(),
weight);
204 const std::vector<float>& zpositions = pileupinfo->getPU_zpositions();
206 for(std::vector<float>::const_iterator zpos = zpositions.begin() ; zpos != zpositions.end() ; ++zpos) {
218 if(EvtHandle.isValid()) {
220 const HepMC::GenEvent* Evt = EvtHandle->GetEvent();
224 if(Evt->vertices_begin() != Evt->vertices_end()) {
#define DEFINE_FWK_MODULE(type)
TProfile * m_hnvtxweightprof
virtual void beginRun(const edm::Run &, const edm::EventSetup &)
edm::InputTag m_mctruthcollection
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MCVerticesAnalyzer(const edm::ParameterSet &)
virtual void analyze(const edm::Event &, const edm::EventSetup &)
edm::InputTag m_pileupcollection
T * make() const
make new ROOT object
virtual void endRun(const edm::Run &, const edm::EventSetup &)