CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Attributes
MixBoostEvtVtxGenerator Class Reference
Inheritance diagram for MixBoostEvtVtxGenerator:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void Alpha (double m=0)
 angle between crossing plane and horizontal plane More...
 
void Beta (double m=0)
 
double BetaFunction (double z, double z0)
 beta function More...
 
void betastar (double m=0)
 set beta_star More...
 
void emittance (double m=0)
 emittance (no the normalized) More...
 
virtual TMatrixD * GetInvLorentzBoost ()
 
virtual HepMC::FourVector * getRecVertex (edm::Event &)
 
virtual HepMC::FourVector * getVertex (edm::Event &)
 
 MixBoostEvtVtxGenerator (const edm::ParameterSet &p)
 
 MixBoostEvtVtxGenerator (const MixBoostEvtVtxGenerator &p)=delete
 
MixBoostEvtVtxGeneratoroperator= (const MixBoostEvtVtxGenerator &rhs)=delete
 
void Phi (double m=0)
 set half crossing angle More...
 
void produce (edm::Event &, const edm::EventSetup &) override
 return a new event vertex More...
 
void sigmaZ (double s=1.0)
 set resolution in Z in cm More...
 
void X0 (double m=0)
 set mean in X in cm More...
 
void Y0 (double m=0)
 set mean in Y in cm More...
 
void Z0 (double m=0)
 set mean in Z in cm More...
 
 ~MixBoostEvtVtxGenerator () override
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducer () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector
< edm::ProductResolverIndex >
const & 
indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector
< edm::ProductResolverIndex >
const & 
putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

double alpha_
 
double beta_
 
TMatrixD * boost_
 
double falpha
 
double fbetastar
 
double femittance
 
double fSigmaZ
 
double fTimeOffset
 
HepMC::FourVector * fVertex
 
double fX0
 
double fY0
 
double fZ0
 
edm::EDGetTokenT
< CrossingFrame< HepMCProduct > > 
mixLabel
 
double phi_
 
edm::EDGetTokenT< HepMCProductsignalLabel
 
bool useRecVertex
 
edm::EDGetTokenT
< reco::VertexCollection
vtxLabel
 
std::vector< double > vtxOffset
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsInputProcessBlocks ()
 
static bool wantsProcessBlocks ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 50 of file MixBoostEvtVtxGenerator.cc.

Constructor & Destructor Documentation

MixBoostEvtVtxGenerator::MixBoostEvtVtxGenerator ( const edm::ParameterSet p)

Definition at line 110 of file MixBoostEvtVtxGenerator.cc.

References alpha_, beta_, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), phi_, and vtxOffset.

111  : fVertex(nullptr),
112  boost_(nullptr),
113  fTimeOffset(0),
114  vtxLabel(mayConsume<reco::VertexCollection>(pset.getParameter<edm::InputTag>("vtxLabel"))),
115  signalLabel(consumes<HepMCProduct>(pset.getParameter<edm::InputTag>("signalLabel"))),
116  mixLabel(consumes<CrossingFrame<HepMCProduct> >(pset.getParameter<edm::InputTag>("mixLabel"))),
117  useRecVertex(pset.exists("useRecVertex") ? pset.getParameter<bool>("useRecVertex") : false) {
118  beta_ = pset.getParameter<double>("Beta");
119  alpha_ = 0;
120  phi_ = 0;
121  if (pset.exists("Alpha")) {
122  alpha_ = pset.getParameter<double>("Alpha") * radian;
123  phi_ = pset.getParameter<double>("Phi") * radian;
124  }
125 
126  vtxOffset.resize(3);
127  if (pset.exists("vtxOffset"))
128  vtxOffset = pset.getParameter<std::vector<double> >("vtxOffset");
129 
130  produces<edm::HepMCProduct>();
131 }
edm::EDGetTokenT< HepMCProduct > signalLabel
std::vector< double > vtxOffset
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::EDGetTokenT< reco::VertexCollection > vtxLabel
edm::EDGetTokenT< CrossingFrame< HepMCProduct > > mixLabel
MixBoostEvtVtxGenerator::MixBoostEvtVtxGenerator ( const MixBoostEvtVtxGenerator p)
delete

Copy constructor

MixBoostEvtVtxGenerator::~MixBoostEvtVtxGenerator ( )
override

Definition at line 133 of file MixBoostEvtVtxGenerator.cc.

References boost_, and fVertex.

133  {
134  if (fVertex != nullptr)
135  delete fVertex;
136  if (boost_ != nullptr)
137  delete boost_;
138 }

Member Function Documentation

