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
34 changes: 33 additions & 1 deletion 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 @@ -67,6 +68,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 @@ -90,6 +102,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 @@ -140,6 +159,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 @@ -163,6 +183,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 @@ -172,6 +198,7 @@ int MinimumBiasClassifier::FillMinimumBiasInfo()
if (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 @@ -182,6 +209,7 @@ int MinimumBiasClassifier::FillMinimumBiasInfo()
if (m_mbd_hit[iside] < 2 && 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 @@ -190,18 +218,21 @@ 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;
}
}
}
if ((m_mbd_charge_sum[0] + m_mbd_charge_sum[1]) > 2100 && minbiascheck)
if ((m_mbd_charge_sum[0] + m_mbd_charge_sum[1]) > m_mbd_total_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 @@ -280,6 +311,7 @@ int MinimumBiasClassifier::GetNodes(PHCompositeNode *topNode)
std::cout << "no vertex map node " << std::endl;
return Fun4AllReturnCodes::ABORTRUN;
}

return Fun4AllReturnCodes::EVENT_OK;
}

Expand Down
6 changes: 6 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 @@ -55,6 +56,7 @@ class MinimumBiasClassifier : public SubsysReco
m_overwrite_vtx = true;
}
void setIsSim(const bool sim) { m_issim = sim; }
void set_mbd_total_charge_cut(const float mbd_total_charge_cut) { m_mbd_total_charge_cut = mbd_total_charge_cut; }

private:
bool m_issim{false};
Expand All @@ -70,6 +72,7 @@ class MinimumBiasClassifier : public SubsysReco
const float m_mbd_north_cut{10.};
const float m_mbd_south_cut{150};
const float m_mbd_charge_cut{0.5};
float m_mbd_total_charge_cut{2100};
const float m_mbd_time_cut{25.};
// const int m_mbd_tube_cut{2};
const float m_zdc_cut{60.};
Expand All @@ -88,6 +91,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