#include "IECALSumupEnergies.hxx" //================================================================================ // Constructor //================================================================================ COMET::IECALSumupEnergies::IECALSumupEnergies() : COMET::IAlgorithm("COMET::IECALSumupEnergies") { } //================================================================================ // Destructor //================================================================================ COMET::IECALSumupEnergies::~IECALSumupEnergies() { } //================================================================================ // Process //================================================================================ COMET::IHandle COMET::IECALSumupEnergies::Process(const COMET::IAlgorithmResult& input) { // Output algorithm result COMET::IHandle result(new COMET::IAlgorithmResult(GetName(), "ECALSumupEnergies")); // Get hit selection COMET::IHandle hits = input.GetHitSelection("ECAL"); if(!hits){ COMETNamedVerbose(GetName(), "Couldn't find 1stECALHits"); return result; } COMETNamedVerbose(GetName(), "Found 1st ECALHits"); //-------------------------------- // Make ReconClusters //-------------------------------- // Container COMET::IReconObjectContainer* clusters = new COMET::IReconObjectContainer("sumupenergies_clusters", "Summed up clusters container"); // ReconCluster COMET::IReconCluster* cluster = MakeAReconCluster(hits); if(cluster){ cluster->SetName("sumupenergies_cluster_000"); cluster->SetTitle("Summed up cluster: 000"); clusters->push_back(COMET::IHandle(cluster)); } // Add to the result if(clusters->size() > 0) result->AddResultsContainer(clusters); return result; } //================================================================================ // MakeAReconCluster //================================================================================ COMET::IReconCluster* COMET::IECALSumupEnergies:: MakeAReconCluster(const COMET::IHandle& hits) { COMETNamedVerbose(GetName(), "Run MakeAReconCluster."); COMET::IReconCluster* cluster = new COMET::IReconCluster(); cluster->FillFromHits("ECALSumupEnergies", *hits); return cluster; }