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*);
64 
65  Int_t Compare(const TObject*) const override;
66  void Copy(TObject& obj) const override;
67 
68  virtual void WriteAsciiFile(std::ofstream&, const Char_t* name_prefix = "");
69  virtual void ReadAsciiFile(std::ifstream&);
70 
71  virtual Int_t GetID() const
72  {
73  return 0;
74  }
75  virtual Int_t GetA() const
76  {
77  return fIon.GetA();
78  }
79  virtual Int_t GetZ() const
80  {
81  return fIon.GetZ();
82  }
83  virtual void SetZ(Int_t ztnum)
84  {
85  fIon.SetZ(ztnum);
87  } // *MENU={Hierarchy="SetNucleus.../Z"}*
88  virtual void SetA(Int_t atnum)
89  {
90  fIon.SetA(atnum);
92  } // *MENU={Hierarchy="SetNucleus.../A"}*
93  virtual void SetAandZ(Int_t atnum, Int_t ztnum)
94  {
95  fIon.SetZ(ztnum);
96  fIon.SetA(atnum);
98  } // *MENU={Hierarchy="SetNucleus.../A and Z"}* *ARGS={atnum=>fA,ztnum=>fZ}
99  virtual void SetOnlyZId(Bool_t onlyz = kTRUE)
100  {
101  fGridOnlyZId = onlyz;
102  };
103  virtual Bool_t OnlyZId()const
104  {
105  return fGridOnlyZId;
106  }
107  virtual void SetMassFormula(Int_t mf)
108  {
109  if (OnlyZId()) {
110  fIon.SetMassFormula(mf);
111  fMassFormula = mf;
113  }
114  } // *SUBMENU={Hierarchy="SetNucleus.../Mass Formula"}*
115  virtual Int_t GetMassFormula()const
116  {
117  return fIon.GetMassFormula();
118  }
119 
120  virtual Bool_t TestPoint(Double_t /*x*/, Double_t /*y*/)
121  {
124 
125  AbstractMethod("TestMethod(Double_t x, Double_t y");
126  return kFALSE;
127  }
128 
129  void CopyGraph(TGraph*);
130  void CopyGraph(const TGraph&);
131 
132  using TCutG::Scale;
133  void Scale(Double_t sx = -1, Double_t sy = -1);
134  void Scale(TF1* sx, TF1* sy);
135 
136  void Print(Option_t* opt) const override;
137 
138  virtual void WaitForPrimitive();
139 
140  void ExtendLine(Double_t, Option_t* Direction = ""); // *MENU={Hierarchy="Modify Line.../ExtendLine"}*
141  void ExtendLine(bool fromBeginning, Double_t Limit, Option_t* Direction);
142 
145  void SetMaximum(Double_t maximum = -1111) override
146  {
147  TGraph::SetMaximum(maximum);
148  };
149  void SetMinimum(Double_t minimum = -1111) override
150  {
151  TGraph::SetMinimum(minimum);
152  };
153  void SetTitle(const char* title = "") override
154  {
155  TGraph::SetTitle(title);
156  };
157  void FitPanel() override
158  {
160  };
161  void DrawPanel() override
162  {
164  };
165  TFitResultPtr Fit(const char* formula, Option_t* option = "", Option_t* goption = "", Axis_t xmin = 0, Axis_t xmax = 0) override
166  {
167  return TGraph::Fit(formula, option, goption, xmin, xmax);
168  };
169  TFitResultPtr Fit(TF1* f1, Option_t* option = "", Option_t* goption = "", Axis_t xmin = 0, Axis_t xmax = 0) override
170  {
171  return TGraph::Fit(f1, option, goption, xmin, xmax);
172  };
175  void SetName(const char* name) override;
178  void Delete(Option_t* option = "") override
179  {
181  };
182  void DrawClass() const override
183  {
185  };
186  TObject* DrawClone(Option_t* option = "") const override
187  {
188  return TGraph::DrawClone(option);
189  };
190  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}
191  void Dump() const override
192  {
193  TGraph::Dump();
194  };
195  void Inspect() const override
196  {
197  TGraph::Inspect();
198  };
199  void SaveAs(const char* filename = "", Option_t* option = "") const override
200  {
202  };
203  void SetDrawOption(Option_t* option = "") override
204  {
206  };
207  void SetLineAttributes() override
208  {
210  };
211  void SetFillAttributes() override
212  {
214  };
215  void SetMarkerAttributes() override
216  {
218  };
219 
220  Int_t InsertPoint() override; // *MENU={Hierarchy="Modify Line.../InsertPoint"}*
221  virtual Int_t AddPointAtTheEnd(); // *MENU={Hierarchy="Modify Line.../AddPointAtTheEnd"}*
222  virtual Int_t RemoveFirstPoint(); // *MENU={Hierarchy="Modify Line.../RemoveFirstPoint"}*
223  virtual Int_t RemoveLastPoint(); // *MENU={Hierarchy="Modify Line.../RemoveLastPoint"}*
224  virtual Int_t IncreaseNumberOfPoints(); // *MENU*
225  virtual Int_t DecreaseNumberOfPoints(); // *MENU*
226  virtual Int_t SortPoints(Bool_t ascending = kTRUE); // *MENU*
227  virtual Int_t ContinueDrawing(); // *MENU={Hierarchy="Modify Line.../ContinueDrawing"}*
228  virtual void ChechHierarchy(KVIDentifier* gr);
229  virtual Int_t RemovePoint() override; // *MENU={Hierarchy="Modify Line.../RemovePoint"}*
230  virtual Int_t RemovePoint(Int_t i) override
231  {
232  return TCutG::RemovePoint(i);
233  }
234 
235  virtual Int_t InsertSmoothPoint(); // *MENU*
236 
237 
238  virtual Double_t GetPID() const;
239 
240  ClassDefOverride(KVIDentifier, 2) //Base class for graphical cuts used in particle identification
241 };
242 
243 #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
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:99
virtual Int_t RemovePoint(Int_t i) override
Definition: KVIDentifier.h:230
virtual void ReadAsciiFile_extras(std::ifstream &)
Definition: KVIDentifier.h:46
virtual void SetMassFormula(Int_t mf)
Definition: KVIDentifier.h:107
virtual void SetAandZ(Int_t atnum, Int_t ztnum)
Definition: KVIDentifier.h:93
virtual Int_t RemoveFirstPoint()
void Scale(Double_t sx=-1, Double_t sy=-1)
void DrawClass() const override
Definition: KVIDentifier.h:182
void SaveAs(const char *filename="", Option_t *option="") const override
Definition: KVIDentifier.h:199
void SetFillAttributes() override
Definition: KVIDentifier.h:211
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:169
void Delete(Option_t *option="") override
Definition: KVIDentifier.h:178
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:75
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:186
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:79
void SetParent(KVIDGraph *)
Set pointer to parent ID graph.
virtual Int_t GetID() const
Definition: KVIDentifier.h:71
virtual void ChechHierarchy(KVIDentifier *gr)
void Dump() const override
Definition: KVIDentifier.h:191
void SetLineAttributes() override
Definition: KVIDentifier.h:207
virtual ~KVIDentifier()
Destructor.
void CopyGraph(TGraph *)
Copy coordinates of points from the TGraph.
void SetMaximum(Double_t maximum=-1111) override
Definition: KVIDentifier.h:145
void SetMinimum(Double_t minimum=-1111) override
Definition: KVIDentifier.h:149
Int_t fMassFormula
OPTION={GetMethod="GetMassFormula";SetMethod="SetMassFormula";Items=(0="Beta-stability",...
Definition: KVIDentifier.h:38
void FitPanel() override
Definition: KVIDentifier.h:157
virtual Bool_t OnlyZId() const
Definition: KVIDentifier.h:103
virtual Int_t GetMassFormula() const
Definition: KVIDentifier.h:115
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:161
void SetMarkerAttributes() override
Definition: KVIDentifier.h:215
Bool_t fGridOnlyZId
=kTRUE if parent grid has OnlyZId set
Definition: KVIDentifier.h:34
void SetTitle(const char *title="") override
Definition: KVIDentifier.h:153
virtual Int_t SortPoints(Bool_t ascending=kTRUE)
virtual void SetA(Int_t atnum)
Definition: KVIDentifier.h:88
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:120
virtual void SetZ(Int_t ztnum)
Definition: KVIDentifier.h:83
void SetDrawOption(Option_t *option="") override
Definition: KVIDentifier.h:203
virtual Int_t ContinueDrawing()
Continue to draw an existing the line.
void SetName(const char *name) override
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:165
void Inspect() const override
Definition: KVIDentifier.h:195
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:123
Int_t GetA() const
Definition: KVNucleus.cpp:792
void SetA(Int_t a)
Definition: KVNucleus.cpp:647
void SetZ(Int_t z, Char_t mt=-1)
Definition: KVNucleus.cpp:696
void SetMassFormula(UChar_t mt)
Definition: KVNucleus.h:341
Int_t GetZ() const
Return the number of proton / atomic number.
Definition: KVNucleus.cpp:763
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 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