EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Fun4AllHepMCPileupInputManager Class Reference

#include <fun4all_coresoftware/blob/master/generators/phhepmc/Fun4AllHepMCPileupInputManager.h>

+ Inheritance diagram for Fun4AllHepMCPileupInputManager:
+ Collaboration diagram for Fun4AllHepMCPileupInputManager:

Public Member Functions

 Fun4AllHepMCPileupInputManager (const std::string &name="DUMMY", const std::string &nodename="DST", const std::string &topnodename="TOP")
 
 ~Fun4AllHepMCPileupInputManager () override
 
int run (const int nevents=0) override
 
int run (const int nevents, const bool skip)
 
int ResetEvent () override
 
void set_time_window (double past_nsec, double future_nsec)
 past times are negative, future times are positive
 
void set_collision_rate (double Hz)
 collision rate in Hz
 
void set_time_between_crossings (double nsec)
 time between bunch crossing in ns
 
int SkipForThisManager (const int nevents) override
 
void SignalInputManager (Fun4AllHepMCInputManager *in)
 
int PushBackEvents (const int i) override
 
- Public Member Functions inherited from Fun4AllHepMCInputManager
 Fun4AllHepMCInputManager (const std::string &name="DUMMY", const std::string &nodename="DST", const std::string &topnodename="TOP")
 
 ~Fun4AllHepMCInputManager () override
 
int fileopen (const std::string &filenam) override
 
int fileclose () override
 
void ReadOscar (const int i)
 
int ReadOscar () const
 
void Print (const std::string &what="ALL") const override
 
int SyncIt (const SyncObject *) override
 
int GetSyncObject (SyncObject **) override
 
int NoSyncPushBackEvents (const int nevt) override
 
HepMC::GenEvent * ConvertFromOscar ()
 
int MyCurrentEvent (const unsigned int index=0) const
 
- Public Member Functions inherited from Fun4AllInputManager
 ~Fun4AllInputManager () override
 
virtual int ReadInRunNode (PHCompositeNode *)
 
std::string FileName () const
 
void FileName (const std::string &fn)
 
virtual int BranchSelect (const std::string &, const int)
 
virtual int setBranches ()
 
void Print (const std::string &what="ALL") const override
 
virtual int skip (const int nevt)
 
int AddFile (const std::string &filename)
 
int AddListFile (const std::string &filename, const int do_it=0)
 
int registerSubsystem (SubsysReco *subsystem)
 
virtual int RejectEvent ()
 
void Repeat (const int i=-1)
 
virtual void setSyncManager (Fun4AllSyncManager *master)
 
virtual int ResetFileList ()
 
virtual void SetRunNumber (const int runno)
 
virtual int RunNumber () const
 
void AddToFileOpened (const std::string &filename)
 
std::pair< std::list
< std::string >
::const_iterator, std::list
< std::string >
::const_iterator > 
FileOpenListBeginEnd ()
 
std::string InputNode ()
 
void InputNode (const std::string &innode)
 
std::string TopNodeName () const
 
bool FileListEmpty () const
 
virtual int IsOpen () const
 
virtual int HasSyncObject () const
 
- Public Member Functions inherited from Fun4AllBase
virtual ~Fun4AllBase ()
 
virtual const std::string Name () const
 Returns the name of this module.
 
virtual void Name (const std::string &name)
 Sets the name of this module.
 
virtual void Verbosity (const int ival)
 Sets the verbosity of this module (0 by default=quiet).
 
virtual void Verbosity (enu_Verbosity ival)
 Sets the verbosity of this module (0 by default=quiet).
 
virtual int Verbosity () const
 Gets the verbosity of this module.
 
- Public Member Functions inherited from PHHepMCGenHelper
 PHHepMCGenHelper ()
 
virtual ~PHHepMCGenHelper ()
 
void set_vertex_distribution_function (VTXFUNC x, VTXFUNC y, VTXFUNC z, VTXFUNC t)
 toss a new vertex according to a Uniform or Gaus distribution
 
void set_vertex_distribution_mean (const double x, const double y, const double z, const double t)
 set the mean value of the vertex distribution, use PHENIX units of cm, ns
 
void set_vertex_distribution_width (const double x, const double y, const double z, const double t)
 set the width of the vertex distribution function about the mean, use PHENIX units of cm, ns
 
int get_embedding_id () const
 
void set_embedding_id (int id)
 
