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 
71 class KVIDZAGrid: public KVIDGrid {
72 
73 protected:
74 
77 
78  void SetZmax(Int_t z)
79  {
80  fZMax = z;
81  }
82 
91 
97 
101 
102  virtual Bool_t FindFourEmbracingLines(Double_t x, Double_t y, const Char_t* position);
103  void init();
104 
105 public:
106 
107  enum {
118  kICODE10
119  };
120 
121 public:
122  KVIDZAGrid();
123  KVIDZAGrid(const KVIDZAGrid&);
124  virtual ~ KVIDZAGrid();
125  void Copy(TObject&) const override;
126 
127  void RemoveLine(Int_t Z, Int_t A = -1); // *MENU*
128  void RemoveZLines(const Char_t* ZList); // *MENU*
129 
130  void SetVarXVarY(const char* VarX, const char* VarY)
131  {
132  SetVarX(VarX);
133  SetVarY(VarY);
134  }
135  void Initialize() override;// *MENU*
136  void DrawLinesWithWidth();// *MENU={Hierarchy="View.../DrawLinesWithWidth"}*
137 
138  void CalculateLineWidths() override;
139  Int_t GetZmax() const
140  {
141  return (Int_t)fZMax;
142  }
143  virtual KVIDZALine* GetZLine(Int_t z, Int_t&) const;
145  {
146  return fZMaxLine;
147  }
148  virtual KVIDZALine* GetZALine(Int_t z, Int_t a, Int_t&) const;
149 
150  virtual void IdentZA(Double_t x, Double_t y, Int_t& Z, Double_t& A);
152  {
153  return TClass::GetClass("KVIDZALine");
154  }
155  virtual void IdentZ(Double_t x, Double_t y, Double_t& Z);
156  Int_t GetQualityCode() const override
157  {
160  return fICode;
161  }
162 
163  void Identify(Double_t x, Double_t y, KVIdentificationResult*) const override;
164 
165  inline KVIDLine* GetClosestLine() const
166  {
167  return fClosest;
168  }
170  {
171  return fDistanceClosest;
172  }
173  inline UChar_t GetIndexClosest() const
174  {
175  return fIdxClosest;
176  }
177 
179 
180  KVIDGraph* MakeSubsetGraph(Int_t Zmin, Int_t Zmax, const Char_t* /*graph_class*/ = ""); //*MENU*
181  KVIDGraph* MakeSubsetGraph(TList*, TClass* /*graph_class*/ = 0);
182 
183  void ReCheckQuality(Int_t& Z, Double_t& A);
184 
185  void SetManualWidth(Double_t manual_width = .3, Double_t manual_width_scaling = 0.05); //*MENU*
186 
187  ClassDefOverride(KVIDZAGrid, 3) //Base class for 2D Z & A identification grids
188 };
189 
190 class KVIDZGrid : public KVIDZAGrid {
191 public:
192  KVIDZGrid() {};
193  virtual ~KVIDZGrid() {};
194 
195  ClassDef(KVIDZGrid, 3) //FOR BACKWARDS COMPATIBILITY ONLY. OBSOLETE.
196 };
197 #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:71
void CalculateLineWidths() override
Definition: KVIDZAGrid.cpp:288
KVIDLine * GetClosestLine() const
Definition: KVIDZAGrid.h:165
Double_t dsups
Definition: KVIDZAGrid.h:93
Double_t fDistanceClosest
distance from point to closest line
Definition: KVIDZAGrid.h:88
Int_t Zsups
Definition: KVIDZAGrid.h:95
KVIDLine * fLsup
Definition: KVIDZAGrid.h:85
Double_t wsup
Definition: KVIDZAGrid.h:94
Int_t Zinf
Definition: KVIDZAGrid.h:95
void init()
initialisation
Definition: KVIDZAGrid.cpp:81
Int_t Ainfi
Definition: KVIDZAGrid.h:96
KVIDLine * fClosest
closest line to last-identified point
Definition: KVIDZAGrid.h:83
Int_t Ainf
Definition: KVIDZAGrid.h:96
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:151
KVIDLine * fLinf
Definition: KVIDZAGrid.h:86
Int_t Zsup
Definition: KVIDZAGrid.h:95
Int_t Asups
Definition: KVIDZAGrid.h:96
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:92
virtual void IdentZ(Double_t x, Double_t y, Double_t &Z)
Int_t GetQualityCode() const override
Definition: KVIDZAGrid.h:156
Double_t GetDistanceClosestLine() const
Definition: KVIDZAGrid.h:169
Int_t Asup
Definition: KVIDZAGrid.h:96
void Copy(TObject &) const override
Copy this to 'obj'.
Definition: KVIDZAGrid.cpp:66
Int_t ksup
Definition: KVIDZAGrid.h:92
KVIDZALine * fZMaxLine
line with biggest Z and A
Definition: KVIDZAGrid.h:76
Int_t ksups
used by IdentZA and IdentZ
Definition: KVIDZAGrid.h:92
UChar_t GetIndexClosest() const
Definition: KVIDZAGrid.h:173
Int_t GetZmax() const
Definition: KVIDZAGrid.h:139
Double_t winf
Definition: KVIDZAGrid.h:94
Double_t dinf
Definition: KVIDZAGrid.h:93
Int_t kinf
Definition: KVIDZAGrid.h:92
void SetZmax(Int_t z)
Definition: KVIDZAGrid.h:78
KVIDLine * fLsups
Definition: KVIDZAGrid.h:84
Double_t wsups
Definition: KVIDZAGrid.h:94
UShort_t fZMax
largest Z of lines in grid
Definition: KVIDZAGrid.h:75
void SetVarXVarY(const char *VarX, const char *VarY)
Definition: KVIDZAGrid.h:130
Double_t dsup
Definition: KVIDZAGrid.h:93
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:89
virtual ~ KVIDZAGrid()
Int_t Zinfi
Definition: KVIDZAGrid.h:95
Bool_t fHasMassIDRegion
set to true if grid has a limited region for mass identification, indicated by an info contour "MassI...
Definition: KVIDZAGrid.h:100
Int_t fICode
code de retour
Definition: KVIDZAGrid.h:90
Double_t winfi
Definition: KVIDZAGrid.h:94
KVIDLine * fLinfi
Definition: KVIDZAGrid.h:87
Int_t Zint
Z of line used to identify particle.
Definition: KVIDZAGrid.h:99
void SetManualWidth(Double_t manual_width=.3, Double_t manual_width_scaling=0.05)
KVIDZALine * GetZmaxLine() const
Definition: KVIDZAGrid.h:144
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:93
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:98
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:193
Full result of one attempted particle identification.
static TClass * GetClass(Bool_t load=kTRUE, Bool_t silent=kFALSE)