File indexing completed on 2025-08-06 08:13:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #define SCORRELATORUTILITIES_GEVTINFO_CC
0012
0013
0014 #include "GEvtInfo.h"
0015
0016
0017 using namespace std;
0018
0019
0020
0021 namespace SColdQcdCorrelatorAnalysis {
0022
0023
0024
0025
0026
0027
0028 void Types::GEvtInfo::Minimize() {
0029
0030
0031 nChrgPar = -1 * numeric_limits<int>::max();
0032 nNeuPar = -1 * numeric_limits<int>::max();
0033 eSumChrg = -1. * numeric_limits<double>::max();
0034 eSumNeu = -1. * numeric_limits<double>::max();
0035
0036
0037 partons = make_pair(ParInfo(Const::Init::Minimize), ParInfo(Const::Init::Minimize));
0038 return;
0039
0040 }
0041
0042
0043
0044
0045
0046
0047 void Types::GEvtInfo::Maximize() {
0048
0049
0050 nChrgPar = numeric_limits<int>::max();
0051 nNeuPar = numeric_limits<int>::max();
0052 eSumChrg = numeric_limits<double>::max();
0053 eSumNeu = numeric_limits<double>::max();
0054
0055
0056 partons = make_pair(ParInfo(Const::Init::Maximize), ParInfo(Const::Init::Maximize));
0057 return;
0058
0059 }
0060
0061
0062
0063
0064
0065
0066
0067
0068 void Types::GEvtInfo::Reset() {
0069
0070
0071 isEmbed = false;
0072
0073
0074 Maximize();
0075 return;
0076
0077 }
0078
0079
0080
0081
0082
0083
0084 void Types::GEvtInfo::SetInfo(
0085 PHCompositeNode* topNode,
0086 const bool embed,
0087 const vector<int> evtsToGrab
0088 ) {
0089
0090
0091 isEmbed = embed;
0092
0093
0094 isEmbed = embed;
0095 if (isEmbed) {
0096 partons.first = Tools::GetPartonInfo(topNode, Const::SubEvt::EmbedSignal, Const::HardScatterStatus::First);
0097 partons.second = Tools::GetPartonInfo(topNode, Const::SubEvt::EmbedSignal, Const::HardScatterStatus::Second);
0098
0099 } else {
0100 partons.first = Tools::GetPartonInfo(topNode, Const::SubEvt::NotEmbedSignal, Const::HardScatterStatus::First);
0101 partons.second = Tools::GetPartonInfo(topNode, Const::SubEvt::NotEmbedSignal, Const::HardScatterStatus::Second);
0102 }
0103
0104
0105 nChrgPar = Tools::GetNumFinalStatePars(topNode, evtsToGrab, Const::Subset::Charged);
0106 nNeuPar = Tools::GetNumFinalStatePars(topNode, evtsToGrab, Const::Subset::Neutral);
0107 eSumChrg = Tools::GetSumFinalStateParEne(topNode, evtsToGrab, Const::Subset::Charged);
0108 eSumNeu = Tools::GetSumFinalStateParEne(topNode, evtsToGrab, Const::Subset::Neutral);
0109 return;
0110
0111 }
0112
0113
0114
0115
0116
0117
0118
0119
0120 vector<string> Types::GEvtInfo::GetListOfMembers() {
0121
0122
0123 vector<string> membersParA = ParInfo::GetListOfMembers();
0124 vector<string> membersParB = ParInfo::GetListOfMembers();
0125
0126
0127 Interfaces::AddTagToLeaves("PartonA", membersParA);
0128 Interfaces::AddTagToLeaves("PartonB", membersParB);
0129
0130
0131 vector<string> members = {
0132 "nChrgPar",
0133 "nNeuPar",
0134 "isEmbed",
0135 "eSumChrg",
0136 "eSumNeu"
0137 };
0138 Interfaces::CombineLeafLists(membersParA, members);
0139 Interfaces::CombineLeafLists(membersParB, members);
0140 return members;
0141
0142 }
0143
0144
0145
0146
0147
0148
0149
0150
0151 Types::GEvtInfo::GEvtInfo() {
0152
0153
0154
0155 }
0156
0157
0158
0159
0160
0161
0162 Types::GEvtInfo::~GEvtInfo() {
0163
0164
0165
0166 }
0167
0168
0169
0170
0171
0172
0173 Types::GEvtInfo::GEvtInfo(const Const::Init init) {
0174
0175 switch (init) {
0176 case Const::Init::Minimize:
0177 Minimize();
0178 break;
0179 case Const::Init::Maximize:
0180 Maximize();
0181 break;
0182 default:
0183 Maximize();
0184 break;
0185 }
0186
0187 }
0188
0189
0190
0191
0192
0193
0194 Types::GEvtInfo::GEvtInfo(
0195 PHCompositeNode* topNode,
0196 const bool embed,
0197 vector<int> evtsToGrab
0198 ) {
0199
0200 SetInfo(topNode, embed, evtsToGrab);
0201
0202 }
0203
0204 }
0205
0206
0207