Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MultiPy8Pileup.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef FASTCHAINPILEUP_MULTIPY8_PILEUP_H
6 #define FASTCHAINPILEUP_MULTIPY8_PILEUP_H
7 
8 // MultiPy8Pileup.h - extension of Pythia8_i to generate multiple
9 // pileup events in one go for fast simulaton chain
10 // Inherits from Pythia8_i, following example of Pythia8B_i
11 
12 // Richard Hawkings, started 20/2/15
13 
14 #include <string>
15 #include <TROOT.h>
16 #include <TFile.h>
17 #include <TH1D.h>
18 
19 #include "Pythia8_i/Pythia8_i.h"
20 
23 
25 
26  public:
27  MultiPy8Pileup( const std::string &name, ISvcLocator *pSvcLocator );
28  ~MultiPy8Pileup();
29 
30  virtual StatusCode genInitialize();
31  virtual StatusCode genFinalize();
32 
33  virtual StatusCode callGenerator();
34  virtual StatusCode fillEvt( HepMC::GenEvent *event );
35 
36  private:
37  int nPileupEvents(CLHEP::HepRandomEngine* rndmEngine); // decide how much pileup events will be generated
38  // parameters
39  int m_ncollevent; // fixed number of collisions per event
40  std::vector< int > m_pileupProfile; // pileup mu-profile
41  std::vector< float > m_multbcid; // mu multipliers per BCID
42  std::string m_filename; // filename for histogram output
43 
44  int m_ngen; // total number of events generated
45  int m_nbad; // total number of failed events
46  // int m_evnumber; // event sequence number
47 
48  std::vector< HepMC::GenEvent * > m_evts; // vector of generated minbias events
49 
50  std::vector< double > m_pileupProfileIntegral;
51 
52  TFile *m_file;
53  TH1D *m_htgPileupProfile, *m_htgPileupMu, *m_htgPileupEvents;
54 };
55 
56 #endif
MultiPy8Pileup::m_pileupProfileIntegral
std::vector< double > m_pileupProfileIntegral
Definition: MultiPy8Pileup.h:50
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
MultiPy8Pileup::m_multbcid
std::vector< float > m_multbcid
Definition: MultiPy8Pileup.h:41
MultiPy8Pileup
Definition: MultiPy8Pileup.h:24
MultiPy8Pileup::m_evts
std::vector< HepMC::GenEvent * > m_evts
Definition: MultiPy8Pileup.h:48
MultiPy8Pileup::m_file
TFile * m_file
Definition: MultiPy8Pileup.h:52
Pythia8_i.h
MultiPy8Pileup::m_filename
std::string m_filename
Definition: MultiPy8Pileup.h:42
MultiPy8Pileup::m_htgPileupProfile
TH1D * m_htgPileupProfile
Definition: MultiPy8Pileup.h:53
Pythia8_i::fillEvt
virtual StatusCode fillEvt(HepMC::GenEvent *evt)
For filling the HepMC event object.
Definition: Pythia8_i.cxx:421
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
Pythia8_i
Definition: Pythia8_i.h:62
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Pythia8_i::callGenerator
virtual StatusCode callGenerator()
For calling the generator on each iteration of the event loop.
Definition: Pythia8_i.cxx:356
GenEvent_fwd.h
Pythia8_i::genFinalize
virtual StatusCode genFinalize()
For finalising the generator, if required.
Definition: Pythia8_i.cxx:646
MultiPy8Pileup::m_nbad
int m_nbad
Definition: MultiPy8Pileup.h:45
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
MultiPy8Pileup::m_ngen
int m_ngen
Definition: MultiPy8Pileup.h:44
MultiPy8Pileup::m_pileupProfile
std::vector< int > m_pileupProfile
Definition: MultiPy8Pileup.h:40
MultiPy8Pileup::m_ncollevent
int m_ncollevent
Definition: MultiPy8Pileup.h:39
checker_macros.h
Define macros for attributes used to control the static checker.
Pythia8_i::genInitialize
virtual StatusCode genInitialize()
For initializing the generator, if required.
Definition: Pythia8_i.cxx:97