void MixBoostEvtVtxGenerator::Alpha ( double  m = 0)
inline

angle between crossing plane and horizontal plane

Definition at line 78 of file MixBoostEvtVtxGenerator.cc.

References visualization-live-secondInstance_cfg::m.

void MixBoostEvtVtxGenerator::Beta ( double  m = 0)
inline
double MixBoostEvtVtxGenerator::BetaFunction ( double  z,
double  z0 
)

beta function

Definition at line 140 of file MixBoostEvtVtxGenerator.cc.

References fbetastar, femittance, and mathSSE::sqrt().

140  {
141  return sqrt(femittance * (fbetastar + (((z - z0) * (z - z0)) / fbetastar)));
142 }
T sqrt(T t)
Definition: SSEVec.h:19
void MixBoostEvtVtxGenerator::betastar ( double  m = 0)
inline
void MixBoostEvtVtxGenerator::emittance ( double  m = 0)
inline
TMatrixD * MixBoostEvtVtxGenerator::GetInvLorentzBoost ( )
virtual

Definition at line 153 of file MixBoostEvtVtxGenerator.cc.

References alpha_, beta_, boost_, funct::cos(), phi_, funct::sin(), mathSSE::sqrt(), and funct::tan().

Referenced by produce().

153  {
154  //alpha_ = 0;
155  //phi_ = 142.e-6;
156  // if (boost_ != 0 ) return boost_;
157 
158  //boost_.ResizeTo(4,4);
159  //boost_ = new TMatrixD(4,4);
160  TMatrixD tmpboost(4, 4);
161  TMatrixD tmpboostZ(4, 4);
162  TMatrixD tmpboostXYZ(4, 4);
163 
164  //if ( (alpha_ == 0) && (phi_==0) ) { boost_->Zero(); return boost_; }
165 
166  // Lorentz boost to frame where the collision is head-on
167  // phi is the half crossing angle in the plane ZS
168  // alpha is the angle to the S axis from the X axis in the XY plane
169 
170  tmpboost(0, 0) = 1. / cos(phi_);
171  tmpboost(0, 1) = -cos(alpha_) * sin(phi_);
172  tmpboost(0, 2) = -tan(phi_) * sin(phi_);
173  tmpboost(0, 3) = -sin(alpha_) * sin(phi_);
174  tmpboost(1, 0) = -cos(alpha_) * tan(phi_);
175  tmpboost(1, 1) = 1.;
176  tmpboost(1, 2) = cos(alpha_) * tan(phi_);
177  tmpboost(1, 3) = 0.;
178  tmpboost(2, 0) = 0.;
179  tmpboost(2, 1) = -cos(alpha_) * sin(phi_);
180  tmpboost(2, 2) = cos(phi_);
181  tmpboost(2, 3) = -sin(alpha_) * sin(phi_);
182  tmpboost(3, 0) = -sin(alpha_) * tan(phi_);
183  tmpboost(3, 1) = 0.;
184  tmpboost(3, 2) = sin(alpha_) * tan(phi_);
185  tmpboost(3, 3) = 1.;
186  //cout<<"beta "<<beta_;
187  double gama = 1.0 / sqrt(1 - beta_ * beta_);
188  tmpboostZ(0, 0) = gama;
189  tmpboostZ(0, 1) = 0.;
190  tmpboostZ(0, 2) = -1.0 * beta_ * gama;
191  tmpboostZ(0, 3) = 0.;
192  tmpboostZ(1, 0) = 0.;
193  tmpboostZ(1, 1) = 1.;
194  tmpboostZ(1, 2) = 0.;
195  tmpboostZ(1, 3) = 0.;
196  tmpboostZ(2, 0) = -1.0 * beta_ * gama;
197  tmpboostZ(2, 1) = 0.;
198  tmpboostZ(2, 2) = gama;
199  tmpboostZ(2, 3) = 0.;
200  tmpboostZ(3, 0) = 0.;
201  tmpboostZ(3, 1) = 0.;
202  tmpboostZ(3, 2) = 0.;
203  tmpboostZ(3, 3) = 1.;
204 
205  tmpboostXYZ = tmpboostZ * tmpboost;
206  tmpboostXYZ.Invert();
207 
208  //cout<<"Boosting with beta : "<<beta_<<endl;
209 
210  boost_ = new TMatrixD(tmpboostXYZ);
211  boost_->Print();
212 
213  return boost_;
214 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
T sqrt(T t)
Definition: SSEVec.h:19
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
HepMC::FourVector * MixBoostEvtVtxGenerator::getRecVertex ( edm::Event evt)
virtual

Definition at line 258 of file MixBoostEvtVtxGenerator.cc.

References fVertex, edm::Event::getByToken(), input, vtxLabel, and vtxOffset.

Referenced by produce().

258  {
260  evt.getByToken(vtxLabel, input);
261 
262  double aX, aY, aZ;
263 
264  aX = input->begin()->position().x() + vtxOffset[0];
265  aY = input->begin()->position().y() + vtxOffset[1];
266  aZ = input->begin()->position().z() + vtxOffset[2];
267 
268  if (!fVertex)
269  fVertex = new HepMC::FourVector();
270  fVertex->set(10.0 * aX, 10.0 * aY, 10.0 * aZ, 0.0); // HepMC positions in mm (RECO in cm)
271 
272  return fVertex;
273 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
std::vector< double > vtxOffset
static std::string const input
Definition: EdmProvDump.cc:47
edm::EDGetTokenT< reco::VertexCollection > vtxLabel
HepMC::FourVector * MixBoostEvtVtxGenerator::getVertex ( edm::Event evt)
virtual

Definition at line 216 of file MixBoostEvtVtxGenerator.cc.

References gather_cfg::cout, Exception, fVertex, edm::Event::getByToken(), reco_application_tbsim_DetSim-Digi_cfg::mix, mixLabel, edm::Handle< T >::product(), and DiDispStaMuonMonitor_cfi::pt.

Referenced by produce().

216  {
217  const HepMC::GenEvent* inev = nullptr;
218 
220  evt.getByToken(mixLabel, cf);
222 
223  const HepMCProduct& bkg = mix.getObject(1);
224  if (!(bkg.isVtxGenApplied())) {
225  throw cms::Exception("MatchVtx") << "Input background does not have smeared vertex!" << endl;
226  } else {
227  inev = bkg.GetEvent();
228  }
229 
230  HepMC::GenVertex* genvtx = inev->signal_process_vertex();
231  if (!genvtx) {
232  cout << "No Signal Process Vertex!" << endl;
233  HepMC::GenEvent::particle_const_iterator pt = inev->particles_begin();
234  HepMC::GenEvent::particle_const_iterator ptend = inev->particles_end();
235  while (!genvtx || (genvtx->particles_in_size() == 1 && pt != ptend)) {
236  if (!genvtx)
237  cout << "No Gen Vertex!" << endl;
238  if (pt == ptend)
239  cout << "End reached!" << endl;
240  genvtx = (*pt)->production_vertex();
241  ++pt;
242  }
243  }
244  double aX, aY, aZ, aT;
245 
246  aX = genvtx->position().x();
247  aY = genvtx->position().y();
248  aZ = genvtx->position().z();
249  aT = genvtx->position().t();
250 
251  if (!fVertex)
252  fVertex = new HepMC::FourVector();
253  fVertex->set(aX, aY, aZ, aT);
254 
255  return fVertex;
256 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
edm::EDGetTokenT< CrossingFrame< HepMCProduct > > mixLabel
T const * product() const
Definition: Handle.h:70
tuple cout
Definition: gather_cfg.py:144
MixBoostEvtVtxGenerator& MixBoostEvtVtxGenerator::operator= ( const MixBoostEvtVtxGenerator rhs)
delete

Copy assignment operator

void MixBoostEvtVtxGenerator::Phi ( double  m = 0)
inline
void MixBoostEvtVtxGenerator::produce ( edm::Event evt,
const edm::EventSetup  
)
overridevirtual

return a new event vertex

Implements edm::EDProducer.

Definition at line 275 of file MixBoostEvtVtxGenerator.cc.

References edm::Event::getByToken(), GetInvLorentzBoost(), getRecVertex(), getVertex(), eostools::move(), edm::Event::put(), signalLabel, and useRecVertex.

275  {
276  Handle<HepMCProduct> HepUnsmearedMCEvt;
277  evt.getByToken(signalLabel, HepUnsmearedMCEvt);
278 
279  // Copy the HepMC::GenEvent
280  HepMC::GenEvent* genevt = new HepMC::GenEvent(*HepUnsmearedMCEvt->GetEvent());
281  std::unique_ptr<edm::HepMCProduct> HepMCEvt(new edm::HepMCProduct(genevt));
282  // generate new vertex & apply the shift
283  //
284 
285  HepMCEvt->boostToLab(GetInvLorentzBoost(), "vertex");
286  HepMCEvt->boostToLab(GetInvLorentzBoost(), "momentum");
287 
288  HepMCEvt->applyVtxGen(useRecVertex ? getRecVertex(evt) : getVertex(evt));
289 
290  evt.put(std::move(HepMCEvt));
291  return;
292 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
edm::EDGetTokenT< HepMCProduct > signalLabel
def move
Definition: eostools.py:511
virtual TMatrixD * GetInvLorentzBoost()
virtual HepMC::FourVector * getRecVertex(edm::Event &)
virtual HepMC::FourVector * getVertex(edm::Event &)
void MixBoostEvtVtxGenerator::sigmaZ ( double  s = 1.0)

set resolution in Z in cm

Definition at line 144 of file MixBoostEvtVtxGenerator.cc.

References Exception, fSigmaZ, and alignCSCRings::s.

144  {
145  if (s >= 0) {
146  fSigmaZ = s;
147  } else {
148  throw cms::Exception("LogicError") << "Error in MixBoostEvtVtxGenerator::sigmaZ: "
149  << "Illegal resolution in Z (negative)";
150  }
151 }
void MixBoostEvtVtxGenerator::X0 ( double  m = 0)
inline
void MixBoostEvtVtxGenerator::Y0 ( double  m = 0)
inline
void MixBoostEvtVtxGenerator::Z0 ( double  m = 0)
inline

Member Data Documentation

double MixBoostEvtVtxGenerator::alpha_
private

Definition at line 90 of file MixBoostEvtVtxGenerator.cc.

Referenced by GetInvLorentzBoost(), and MixBoostEvtVtxGenerator().

double MixBoostEvtVtxGenerator::beta_
private

Definition at line 92 of file MixBoostEvtVtxGenerator.cc.

Referenced by GetInvLorentzBoost(), and MixBoostEvtVtxGenerator().

TMatrixD* MixBoostEvtVtxGenerator::boost_
private

Definition at line 100 of file MixBoostEvtVtxGenerator.cc.

Referenced by GetInvLorentzBoost(), and ~MixBoostEvtVtxGenerator().

double MixBoostEvtVtxGenerator::falpha
private

Definition at line 97 of file MixBoostEvtVtxGenerator.cc.

double MixBoostEvtVtxGenerator::fbetastar
private

Definition at line 96 of file MixBoostEvtVtxGenerator.cc.

Referenced by BetaFunction().

double MixBoostEvtVtxGenerator::femittance
private

Definition at line 96 of file MixBoostEvtVtxGenerator.cc.

Referenced by BetaFunction().

double MixBoostEvtVtxGenerator::fSigmaZ
private

Definition at line 94 of file MixBoostEvtVtxGenerator.cc.

Referenced by sigmaZ().

double MixBoostEvtVtxGenerator::fTimeOffset
private

Definition at line 101 of file MixBoostEvtVtxGenerator.cc.

HepMC::FourVector* MixBoostEvtVtxGenerator::fVertex
private

Definition at line 99 of file MixBoostEvtVtxGenerator.cc.

Referenced by getRecVertex(), getVertex(), and ~MixBoostEvtVtxGenerator().

double MixBoostEvtVtxGenerator::fX0
private

Definition at line 93 of file MixBoostEvtVtxGenerator.cc.

double MixBoostEvtVtxGenerator::fY0
private

Definition at line 93 of file MixBoostEvtVtxGenerator.cc.

double MixBoostEvtVtxGenerator::fZ0
private

Definition at line 93 of file MixBoostEvtVtxGenerator.cc.

edm::EDGetTokenT<CrossingFrame<HepMCProduct> > MixBoostEvtVtxGenerator::mixLabel
private

Definition at line 105 of file MixBoostEvtVtxGenerator.cc.

Referenced by getVertex().

double MixBoostEvtVtxGenerator::phi_
private

Definition at line 90 of file MixBoostEvtVtxGenerator.cc.

Referenced by GetInvLorentzBoost(), and MixBoostEvtVtxGenerator().

edm::EDGetTokenT<HepMCProduct> MixBoostEvtVtxGenerator::signalLabel
private

Definition at line 104 of file MixBoostEvtVtxGenerator.cc.

Referenced by produce().

bool MixBoostEvtVtxGenerator::useRecVertex
private

Definition at line 106 of file MixBoostEvtVtxGenerator.cc.

Referenced by produce().

edm::EDGetTokenT<reco::VertexCollection> MixBoostEvtVtxGenerator::vtxLabel
private

Definition at line 103 of file MixBoostEvtVtxGenerator.cc.

Referenced by getRecVertex().

std::vector<double> MixBoostEvtVtxGenerator::vtxOffset
private

Definition at line 107 of file MixBoostEvtVtxGenerator.cc.

Referenced by getRecVertex(), and MixBoostEvtVtxGenerator().