void set_reuse_vertex (int src_embedding_id)
 reuse vertex from another PHHepMCGenEvent with embedding_id = src_embedding_id Additional smearing and shift possible with set_vertex_distribution_*()
 
virtual int create_node_tree (PHCompositeNode *topNode)
 init interface nodes
 
const PHHepMCGenEventget_PHHepMCGenEvent_template () const
 choice of reference version of the PHHepMCGenEvent
 
PHHepMCGenEventinsert_event (HepMC::GenEvent *evt)
 send HepMC::GenEvent to DST tree. This function takes ownership of evt
 
const PHHepMCGenEventMapget_geneventmap () const
 
PHHepMCGenEventMapget_geneventmap ()
 
gsl_rng * get_random_generator ()
 
void set_geneventmap (PHHepMCGenEventMap *geneventmap)
 
void set_beam_direction_theta_phi (const double beamA_theta, const double beamA_phi, const double beamB_theta, const double beamB_phi)
 
void set_beam_angular_divergence_hv (const double beamA_divergence_h, const double beamA_divergence_v, const double beamB_divergence_h, const double beamB_divergence_v)
 
void set_beam_angular_z_coefficient_hv (const double beamA_h, const double beamA_v, const double beamB_h, const double beamB_v)
 
void use_beam_bunch_sim (bool b)
 simulate bunch interaction instead of applying vertex distributions
 
void set_beam_bunch_width (const std::vector< double > &beamA, const std::vector< double > &beamB)
 
void CopySettings (PHHepMCGenHelper &helper)
 
void CopySettings (PHHepMCGenHelper *helper_dest)
 copy setting to helper_dest
 
void CopyHelperSettings (PHHepMCGenHelper *helper_src)
 copy setting from helper_src
 
void Print (const std::string &what="ALL") const
 
void PHHepMCGenHelper_Verbosity (int v)
 
int PHHepMCGenHelper_Verbosity ()
 

Private Member Functions

int InsertEvent (HepMC::GenEvent *evt, const double crossing_time)
 

Private Attributes

Fun4AllHepMCInputManagerm_SignalInputManager = nullptr
 
gsl_rng * RandomGenerator = nullptr
 
int m_SignalEventNumber = 0
 
double _min_integration_time = -17500.0
 past times are negative, future times are positive
 
double _max_integration_time = 17500.0
 
double _collision_rate = 100.0e3
 collision rate in Hz
 
double _time_between_crossings = 106.0
 time between bunch crossing in ns
 
double _ave_coll_per_crossing = 1.
 
int _min_crossing = 0
 
int _max_crossing = 0
 
bool _first_run = true
 
std::map< int, double > m_EventNumberMap
 

Additional Inherited Members

- Public Types inherited from Fun4AllBase
enum  enu_Verbosity {
  VERBOSITY_QUIET = 0, VERBOSITY_SOME = 1, VERBOSITY_MORE = 2, VERBOSITY_EVEN_MORE = 3,
  VERBOSITY_A_LOT = 4, VERBOSITY_MAX = INT_MAX - 10
}
 
- Public Types inherited from PHHepMCGenHelper
enum  VTXFUNC { Uniform, Gaus }
 supported function distributions More...
 
- Protected Member Functions inherited from Fun4AllInputManager
 Fun4AllInputManager (const std::string &name="DUMMY", const std::string &nodename="DST", const std::string &topnodename="TOP")
 
void UpdateFileList ()
 
int OpenNextFile ()
 
void IsOpen (const int i)
 
Fun4AllSyncManagerMySyncManager ()
 
- Protected Member Functions inherited from PHHepMCGenHelper
void HepMC2Lab_boost_rotation_translation (PHHepMCGenEvent *genevent)
 Record the translation,boost,rotation for HepMC frame to lab frame according to collision settings.
 
void move_vertex (PHHepMCGenEvent *genevent)
 move vertex in translation according to vertex settings
 
std::pair< double, double > generate_vertx_with_bunch_interaction (PHHepMCGenEvent *genevent)
 
- Protected Attributes inherited from Fun4AllHepMCInputManager
HepMC::GenEvent * evt = nullptr
 
int events_total = 0
 
int events_thisfile = 0
 
int m_EventPushedBackFlag = 0
 
HepMC::IO_GenEvent * ascii_in = nullptr
 
std::string m_HepMCTmpFile
 

Detailed Description

