![]() |
|
|||
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 ------------------------------------------------------------------------
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |