Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions offline/packages/trigger/MinimumBiasClassifier.cc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

MinimumBiasClassifier::MinimumBiasClassifier(const std::string &name)
: SubsysReco(name)
, m_MinBiasParams(name)
{
}
int MinimumBiasClassifier::InitRun(PHCompositeNode *topNode)
Expand Down Expand Up @@ -90,6 +91,17 @@ int MinimumBiasClassifier::InitRun(PHCompositeNode *topNode)

CreateNodes(topNode);

// Create Space on NodeTree to save Minimum Bias Params
PHNodeIterator parIter(topNode);
m_parNode = dynamic_cast<PHCompositeNode *>(parIter.findFirst("PHCompositeNode", "PAR"));
if (!m_parNode)
{
std::cout << "No RUN node found; cannot create PHParameters. Aborting run!";
return Fun4AllReturnCodes::ABORTRUN;
}

m_MinBiasParams.SaveToNodeTree(m_parNode, "MinBiasParams");

m_zdc_energy_sum.fill(0);
m_mbd_charge_sum.fill(0);
m_mbd_hit.fill(0);
Expand All @@ -113,6 +125,13 @@ int MinimumBiasClassifier::FillMinimumBiasInfo()
std::cout << "Getting Vertex" << std::endl;
}

// set defaults
m_MinBiasParams.set_int_param("minbias_background_cut_fail", false);
m_MinBiasParams.set_int_param("minbias_two_hit_min_fail", false);
m_MinBiasParams.set_int_param("minbias_zdc_energy_min_fail", false);
m_MinBiasParams.set_int_param("minbias_mbd_total_energy_max_fail", false);
m_MinBiasParams.UpdateNodeTree(m_parNode, "MinBiasParams");

// if (!m_global_vertex_map)
// {
// m_mb_info->setIsAuAuMinimumBias(false);
Expand Down Expand Up @@ -163,6 +182,7 @@ int MinimumBiasClassifier::FillMinimumBiasInfo()
return Fun4AllReturnCodes::EVENT_OK;
}
}

// Z vertex is within range
if (std::fabs(m_vertex) > m_z_vtx_cut && minbiascheck)
{
Expand All @@ -186,6 +206,12 @@ int MinimumBiasClassifier::FillMinimumBiasInfo()
m_mbd_hit[side]++;
m_mbd_charge_sum[side] += m_mbd_pmt->get_q() * m_vertex_scale * m_centrality_scale;
}

m_MinBiasParams.set_double_param("minbias_mbd_total_charge_south", m_mbd_charge_sum[0]);
m_MinBiasParams.set_double_param("minbias_mbd_total_charge_north", m_mbd_charge_sum[1]);
m_MinBiasParams.set_double_param("minbias_vertex_scale", m_vertex_scale);
m_MinBiasParams.set_double_param("minbias_centrality_scale", m_centrality_scale);

if (Verbosity())
{
std::cout << m_mbd_charge_sum[0] << " " << m_mbd_charge_sum[1] << std::endl;
Expand All @@ -195,6 +221,7 @@ int MinimumBiasClassifier::FillMinimumBiasInfo()
if (m_box_cut && m_mbd_charge_sum[1] < m_mbd_north_cut && m_mbd_charge_sum[0] > m_mbd_south_cut && minbiascheck)
{
minbiascheck = false;
m_MinBiasParams.set_int_param("minbias_background_cut_fail", true);
// m_mb_info->setIsAuAuMinimumBias(false);
// return Fun4AllReturnCodes::EVENT_OK;
}
Expand All @@ -205,6 +232,7 @@ int MinimumBiasClassifier::FillMinimumBiasInfo()
if (m_mbd_hit[iside] < m_hit_cut && minbiascheck)
{
minbiascheck = false;
m_MinBiasParams.set_int_param("minbias_two_hit_min_fail", true);
// m_mb_info->setIsAuAuMinimumBias(false);
// return Fun4AllReturnCodes::EVENT_OK;
}
Expand All @@ -213,6 +241,7 @@ int MinimumBiasClassifier::FillMinimumBiasInfo()
if (m_zdcinfo->get_zdc_energy(iside) <= m_zdc_cut && minbiascheck)
{
minbiascheck = false;
m_MinBiasParams.set_int_param("minbias_zdc_energy_min_fail", true);
// m_mb_info->setIsAuAuMinimumBias(false);
// return Fun4AllReturnCodes::EVENT_OK;
}
Expand All @@ -221,10 +250,12 @@ int MinimumBiasClassifier::FillMinimumBiasInfo()
if ((m_mbd_charge_sum[0] + m_mbd_charge_sum[1]) > m_max_charge_cut && minbiascheck)
{
minbiascheck = false;
m_MinBiasParams.set_int_param("minbias_mbd_total_energy_max_fail", true);
// m_mb_info->setIsAuAuMinimumBias(false);
// return Fun4AllReturnCodes::EVENT_OK;
}

m_MinBiasParams.UpdateNodeTree(m_parNode, "MinBiasParams");
m_mb_info->setIsAuAuMinimumBias(minbiascheck);

return Fun4AllReturnCodes::EVENT_OK;
Expand Down Expand Up @@ -303,6 +334,7 @@ int MinimumBiasClassifier::GetNodes(PHCompositeNode *topNode)
std::cout << "no vertex map node " << std::endl;
return Fun4AllReturnCodes::ABORTRUN;
}

return Fun4AllReturnCodes::EVENT_OK;
}

Expand Down
5 changes: 5 additions & 0 deletions offline/packages/trigger/MinimumBiasClassifier.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#ifndef TRIGGER_MINBIASCLASSIFIER_H
#define TRIGGER_MINBIASCLASSIFIER_H

#include <phparameter/PHParameters.h>
#include <fun4all/SubsysReco.h>
#include <array>
#include <limits>
Expand Down Expand Up @@ -58,6 +59,7 @@ class MinimumBiasClassifier : public SubsysReco
m_overwrite_vtx = true;
}
void setIsSim(const bool sim) { m_issim = sim; }
void set_mbd_total_charge_cut(const double max_charge_cut) { m_max_charge_cut = max_charge_cut; }

void setSpecies(MinimumBiasInfo::SPECIES spec) { m_species = spec; };

Expand Down Expand Up @@ -100,6 +102,9 @@ class MinimumBiasClassifier : public SubsysReco
double m_vertex_scale{std::numeric_limits<double>::quiet_NaN()};
float m_vertex{std::numeric_limits<float>::quiet_NaN()};
std::vector<std::pair<std::pair<float, float>, float>> m_vertex_scales{};

PHParameters m_MinBiasParams;
PHCompositeNode* m_parNode{nullptr};
};

#endif