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;
87 float m_xposMin_top, m_xposMax_top, m_ypos_top, m_zposMin_top, m_zposMax_top;
88 float m_xposMin_bottom, m_xposMax_bottom, m_ypos_bottom, m_zposMin_bottom, m_zposMax_bottom;
90 float m_tmin, m_tmax,m_tcor;
95 bool m_doublePlaneTrigger;
96 long int m_printEvent, m_printMod;
97 long int m_selection ;
99 float m_thetamin, m_thetamax, m_phimin, m_phimax;
106 std::string m_infile;
107 std::ifstream m_ffile;
110 std::vector<HepLorentzVector> m_fourPos;
111 std::vector<HepLorentzVector> m_fourMom;
113 std::vector<HepMC::Polarization> m_polarization;
116 IMessageSvc* p_msgSvc;
119 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