KaliVeda
Toolkit for HIC analysis
KVIDZAGrid.h
1 /***************************************************************************
2  KVIDZAGrid.h - description
3  -------------------
4  begin : Nov 24 2004
5  copyright : (C) 2004 by J.D. Frankland
6  email : frankland@ganil.fr
7 
8 $Id: KVIDZAGrid.h,v 1.14 2009/04/01 09:38:10 franklan Exp $
9 ***************************************************************************/
10 
11 #ifndef KVIDZAGrid_H
12 #define KVIDZAGrid_H
13 
14 #include "KVIDGrid.h"
15 #include "TObjArray.h"
16 
17 class KVIDZALine;
18 
66 class KVIDZAGrid: public KVIDGrid {
67 
68 protected:
69 
72 
73  void SetZmax(Int_t z)
74  {
75  fZMax = z;
76  }
77 
86 
92 
96 
97  virtual Bool_t FindFourEmbracingLines(Double_t x, Double_t y, const Char_t* position);
98  void init();
99 
100 public:
101 
102  enum {
113  kICODE10
114  };
115 
116 public:
117  KVIDZAGrid();
118  KVIDZAGrid(const KVIDZAGrid&);
119  virtual ~ KVIDZAGrid();
120  void Copy(TObject&) const override;
121 
122  void RemoveLine(Int_t Z, Int_t A = -1); // *MENU*
123  void RemoveZLines(const Char_t* ZList); // *MENU*
124 
125  void SetVarXVarY(const char* VarX, const char* VarY)
126  {
127  SetVarX(VarX);
128  SetVarY(VarY);
129  }
130  void Initialize() override;// *MENU*
131  void DrawLinesWithWidth();// *MENU={Hierarchy="View.../DrawLinesWithWidth"}*
132 
133  void CalculateLineWidths() override;
134  Int_t GetZmax() const
135  {
136  return (Int_t)fZMax;
137  }
138  virtual KVIDZALine* GetZLine(Int_t z, Int_t&) const;
140  {
141  return fZMaxLine;
142  }
143  virtual KVIDZALine* GetZALine(Int_t z, Int_t a, Int_t&) const;
144 
145  virtual void IdentZA(Double_t x, Double_t y, Int_t& Z, Double_t& A);
147  {
148  return TClass::GetClass("KVIDZALine");
149  }
150  virtual void IdentZ(Double_t x, Double_t y, Double_t& Z);
151  Int_t GetQualityCode() const override
152  {
155  return fICode;
156  }
157 
158  void Identify(Double_t x, Double_t y, KVIdentificationResult*) const override;
159 
160  inline KVIDLine* GetClosestLine() const
161  {
162  return fClosest;
163  }
165  {
166  return fDistanceClosest;
167  }
168  inline UChar_t GetIndexClosest() const
169  {
170  return fIdxClosest;
171  }
172 
174 
175  KVIDGraph* MakeSubsetGraph(Int_t Zmin, Int_t Zmax, const Char_t* /*graph_class*/ = ""); //*MENU*
176  KVIDGraph* MakeSubsetGraph(TList*, TClass* /*graph_class*/ = 0);
177 
178  void ReCheckQuality(Int_t& Z, Double_t& A);
179 
180  void SetManualWidth(Double_t manual_width = .3, Double_t manual_width_scaling = 0.05); //*MENU*
181 
182  ClassDefOverride(KVIDZAGrid, 3) //Base class for 2D Z & A identification grids
183 };
184 
185 class KVIDZGrid : public KVIDZAGrid {
186 public:
187  KVIDZGrid() {};
188  virtual ~KVIDZGrid() {};
189 
190  ClassDef(KVIDZGrid, 3) //FOR BACKWARDS COMPATIBILITY ONLY. OBSOLETE.
191 };
192 #endif
int Int_t
bool Bool_t
unsigned short UShort_t
unsigned char UChar_t
char Char_t
double Double_t
#define ClassDef(name, id)
#define ClassDefOverride(name, id)
Base class for particle identification in a 2D map.
Definition: KVIDGraph.h:32
void SetVarY(const char *v) override
Definition: KVIDGraph.h:566
void SetVarX(const char *v) override
Definition: KVIDGraph.h:562
Abstract base class for 2D identification grids in e.g. (dE,E) maps.
Definition: KVIDGrid.h:74
Base class for lines/cuts used for particle identification in 2D data maps.
Definition: KVIDLine.h:143
Identification grid with lines corresponding to different nuclear isotopes (KVIDZALine)
Definition: KVIDZAGrid.h:66
void CalculateLineWidths() override
Definition: KVIDZAGrid.cpp:288
KVIDLine * GetClosestLine() const
Definition: KVIDZAGrid.h:160
Double_t dsups
Definition: KVIDZAGrid.h:88
Double_t fDistanceClosest
distance from point to closest line
Definition: KVIDZAGrid.h:83
Int_t Zsups
Definition: KVIDZAGrid.h:90
KVIDLine * fLsup
Definition: KVIDZAGrid.h:80
Double_t wsup
Definition: KVIDZAGrid.h:89
Int_t Zinf
Definition: KVIDZAGrid.h:90
void init()
initialisation
Definition: KVIDZAGrid.cpp:81
Int_t Ainfi
Definition: KVIDZAGrid.h:91
KVIDLine * fClosest
closest line to last-identified point
Definition: KVIDZAGrid.h:78
Int_t Ainf
Definition: KVIDZAGrid.h:91
void ReCheckQuality(Int_t &Z, Double_t &A)
virtual KVIDZALine * GetZLine(Int_t z, Int_t &) const
Definition: KVIDZAGrid.cpp:152
TClass * DefaultIDLineClass() override
Definition: KVIDZAGrid.h:146
KVIDLine * fLinf
Definition: KVIDZAGrid.h:81
Int_t Zsup
Definition: KVIDZAGrid.h:90
Int_t Asups
Definition: KVIDZAGrid.h:91
void DrawLinesWithWidth()
Definition: KVIDZAGrid.cpp:460
void RemoveZLines(const Char_t *ZList)
Remove and destroy identifiers.
Definition: KVIDZAGrid.cpp:132
Int_t kinfi
Definition: KVIDZAGrid.h:87
virtual void IdentZ(Double_t x, Double_t y, Double_t &Z)
Int_t GetQualityCode() const override
Definition: KVIDZAGrid.h:151
Double_t GetDistanceClosestLine() const
Definition: KVIDZAGrid.h:164
Int_t Asup
Definition: KVIDZAGrid.h:91
void Copy(TObject &) const override
Copy this to 'obj'.
Definition: KVIDZAGrid.cpp:66
Int_t ksup
Definition: KVIDZAGrid.h:87
KVIDZALine * fZMaxLine
line with biggest Z and A
Definition: KVIDZAGrid.h:71
Int_t ksups
used by IdentZA and IdentZ
Definition: KVIDZAGrid.h:87
UChar_t GetIndexClosest() const
Definition: KVIDZAGrid.h:168
Int_t GetZmax() const
Definition: KVIDZAGrid.h:134
Double_t winf
Definition: KVIDZAGrid.h:89
Double_t dinf
Definition: KVIDZAGrid.h:88
Int_t kinf
Definition: KVIDZAGrid.h:87
void SetZmax(Int_t z)
Definition: KVIDZAGrid.h:73
KVIDLine * fLsups
Definition: KVIDZAGrid.h:79
Double_t wsups
Definition: KVIDZAGrid.h:89
UShort_t fZMax
largest Z of lines in grid
Definition: KVIDZAGrid.h:70
void SetVarXVarY(const char *VarX, const char *VarY)
Definition: KVIDZAGrid.h:125
Double_t dsup
Definition: KVIDZAGrid.h:88
KVIDZAGrid()
default ctor.
Definition: KVIDZAGrid.cpp:33
virtual void IdentZA(Double_t x, Double_t y, Int_t &Z, Double_t &A)
Definition: KVIDZAGrid.cpp:644
Int_t fIdxClosest
index of closest line in main list fIdentifiers
Definition: KVIDZAGrid.h:84
virtual ~ KVIDZAGrid()
Int_t Zinfi
Definition: KVIDZAGrid.h:90
Bool_t fHasMassIDRegion
set to true if grid has a limited region for mass identification, indicated by an info contour "MassI...
Definition: KVIDZAGrid.h:95
Int_t fICode
code de retour
Definition: KVIDZAGrid.h:85
Double_t winfi
Definition: KVIDZAGrid.h:89
KVIDLine * fLinfi
Definition: KVIDZAGrid.h:82
Int_t Zint
Z of line used to identify particle.
Definition: KVIDZAGrid.h:94
void SetManualWidth(Double_t manual_width=.3, Double_t manual_width_scaling=0.05)
KVIDZALine * GetZmaxLine() const
Definition: KVIDZAGrid.h:139
KVIDGraph * MakeSubsetGraph(Int_t Zmin, Int_t Zmax, const Char_t *="")
virtual void MakeEDeltaEZGrid(Int_t Zmin, Int_t Zmax, Int_t npoints=20, Double_t gamma = 2);//*MENU*
Double_t dinfi
Definition: KVIDZAGrid.h:88
void Initialize() override
virtual Bool_t FindFourEmbracingLines(Double_t x, Double_t y, const Char_t *position)
Definition: KVIDZAGrid.cpp:519
Int_t Aint
mass of line used to identify particle
Definition: KVIDZAGrid.h:93
void RemoveLine(Int_t Z, Int_t A=-1)
Remove and destroy identifier.
Definition: KVIDZAGrid.cpp:102
virtual KVIDZALine * GetZALine(Int_t z, Int_t a, Int_t &) const
Definition: KVIDZAGrid.cpp:213
void Identify(Double_t x, Double_t y, KVIdentificationResult *) const override
Base class for identification ridge lines corresponding to different nuclear species.
Definition: KVIDZALine.h:33
virtual ~KVIDZGrid()
Definition: KVIDZAGrid.h:188
Full result of one attempted particle identification.
static TClass * GetClass(Bool_t load=kTRUE, Bool_t silent=kFALSE)