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  void Scale(Double_t sx = -1, Double_t sy = -1);
133  void Scale(TF1* sx, TF1* sy);
134 
135  void Print(Option_t* opt) const override;
136 
137  virtual void WaitForPrimitive();
138 
139  void ExtendLine(Double_t, Option_t* Direction = ""); // *MENU={Hierarchy="Modify Line.../ExtendLine"}*
140  void ExtendLine(bool fromBeginning, Double_t Limit, Option_t* Direction);
141 
144  void SetMaximum(Double_t maximum = -1111) override
145  {
146  TGraph::SetMaximum(maximum);
147  };
148  void SetMinimum(Double_t minimum = -1111) override
149  {
150  TGraph::SetMinimum(minimum);
151  };
152  void SetTitle(const char* title = "") override
153  {
154  TGraph::SetTitle(title);
155  };
156  void FitPanel() override
157  {
159  };
160  void DrawPanel() override
161  {
163  };
164  TFitResultPtr Fit(const char* formula, Option_t* option = "", Option_t* goption = "", Axis_t xmin = 0, Axis_t xmax = 0) override
165  {
166  return TGraph::Fit(formula, option, goption, xmin, xmax);
167  };
168  TFitResultPtr Fit(TF1* f1, Option_t* option = "", Option_t* goption = "", Axis_t xmin = 0, Axis_t xmax = 0) override
169  {
170  return TGraph::Fit(f1, option, goption, xmin, xmax);
171  };
174  void SetName(const char* name) override;
177  void Delete(Option_t* option = "") override
178  {
180  };
181  void DrawClass() const override
182  {
184  };
185  TObject* DrawClone(Option_t* option = "") const override
186  {
187  return TGraph::DrawClone(option);
188  };
189  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}
190  void Dump() const override
191  {
192  TGraph::Dump();
193  };
194  void Inspect() const override
195  {
196  TGraph::Inspect();
197  };
198  void SaveAs(const char* filename = "", Option_t* option = "") const override
199  {
201  };
202  void SetDrawOption(Option_t* option = "") override
203  {
205  };
206  void SetLineAttributes() override
207  {
209  };
210  void SetFillAttributes() override
211  {
213  };
214  void SetMarkerAttributes() override
215  {
217  };
218 
219  Int_t InsertPoint() override; // *MENU={Hierarchy="Modify Line.../InsertPoint"}*
220  virtual Int_t AddPointAtTheEnd(); // *MENU={Hierarchy="Modify Line.../AddPointAtTheEnd"}*
221  virtual Int_t RemoveFirstPoint(); // *MENU={Hierarchy="Modify Line.../RemoveFirstPoint"}*
222  virtual Int_t RemoveLastPoint(); // *MENU={Hierarchy="Modify Line.../RemoveLastPoint"}*
223  virtual Int_t IncreaseNumberOfPoints(); // *MENU*
224  virtual Int_t DecreaseNumberOfPoints(); // *MENU*
225  virtual Int_t SortPoints(Bool_t ascending = kTRUE); // *MENU*
226  virtual Int_t ContinueDrawing(); // *MENU={Hierarchy="Modify Line.../ContinueDrawing"}*
227  virtual void ChechHierarchy(KVIDentifier* gr);
228  virtual Int_t RemovePoint() override; // *MENU={Hierarchy="Modify Line.../RemovePoint"}*
229  virtual Int_t RemovePoint(Int_t i) override
230  {
231  return TCutG::RemovePoint(i);
232  }
233 
234  virtual Int_t InsertSmoothPoint(); // *MENU*
235 
236 
237  virtual Double_t GetPID() const;
238 
239  ClassDefOverride(KVIDentifier, 2) //Base class for graphical cuts used in particle identification
240 };
241 
242 #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:229
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:181
void SaveAs(const char *filename="", Option_t *option="") const override
Definition: KVIDentifier.h:198
void SetFillAttributes() override
Definition: KVIDentifier.h:210
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:168
void Delete(Option_t *option="") override
Definition: KVIDentifier.h:177
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:185
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:190
void SetLineAttributes() override
Definition: KVIDentifier.h:206
virtual ~KVIDentifier()
Destructor.
void CopyGraph(TGraph *)
Copy coordinates of points from the TGraph.
void SetMaximum(Double_t maximum=-1111) override
Definition: KVIDentifier.h:144
void SetMinimum(Double_t minimum=-1111) override
Definition: KVIDentifier.h:148
Int_t fMassFormula
OPTION={GetMethod="GetMassFormula";SetMethod="SetMassFormula";Items=(0="Beta-stability",...
Definition: KVIDentifier.h:38
void FitPanel() override
Definition: KVIDentifier.h:156
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:160
void SetMarkerAttributes() override
Definition: KVIDentifier.h:214
Bool_t fGridOnlyZId
=kTRUE if parent grid has OnlyZId set
Definition: KVIDentifier.h:34
void SetTitle(const char *title="") override
Definition: KVIDentifier.h:152
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:202
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:164
void Inspect() const override
Definition: KVIDentifier.h:194
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 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