Public Member Functions | Private Member Functions | Private Attributes | List of all members
lar_dl_content::DlHitValidationAlgorithm Class Reference

DlHitValidationlgorithm class. More...

#include <DlHitValidationAlgorithm.h>

Inheritance diagram for lar_dl_content::DlHitValidationAlgorithm:

Public Member Functions

 DlHitValidationAlgorithm ()
 Default constructor. More...
 
virtual ~DlHitValidationAlgorithm ()
 

Private Member Functions

pandora::StatusCode Run ()
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 

Private Attributes

pandora::StringVector m_caloHitListNames
 Name of input calo hit list. More...
 
int m_confusionU [2][2]
 Confusion matrix for the U view. More...
 
int m_confusionV [2][2]
 Confusion matrix for the V view. More...
 
int m_confusionW [2][2]
 Confusion matrix for the W view. More...
 

Detailed Description

DlHitValidationlgorithm class.

Definition at line 19 of file DlHitValidationAlgorithm.h.

Constructor & Destructor Documentation

lar_dl_content::DlHitValidationAlgorithm::DlHitValidationAlgorithm ( )

Default constructor.

Definition at line 24 of file DlHitValidationAlgorithm.cc.

25 {
26 }
int m_confusionW[2][2]
Confusion matrix for the W view.
int m_confusionU[2][2]
Confusion matrix for the U view.
int m_confusionV[2][2]
Confusion matrix for the V view.
lar_dl_content::DlHitValidationAlgorithm::~DlHitValidationAlgorithm ( )
virtual

Definition at line 30 of file DlHitValidationAlgorithm.cc.

31 {
32  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "u_true_shower", m_confusionU[0][0]));
33  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "u_false_shower", m_confusionU[1][0]));
34  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "u_false_track", m_confusionU[0][1]));
35  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "u_true_track", m_confusionU[1][1]));
36  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "v_true_shower", m_confusionV[0][0]));
37  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "v_false_shower", m_confusionV[1][0]));
38  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "v_false_track", m_confusionV[0][1]));
39  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "v_true_track", m_confusionV[1][1]));
40  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "w_true_shower", m_confusionW[0][0]));
41  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "w_false_shower", m_confusionW[1][0]));
42  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "w_false_track", m_confusionW[0][1]));
43  PANDORA_MONITORING_API(SetTreeVariable(this->GetPandora(), "confusion_tree", "w_true_track", m_confusionW[1][1]));
44  PANDORA_MONITORING_API(FillTree(this->GetPandora(), "confusion_tree"));
45  try
46  {
47  PANDORA_MONITORING_API(SaveTree(this->GetPandora(), "confusion_tree", "confusion.root", "UPDATE"));
48  }
49  catch (const StatusCodeException &)
50  {
51  std::cout << "DlHitValidationAlgorithm: Unable to write confusion_tree to file" << std::endl;
52  }
53 }
int m_confusionW[2][2]
Confusion matrix for the W view.
int m_confusionU[2][2]
Confusion matrix for the U view.
int m_confusionV[2][2]
Confusion matrix for the V view.
QTextStream & endl(QTextStream &s)

Member Function Documentation

StatusCode lar_dl_content::DlHitValidationAlgorithm::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
private

Definition at line 111 of file DlHitValidationAlgorithm.cc.

112 {
113  PANDORA_RETURN_RESULT_IF_AND_IF(
114  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadVectorOfValues(xmlHandle, "CaloHitListNames", m_caloHitListNames));
115 
116  return STATUS_CODE_SUCCESS;
117 }
pandora::StringVector m_caloHitListNames
Name of input calo hit list.
StatusCode lar_dl_content::DlHitValidationAlgorithm::Run ( )
private

Definition at line 57 of file DlHitValidationAlgorithm.cc.

