Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:22:00

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef G4MAIN_COSMICSPRAY_H
0004 #define G4MAIN_COSMICSPRAY_H
0005 
0006 #include "EcoMug.h"
0007 
0008 #include <fun4all/SubsysReco.h>
0009 
0010 #include <limits>
0011 #include <string>  // for string
0012 
0013 class PHCompositeNode;
0014 
0015 // class CosmicSpray : public PHG4ParticleGeneratorBase
0016 class CosmicSpray : public SubsysReco
0017 {
0018  public:
0019   bool InDetector(double x, double y, double z) const;
0020   CosmicSpray(const std::string &name = "COSMICS", const double R = 650);
0021   ~CosmicSpray() override = default;
0022   int InitRun(PHCompositeNode *topNode) override;
0023   int process_event(PHCompositeNode *topNode) override;
0024   void set_gen_min_momentum(const double p) { gen.SetMinimumMomentum(p); }
0025   void set_gen_max_momentum(const double p) { gen.SetMaximumMomentum(p); }
0026 
0027  private:
0028   EcoMug gen;
0029 
0030   double _gun_e = std::numeric_limits<double>::quiet_NaN();
0031   //  double _x_min = std::numeric_limits<double>::quiet_NaN();
0032   double _x_max = std::numeric_limits<double>::quiet_NaN();
0033   //  double _z_min = std::numeric_limits<double>::quiet_NaN();
0034   double _z_max = std::numeric_limits<double>::quiet_NaN();
0035   double _y_fix = std::numeric_limits<double>::quiet_NaN();
0036 
0037   double _R = std::numeric_limits<double>::quiet_NaN();
0038 };
0039 #endif