Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:13:21

0001 /// ---------------------------------------------------------------------------
0002 /*! \file   REvtInfo.cc
0003  *  \author Derek Anderson
0004  *  \date   03.06.2024
0005  *
0006  *  Utility class to hold event-level reconstructed
0007  *  information.
0008  */
0009 /// ---------------------------------------------------------------------------
0010 
0011 #define SCORRELATORUTILITIES_REVTINFO_CC
0012 
0013 // class definition
0014 #include "REvtInfo.h"
0015 
0016 // make comon namespaces implicit
0017 using namespace std;
0018 
0019 
0020 
0021 namespace SColdQcdCorrelatorAnalysis {
0022 
0023   // private methods ==========================================================
0024 
0025   // --------------------------------------------------------------------------
0026   //! Set data members to absolute minima
0027   // --------------------------------------------------------------------------
0028   void Types::REvtInfo::Minimize() {
0029 
0030     nTrks     = -1 * numeric_limits<int>::max();
0031     pSumTrks  = -1. * numeric_limits<double>::max();
0032     eSumEMCal = -1. * numeric_limits<double>::max();
0033     eSumIHCal = -1. * numeric_limits<double>::max();
0034     eSumOHCal = -1. * numeric_limits<double>::max();
0035     vx        = -1. * numeric_limits<double>::max();
0036     vy        = -1. * numeric_limits<double>::max();
0037     vz        = -1. * numeric_limits<double>::max();
0038     vr        = -1. * numeric_limits<double>::max();
0039     return;
0040 
0041   }  // end 'Minimize()'
0042 
0043 
0044 
0045   // --------------------------------------------------------------------------
0046   //! Set data members to absolute maxima
0047   // --------------------------------------------------------------------------
0048   void Types::REvtInfo::Maximize() {
0049 
0050     nTrks     = numeric_limits<int>::max();
0051     pSumTrks  = numeric_limits<double>::max();
0052     eSumEMCal = numeric_limits<double>::max();
0053     eSumIHCal = numeric_limits<double>::max();
0054     eSumOHCal = numeric_limits<double>::max();
0055     vx        = numeric_limits<double>::max();
0056     vy        = numeric_limits<double>::max();
0057     vz        = numeric_limits<double>::max();
0058     vr        = numeric_limits<double>::max();
0059     return;
0060 
0061   }  // end 'Maximize()'
0062 
0063 
0064 
0065   // public methods ===========================================================
0066 
0067   // --------------------------------------------------------------------------
0068   //! Reset object by maximizing data members
0069   // --------------------------------------------------------------------------
0070   void Types::REvtInfo::Reset() {
0071 
0072     Maximize();
0073     return;
0074 
0075   }  // end 'Reset()'
0076 
0077 
0078 
0079   // --------------------------------------------------------------------------
0080   //! Pull relevant information from a F4A node
0081   // --------------------------------------------------------------------------
0082   void Types::REvtInfo::SetInfo(PHCompositeNode* topNode) {
0083 
0084     // get sums
0085     nTrks     = Tools::GetNumTrks(topNode);
0086     pSumTrks  = Tools::GetSumTrkMomentum(topNode);
0087     eSumEMCal = Tools::GetSumCaloEne(topNode, "CLUSTER_CEMC");
0088     eSumIHCal = Tools::GetSumCaloEne(topNode, "CLUSTER_HCALIN");
0089     eSumOHCal = Tools::GetSumCaloEne(topNode, "CLUSTER_HCALOUT");
0090 
0091     // get vertex
0092     ROOT::Math::XYZVector vtx = Interfaces::GetRecoVtx(topNode);
0093     vx = vtx.x();
0094     vy = vtx.y();
0095     vz = vtx.z();
0096     vr = hypot(vx, vy);
0097     return;
0098 
0099   }  // end 'SetInfo(PHCompositeNode*)'
0100 
0101 
0102 
0103   // static methods ===========================================================
0104 
0105   // --------------------------------------------------------------------------
0106   //! Get list of data fields
0107   // --------------------------------------------------------------------------
0108   vector<string> Types::REvtInfo::GetListOfMembers() {
0109 
0110     vector<string> members = {
0111       "nTrks",
0112       "pSumTrks",
0113       "eSumEMCal",
0114       "eSumIHCal",
0115       "eSumOHCal",
0116       "vx",
0117       "vy",
0118       "vz",
0119       "vr"
0120     };
0121     return members;
0122 
0123   }  // end 'GetListOfMembers()'
0124 
0125 
0126 
0127   // ctor/dtor ================================================================
0128 
0129   // --------------------------------------------------------------------------
0130   //! Default class constructor
0131   // --------------------------------------------------------------------------
0132   Types::REvtInfo::REvtInfo() {
0133 
0134     /* nothing to do */
0135 
0136   }  // end ctor()
0137 
0138 
0139 
0140   // --------------------------------------------------------------------------
0141   //! Default class destructor
0142   // --------------------------------------------------------------------------
0143   Types::REvtInfo::~REvtInfo() {
0144 
0145     /* nothing to do */
0146 
0147   }  // end dtor()
0148 
0149 
0150 
0151   // --------------------------------------------------------------------------
0152   //! Constructor accepting initialization option (minimize or maximize)
0153   // --------------------------------------------------------------------------
0154   Types::REvtInfo::REvtInfo(const Const::Init init) {
0155 
0156     switch (init) {
0157       case Const::Init::Minimize:
0158         Minimize();
0159         break;
0160       case Const::Init::Maximize:
0161         Maximize();
0162         break;
0163       default:
0164         Maximize();
0165         break;
0166     }
0167 
0168   }  // end ctor(Const::init)
0169 
0170 
0171 
0172   // --------------------------------------------------------------------------
0173   //! Constructor accepting a F4A node
0174   // --------------------------------------------------------------------------
0175   Types::REvtInfo::REvtInfo(PHCompositeNode* topNode) {
0176 
0177     SetInfo(topNode);
0178 
0179   }  // end ctor(PHCompositeNode*)
0180 
0181 }  // end SColdQcdCorrelatorAnalysis namespace
0182 
0183 // end ------------------------------------------------------------------------