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