10 #ifndef CastorShowerLibraryMaker_h
11 #define CastorShowerLibraryMaker_h
21 #include "G4RunManager.hh"
22 #include "G4SDManager.hh"
26 #include "G4PrimaryVertex.hh"
27 #include "G4VProcess.hh"
28 #include "G4HCofThisEvent.hh"
29 #include "G4UserEventAction.hh"
30 #include "CLHEP/Units/SystemOfUnits.h"
31 #include "CLHEP/Units/PhysicalConstants.h"
53 #include <CLHEP/Random/Randomize.h>
62 #include "TLorentzVector.h"
63 #include "TUnixSystem.h"
81 typedef std::vector<std::vector<std::vector<std::vector<CastorShowerEvent> > > >
SLBin3D;
87 public Observer<const BeginOfEvent *>,
161 double& px,
double& py,
double& pz,
double& pInit,
double&
eta,
double&
phi);
163 double& px,
double& py,
double& pz,
double& pInit,
double&
eta,
double&
phi);
165 std::vector<G4PrimaryParticle*>
GetPrimary(
const G4Event * );
188 #endif // CastorShowerLibraryMaker_h
std::string eventNtFileName
std::vector< double > SLEtaBins
bool DeActivatePhysicsProcess
int & SLnEvtInBinE(int ebin)
CastorShowerEvent * hadShower
std::vector< double > SLPhiBins
int & SLnEvtInBinEta(int ebin, int etabin)
std::vector< G4PrimaryParticle * > thePrims
CastorShowerLibraryInfo SLInfo
virtual ~CastorShowerLibraryMaker()
bool FillShowerEvent(CaloG4HitCollection *, CastorShowerEvent *, int)
void KillSecondaries(const G4Step *step)
void InitSLHolder(ShowerLib &)
void printSLstatus(int, int, int)
bool SLacceptEvent(int, int, int)
bool SLisEtaBinFilled(int ebin, int etabin)
std::vector< std::vector< std::vector< std::vector< CastorShowerEvent > > > > SLBin3D
std::vector< G4PrimaryParticle * > GetPrimary(const G4Event *)
bool SLisEBinFilled(int ebin)
CastorShowerLibraryInfo * hadInfo
std::vector< int > nEvtInBinE
int FindEnergyBin(double e)
std::map< int, G4ThreeVector > PrimaryMomentum
std::map< int, G4ThreeVector > PrimaryPosition
std::vector< std::vector< std::vector< int > > > nEvtInBinPhi
unsigned int nEvtPerBinPhi
std::map< int, std::set< int > > MapOfSecondaries
CastorShowerLibraryInfo * emInfo
CastorShowerLibraryMaker(const edm::ParameterSet &p)
void GetMissingEnergy(CaloG4HitCollection *, double &, double &)
void GetKinematics(G4PrimaryParticle *, double &px, double &py, double &pz, double &pInit, double &eta, double &phi)
int & SLnEvtInBinPhi(int ebin, int etabin, int phibin)
std::vector< std::vector< int > > nEvtInBinEta
int FindPhiBin(double phi)
void update(const BeginOfJob *run)
This routine will be called when the appropriate signal arrives.
unsigned int nEvtPerBinEta
G4THitsCollection< CaloG4Hit > CaloG4HitCollection
bool SLisPhiBinFilled(int ebin, int etabin, int phibin)
std::vector< double > SLEnergyBins
int FindEtaBin(double eta)
std::vector< int > PGParticleIDs
CastorShowerEvent * emShower