Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:19:55

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef GLOBALVERTEX_GLOBALVERTEXRECO_H
0004 #define GLOBALVERTEX_GLOBALVERTEXRECO_H
0005 
0006 //===========================================================
0007 /// \file GlobalVertexReco.h
0008 /// \brief reconstruct the best possible vertexes by
0009 /// combining results from multiple detectors
0010 /// \author Mike McCumber
0011 //===========================================================
0012 
0013 #include <fun4all/SubsysReco.h>
0014 #include "GlobalVertex.h"
0015 
0016 #include <string>  // for string
0017 
0018 class PHCompositeNode;
0019 
0020 /// \class GlobalVertexReco
0021 ///
0022 /// \brief simple truth vertex smearing algorithm
0023 ///
0024 class GlobalVertexReco : public SubsysReco
0025 {
0026  public:
0027   GlobalVertexReco(const std::string &name = "GlobalVertexReco");
0028   ~GlobalVertexReco() override = default;
0029 
0030   int InitRun(PHCompositeNode *topNode) override;
0031   int process_event(PHCompositeNode *topNode) override;
0032 
0033   void setVertexType(GlobalVertex::VTXTYPE vtxtype)
0034   {
0035     _vtxtype = vtxtype;
0036   }
0037   
0038   void set_x_defaults(float xdefault, float xerr)
0039   {
0040     _xdefault = xdefault;
0041     _xerr = xerr;
0042   }
0043   void set_y_defaults(float ydefault, float yerr)
0044   {
0045     _ydefault = ydefault;
0046     _yerr = yerr;
0047   }
0048   void set_t_defaults(float tdefault, float terr)
0049   {
0050     _tdefault = tdefault;
0051     _terr = terr;
0052   }
0053 
0054  private:
0055   int CreateNodes(PHCompositeNode *topNode);
0056   int useVertexType(GlobalVertex::VTXTYPE vtxtype)
0057   {
0058     return ( (_vtxtype == vtxtype) || (_vtxtype == GlobalVertex::VTXTYPE::UNDEFINED) );
0059   }
0060 
0061   GlobalVertex::VTXTYPE _vtxtype{GlobalVertex::VTXTYPE::UNDEFINED};
0062 
0063   float _xdefault{0.};
0064   float _xerr{0.3};
0065   float _ydefault{0.};
0066   float _yerr{0.3};
0067   float _tdefault{0.};
0068   float _terr{0.2};
0069 };
0070 
0071 #endif  // GLOBALVERTEX_GLOBALVERTEXRECO_H