Program Listing for File PhotonEleCa.h

Return to documentation for file (include/crpropa/module/PhotonEleCa.h)

#ifndef CRPROPA_PHOTONELECA_H
#define CRPROPA_PHOTONELECA_H

#include "crpropa/Module.h"
#include "crpropa/magneticField/MagneticField.h"
#include "crpropa/Referenced.h"

#include <memory>
#include <fstream>

// forward declaration
namespace eleca {
class Propagation;
}

namespace crpropa {

class PhotonEleCa: public Module {
private:
        std::auto_ptr<eleca::Propagation> propagation;
        mutable std::ofstream output;
        Vector3d observer;
        bool saveOnlyPhotonEnergies;
public:
        PhotonEleCa(const std::string background, const std::string &outputFilename);
        ~PhotonEleCa();
        void process(Candidate *candidate) const;
        std::string getDescription() const;
        void setObserver(const Vector3d &position);
        void setSaveOnlyPhotonEnergies(bool photonsOnly);
};

} // namespace crpropa

#endif // CRPROPA_PHOTONELECA_H