8#include <reconstruction/modules/ClusterMatcher/ClusterMatcherModule.h>
10#include <framework/gearbox/Const.h>
13#include <mdst/dataobjects/KLMCluster.h>
14#include <mdst/dataobjects/ECLCluster.h>
15#include <mdst/dataobjects/Cluster.h>
16#include <mdst/dataobjects/KlId.h>
18#include <Math/VectorUtil.h>
28 setDescription(
"Match KLM cluster to ECL Clusters within a certain cone.");
34 "Cone angle in rad, will be devided by 2 for the matching",
62 const ROOT::Math::XYZVector& eclClusterPos = eclCluster.getClusterPosition();
66 eclCluster.addRelationTo(clusterecl);
70 const ROOT::Math::XYZVector& klmClusterPos = klmcluster.getClusterPosition();
72 angleDist = ROOT::Math::VectorUtil::Angle(eclClusterPos, klmClusterPos);
76 eclCluster.addRelationTo(&klmcluster, angleDist);
77 klmcluster.addRelationTo(clusterecl);
83 (klmcluster.getRelatedTo<
KlId>() !=
nullptr) ? klmcluster.getRelatedTo<
KlId>()->
getKlId() : std::numeric_limits<float>::quiet_NaN()
85 klmcluster.addRelationTo(clusterklm);
StoreArray< KLMCluster > m_klmClusters
Required array of input KLMClusters.
virtual void initialize() override
init
virtual void event() override
process event
ClusterMatcherModule()
Constructor.
virtual ~ClusterMatcherModule()
Destructor.
StoreArray< ECLCluster > m_eclClusters
Required array of input ECLClusters.
float m_coneInRad
cone angle for matching (whole cone)
StoreArray< Cluster > m_Clusters
array of output Clusters
Class to collect log likelihoods from Clusters from ECL and KLM aimed for output to mdst includes fun...
void setLogLikelihood(Const::EDetector det, const Const::Cluster &cluster, float logl)
Set log likelihood for a given detector and particle.
static const Cluster clusterKlong
K^0_L cluster.
Klong identifcation (KlId) datastore object to store results from KlId calculations.
double getKlId() const
get the klong classifier output
void setDescription(const std::string &description)
Sets the description of the module.
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Abstract base class for different kinds of events.