ATLAS Offline Software
Loading...
Searching...
No Matches
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 );
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;
54};
55
56#endif
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
std::vector< int > m_pileupProfile
TH1D * m_htgPileupEvents
std::vector< float > m_multbcid
MultiPy8Pileup(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< double > m_pileupProfileIntegral
std::string m_filename
int nPileupEvents(CLHEP::HepRandomEngine *rndmEngine)
TH1D * m_htgPileupProfile
std::vector< HepMC::GenEvent * > m_evts
virtual StatusCode genInitialize()
For initializing the generator, if required.
Definition Pythia8_i.cxx:98
virtual StatusCode fillEvt(HepMC::GenEvent *evt)
For filling the HepMC event object.
virtual StatusCode callGenerator()
For calling the generator on each iteration of the event loop.
virtual StatusCode genFinalize()
For finalising the generator, if required.
Pythia8_i(const std::string &name, ISvcLocator *pSvcLocator)
Definition Pythia8_i.cxx:68