Generate pile up collisions based on beam parameter If set_embedding_id(i) with a negative number or 0, the pile up event will be inserted with increasing positive embedding_id. This is the default operation mode. If set_embedding_id(i) with a positive number, the pile up event will be inserted with increasing positive embedding_id. This would be a strange way to use pile up.

Definition at line 14 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 14 of file Fun4AllHepMCPileupInputManager.h

Constructor & Destructor Documentation

Fun4AllHepMCPileupInputManager::Fun4AllHepMCPileupInputManager ( const std::string &  name = "DUMMY",
const std::string &  nodename = "DST",
const std::string &  topnodename = "TOP" 
)

repeatedly read the input file

If set_embedding_id(i) with a negative number or 0, the pile up event will be inserted with increasing positive embedding_id. This is the default operation mode.

Definition at line 22 of file Fun4AllHepMCPileupInputManager.cc.

View newest version in sPHENIX GitHub at line 22 of file Fun4AllHepMCPileupInputManager.cc

References RandomGenerator, Fun4AllInputManager::Repeat(), and PHHepMCGenHelper::set_embedding_id().

+ Here is the call graph for this function:

Fun4AllHepMCPileupInputManager::~Fun4AllHepMCPileupInputManager ( )
override

Definition at line 39 of file Fun4AllHepMCPileupInputManager.cc.

View newest version in sPHENIX GitHub at line 39 of file Fun4AllHepMCPileupInputManager.cc

References RandomGenerator.

Member Function Documentation

int Fun4AllHepMCPileupInputManager::InsertEvent ( HepMC::GenEvent *  evt,
const double  crossing_time 
)
private

If set_embedding_id(i) with a positive number, the pile up event will be inserted with increasing positive embedding_id. This would be a strange way to use pile up.

If set_embedding_id(i) with a negative number or 0, the pile up event will be inserted with increasing positive embedding_id. This is the default operation mode.

Definition at line 243 of file Fun4AllHepMCPileupInputManager.cc.

View newest version in sPHENIX GitHub at line 243 of file Fun4AllHepMCPileupInputManager.cc

References PHHepMCGenEvent::addEvent(), genevent(), PHHepMCGenHelper::get_embedding_id(), PHHepMCGenHelper::get_geneventmap(), PHHepMCGenHelper::get_PHHepMCGenEvent_template(), PHHepMCGenHelper::HepMC2Lab_boost_rotation_translation(), PHHepMCGenEventMap::insert_active_event(), PHHepMCGenEventMap::insert_background_event(), and PHHepMCGenEvent::moveVertex().

Referenced by run().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int Fun4AllHepMCPileupInputManager::PushBackEvents ( const int  i)
overridevirtual

Reimplemented from Fun4AllHepMCInputManager.

Definition at line 218 of file Fun4AllHepMCPileupInputManager.cc.

View newest version in sPHENIX GitHub at line 218 of file Fun4AllHepMCPileupInputManager.cc

References PHHepMCGenEventMap::begin(), PHHepMCGenEventMap::end(), PHHepMCGenHelper::get_geneventmap(), m_EventNumberMap, Fun4AllHepMCInputManager::m_EventPushedBackFlag, Fun4AllHepMCInputManager::m_HepMCTmpFile, Fun4AllBase::Name(), and nlohmann::to_string().

+ Here is the call graph for this function:

int Fun4AllHepMCPileupInputManager::ResetEvent ( )
overridevirtual

Reimplemented from Fun4AllHepMCInputManager.

Definition at line 211 of file Fun4AllHepMCPileupInputManager.cc.

View newest version in sPHENIX GitHub at line 211 of file Fun4AllHepMCPileupInputManager.cc

References m_EventNumberMap, and m_SignalEventNumber.

Referenced by run().

+ Here is the caller graph for this function:

int Fun4AllHepMCPileupInputManager::run ( const int  nevents = 0)
inlineoverridevirtual

Reimplemented from Fun4AllHepMCInputManager.

Definition at line 22 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 22 of file Fun4AllHepMCPileupInputManager.h

References nevents, and run().

Referenced by run(), and SkipForThisManager().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Fun4AllHepMCPileupInputManager::set_collision_rate ( double  Hz)
inline

collision rate in Hz

Definition at line 34 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 34 of file Fun4AllHepMCPileupInputManager.h

References _collision_rate.

Referenced by InputManagers().

+ Here is the caller graph for this function:

