KaliVeda
Toolkit for HIC analysis
KVIDZALine.h
1 /***************************************************************************
2  KVIDZALine.h - description
3  -------------------
4  begin : Nov 10 2004
5  copyright : (C) 2004 by J.D. Frankland
6  email : frankland@ganil.fr
7 
8 $Id: KVIDZALine.h,v 1.6 2009/03/13 13:04:11 franklan Exp $
9 ***************************************************************************/
10 
11 #ifndef KVIDZALine_H
12 #define KVIDZALine_H
13 
14 #include "KVIDLine.h"
15 #include "KVNucleus.h"
16 #include "TGraphErrors.h"
17 
33 class KVIDZALine: public KVIDLine {
34 
35  friend class KVIDZAGrid;
36 
37 protected:
38 
41 
42  virtual void SetAsymWidth(Double_t d_l, Double_t d_r);
43 
46  void SetName(const char* name) override
47  {
49  };
50  void WriteAsciiFile_extras(std::ofstream&, const Char_t* name_prefix = "") override;
51  void ReadAsciiFile_extras(std::ifstream&) override;
52 
53 public:
54 
55  KVIDZALine();
56  KVIDZALine(const KVIDZALine&);
57 
58  virtual ~ KVIDZALine();
59  void Copy(TObject& obj) const override;
60 
62  {
63  return fWidth;
64  };
66  {
67  fWidth = w;
68  };
69 
71 
72  inline Int_t Compare(const TObject*) const override;
73 
74  void Print(Option_t* opt = "") const override;
75 
76  void ReadAsciiFile_KVIDZLine(std::ifstream&);
77 
79 
80  Bool_t HasMassFits() const override;
81 
82  ClassDefOverride(KVIDZALine, 2)//Base class for identification ridge lines corresponding to different nuclear species
83 };
84 
86 
87 inline Int_t KVIDZALine::Compare(const TObject* obj) const
88 {
92 
94 
95  int zline1 = GetZ();
96  int zline2 = ((KVIDZALine*)obj)->GetZ();
97  if (zline1 > zline2)
98  return 1;
99  if (zline1 < zline2)
100  return -1;
102  int aline1 = GetA();
103  int aline2 = ((KVIDZALine*)obj)->GetA();
104  if (aline1 > aline2)
105  return 1;
106  if (aline1 < aline2)
107  return -1;
108  return 0;
109 }
110 
111 class KVIDZLine : public KVIDZALine {
112 
113 public:
114  KVIDZLine();
115 
116  ClassDefOverride(KVIDZLine, 3) //FOR BACKWARDS COMPATIBILITY ONLY. OBSOLETE.
117 };
118 
119 #endif
int Int_t
bool Bool_t
char Char_t
double Double_t
const char Option_t
#define ClassDefOverride(name, id)
winID w
char name[80]
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
Base class for identification ridge lines corresponding to different nuclear species.
Definition: KVIDZALine.h:33
void SetName(const char *name) override
Definition: KVIDZALine.h:46
void Copy(TObject &obj) const override
copy 'this' to 'obj'
Definition: KVIDZALine.cpp:64
void ReadAsciiFile_KVIDZLine(std::ifstream &)
Definition: KVIDZALine.cpp:129
virtual void SetAsymWidth(Double_t d_l, Double_t d_r)
Definition: KVIDZALine.cpp:229
void Print(Option_t *opt="") const override
Definition: KVIDZALine.cpp:174
TGraphErrors * GetLineWithWidth()
Definition: KVIDZALine.cpp:194
void SetWidth(Double_t w)
Definition: KVIDZALine.h:65
Int_t Compare(const TObject *) const override
Definition: KVIDZALine.h:87
void ReadAsciiFile_extras(std::ifstream &) override
Read Z & A of line.
Definition: KVIDZALine.cpp:102
TGraphErrors * fLineWithWidth
used to display width of line
Definition: KVIDZALine.h:40
virtual ~ KVIDZALine()
Double_t GetWidth() const
Definition: KVIDZALine.h:61
Bool_t HasMassFits() const override
virtual Int_t GetID() const { return GetA();}
Definition: KVIDZALine.cpp:158
Double_t fWidth
the "width" of the line
Definition: KVIDZALine.h:39
void WriteAsciiFile_extras(std::ofstream &, const Char_t *name_prefix="") override
Write Z & A of line.
Definition: KVIDZALine.cpp:87
KVIDZLine()
This class is for backwards compatibility only.
Definition: KVIDZALine.cpp:287
virtual Int_t GetA() const
Definition: KVIDentifier.h:76
virtual Int_t GetZ() const
Definition: KVIDentifier.h:80
void SetName(const char *name="") override