CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
ManualGenerator.h
Go to the documentation of this file.
1// *****************************************************************************
2//
3// ManualGenerator.h
4//
5// A package to read four-vectors from an input file and send them through
6// the BES detector simulation.
7//
8// Notes:
9//
10// * To use, replace EvtGen in the job options file with:
11//
12// #include "$MANUALGENERATORROOT/share/ManualGenerator.txt"
13// ManualGenerator.InputFile = "inputfile.txt";
14//
15// where "inputfile.txt" is a text file containing four-vectors in
16// the following format for each event:
17//
18// [number of final state particles in this event]
19// [PDG ID of particle 1] [P_x] [P_y] [P_z] [E]
20// [PDG ID of particle 2] [P_x] [P_y] [P_z] [E]
21// and so on.
22//
23// * This package deals only with final state particles. The production
24// of the initial state particle (for example, the J/psi) must be handled
25// by a prior package (for example, KKMC).
26//
27// * Events should be generated with zero net 3-momentum. Particles are
28// then internally boosted to account for the crossing angle, beam energy
29// spread, etc., as reflected by the four-momentum of the initial state
30// particle.
31//
32// * Events should be generated at the origin. Particles are then offset
33// according to the production vertex of the initial state particle.
34//
35// * pi0 and Ks decays are handled by GEANT.
36// (Note that B(pi0 --> gamma gamma) is not 100%.)
37//
38//
39// September 2011 R. Mitchell
40//
41// *****************************************************************************
42
43
44#ifndef MANUALGENERATOR_H
45#define MANUALGENERATOR_H
46
47#include "CLHEP/Vector/LorentzVector.h"
48
49#include "HepMC/GenEvent.h"
50#include "HepMC/GenVertex.h"
51#include "HepMC/GenParticle.h"
52
53#include "GaudiKernel/Algorithm.h"
54#include "GaudiKernel/ISvcLocator.h"
55
56#include <vector>
57#include <fstream>
58
59using namespace std;
60
61class ManualGenerator:public Algorithm {
62
63 public:
64
65 ManualGenerator(const string& name, ISvcLocator* pSvcLocator);
66
67 StatusCode initialize();
68 StatusCode execute();
69 StatusCode finalize();
70
71private:
72
73 int m_eventCounter;
74 string m_inputFileName;
75 ifstream m_inputFile;
76
77};
78
79#endif
StatusCode initialize()
ManualGenerator(const string &name, ISvcLocator *pSvcLocator)
StatusCode finalize()