void Fun4AllHepMCPileupInputManager::set_time_between_crossings ( double  nsec)
inline

time between bunch crossing in ns

Definition at line 36 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 36 of file Fun4AllHepMCPileupInputManager.h

References _time_between_crossings.

void Fun4AllHepMCPileupInputManager::set_time_window ( double  past_nsec,
double  future_nsec 
)
inline

past times are negative, future times are positive

Definition at line 27 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 27 of file Fun4AllHepMCPileupInputManager.h

References _max_integration_time, and _min_integration_time.

Referenced by InputManagers().

+ Here is the caller graph for this function:

void Fun4AllHepMCPileupInputManager::SignalInputManager ( Fun4AllHepMCInputManager in)
inline

Definition at line 39 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 39 of file Fun4AllHepMCPileupInputManager.h

References in, and m_SignalInputManager.

Referenced by InputManagers().

+ Here is the caller graph for this function:

int Fun4AllHepMCPileupInputManager::SkipForThisManager ( const int  nevents)
overridevirtual

Reimplemented from Fun4AllHepMCInputManager.

Definition at line 44 of file Fun4AllHepMCPileupInputManager.cc.

View newest version in sPHENIX GitHub at line 44 of file Fun4AllHepMCPileupInputManager.cc

References m_SignalEventNumber, m_SignalInputManager, Fun4AllHepMCInputManager::MyCurrentEvent(), nevents, and run().

+ Here is the call graph for this function:

Member Data Documentation

double Fun4AllHepMCPileupInputManager::_ave_coll_per_crossing = 1.
private

Definition at line 58 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 58 of file Fun4AllHepMCPileupInputManager.h

Referenced by run().

double Fun4AllHepMCPileupInputManager::_collision_rate = 100.0e3
private

collision rate in Hz

Definition at line 53 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 53 of file Fun4AllHepMCPileupInputManager.h

Referenced by run(), and set_collision_rate().

bool Fun4AllHepMCPileupInputManager::_first_run = true
private

Definition at line 62 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 62 of file Fun4AllHepMCPileupInputManager.h

Referenced by run().

int Fun4AllHepMCPileupInputManager::_max_crossing = 0
private

Definition at line 60 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 60 of file Fun4AllHepMCPileupInputManager.h

Referenced by run().

double Fun4AllHepMCPileupInputManager::_max_integration_time = 17500.0
private

Definition at line 51 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 51 of file Fun4AllHepMCPileupInputManager.h

Referenced by run(), and set_time_window().

int Fun4AllHepMCPileupInputManager::_min_crossing = 0
private

Definition at line 59 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 59 of file Fun4AllHepMCPileupInputManager.h

Referenced by run().

double Fun4AllHepMCPileupInputManager::_min_integration_time = -17500.0
private

past times are negative, future times are positive

Definition at line 50 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 50 of file Fun4AllHepMCPileupInputManager.h

Referenced by run(), and set_time_window().

double Fun4AllHepMCPileupInputManager::_time_between_crossings = 106.0
private

time between bunch crossing in ns

Definition at line 55 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 55 of file Fun4AllHepMCPileupInputManager.h

Referenced by run(), and set_time_between_crossings().

std::map<int, double> Fun4AllHepMCPileupInputManager::m_EventNumberMap
private

Definition at line 64 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 64 of file Fun4AllHepMCPileupInputManager.h

Referenced by PushBackEvents(), ResetEvent(), and run().

int Fun4AllHepMCPileupInputManager::m_SignalEventNumber = 0
private

Definition at line 48 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 48 of file Fun4AllHepMCPileupInputManager.h

Referenced by ResetEvent(), run(), and SkipForThisManager().

Fun4AllHepMCInputManager* Fun4AllHepMCPileupInputManager::m_SignalInputManager = nullptr
private

Definition at line 45 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 45 of file Fun4AllHepMCPileupInputManager.h

Referenced by run(), SignalInputManager(), and SkipForThisManager().

gsl_rng* Fun4AllHepMCPileupInputManager::RandomGenerator = nullptr
private

Definition at line 46 of file Fun4AllHepMCPileupInputManager.h.

View newest version in sPHENIX GitHub at line 46 of file Fun4AllHepMCPileupInputManager.h

Referenced by Fun4AllHepMCPileupInputManager(), run(), and ~Fun4AllHepMCPileupInputManager().


The documentation for this class was generated from the following files: