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 
95 
96  virtual Bool_t FindFourEmbracingLines(Double_t x, Double_t y, const Char_t* position);
97  void init();
98 
99 public:
100 
101  enum {
112  kICODE10
113  };
114 
115 public:
116  KVIDZAGrid();
117  KVIDZAGrid(const KVIDZAGrid&);
118  virtual ~ KVIDZAGrid();
119  virtual void Copy(TObject&) const;
120 
121  void RemoveLine(Int_t Z, Int_t A = -1); // *MENU*
122  void RemoveZLines(const Char_t* ZList); // *MENU*
123 
124  void SetVarXVarY(const char* VarX, const char* VarY)
125  {
126  SetVarX(VarX);
127  SetVarY(VarY);
128  }
129  virtual void Initialize();// *MENU*
130  void DrawLinesWithWidth();// *MENU={Hierarchy="View.../DrawLinesWithWidth"}*
131 
132  virtual void CalculateLineWidths();
133  Int_t GetZmax() const
134  {
135  return (Int_t)fZMax;
136  }
137  virtual KVIDZALine* GetZLine(Int_t z, Int_t&) const;
139  {
140  return fZMaxLine;
141  }
142  virtual KVIDZALine* GetZALine(Int_t z, Int_t a, Int_t&) const;
143 
144  virtual void IdentZA(Double_t x, Double_t y, Int_t& Z, Double_t& A);
146  {
147  return TClass::GetClass("KVIDZALine");
148  }
149  virtual void IdentZ(Double_t x, Double_t y, Double_t& Z);
151  {
154  return fICode;
155  }
156 
157  virtual void Identify(Double_t x, Double_t y, KVIdentificationResult*) const;
158 
159  inline KVIDLine* GetClosestLine() const
160  {
161  return fClosest;
162  }
164  {
165  return fDistanceClosest;
166  }
167  inline UChar_t GetIndexClosest() const
168  {
169  return fIdxClosest;
170  }
171 
173 
174  KVIDGraph* MakeSubsetGraph(Int_t Zmin, Int_t Zmax, const Char_t* /*graph_class*/ = ""); //*MENU*
175  KVIDGraph* MakeSubsetGraph(TList*, TClass* /*graph_class*/ = 0);
176 
177  void ReCheckQuality(Int_t& Z, Double_t& A);
178 
179  void SetManualWidth(Double_t manual_width = .3, Double_t manual_width_scaling = 0.05); //*MENU*
180 
181  ClassDef(KVIDZAGrid, 2) //Base class for 2D Z & A identification grids
182 };
183 
184 class KVIDZGrid : public KVIDZAGrid {
185 public:
186  KVIDZGrid() {};
187  virtual ~KVIDZGrid() {};
188 
189  ClassDef(KVIDZGrid, 3) //FOR BACKWARDS COMPATIBILITY ONLY. OBSOLETE.
190 };
191 #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)
Base class for particle identification in a 2D map.
Definition: KVIDGraph.h:32
virtual void SetVarX(const char *v)
Definition: KVIDGraph.h:525
virtual void SetVarY(const char *v)
Definition: KVIDGraph.h:529
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
KVIDLine * GetClosestLine() const
Definition: KVIDZAGrid.h:159
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
virtual void CalculateLineWidths()
Definition: KVIDZAGrid.cpp:287
Int_t Zinf
Definition: KVIDZAGrid.h:90
void init()
initialisation
Definition: KVIDZAGrid.cpp:80
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:151
virtual void Copy(TObject &) const
Copy this to 'obj'.
Definition: KVIDZAGrid.cpp:66
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:459
void RemoveZLines(const Char_t *ZList)
Remove and destroy identifiers.
Definition: KVIDZAGrid.cpp:131
Int_t kinfi
Definition: KVIDZAGrid.h:87
virtual void IdentZ(Double_t x, Double_t y, Double_t &Z)
virtual TClass * DefaultIDLineClass()
Definition: KVIDZAGrid.h:145
virtual void Identify(Double_t x, Double_t y, KVIdentificationResult *) const
Double_t GetDistanceClosestLine() const
Definition: KVIDZAGrid.h:163
Int_t Asup
Definition: KVIDZAGrid.h:91
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:167
Int_t GetZmax() const
Definition: KVIDZAGrid.h:133
Double_t winf
Definition: KVIDZAGrid.h:89
Double_t dinf
Definition: KVIDZAGrid.h:88
Int_t kinf
Definition: KVIDZAGrid.h:87
virtual void Initialize()
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:124
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:643
Int_t fIdxClosest
index of closest line in main list fIdentifiers
Definition: KVIDZAGrid.h:84
virtual ~ KVIDZAGrid()
Int_t Zinfi
Definition: KVIDZAGrid.h:90
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:138
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*
Int_t GetQualityCode() const
Definition: KVIDZAGrid.h:150
Double_t dinfi
Definition: KVIDZAGrid.h:88
virtual Bool_t FindFourEmbracingLines(Double_t x, Double_t y, const Char_t *position)
Definition: KVIDZAGrid.cpp:518
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:101
virtual KVIDZALine * GetZALine(Int_t z, Int_t a, Int_t &) const
Definition: KVIDZAGrid.cpp:212
Base class for identification ridge lines corresponding to different nuclear species.
Definition: KVIDZALine.h:33
virtual ~KVIDZGrid()
Definition: KVIDZAGrid.h:187
Full result of one attempted particle identification.
static TClass * GetClass(Bool_t load=kTRUE, Bool_t silent=kFALSE)