Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:18:19

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef G4VERTEX_GLOBALVERTEXFASTSIMRECO_H
0004 #define G4VERTEX_GLOBALVERTEXFASTSIMRECO_H
0005 
0006 //===========================================================
0007 /// \file GlobalVertexFastSimReco.h
0008 /// \brief simple truth vertex smearing algorithm
0009 /// \author Mike McCumber
0010 //===========================================================
0011 
0012 #include <fun4all/SubsysReco.h>
0013 
0014 #include <gsl/gsl_rng.h>
0015 
0016 #include <limits>
0017 #include <string>  // for string
0018 
0019 class PHCompositeNode;
0020 
0021 /// \class GlobalVertexFastSimReco
0022 ///
0023 /// \brief simple truth vertex smearing algorithm
0024 ///
0025 class GlobalVertexFastSimReco : public SubsysReco
0026 {
0027  public:
0028   GlobalVertexFastSimReco(const std::string &name = "GlobalVertexFastSimReco");
0029   ~GlobalVertexFastSimReco() override;
0030 
0031   int InitRun(PHCompositeNode *topNode) override;
0032   int process_event(PHCompositeNode *topNode) override;
0033 
0034   void set_x_smearing(const float x_smear) { _x_smear = x_smear; }
0035   void set_y_smearing(const float y_smear) { _y_smear = y_smear; }
0036   void set_z_smearing(const float z_smear) { _z_smear = z_smear; }
0037   void set_t_smearing(const float t_smear) { _t_smear = t_smear; }
0038 
0039  private:
0040   int CreateNodes(PHCompositeNode *topNode);
0041 
0042   float _x_smear = std::numeric_limits<float>::quiet_NaN();
0043   float _y_smear = std::numeric_limits<float>::quiet_NaN();
0044   float _z_smear = std::numeric_limits<float>::quiet_NaN();
0045   float _t_smear = std::numeric_limits<float>::quiet_NaN();
0046   gsl_rng *RandomGenerator = nullptr;
0047 };
0048 
0049 #endif  // G4VERTEX_GLOBALVERTEXFASTSIMRECO_H