CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Attributes
GenLumiInfoProduct Class Reference

#include <GenLumiInfoProduct.h>

Classes

struct  FinalStat
 
struct  ProcessInfo
 
struct  XSec
 

Public Member Functions

 GenLumiInfoProduct ()
 
 GenLumiInfoProduct (const int id)
 
 GenLumiInfoProduct (const GenLumiInfoProduct &other)
 
const int getHEPIDWTUP () const
 
const std::vector< ProcessInfo > & getProcessInfos () const
 
virtual bool isProductEqual (const GenLumiInfoProduct &other) const
 
virtual bool mergeProduct (const GenLumiInfoProduct &other)
 
void setHEPIDWTUP (const int id)
 
void setProcessInfo (const std::vector< ProcessInfo > &processes)
 
virtual ~GenLumiInfoProduct ()
 

Private Attributes

int hepidwtup_
 
std::vector< ProcessInfointernalProcesses_
 

Detailed Description

Definition at line 10 of file GenLumiInfoProduct.h.

Constructor & Destructor Documentation

GenLumiInfoProduct::GenLumiInfoProduct ( )

Definition at line 85 of file GenLumiInfoProduct.cc.

References internalProcesses_.

85  :
86  hepidwtup_(-1)
87 {
88  internalProcesses_.clear();
89 
90 }
std::vector< ProcessInfo > internalProcesses_
GenLumiInfoProduct::GenLumiInfoProduct ( const int  id)

Definition at line 92 of file GenLumiInfoProduct.cc.

References internalProcesses_.

92  :
93  hepidwtup_(id)
94 {
95  internalProcesses_.clear();
96 }
std::vector< ProcessInfo > internalProcesses_
GenLumiInfoProduct::GenLumiInfoProduct ( const GenLumiInfoProduct other)

Definition at line 98 of file GenLumiInfoProduct.cc.

98  :
99  hepidwtup_(other.hepidwtup_),
101 {
102 }
std::vector< ProcessInfo > internalProcesses_
GenLumiInfoProduct::~GenLumiInfoProduct ( )
virtual

Definition at line 104 of file GenLumiInfoProduct.cc.

105 {
106 }

Member Function Documentation

const int GenLumiInfoProduct::getHEPIDWTUP ( ) const
inline

Definition at line 24 of file GenLumiInfoProduct.h.

References hepidwtup_.

Referenced by GenXSecAnalyzer::endLuminosityBlock(), operator!=(), and operator==().

const std::vector<ProcessInfo>& GenLumiInfoProduct::getProcessInfos ( ) const
inline
bool GenLumiInfoProduct::isProductEqual ( const GenLumiInfoProduct other) const
virtual

Definition at line 137 of file GenLumiInfoProduct.cc.

138 {
139  return ((*this) == other);
140 }
bool GenLumiInfoProduct::mergeProduct ( const GenLumiInfoProduct other)
virtual

Definition at line 108 of file GenLumiInfoProduct.cc.

References GenLumiInfoProduct::ProcessInfo::addOthers(), getProcessInfos(), mps_fire::i, triggerObjects_cff::id, internalProcesses_, GenLumiInfoProduct::ProcessInfo::lheXSec(), edmIntegrityCheck::processes, GenLumiInfoProduct::XSec::value(), and x.

Referenced by GenXSecAnalyzer::endLuminosityBlock().

109 {
110  std::map<int, ProcessInfo> processes;
111 
112  for(unsigned int i = 0; i < getProcessInfos().size(); i++) {
113  int id = getProcessInfos()[i].process();
114  ProcessInfo &x = processes[id];
115  x=getProcessInfos()[i];
116  }
117 
118  // the two GenLuminInfoProducts may not have the same number
119  // of processes
120  for(unsigned int i = 0; i < other.getProcessInfos().size(); i++) {
121  int id = other.getProcessInfos()[i].process();
122  ProcessInfo &x = processes[id];
123  if(x.lheXSec().value()>0)
124  x.addOthers(other.getProcessInfos()[i]);
125  else
126  x = other.getProcessInfos()[i];
127  }
128 
129  internalProcesses_.resize(processes.size());
130  unsigned int i = 0;
131  for(std::map<int, ProcessInfo>::const_iterator iter = processes.begin();
132  iter != processes.end(); ++iter, i++)
133  internalProcesses_[i]=iter->second;
134  return true;
135 }
const std::vector< ProcessInfo > & getProcessInfos() const
std::vector< ProcessInfo > internalProcesses_
void GenLumiInfoProduct::setHEPIDWTUP ( const int  id)
inline
void GenLumiInfoProduct::setProcessInfo ( const std::vector< ProcessInfo > &  processes)
inline

Definition at line 30 of file GenLumiInfoProduct.h.

References internalProcesses_, and edmIntegrityCheck::processes.

Referenced by GenXSecAnalyzer::endRun().

Member Data Documentation

int GenLumiInfoProduct::hepidwtup_
private

Definition at line 154 of file GenLumiInfoProduct.h.

Referenced by getHEPIDWTUP(), and setHEPIDWTUP().

std::vector<ProcessInfo> GenLumiInfoProduct::internalProcesses_
private