Go to the documentation of this file.00001 #ifndef CustomParticleFactory_h
00002 #define CustomParticleFactory_h 1
00003
00004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00005
00006 #include "SimG4Core/CustomPhysics/interface/CustomParticle.h"
00007 #include <set>
00008 #include <string>
00009
00010 class G4DecayTable;
00011
00012
00013
00014
00015 class CustomParticleFactory {
00016
00017 public:
00018 static void loadCustomParticles(const std::string & filePath);
00019 static bool isCustomParticle(G4ParticleDefinition *particle);
00020
00021 private:
00022
00023 static void addCustomParticle(int pdgCode, double mass, const std::string & name );
00024 static void getMassTable(std::ifstream *configFile);
00025 static G4DecayTable* getDecayTable(std::ifstream *configFile, int pdgId);
00026 static G4DecayTable* getAntiDecayTable(int pdgId, G4DecayTable *theDecayTable);
00027
00028 static bool loaded;
00029 static std::set<G4ParticleDefinition *> m_particles;
00030
00031 };
00032
00033 #endif