4#include "KVDataPatch_INDRA_CorrectEtalonTrajectories.h"
6#include <KVINDRAReconNuc.h>
7#include <KVReconstructedEvent.h>
20 SetTitle(
Class()->GetTitle());
56 if (!
N->IsOK())
return;
60 Fatal(
"ApplyToParticle",
"Cannot apply this data patch to objects of class %s, only KVINDRAReconNuc objects",
N->ClassName());
63 KVDetector* stop_det(
nullptr), *si75(
nullptr), *sili(
nullptr);
64 if (
n->GetRingNumber() >= 10 &&
65 (stop_det =
n->GetStoppingDetector())->IsType(
"CSI")
67 ((si75 =
n->GetReconstructionTrajectory()->GetDetector(
"SI75"))
68 || (sili =
n->GetReconstructionTrajectory()->GetDetector(
"SILI")))
71 n->GetReconstructionTrajectory()->IterateBackFrom();
72 KVNucleus avatar(
n->GetZ(),
n->GetA(),
n->GetMomentum());
75 while ((node =
n->GetReconstructionTrajectory()->GetNextNode())) {
81 TIter next_tr(stop_det->GetNode()->GetTrajectories());
85 bool no_si75 = !si75 || !tr->
Contains(si75->GetNode());
87 if (no_si75 && no_sili) {
92 if (
fRandomAngles)
n->GetAnglesFromReconstructionTrajectory(
"random");
93 else n->GetAnglesFromReconstructionTrajectory(
"mean");
107 std::cout <<
"Apply the following correction to INDRA data:\n";
108 std::cout <<
" all particles identified in etalon modules by either CSI_R_L or CI_CSI\n";
109 std::cout <<
" identification were treated as if they passed through the etalon detectors.\n";
110 std::cout <<
" we check the coherency of this with the energy of the particle and\n";
111 std::cout <<
" correct when necessary\n";
virtual Bool_t IsType(const Char_t *typ) const
Correct angular distributions for CsI & ChIo-CsI identified particles in etalon telescopes.
void ApplyToEvent(KVReconstructedEvent *)
void ApplyToParticle(KVReconstructedNucleus *)
virtual void PrintPatchInfo() const
Correction to be applied to reconstructed calibrated data.
Base class for detector geometry description.
virtual Double_t GetELostByParticle(KVNucleus *, TVector3 *norm=0)
KVGeoDetectorNode * GetNode()
Path taken by particles through multidetector geometry.
Bool_t Contains(const Char_t *name) const
Information on relative positions of detectors & particle trajectories.
KVDetector * GetDetector() const
Nuclei reconstructed from data measured in the INDRA array.
Description of properties and kinematics of atomic nuclei.
Event containing KVReconstructedNucleus nuclei reconstructed from hits in detectors.
Nuclei reconstructed from data measured by a detector array .
const char * GetName() const override
virtual void Fatal(const char *method, const char *msgfmt,...) const
RooCmdArg ClassName(const char *name)