2#include "KVIDCutLine.h"
3#include "KVIDCsIRLLine.h"
4#include "KVIdentificationResult.h"
29#if ROOT_VERSION_CODE >= ROOT_VERSION(3,4,0)
126 idr->
SetComment(
"no identification: (x,y) out of range covered by grid");
142 idr->
SetComment(
"Z ok, mass may be greater than A");
145 idr->
SetComment(
"Z ok, mass may be smaller than A");
148 idr->
SetComment(
"Z ok, mass may be greater or smaller than A");
151 idr->
SetComment(
"Z ok, mass out of range, >=A");
154 idr->
SetComment(
"Z ok, mass out of range, <=A");
157 idr->
SetComment(
"point above IMF line, Z is a minimum value");
160 idr->
SetComment(
"point is left of IMF line, Z is the most probable lower limit");
163 idr->
SetComment(
"no identification: (x,y) out of range covered by grid");
166 idr->
SetComment(
"no identification for this module");
169 idr->
SetComment(
"no identification: (x,y) out of range covered by grid");
198 && (
index < (nlines - 1)))
201 if (
line->GetZ() != z) {
225 while ((
line->GetZ() != z ||
line->GetA() !=
a)
226 && (
index < (nlines - 1))) {
229 if (
line->GetZ() != z ||
line->GetA() !=
a) {
458 else if (
kinf > -1) {
535 else if (ix2 == -ix1 * 2) {
537 if (tmp > 0. &&
dist != 0) {
538 dt = -(
y1 + 2. *
y2 -
546 else if (ix1 == -ix2 * 2) {
548 if (tmp > 0. &&
dist != 0) {
549 dt = -(
y2 + 2. *
y1 +
561 deltaA = yy * ix2 /
y2 / 2.;
567 if (
dist > -1. && dt * yy > -1.)
580 if (ibif == 1 || ibif == 3) {
589 if (nextline->
GetZ() == Z
597 if (ibif == 2 || ibif == 3) {
603 if (idx > -1 && --idx >= 0) {
606 if (nextline->
GetZ() == Z
646 Error(
"Initialize",
"%s: Cut 'gamma_line' not found in grid. Not a valid CsI R-L grid. Listing existing cuts:",
652 Error(
"Initialize",
"%s: Cut 'IMF_line' not found in grid. Not a valid CsI R-L grid. Listing existing cuts:",
689 Fatal(
"BackwardsCompatibilityFix",
690 "This fix no longer works. There will be problems.");
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char y1
Base class for CsI R-L identification lines (A and Z identification).
Line in ID grid used to delimit regions where no identification is possible.
Identification grids for CsI R-L (fast-slow) matrices.
KVIDZALine * GetZALine(Int_t z, Int_t a, Int_t &) const
void IdentZA(Double_t x, Double_t y, Int_t &Z, Double_t &A)
KVIDZALine * GetZLine(Int_t z, Int_t &) const
virtual void Initialize()
virtual void BackwardsCompatibilityFix()
virtual Bool_t IsIdentifiable(Double_t x, Double_t y, TString *=nullptr) const
virtual void Identify(Double_t x, Double_t y, KVIdentificationResult *) const
KVIDGCsI()
Default constructor.
const KVNameValueList * GetParameters() const
virtual void SetVarX(const char *v)
KVList fIdentifiers
list of identification objects
Int_t GetNumberOfIdentifiers() const
const KVList * GetIdentifiers() const
virtual void SetVarY(const char *v)
const Char_t * GetName() const
virtual void BackwardsCompatibilityFix()
virtual void SetInfos(Double_t, Double_t, KVIdentificationResult *) const
loop over KVIDGraph::fInfoZones to set flags in KVIdentificationResult
const KVList * GetCuts() const
KVIDentifier * GetCut(const Char_t *name) const
KVIDentifier * GetIdentifierAt(Int_t index) const
Base class for lines/cuts used for particle identification in 2D data maps.
Bool_t WhereAmI(Double_t px, Double_t py, Option_t *opt)
Bool_t IsBetweenEndPoints(Double_t x, Double_t y, const Char_t *axis="") const
Identification grid with lines corresponding to different nuclear isotopes (KVIDZALine)
virtual void Copy(TObject &) const
Copy this to 'obj'.
Int_t ksups
used by IdentZA and IdentZ
virtual void Initialize()
Int_t fIdxClosest
index of closest line in main list fIdentifiers
Int_t fICode
code de retour
virtual Bool_t FindFourEmbracingLines(Double_t x, Double_t y, const Char_t *position)
Int_t Aint
mass of line used to identify particle
Base class for identification ridge lines corresponding to different nuclear species.
virtual Int_t GetZ() const
Full result of one attempted particle identification.
Bool_t IDOK
general quality of identification, =kTRUE if acceptable identification made
void SetComment(const Char_t *c)
Bool_t Aident
= kTRUE if A of particle established
Double_t PID
= "real" Z if Zident==kTRUE and Aident==kFALSE, "real" A if Zident==Aident==kTRUE
Int_t A
A of particle found (if Aident==kTRUE)
Int_t Z
Z of particle found (if Zident==kTRUE)
Int_t IDquality
specific quality code returned by identification procedure
Bool_t Zident
=kTRUE if Z of particle established
Extended TList class which owns its objects by default.
virtual TObject * FindObject(const char *name) const
virtual void AddLast(TObject *obj)
virtual TObject * At(Int_t idx) const
virtual TObject * Remove(TObject *obj)
Remove object from list.
void ls(Option_t *option="") const override
const char * GetName() const override
virtual void Error(const char *method, const char *msgfmt,...) const
virtual void Fatal(const char *method, const char *msgfmt,...) const
double dist(AxisAngle const &r1, AxisAngle const &r2)
Double_t Min(Double_t a, Double_t b)
Double_t Sqrt(Double_t x)
Double_t Max(Double_t a, Double_t b)
add_remove_imf_line(const KVList &l, KVIDLine *i)