#ifndef SolidGenerateIBD_h #define SolidGenerateIBD_h 1 #include "G4DynamicParticle.hh" #include "globals.hh" #include "TFile.h" #include "TH1D.h" #include "TH2D.h" #include "TLorentzVector.h" #include "SolidIBDKinematics.hh" class SolidGenerateIBD { public: SolidGenerateIBD(const char* RootFile = "./properties/Reactor_IBD_REP900_30m.root"); ~SolidGenerateIBD(); public: void NewInteraction(G4DynamicParticle *positron, G4DynamicParticle *neutron, G4ThreeVector antineutrinoMomentrumDirection, G4double energy); private: double randomWithinInterval(double lowerLimit, double upperLimit); double randomNeutrinoEnergy(); private: TFile* _ratefile; TH1D* _anuerate; protonibd_Vogel0* _ibdKinematics; }; #endif