#include <PileUpSimulator.h>
Public Member Functions | |
PileUpSimulator (FSimEvent *aSimEvent) | |
Constructor. | |
void | produce (const HepMC::GenEvent *pu) |
Produce N minimum bias events, and add them to the FSimEvent. | |
~PileUpSimulator () | |
Default Destructor. | |
Private Attributes | |
double | averageNumber_ |
std::string | inputFile |
unsigned | myOutputBuffer |
std::ofstream | myOutputFile |
FSimEvent * | mySimEvent |
std::vector< TBranch * > | theBranches |
std::vector< unsigned > | theCurrentEntry |
std::vector< unsigned > | theCurrentMinBiasEvt |
std::vector< std::string > | theFileNames |
std::vector< TFile * > | theFiles |
std::vector< unsigned > | theNumberOfEntries |
unsigned | theNumberOfFiles |
std::vector< unsigned > | theNumberOfMinBiasEvts |
std::vector< PUEvent * > | thePUEvents |
std::vector< TTree * > | theTrees |
Definition at line 33 of file PileUpSimulator.h.
PileUpSimulator::PileUpSimulator | ( | FSimEvent * | aSimEvent | ) |
PileUpSimulator::~PileUpSimulator | ( | ) |
void PileUpSimulator::produce | ( | const HepMC::GenEvent * | pu | ) |
Produce N minimum bias events, and add them to the FSimEvent.
Definition at line 16 of file PileUpSimulator.cc.
References FBaseSimEvent::addSimTrack(), FBaseSimEvent::addSimVertex(), configurableAnalysis::GenParticle, mySimEvent, FSimVertexType::PILEUP_VERTEX, RawParticle::setID(), v, vbegin, and vend.
Referenced by FamosManager::reconstruct().
{ // There might be no pile-up event to process (Poisson and/or flag) if ( !myGenEvent ) return; // Pile-up event iterator HepMC::GenEvent::vertex_const_iterator viter; HepMC::GenEvent::vertex_const_iterator vbegin = myGenEvent->vertices_begin(); HepMC::GenEvent::vertex_const_iterator vend = myGenEvent->vertices_end(); int ievt = 0; // Loop on all pile-up events for ( viter=vbegin; viter!=vend; ++viter ) { // std::cout << "Vertex n0 " << ievt << std::endl; // The origin vertex (turn it to cm's from GenEvent mm's) HepMC::GenVertex* v = *viter; XYZTLorentzVector smearedVertex = XYZTLorentzVector(v->position().x()/10.,v->position().y()/10., v->position().z()/10.,v->position().t()/10.); // std::cout << "Vertex position " << smearedVertex << std::endl; // Add it to the FBaseSimEvent int mainVertex = mySimEvent->addSimVertex(smearedVertex, -1, FSimVertexType::PILEUP_VERTEX); // Particles iterator HepMC::GenVertex::particles_out_const_iterator firstDaughterIt = v->particles_out_const_begin(); HepMC::GenVertex::particles_out_const_iterator lastDaughterIt = v->particles_out_const_end(); // Loop on particles for ( ; firstDaughterIt != lastDaughterIt ; ++firstDaughterIt ) { // A particle HepMC::GenParticle* daugh = *firstDaughterIt; RawParticle myPart(XYZTLorentzVector(daugh->momentum().px(), daugh->momentum().py(), daugh->momentum().pz(), daugh->momentum().e()), smearedVertex); // Add it to the FBaseSimEvent myPart.setID(daugh->pdg_id()); // myPart.print(); // Add the particle to the event (with a genpartIndex // indicating the pileup event index) mySimEvent->addSimTrack(&myPart,mainVertex,-ievt-2); // End particle loop } // Increment the number of pile-up events ++ievt; // End vertex loop } // Pile-up events now inserted }
double PileUpSimulator::averageNumber_ [private] |
Definition at line 48 of file PileUpSimulator.h.
std::string PileUpSimulator::inputFile [private] |
Definition at line 51 of file PileUpSimulator.h.
unsigned PileUpSimulator::myOutputBuffer [private] |
Definition at line 64 of file PileUpSimulator.h.
std::ofstream PileUpSimulator::myOutputFile [private] |
Definition at line 63 of file PileUpSimulator.h.
FSimEvent* PileUpSimulator::mySimEvent [private] |
Definition at line 49 of file PileUpSimulator.h.
Referenced by produce().
std::vector<TBranch*> PileUpSimulator::theBranches [private] |
Definition at line 56 of file PileUpSimulator.h.
std::vector<unsigned> PileUpSimulator::theCurrentEntry [private] |
Definition at line 58 of file PileUpSimulator.h.
std::vector<unsigned> PileUpSimulator::theCurrentMinBiasEvt [private] |
Definition at line 59 of file PileUpSimulator.h.
std::vector<std::string> PileUpSimulator::theFileNames [private] |
Definition at line 50 of file PileUpSimulator.h.
std::vector<TFile*> PileUpSimulator::theFiles [private] |
Definition at line 54 of file PileUpSimulator.h.
std::vector<unsigned> PileUpSimulator::theNumberOfEntries [private] |
Definition at line 60 of file PileUpSimulator.h.
unsigned PileUpSimulator::theNumberOfFiles [private] |
Definition at line 52 of file PileUpSimulator.h.
std::vector<unsigned> PileUpSimulator::theNumberOfMinBiasEvts [private] |
Definition at line 61 of file PileUpSimulator.h.
std::vector<PUEvent*> PileUpSimulator::thePUEvents [private] |
Definition at line 57 of file PileUpSimulator.h.
std::vector<TTree*> PileUpSimulator::theTrees [private] |
Definition at line 55 of file PileUpSimulator.h.