2#include "FairRootManager.h"
3#include "FairRtdbRun.h"
4#include "FairRuntimeDb.h"
11#include <RtypesCore.h>
17 : FairTask(
"R3BNeulandMultiplicityCalorimetric")
32 auto* ioman = FairRootManager::Instance();
40 auto* rtdb = FairRuntimeDb::instance();
43 throw R3B::runtime_error(
"R3BNeulandMultiplicityCalorimetric::Init: No FairRuntimeDb!");
46 rtdb->getContainer(
"R3BNeulandMultiplicityCalorimetricPar"));
49 throw R3B::runtime_error(
"R3BNeulandMultiplicityCalorimetric::Init: No R3BNeulandMultiplicityCalorimetricPar!");
52 rtdb->initContainers(rtdb->getCurrentRun()->getRunId(), 1);
63 std::accumulate(clusters.cbegin(),
66 [](
const double sum,
const R3BNeulandCluster& cluster) { return sum + cluster.GetE(); });
67 const auto nClusters = clusters.size();
70 fMultiplicity->m.at(
fPar->GetNeutronMultiplicity(Etot,
static_cast<double>(nClusters))) = 1.;
ClassImp(R3B::Neuland::Cal2HitPar)
R3BNeulandMultiplicityCalorimetric(std::string_view input="NeulandClusters", std::string_view output="NeulandMultiplicity")
void Exec(Option_t *) override
R3BNeulandMultiplicityCalorimetricPar * fPar
R3BNeulandMultiplicity * multiplicity_par_ptr
auto Init() -> InitStatus override
std::unique_ptr< R3BNeulandMultiplicity > fMultiplicity
R3B::InputVectorConnector< R3BNeulandCluster > fClusters
NeuLAND number of clusters / energy - neutron multiplicity parameter storage.