R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandNeutronsCheat.cxx
Go to the documentation of this file.
2#include "FairRootManager.h"
4#include <FairTask.h>
5#include <Rtypes.h>
6#include <RtypesCore.h>
7#include <cstddef>
8#include <fairlogger/Logger.h>
9#include <string_view>
10
12 std::string_view inputHit,
13 std::string_view output)
14 : FairTask("R3BNeulandNeutronsCheat")
15 , fInputMultName(inputMult)
16 , fMultiplicity(nullptr)
17 , fHits(inputHit)
18 , fNeutrons(output)
19{
20}
21
23{
24 auto* ioman = FairRootManager::Instance();
25 if (ioman == nullptr)
26 {
27 LOG(fatal) << "TCAInputConnector: No FairRootManager";
28 return kFATAL;
29 }
30 fMultiplicity = ioman->InitObjectAs<const R3BNeulandMultiplicity*>(fInputMultName.c_str());
31
32 fHits.init();
33 fNeutrons.init();
34 return kSUCCESS;
35}
36
38{
39 fNeutrons.clear();
40
41 const auto& hits = fHits.get();
42 const auto mult = fMultiplicity->GetMultiplicity();
43
44 for (size_t n = 0; n < hits.size() && n < mult; n++)
45 {
46 fNeutrons.get().emplace_back(hits.at(n));
47 }
48}
49
ClassImp(R3B::Neuland::Cal2HitPar)
R3BNeulandNeutronsCheat(std::string_view inputMult="NeulandMultiplicity", std::string_view inputHit="NeulandPrimaryHits", std::string_view output="NeulandNeutrons")
const R3BNeulandMultiplicity * fMultiplicity
R3B::InputVectorConnector< R3BNeulandHit > fHits
void Exec(Option_t *) override
auto Init() -> InitStatus override
R3B::OutputVectorConnector< R3BNeulandNeutron > fNeutrons