58 {
59  const int SHOWER_IDX{0}, TRACK_IDX{1};
60  for (const std::string listName : m_caloHitListNames)
61  {
62  const CaloHitList *pCaloHitList(nullptr);
63  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::GetList(*this, listName, pCaloHitList));
64  const MCParticleList *pMCParticleList(nullptr);
65  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::GetCurrentList(*this, pMCParticleList));
66 
67  const HitType view{pCaloHitList->front()->GetHitType()};
68 
69  if (!(view == TPC_VIEW_U || view == TPC_VIEW_V || view == TPC_VIEW_W))
70  return STATUS_CODE_NOT_ALLOWED;
71 
73  // Only care about reconstructability with respect to the current view, so skip good view check
74  parameters.m_minHitsForGoodView = 0;
75  // Turn off max photo propagation for now, only care about killing off daughters of neutrons
77  LArMCParticleHelper::MCContributionMap targetMCParticleToHitsMap;
78  LArMCParticleHelper::SelectReconstructableMCParticles(
79  pMCParticleList, pCaloHitList, parameters, LArMCParticleHelper::IsBeamNeutrinoFinalState, targetMCParticleToHitsMap);
80 
81  for (const CaloHit *pCaloHit : *pCaloHitList)
82  {
83  try
84  {
85  const MCParticle *const pMCParticle(MCParticleHelper::GetMainMCParticle(pCaloHit));
86  const int pdg{std::abs(pMCParticle->GetParticleId())};
87  const int truth{(pdg == 11 || pdg == 22) ? SHOWER_IDX : TRACK_IDX};
88  const LArCaloHit *pLArCaloHit{dynamic_cast<const LArCaloHit *>(pCaloHit)};
89  const float pTrack{pLArCaloHit->GetTrackProbability()};
90  const float pShower{pLArCaloHit->GetShowerProbability()};
91  const int cls{(pShower > pTrack) ? SHOWER_IDX : TRACK_IDX};
92  if (view == TPC_VIEW_U)
93  ++m_confusionU[truth][cls];
94  else if (view == TPC_VIEW_V)
95  ++m_confusionV[truth][cls];
96  else
97  ++m_confusionW[truth][cls];
98  }
99  catch (const StatusCodeException &)
100  {
101  continue;
102  }
103  }
104  }
105 
106  return STATUS_CODE_SUCCESS;
107 }
std::unordered_map< const pandora::MCParticle *, pandora::CaloHitList > MCContributionMap
int m_confusionW[2][2]
Confusion matrix for the W view.
enum cvn::HType HitType
std::string string
Definition: nybbler.cc:12
pandora::StringVector m_caloHitListNames
Name of input calo hit list.
int m_confusionU[2][2]
Confusion matrix for the U view.
LAr calo hit class.
Definition: LArCaloHit.h:39
unsigned int m_minHitsForGoodView
the minimum number of Hits for a good view
float m_maxPhotonPropagation
the maximum photon propagation length
T abs(T value)
int m_confusionV[2][2]
Confusion matrix for the V view.
static int max(int a, int b)
float GetTrackProbability() const
Get the probability that the hit is track-like.
Definition: LArCaloHit.h:210

Member Data Documentation

pandora::StringVector lar_dl_content::DlHitValidationAlgorithm::m_caloHitListNames
private

Name of input calo hit list.

Definition at line 33 of file DlHitValidationAlgorithm.h.

int lar_dl_content::DlHitValidationAlgorithm::m_confusionU[2][2]
private

Confusion matrix for the U view.

Definition at line 34 of file DlHitValidationAlgorithm.h.

int lar_dl_content::DlHitValidationAlgorithm::m_confusionV[2][2]
private

Confusion matrix for the V view.

Definition at line 35 of file DlHitValidationAlgorithm.h.

int lar_dl_content::DlHitValidationAlgorithm::m_confusionW[2][2]
private

Confusion matrix for the W view.

Definition at line 36 of file DlHitValidationAlgorithm.h.


The documentation for this class was generated from the following files: