KaliVeda
Toolkit for HIC analysis
KVIDentifier.h
1 /*
2 $Id: KVIDentifier.h,v 1.7 2009/04/20 10:01:58 ebonnet Exp $
3 $Revision: 1.7 $
4 $Date: 2009/04/20 10:01:58 $
5 */
6 
9 
10 #ifndef __KVIDENTIFIER_H
11 #define __KVIDENTIFIER_H
12 
13 #include "Riostream.h"
14 #include "TCutG.h"
15 #include "KVNucleus.h"
16 #include "RVersion.h"
17 
18 class TF1;
19 class KVIDGraph;
20 
28 class KVIDentifier : public TCutG {
29  friend class KVIDGraph;
30 
31 protected:
35 
39 
42  virtual void WriteAsciiFile_extras(std::ofstream&, const Char_t* /*name_prefix*/ = "") {}
43 
46  virtual void ReadAsciiFile_extras(std::ifstream&) {}
47  virtual void SetNameFromNucleus()
48  {
49  SetName(Form("Z=%d A=%d", GetZ(), GetA()));
50  }
51 
52 private:
53  void init();
54 
55 public:
56  KVIDentifier();
57  KVIDentifier(const KVIDentifier&);
58  KVIDentifier(const TCutG&);
59  KVIDentifier(const TGraph&);
60  virtual ~KVIDentifier();
61 
62  KVIDGraph* GetParent() const;
63  void SetParent(KVIDGraph*);
65 
66  Int_t Compare(const TObject*) const override;
67  void Copy(TObject& obj) const override;
68 
69  virtual void WriteAsciiFile(std::ofstream&, const Char_t* name_prefix = "");
70  virtual void ReadAsciiFile(std::ifstream&);
71 
72  virtual Int_t GetID() const
73  {
74  return 0;
75  }
76  virtual Int_t GetA() const
77  {
78  return fIon.GetA();
79  }
80  virtual Int_t GetZ() const
81  {
82  return fIon.GetZ();
83  }
84  virtual void SetZ(Int_t ztnum)
85  {
86  fIon.SetZ(ztnum);
88  } // *MENU={Hierarchy="SetNucleus.../Z"}*
89  virtual void SetA(Int_t atnum)
90  {
91  fIon.SetA(atnum);
93  } // *MENU={Hierarchy="SetNucleus.../A"}*
94  virtual void SetAandZ(Int_t atnum, Int_t ztnum)
95  {
96  fIon.SetZ(ztnum);
97  fIon.SetA(atnum);
99  } // *MENU={Hierarchy="SetNucleus.../A and Z"}* *ARGS={atnum=>fA,ztnum=>fZ}
100  virtual void SetOnlyZId(Bool_t onlyz = kTRUE)
101  {
102  fGridOnlyZId = onlyz;
103  };
104  virtual Bool_t OnlyZId()const
105  {
106  return fGridOnlyZId;
107  }
108  virtual void SetMassFormula(Int_t mf)
109  {
110  if (OnlyZId()) {
111  fIon.SetMassFormula(mf);
112  fMassFormula = mf;
114  }
115  } // *SUBMENU={Hierarchy="SetNucleus.../Mass Formula"}*
116  virtual Int_t GetMassFormula()const
117  {
118  return fIon.GetMassFormula();
119  }
120 
121  virtual Bool_t TestPoint(Double_t /*x*/, Double_t /*y*/)
122  {
125 
126  AbstractMethod("TestMethod(Double_t x, Double_t y");
127  return kFALSE;
128  }
129 
130  void CopyGraph(TGraph*);
131  void CopyGraph(const TGraph&);
132 
133  using TCutG::Scale;
134  void ScaleXY(Double_t sx = -1, Double_t sy = -1);
135  void Scale(TF1* sx, TF1* sy);
136 
137  void Print(Option_t* opt) const override;
138 
139  virtual void WaitForPrimitive();
140 
141  void ExtendLine(Double_t, Option_t* Direction = ""); // *MENU={Hierarchy="Modify Line.../ExtendLine"}*
142  void ExtendLine(bool fromBeginning, Double_t Limit, Option_t* Direction);
143 
146  void SetMaximum(Double_t maximum = -1111) override
147  {
148  TGraph::SetMaximum(maximum);
149  };
150  void SetMinimum(Double_t minimum = -1111) override
151  {
152  TGraph::SetMinimum(minimum);
153  };
154  void SetTitle(const char* title = "") override
155  {
156  TGraph::SetTitle(title);
157  };
158  void FitPanel() override
159  {
161  };
162  void DrawPanel() override
163  {
165  };
166  TFitResultPtr Fit(const char* formula, Option_t* option = "", Option_t* goption = "", Axis_t xmin = 0, Axis_t xmax = 0) override
167  {
168  return TGraph::Fit(formula, option, goption, xmin, xmax);
169  };
170  TFitResultPtr Fit(TF1* f1, Option_t* option = "", Option_t* goption = "", Axis_t xmin = 0, Axis_t xmax = 0) override
171  {
172  return TGraph::Fit(f1, option, goption, xmin, xmax);
173  };
176  void SetName(const char* name) override
177  {
180  }
183  void Delete(Option_t* option = "") override
184  {
186  };
187  void DrawClass() const override
188  {
190  };
191  TObject* DrawClone(Option_t* option = "") const override
192  {
193  return TGraph::DrawClone(option);
194  };
195  virtual void CloneScaleStore(Int_t newzt, Int_t newat, Double_t dy = 0., Double_t sx = 1., Double_t sy = 1.); // *MENU* *ARGS={newat=>fA,newzt=>fZ}
196  void Dump() const override
197  {
198  TGraph::Dump();
199  };
200  void Inspect() const override
201  {
202  TGraph::Inspect();
203  };
204  void SaveAs(const char* filename = "", Option_t* option = "") const override
205  {
207  };
208  void SetDrawOption(Option_t* option = "") override
209  {
211  };
212  void SetLineAttributes() override
213  {
215  };
216  void SetFillAttributes() override
217  {
219  };
220  void SetMarkerAttributes() override
221  {
223  };
224 
225  Int_t InsertPoint() override; // *MENU={Hierarchy="Modify Line.../InsertPoint"}*
226  virtual Int_t AddPointAtTheEnd(); // *MENU={Hierarchy="Modify Line.../AddPointAtTheEnd"}*
227  virtual Int_t RemoveFirstPoint(); // *MENU={Hierarchy="Modify Line.../RemoveFirstPoint"}*
228  virtual Int_t RemoveLastPoint(); // *MENU={Hierarchy="Modify Line.../RemoveLastPoint"}*
229  virtual Int_t IncreaseNumberOfPoints(); // *MENU*
230  virtual Int_t DecreaseNumberOfPoints(); // *MENU*
231  virtual Int_t SortPoints(Bool_t ascending = kTRUE); // *MENU*
232  virtual Int_t ContinueDrawing(); // *MENU={Hierarchy="Modify Line.../ContinueDrawing"}*
233  virtual void ChechHierarchy(KVIDentifier* gr);
234  virtual Int_t RemovePoint() override; // *MENU={Hierarchy="Modify Line.../RemovePoint"}*
235  virtual Int_t RemovePoint(Int_t i) override
236  {
237  return TCutG::RemovePoint(i);
238  }
239 
240  virtual Int_t InsertSmoothPoint(); // *MENU*
241 
242 
243  virtual Double_t GetPID() const;
244 
245  ClassDefOverride(KVIDentifier, 2) //Base class for graphical cuts used in particle identification
246 };
247 
248 #endif
int Int_t
bool Bool_t
char Char_t
double Axis_t
constexpr Bool_t kFALSE
double Double_t
const char Option_t
#define ClassDefOverride(name, id)
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
char name[80]
float xmin
float xmax
char * Form(const char *fmt,...)
Base class for particle identification in a 2D map.
Definition: KVIDGraph.h:32
Base class for graphical cuts used in particle identification.
Definition: KVIDentifier.h:28
virtual void SetOnlyZId(Bool_t onlyz=kTRUE)
Definition: KVIDentifier.h:100
virtual Int_t RemovePoint(Int_t i) override
Definition: KVIDentifier.h:235
virtual void ReadAsciiFile_extras(std::ifstream &)
Definition: KVIDentifier.h:46
virtual void SetMassFormula(Int_t mf)
Definition: KVIDentifier.h:108
virtual void SetAandZ(Int_t atnum, Int_t ztnum)
Definition: KVIDentifier.h:94
virtual Int_t RemoveFirstPoint()
void DrawClass() const override
Definition: KVIDentifier.h:187
void SaveAs(const char *filename="", Option_t *option="") const override
Definition: KVIDentifier.h:204
void SetFillAttributes() override
Definition: KVIDentifier.h:216
virtual Int_t DecreaseNumberOfPoints()
TFitResultPtr Fit(TF1 *f1, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0) override
Definition: KVIDentifier.h:170
void Delete(Option_t *option="") override
Definition: KVIDentifier.h:183
virtual Double_t GetPID() const
virtual Int_t AddPointAtTheEnd()
Int_t Compare(const TObject *) const override
virtual Int_t RemovePoint() override
KVIDGraph * fParent
parent identification map or grid
Definition: KVIDentifier.h:32
KVNucleus fIon
ion/nucleus corresponding to this identifier
Definition: KVIDentifier.h:33
virtual Int_t GetA() const
Definition: KVIDentifier.h:76
virtual void WriteAsciiFile_extras(std::ofstream &, const Char_t *="")
Definition: KVIDentifier.h:42
void Copy(TObject &obj) const override
Copy attributes of this identifier into 'obj'.
virtual Int_t RemoveLastPoint()
Int_t fA
dummy variables used by context menu dialog boxes
Definition: KVIDentifier.h:37
virtual Int_t InsertSmoothPoint()
Insert a new point at the mouse X position using a smooth evaluation of the Y.
virtual Int_t IncreaseNumberOfPoints()
void ExtendLine(Double_t, Option_t *Direction="")
TObject * DrawClone(Option_t *option="") const override
Definition: KVIDentifier.h:191
Int_t fZ
dummy variables used by context menu dialog boxes
Definition: KVIDentifier.h:36
virtual void WaitForPrimitive()
Int_t InsertPoint() override
Insert a new point at the mouse position.
virtual Int_t GetZ() const
Definition: KVIDentifier.h:80
void ScaleXY(Double_t sx=-1, Double_t sy=-1)
void SetParent(KVIDGraph *)
Set pointer to parent ID graph.
virtual Int_t GetID() const
Definition: KVIDentifier.h:72
virtual void ChechHierarchy(KVIDentifier *gr)
void Dump() const override
Definition: KVIDentifier.h:196
void SetLineAttributes() override
Definition: KVIDentifier.h:212
virtual ~KVIDentifier()
Destructor.
void CopyGraph(TGraph *)
Copy coordinates of points from the TGraph.
void SetMaximum(Double_t maximum=-1111) override
Definition: KVIDentifier.h:146
void SetMinimum(Double_t minimum=-1111) override
Definition: KVIDentifier.h:150
Int_t fMassFormula
OPTION={GetMethod="GetMassFormula";SetMethod="SetMassFormula";Items=(0="Beta-stability",...
Definition: KVIDentifier.h:38
void FitPanel() override
Definition: KVIDentifier.h:158
virtual Bool_t OnlyZId() const
Definition: KVIDentifier.h:104
virtual Int_t GetMassFormula() const
Definition: KVIDentifier.h:116
void NotifyParentOfModification()
If identifier belongs to a graph/grid, send signal to say it has been modified.
virtual void CloneScaleStore(Int_t newzt, Int_t newat, Double_t dy=0., Double_t sx=1., Double_t sy=1.)
virtual void WriteAsciiFile(std::ofstream &, const Char_t *name_prefix="")
void DrawPanel() override
Definition: KVIDentifier.h:162
void SetMarkerAttributes() override
Definition: KVIDentifier.h:220
Bool_t fGridOnlyZId
=kTRUE if parent grid has OnlyZId set
Definition: KVIDentifier.h:34
void SetTitle(const char *title="") override
Definition: KVIDentifier.h:154
virtual Int_t SortPoints(Bool_t ascending=kTRUE)
virtual void SetA(Int_t atnum)
Definition: KVIDentifier.h:89
KVIDGraph * GetParent() const
Get pointer to parent ID graph.
KVIDentifier()
Default constructor.
void Print(Option_t *opt) const override
virtual void ReadAsciiFile(std::ifstream &)
virtual Bool_t TestPoint(Double_t, Double_t)
Definition: KVIDentifier.h:121
virtual void SetZ(Int_t ztnum)
Definition: KVIDentifier.h:84
void SetDrawOption(Option_t *option="") override
Definition: KVIDentifier.h:208
virtual Int_t ContinueDrawing()
Continue to draw an existing the line.
void SetName(const char *name) override
Definition: KVIDentifier.h:176
virtual void SetNameFromNucleus()
Definition: KVIDentifier.h:47
TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0) override
Definition: KVIDentifier.h:166
void Inspect() const override
Definition: KVIDentifier.h:200
void Scale(TF1 *sx, TF1 *sy)
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:123
Int_t GetA() const
Definition: KVNucleus.cpp:796
void SetA(Int_t a)
Definition: KVNucleus.cpp:651
void SetZ(Int_t z, Char_t mt=-1)
Definition: KVNucleus.cpp:700
void SetMassFormula(UChar_t mt)
Definition: KVNucleus.h:341
Int_t GetZ() const
Return the number of proton / atomic number.
Definition: KVNucleus.cpp:767
Int_t GetMassFormula() const
Definition: KVNucleus.h:173
virtual void SetFillAttributes()
virtual void SetLineAttributes()
virtual void SetMarkerAttributes()
virtual void SetMaximum(Double_t maximum=-1111)
void SaveAs(const char *filename, Option_t *option="") const override
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0)
virtual void Scale(Double_t c1=1., Option_t *option="y")
virtual void FitPanel()
virtual Int_t RemovePoint()
void SetName(const char *name="") override
void SetTitle(const char *title="") override
virtual void DrawPanel()
virtual void SetMinimum(Double_t minimum=-1111)
void AbstractMethod(const char *method) const
virtual void Inspect() const
virtual void Dump() const
virtual TObject * DrawClone(Option_t *option="") const
virtual void Delete(Option_t *option="")
virtual void SetDrawOption(Option_t *option="")
virtual void DrawClass() const
TF1 * f1