diff --git a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/IGenEventManipulator.h b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/IGenEventManipulator.h new file mode 100644 index 0000000000000000000000000000000000000000..d7a721b282edfee14af2d68ff0f7f6b61b29a52b --- /dev/null +++ b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/IGenEventManipulator.h @@ -0,0 +1,49 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/////////////////////////////////////////////////////////////////// +// IGenEventManipulator.h, (c) ATLAS Detector software +/////////////////////////////////////////////////////////////////// + +#ifndef ISF_HEPMC_INTERFACES_IGENEVENTMANIPULATOR_H +#define ISF_HEPMC_INTERFACES_IGENEVENTMANIPULATOR_H 1 + +// Gaudi +#include "GaudiKernel/IAlgTool.h" + +namespace HepMC { + class GenEvent; +} + +namespace ISF { + + static const InterfaceID IID_IGenEventManipulator("IGenEventManipulator", 1, 0); + + /** + @class IGenEventManipulator + + Interface definition for the HepMC::GenEvent manipulator, + the provided GenEvent is hereby changed, i.e. geometrical transformations are applied to + all contained vertices. + + @author Andreas.Salzburger -at- cern.ch + */ + + class IGenEventManipulator : virtual public IAlgTool { + public: + + /** Virtual destructor */ + virtual ~IGenEventManipulator(){} + + /** AlgTool interface methods */ + static const InterfaceID& interfaceID() { return IID_IGenEventManipulator; } + + /** Returns the Particle Stack, should register truth */ + virtual StatusCode manipulate(HepMC::GenEvent& ge) = 0; + + }; + +} // end of namespace + +#endif // ISF_HEPMC_INTERFACES_IGENEVENTMANIPULATOR_H diff --git a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/IGenParticleFilter.h b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/IGenParticleFilter.h new file mode 100644 index 0000000000000000000000000000000000000000..54adad8b4c85f40dafcf75b8e2fe4144128a345f --- /dev/null +++ b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/IGenParticleFilter.h @@ -0,0 +1,51 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/////////////////////////////////////////////////////////////////// +// IGenParticleFilter.h, (c) ATLAS Detector software +/////////////////////////////////////////////////////////////////// + +#ifndef ISF_HEPMC_INTERFACES_IGENPARTICLEFILTER_H +#define ISF_HEPMC_INTERFACES_IGENPARTICLEFILTER_H 1 + +// Gaudi +#include "GaudiKernel/IAlgTool.h" + +// Simulation includes +#include "ISF_Event/SimSvcID.h" + +namespace HepMC { + class GenParticle; +} + +namespace ISF { + + static const InterfaceID IID_IGenParticleFilter("IGenParticleFilter", 1, 0); + + /** + @class IGenParticleFilter + + Interface definition for HepMC::GenParticle filter, + these filters should be primarily be used in the stack filling process + + @author Andreas.Salzburger -at- cern.ch + */ + + class IGenParticleFilter : virtual public IAlgTool { + public: + + /** Virtual destructor */ + virtual ~IGenParticleFilter(){} + + /** AlgTool interface methods */ + static const InterfaceID& interfaceID() { return IID_IGenParticleFilter; } + + /** Returns a boolean if the particle has passed or not */ + virtual bool pass(const HepMC::GenParticle& particle) const = 0; + + }; + +} // end of namespace + +#endif // ISF_HEPMC_INTERFACES_IGENPARTICLEFILTER_H diff --git a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/ILorentzVectorGenerator.h b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/ILorentzVectorGenerator.h new file mode 100644 index 0000000000000000000000000000000000000000..f104e674097e997ec3dabab151fe4fa582105ddf --- /dev/null +++ b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/ILorentzVectorGenerator.h @@ -0,0 +1,46 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/////////////////////////////////////////////////////////////////// +// ILorentzVectorGenerator.h, (c) ATLAS Detector software +/////////////////////////////////////////////////////////////////// + +#ifndef ISF_HEPMC_INTERFACES_ILORENTZVECTORGENERATOR_H +#define ISF_HEPMC_INTERFACES_ILORENTZVECTORGENERATOR_H 1 + +// Gaudi +#include "GaudiKernel/IAlgTool.h" + +// forward declarations +namespace CLHEP { + class HepLorentzVector; +} + +namespace ISF { + + static const InterfaceID IID_ILorentzVectorGenerator("ILorentzVectorGenerator", 1, 0); + + /** + @class ILorentzVectorGenerator + + Interface definition for an AthenaTool creating a HepLorentzVector + + @author Elmar.Ritsch -at- cern.ch + */ + + class ILorentzVectorGenerator : virtual public IAlgTool { + public: + /** Virtual destructor */ + virtual ~ILorentzVectorGenerator(){} + + /** AlgTool interface methods */ + static const InterfaceID& interfaceID() { return IID_ILorentzVectorGenerator; } + + /** Returns a boolean if the particle has passed or not */ + virtual CLHEP::HepLorentzVector* generate() = 0; + }; + +} // end of namespace + +#endif // ISF_HEPMC_INTERFACES_ILORENTZVECTORGENERATOR_H diff --git a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/ITruthStrategy.h b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/ITruthStrategy.h new file mode 100644 index 0000000000000000000000000000000000000000..a11ab4cf7e01e6dcea22ecfbcc86e6a1735e2837 --- /dev/null +++ b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/ISF_HepMC_Interfaces/ITruthStrategy.h @@ -0,0 +1,43 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/////////////////////////////////////////////////////////////////// +// ITruthStrategy.h, (c) ATLAS Detector software +/////////////////////////////////////////////////////////////////// + +#ifndef ISF_HEPMC_INTERFACES_ITRUTHSTRATEGY_H +#define ISF_HEPMC_INTERFACES_ITRUTHSTRATEGY_H 1 + +// Gaudi +#include "GaudiKernel/IAlgTool.h" + +// forward declarations +namespace HepMC { + class GenVertex; +} +namespace ISF { + class ITruthIncident; + + static const InterfaceID IID_ITruthStrategy("ITruthStrategy", 1, 0); + + /** + @class ITruthStrategy + + @TODO: class description + + @author Elmar.Ritsch -at- cern.ch + */ + + class ITruthStrategy : virtual public IAlgTool { + public: + /** AlgTool interface methods */ + static const InterfaceID& interfaceID() { return IID_ITruthStrategy; } + + /** true if the ITruthStrategy implementation applies to the given ITruthIncident */ + virtual bool pass( const ITruthIncident& incident) const = 0; + }; + +} // end of namespace + +#endif // ISF_HEPMC_INTERFACES_ITRUTHSTRATEGY_H diff --git a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/cmt/requirements b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/cmt/requirements new file mode 100644 index 0000000000000000000000000000000000000000..6678f4e10ad4a2d3329be4ec0738f4c2e73ecc32 --- /dev/null +++ b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Interfaces/cmt/requirements @@ -0,0 +1,16 @@ +package ISF_HepMC_Interfaces +author <Andreas.Salzburger@cern.ch> + +manager Andreas Salzburger <Andreas.Salzburger@cern.ch> +manager Elmar Ritsch <Elmar.Ritsch@cern.ch> +manager Wolfgang Lukas <Wolfgang.Lukas@cern.ch> + +public +use AtlasPolicy AtlasPolicy-* +use GaudiInterface GaudiInterface-* External +use ISF_Event ISF_Event-* Simulation/ISF/ISF_Core +end_public + +private +#macro cppdebugflags '$(cppdebugflags_s)' +#macro_remove componentshr_linkopts "-Wl,-s"