17#ifndef GENERATORMODULESCOSMICGEN_H
18#define GENERATORMODULESCOSMICGEN_H
22#include "HepMC/GenEvent.h"
23#include "HepMC/GenParticle.h"
25#include "GaudiKernel/Algorithm.h"
26#include "GaudiKernel/ISvcLocator.h"
27#include "GaudiKernel/AlgFactory.h"
28#include "GaudiKernel/NTuple.h"
30#include "CLHEP/Vector/LorentzVector.h"
31#include "HepMC/Polarization.h"
32#include "CLHEP/Geometry/Point3D.h"
33#include "CLHEP/Geometry/Normal3D.h"
41#ifndef ENABLE_BACKWARDS_COMPATIBILITY
66 StoreGateSvc* m_sgSvc;
67 ActiveStoreSvc* m_activeStore;
68 NTuple::Tuple* m_tuple;
69 NTuple::Item<double> m_cosmicE;
70 NTuple::Item<double> m_cosmicTheta;
71 NTuple::Item<double> m_cosmicPhi;
72 NTuple::Item<double> m_cosmicCharge;
73 NTuple::Tuple* m_tuple1;
74 NTuple::Item<double> mc_phi;
75 NTuple::Item<double> mc_theta;
76 NTuple::Item<double> mc_px;
77 NTuple::Item<double> mc_py;
78 NTuple::Item<double> mc_pz;
81 long int m_events, m_rejected,m_accepted,m_tried;
82 std::vector<int> m_pdgCode;
85 float m_xlow, m_xhig, m_zlow, m_zhig, m_yval, m_IPx, m_IPy, m_IPz;
86 float m_radius, m_xpos, m_ypos, m_zpos;
88 float m_tmin, m_tmax,m_tcor;
93 long int m_printEvent, m_printMod;
94 long int m_selection ;
96 float m_thetamin, m_thetamax, m_phimin, m_phimax;
103 std::string m_infile;
104 std::ifstream m_ffile;
107 std::vector<HepLorentzVector> m_fourPos;
108 std::vector<HepLorentzVector> m_fourMom;
110 std::vector<HepMC::Polarization> m_polarization;
113 IMessageSvc* p_msgSvc;
116 bool exzCut(
const Hep3Vector& pos,
const HepLorentzVector& p);
HepGeom::Point3D< double > HepPoint3D
HepGeom::Normal3D< float > HepNormal3D
HepLorentzVector generateVertex(void)
static IBesRndmGenSvc * p_BesRndmGenSvc
manage multiple CLHEP random engines as named streams