41 if (node->GetDetector()->IsType(
"CSI")) {
43 if (node->GetDetector()->Fired(GetPartSeedCond())) {
54 GetEventFragment()->GetParameters()->IncrementValue(
"INDRA_GAMMA_MULT", 1);
55 GetEventFragment()->GetParameters()->IncrementValue(
"INDRA_GAMMA_DETS", node->GetName());
56 node->GetDetector()->SetAnalysed();
72 auto new_part = GetEventFragment()->AddParticle();
73 *(new_part->GetIdentificationResult(1)) = idr;
77 return GetEventFragment()->AddParticle();
96 if (!
d->IsIdentified())
d->SetIDCode(KVINDRA::IDCodes::NO_IDENTIFICATION);
98 if (
d->GetIDCode() == KVINDRA::IDCodes::ID_CSI_PSA &&
d->GetZ() == 0) {
101 std::cout <<
" GAMMA #" << i <<
"\n\n";
104 auto traj = (
KVGeoDNTrajectory*)
d->GetStoppingDetector()->GetNode()->GetTrajectories()->First();
106 std::cout << idt << std::endl;
107 std::cout <<
"Type: " <<
d->GetStoppingDetector()->GetType() << std::endl;
108 std::cout <<
"Fired: " <<
d->GetStoppingDetector()->Fired(
GetPartSeedCond()) << std::endl;
109 std::cout <<
"ReadyforID: " <<
d->GetIdentifyingTelescope()->IsReadyForID() << std::endl;
184 partID.
IDcode = KVINDRA::IDCodes::ID_CSI_MASS_OUT_OF_RANGE;
196 PART.
SetIDCode(KVINDRA::IDCodes::NO_IDENTIFICATION);
198 std::map<std::string, KVIdentificationResult*>::iterator csirl =
id_by_type.find(
"CSI_R_L");
210 if (csirl->second->IDattempted) {
213 csirl->second->IDcode = KVINDRA::IDCodes::ID_CSI_FRAGMENT;
214 partID = *(csirl->second);
220 csirl->second->IDcode = KVINDRA::IDCodes::ID_CSI_MASS_OUT_OF_RANGE;
221 partID = *(csirl->second);
257 n->SetECode(KVINDRA::ECodes::SOME_ENERGY_LOSSES_CALCULATED);
282 if (PART->
GetIDCode() != KVINDRA::IDCodes::ID_CSI_FRAGMENT && PART->
GetIDCode() != KVINDRA::IDCodes::ID_CSI_MASS_OUT_OF_RANGE) {
322 Double_t half_light = csi->GetDetectorSignalValue(
"TotLight") * 0.5;
324 double ecsi = 2.*csi->GetCorrectedEnergy(&tmp, half_light,
kFALSE);
353 n->SetECode(KVINDRA::ECodes::WARNING_CSI_MAX_ENERGY);
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
char * Form(const char *fmt,...)
virtual Bool_t IsType(const Char_t *typ) const
Base class for detector geometry description, interface to energy-loss calculations.
virtual Double_t GetMaxDeltaE(Int_t Z, Int_t A)
Double_t GetDetectorSignalValue(const TString &type, const KVNameValueList ¶ms="") const
virtual void SetEResAfterDetector(Double_t e)
virtual Double_t GetDeltaEFromERes(Int_t Z, Int_t A, Double_t Eres)
virtual Double_t GetCorrectedEnergy(KVNucleus *, Double_t e=-1., Bool_t transmission=kTRUE)
Path taken by particles through multidetector geometry.
const KVSeqCollection * GetIDTelescopes() const
Information on relative positions of detectors & particle trajectories.
virtual KVReconstructedNucleus * ReconstructTrajectory(const KVGeoDNTrajectory *traj, const KVGeoDetectorNode *node)
KVIDTelescope * identifying_telescope
telescope which identified current particle
std::unordered_map< std::string, KVIdentificationResult * > id_by_type
identification results by type for current particle
KVReconstructedEvent * GetEventFragment() const
virtual void IdentifyParticle(KVReconstructedNucleus &PART)
Double_t GetTargetEnergyLossCorrection(KVReconstructedNucleus *ion)
void SetCalibrationStatus(KVReconstructedNucleus &PART, UShort_t code)
TString GetPartSeedCond() const
KVIdentificationResult partID
identification to be applied to current particle
virtual Bool_t Identify(KVIdentificationResult *, Double_t x=-1., Double_t y=-1.)
Base class for all detectors or associations of detectors in array which can identify charged particl...
virtual Bool_t IsReadyForID()
Reconstruct particles in INDRA groups.
void SetNoCalibrationStatus(KVReconstructedNucleus *n)
virtual void DoCalibration(KVReconstructedNucleus *)=0
void IdentifyParticle(KVReconstructedNucleus &PART)
Bool_t CalculateChIoDEFromResidualEnergy(KVReconstructedNucleus *n, Double_t ERES)
double DoBeryllium8Calibration(KVReconstructedNucleus *n)
virtual bool DoCoherencyAnalysis(KVReconstructedNucleus &)=0
void CalibrateParticle(KVReconstructedNucleus *PART)
void CheckCsIEnergy(KVReconstructedNucleus *n)
KVDetector * GetCsI(KVReconstructedNucleus *n)
void SetBadCalibrationStatus(KVReconstructedNucleus *n)
KVDetector * theChio
the ChIo of the group
Full result of one attempted particle identification.
Bool_t IDOK
general quality of identification, =kTRUE if acceptable identification made
Int_t IDquality
specific quality code returned by identification procedure
Int_t IDcode
a general identification code for this type of identification
Description of properties and kinematics of atomic nuclei.
Int_t GetZ() const
Return the number of proton / atomic number.
Double_t GetEnergy() const
void SetParameter(const Char_t *name, ValType value) const
void SetEnergy(Double_t e)
Nuclei reconstructed from data measured by a detector array ,.
const KVReconNucTrajectory * GetReconstructionTrajectory() const
void SetIdentification(KVIdentificationResult *, KVIDTelescope *)
Bool_t IsIdentified() const
virtual Int_t GetIDCode() const
virtual void SetTargetEnergyLoss(Double_t e)
virtual void GetAnglesFromReconstructionTrajectory(Option_t *opt="random")
void SetIDCode(UShort_t s)
virtual TObject * FindObjectByType(const Char_t *) const