KaliVeda
Toolkit for HIC analysis
KVIDGraph.h
1 /*
2 $Id: KVIDGraph.h,v 1.7 2009/04/28 09:07:47 franklan Exp $
3 $Revision: 1.7 $
4 $Date: 2009/04/28 09:07:47 $
5 */
6 
9 
10 #ifndef __KVIDGRAPH_H
11 #define __KVIDGRAPH_H
12 
13 #include "TCutG.h"
14 #include "KVNameValueList.h"
15 #include "KVIDentifier.h"
16 #include <KVDatime.h>
17 #include <RQ_OBJECT.h>
18 #include <TH2.h>
19 #include "KVIdentificationResult.h"
20 #include "KVNumberList.h"
21 #include "RVersion.h"
22 class TVirtualPad;
23 
31 class KVIDGraph : public TCutG {
32  friend class KVIDGridManager;
33 
34  RQ_OBJECT("KVIDGraph")
35 
36 protected:
37 
50  mutable TString fDyName;
56 
57  Bool_t IsOnlyZId() const
58  {
62  return fOnlyZId;
63  }
64 
65  void ScaleXY(Double_t sx = -1, Double_t sy = -1);
66  void init();
67  virtual KVIDentifier* New(const Char_t*);
68  virtual void ReadIdentifierFromAsciiFile(TString& name, TString& type, TString& cl, std::ifstream& gridfile);
70  virtual void BackwardsCompatibilityFix();
71 
74  {
82 
83  int zmax, amax;
84  if (fLastIDLineAdded) {
85  zmax = fLastIDLineAdded->GetZ();
86  amax = fLastIDLineAdded->GetA();
87  }
88  else if(GetNumberOfIdentifiers())
89  {
91  zmax= static_cast<KVIDentifier*>(GetIdentifiers()->Last())->GetZ();
92  amax= static_cast<KVIDentifier*>(GetIdentifiers()->Last())->GetA();
93  }
94  else
95  {
97  zmax = !IsOnlyZId();
98  amax = 0;
99  }
100  if (IsOnlyZId())
101  idline->SetZ(zmax + 1);
102  else
103  idline->SetAandZ(amax + 1, zmax);
104  fLastIDLineAdded = idline;
105  }
106 
107 public:
108  void SetName(const Char_t* nome = "") override
109  {
111  TCutG::SetName(nome);
112  fGridName=nome;
113  }
114  void SetTitle(const Char_t* t = "") override
115  {
117  TCutG::SetTitle(t);
118  }
119  void SetStats(Bool_t stats = kTRUE) override
120  {
122  TCutG::SetStats(stats);
123  }
124  void SetHighlight(Bool_t yes = kTRUE) override
125  {
127  TCutG::SetHighlight(yes);
128  }
129  virtual void ReadFromAsciiFile(std::ifstream& gridfile);
130  virtual void WriteToAsciiFile(std::ofstream& gridfile);
132  {
138 
139  return idr.IDOK;
140  }
141  void AddParameter(char* Name, char* Value)
142  {
144  }
145 
146  KVIDGraph();
147  KVIDGraph(const KVIDGraph&);
148  virtual ~KVIDGraph();
149 
150  void Copy(TObject&) const override;
151  virtual void Identify(Double_t /*x*/, Double_t /*y*/, KVIdentificationResult*) const = 0;
152  virtual void Initialize() = 0;
153  virtual Bool_t IsIdentifiable(Double_t /*x*/, Double_t /*y*/, TString* rejected_by = nullptr) const;
154  virtual void SetInfos(Double_t /*x*/, Double_t /*y*/, KVIdentificationResult* /*idr*/) const;
155 
156  static void SetAutoAdd(Bool_t yes = kTRUE)
157  {
160  fAutoAddGridManager = yes;
161  }
163  {
166  return fAutoAddGridManager;
167  }
169  {
170  return fLastSavedVersion;
171  }
173  void UpdateLastSavedVersion();
174 
175  const Char_t* GetTimestamp() const;
176  const Char_t* GetFileWrite() const;
177 
178  static KVIDGraph* MakeIDGraph(const Char_t*);
179 
180  void FindAxisLimits();
181  void Scale(Double_t c1=1., Option_t *option="y") override
182  {
184  }
185  void Scale(TF1* sx, TF1* sy);
186 
187  KVIDentifier* GetIdentifier(Int_t Z, Int_t A) const;
189  void RemoveCut(KVIDentifier*);
190  void RemoveInfo(KVIDentifier*);
191 
193  {
194  return fPad;
195  }
196 
197  void ReadAsciiFile(const Char_t* filename);
198  void SetGridName(const char* name)
199  {
200  SetName(name);
201  Modified();
202  } // *MENU*
204  {
205  return fGridName;
206  }
207  void Clear(Option_t* opt = "") override; // *MENU*
208  void SetXVariable(const char* v)
209  {
210  SetVarX(v);
211  Modified();
212  } // *MENU={Hierarchy="Set.../X Variable"}* *ARGS={v=>fVarX}
213  void SetYVariable(const char* v)
214  {
215  SetVarY(v);
216  Modified();
217  } // *MENU={Hierarchy="Set.../Y Variable"}* *ARGS={v=>fVarY}
218  void SetRunList(const char* runlist)
219  {
220  SetRuns(KVNumberList(runlist));
221  } // *MENU={Hierarchy="Set.../List of Runs"}*
222  virtual void SetOnlyZId(Bool_t yes = kTRUE);
223  void SetMassFormula(Int_t);// *SUBMENU={Hierarchy="Set.../Mass Formula"}*
224  void WriteAsciiFile(const Char_t* filename); // *MENU*
225  void SetXScaleFactor(Double_t = 0); // *MENU={Hierarchy="Scale.../X Scale Factor"}*
226  void SetYScaleFactor(Double_t = 0);// *MENU={Hierarchy="Scale.../Y Scale Factor"}*
229  void SetEditable(Bool_t editable = kTRUE) override; // *TOGGLE* *GETTER=GetEditable
230 
231  virtual Bool_t HasMassIDCapability() const
232  {
237  return !IsOnlyZId();
238  }
239 
240  virtual void SetMassIDCapability(Bool_t yes = kTRUE)
241  {
243  SetOnlyZId(!yes);
244  } // *TOGGLE={Hierarchy="A and Z Identification"}* *GETTER=HasMassIDCapability
245 
246  void Draw(Option_t* opt = "") override; // *MENU={Hierarchy="View.../Draw"}*
247  void UnDraw(); // *MENU={Hierarchy="View.../UnDraw"}*
248  void ResetDraw();// *MENU={Hierarchy="View.../ResetDraw"}*
249  void SetLineColor(Color_t lcolor) override
250  {
252  fIdentifiers.Execute("SetLineColor", Form("%d", (Int_t) lcolor));
253  fCuts.Execute("SetLineColor", Form("%d", (Int_t) lcolor));
254  fInfoZones.Execute("SetLineColor", Form("%d", (Int_t) lcolor));
255  Modified();
256  } // *MENU={Hierarchy="View.../SetLinecolor"}*
257  void SetLineStyle(Style_t lstyle) override
258  {
260  fIdentifiers.Execute("SetLineStyle", Form("%d", (Int_t) lstyle));
261  fCuts.Execute("SetLineStyle", Form("%d", (Int_t) lstyle));
262  fInfoZones.Execute("SetLineStyle", Form("%d", (Int_t) lstyle));
263  Modified();
264  } // *MENU={Hierarchy="View.../SetLineStyle"}*
265  void SetLineWidth(Width_t lwidth) override
266  {
268  fIdentifiers.Execute("SetLineWidth", Form("%d", (Int_t) lwidth));
269  fCuts.Execute("SetLineWidth", Form("%d", (Int_t) lwidth));
270  fInfoZones.Execute("SetLineWidth", Form("%d", (Int_t) lwidth));
271  Modified();
272  } // *MENU={Hierarchy="View.../SetLineWidth"}*
273 
274  void ExtendBeginningAllIdentLines(Double_t, Option_t* = "");// *MENU*
275  void ExtendEndAllIdentLines(Double_t, Option_t* = "");// *MENU*
276 
279  void Add(TString, KVIDentifier*);
281  virtual void DrawAndAdd(const TString& type = "ID", const TString& classname = "KVIDentifier");
282  void Print(Option_t* opt = "") const override;
283 
284  static KVIDGraph* AddGraphs(KVIDGraph* g1, Int_t id1_min, Int_t id1_max,
285  KVIDGraph* g2, Int_t id2_min, Int_t id2_max);
286  void SetRuns(const KVNumberList& nl);
287 
288  const Char_t* GetName() const override;
289  virtual void WriteAsciiFile_WP(Int_t version = -1); //WP means with pattern
290  virtual void ReadAsciiFile_WP(Int_t version = -1); //WP means with pattern
291  virtual Int_t CheckVersion(Int_t version);
292  virtual Bool_t ExistVersion(Int_t version)
293  {
294  if (version != -1) return (version == CheckVersion(version));
295  else return (version != -1);
296  }
297  void SetPattern(TString pattern)
298  {
299  pattern.ReplaceAll(".", "_");
300  fPattern = pattern;
301  }
303  {
304  return fPattern;
305  }
306 
307  void Increment(Float_t x) // *SIGNAL*
308  {
311  Emit("Increment(Float_t)", x);
312  }
313  void Modified() // *SIGNAL*
314  {
318 
319  UpdateTimestamp();
320  Emit("Modified()");
321  }
323  {
325 
326  KVDatime timestamp;
327  GetParameters()->SetValue("Timestamp", timestamp.AsSQLString());
328  }
329 
330  const KVNumberList& GetRuns() const
331  {
333  return fRunList;
334  }
335  const Char_t* GetRunList() const
336  {
338  return (const char*)fRunList;
339  }
341  {
343  return (KVIDentifier*)fIdentifiers.At(index);
344  }
345  KVIDentifier* GetIdentifier(const Char_t* name) const
346  {
348  }
349  KVIDentifier* GetCut(const Char_t* name) const
350  {
351  return (KVIDentifier*)fCuts.FindObject(name);
352  }
353  KVIDentifier* GetInfo(const Char_t* name) const
354  {
356  }
358  {
360  return &fPar;
361  }
363  {
365  return &fPar;
366  }
367  const KVList* GetIdentifiers() const
368  {
370  return &fIdentifiers;
371  }
373  {
375  return &fIdentifiers;
376  }
377  const KVList* GetCuts() const
378  {
380  return &fCuts;
381  }
383  {
385  return &fCuts;
386  }
387  const KVList* GetInfos() const
388  {
390  return &fInfoZones;
391  }
393  {
395  return &fInfoZones;
396  }
398  {
399  return fIdentifiers.GetSize();
400  }
402  {
403  return fCuts.GetSize();
404  }
406  {
407  return fInfoZones.GetSize();
408  }
409  virtual void AddIdentifier(KVIDentifier* id)
410  {
412  fIdentifiers.Add(id);
413  id->SetParent(this);
414  id->SetVarX(GetVarX());
415  id->SetVarY(GetVarY());
416  id->SetOnlyZId(IsOnlyZId());
419  if (IsOnlyZId()) id->SetMassFormula(GetMassFormula());
421  }
422  virtual void AddCut(KVIDentifier* cut)
423  {
425  cut->SetLineColor(kRed);
426  cut->SetParent(this);
427  fCuts.Add(cut);
428  cut->SetVarX(GetVarX());
429  cut->SetVarY(GetVarY());
430  cut->SetBit(kMustCleanup);
431  if(TString(cut->GetSelectionType()).IsNull())
432  {
433  KVError::Error(this, "KVIDGraph::AddCut", "Grid %s : cut '%s' with unknown accepted direction!", GetName(), cut->GetName());
434  }
436  }
437  virtual void AddInfo(KVIDentifier* info)
438  {
440  info->SetLineColor(kBlue);
441  info->SetParent(this);
442  fInfoZones.Add(info);
443  info->SetVarX(GetVarX());
444  info->SetVarY(GetVarY());
445  info->SetBit(kMustCleanup);
447  }
449  {
450  fIdentifiers.Sort();
452  }
453  Bool_t IsSorted() const
454  {
456  return fIdentifiers.IsSorted();
457  }
458  Axis_t GetXmin() const
459  {
460  return fXmin;
461  }
462  Axis_t GetYmin() const
463  {
464  return fYmin;
465  }
466  Axis_t GetXmax() const
467  {
468  return fXmax;
469  }
470  Axis_t GetYmax() const
471  {
472  return fYmax;
473  }
474  virtual Int_t GetQualityCode() const
475  {
478  return 0;
479  }
481  {
482  fTelescopes.Clear();
483  fPar.RemoveParameter("IDTelescopes");
484  }
485  void AddIDTelescopes(const TList*);
487  {
488  return &fTelescopes;
489  }
491  {
494 
495  if (fPar.HasParameter("IDTelescopes"))
496  return fPar.GetStringValue("IDTelescopes");
497  return "";
498  }
499  void SetIDTelescopes(const TString&);
500  void AddIDTelescope(const TString& t)
501  {
507 
508  fPar.IncrementValue("IDTelescopes", t);
509  }
511  {
518 
519  fTelescopes.Add(t);
520  AddIDTelescope(t->GetName());
521  Modified();
522  }
524  {
527 
528  fTelescopes.Remove(t);
529  KVString idt_list = fPar.GetStringValue("IDTelescopes");
530  idt_list.RemoveFromList(t->GetName());
531  fPar.SetValue("IDTelescopes", idt_list);
532  Modified();
533  }
535  {
537 
538  return fTelescopes.Contains(t);
539  }
541  {
544 
545  KVBase* id = (KVBase*)fTelescopes.First();
546  return (id ? id->GetLabel() : "");
547  }
549  {
550  return fMassFormula;
551  }
552  void ResetPad();
553  void ClearPad(TVirtualPad*);
555  {
558  return fPad;
559  }
560  virtual void TestIdentification(TH2F* data, KVHashList& histos, KVNameValueList& histo_names);
561 
564  void SetMaximum(Double_t maximum = -1111) override
565  {
566  TGraph::SetMaximum(maximum);
567  }
568  void SetMinimum(Double_t minimum = -1111) override
569  {
570  TGraph::SetMinimum(minimum);
571  }
573  void FitPanel() override
574  {
576  }
577  void DrawPanel() override
578  {
580  }
581 
582  TFitResultPtr Fit(const char* formula, Option_t* option = "", Option_t* goption = "", Axis_t xmin = 0, Axis_t xmax = 0) override
583  {
584  return TGraph::Fit(formula, option, goption, xmin, xmax);
585  }
586  TFitResultPtr Fit(TF1* f1, Option_t* option = "", Option_t* goption = "", Axis_t xmin = 0, Axis_t xmax = 0) override
587  {
588  return TGraph::Fit(f1, option, goption, xmin, xmax);
589  }
590 
593  void Delete(Option_t* option = "") override
594  {
596  }
597  void DrawClass() const override
598  {
600  }
601  TObject* DrawClone(Option_t* option = "") const override
602  {
603  return TGraph::DrawClone(option);
604  }
605  void Dump() const override
606  {
607  TGraph::Dump();
608  }
609  void Inspect() const override
610  {
611  TGraph::Inspect();
612  }
613  void SaveAs(const char* filename = "", Option_t* option = "") const override
614  {
616  }
617  void SetDrawOption(Option_t* option = "") override
618  {
620  }
621  void SetLineAttributes() override
622  {
624  }
625  void SetFillAttributes() override
626  {
628  }
629  void SetMarkerAttributes() override
630  {
632  }
633  void SetVarX(const char* v) override
634  {
635  TCutG::SetVarX(v);
636  }
637  void SetVarY(const char* v) override
638  {
639  TCutG::SetVarY(v);
640  }
641  Int_t InsertPoint() override
642  {
643  return TCutG::InsertPoint();
644  }
645  Int_t RemovePoint() override
646  {
647  return TCutG::RemovePoint();
648  }
649  Int_t RemovePoint(Int_t i) override
650  {
651  return TCutG::RemovePoint(i);
652  }
653 
654  ClassDefOverride(KVIDGraph, 2) //Base class for particle identification in a 2D map
655 };
656 
657 #endif
int Int_t
#define RQ_OBJECT(sender_class)
short Style_t
bool Bool_t
short Color_t
char Char_t
short Width_t
float Float_t
double Axis_t
double Double_t
const char Option_t
kRed
kBlue
#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
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
char name[80]
float xmin
float xmax
char * Form(const char *fmt,...)
Base class for KaliVeda framework.
Definition: KVBase.h:140
Extension of TDatime to handle various useful date formats.
Definition: KVDatime.h:35
Extended version of ROOT THashList.
Definition: KVHashList.h:29
Base class for particle identification in a 2D map.
Definition: KVIDGraph.h:31
void DrawClass() const override
Definition: KVIDGraph.h:597
KVNumberList fRunList
runs for which grid is valid
Definition: KVIDGraph.h:48
void Add(TString, KVIDentifier *)
Definition: KVIDGraph.cpp:913
void SetRunList(const char *runlist)
Definition: KVIDGraph.h:218
Axis_t GetYmax() const
Definition: KVIDGraph.h:470
Double_t GetYScaleFactor()
Definition: KVIDGraph.cpp:294
TString fDyName
dynamically generated name
Definition: KVIDGraph.h:50
void Draw(Option_t *opt="") override
Definition: KVIDGraph.cpp:963
Bool_t HandlesIDTelescope(KVBase *t) const
Definition: KVIDGraph.h:534
Int_t RemovePoint(Int_t i) override
Definition: KVIDGraph.h:649
virtual void ReadAsciiFile_WP(Int_t version=-1)
lecture des grilles avec version suivant un modele de fichier
Definition: KVIDGraph.cpp:1486
KVIDGraph * fLastSavedVersion
copy of last save version of grid, used for 'undo'
Definition: KVIDGraph.h:53
Int_t GetNumberOfCuts() const
Definition: KVIDGraph.h:401
void ExtendBeginningAllIdentLines(Double_t, Option_t *="")
Definition: KVIDGraph.cpp:1092
KVNameValueList fPar
parameters associated to grid
Definition: KVIDGraph.h:44
void ReadAsciiFile(const Char_t *filename)
Definition: KVIDGraph.cpp:854
const Char_t * GetGridName()
Definition: KVIDGraph.h:203
KVIDentifier * GetIdentifier(const Char_t *name) const
Definition: KVIDGraph.h:345
void RemoveIdentifier(KVIDentifier *)
Remove and destroy identifier.
Definition: KVIDGraph.cpp:337
Double_t GetXScaleFactor()
Definition: KVIDGraph.cpp:276
void Clear(Option_t *opt="") override
Definition: KVIDGraph.cpp:205
virtual void TestIdentification(TH2F *data, KVHashList &histos, KVNameValueList &histo_names)
Definition: KVIDGraph.cpp:1755
void SetXVariable(const char *v)
Definition: KVIDGraph.h:208
KVList fCuts
cuts used to define area in which identification is possible
Definition: KVIDGraph.h:40
KVList fIdentifiers
list of identification objects
Definition: KVIDGraph.h:39
Double_t fLastScaleY
last applied scaling factor on Y
Definition: KVIDGraph.h:46
void Inspect() const override
Definition: KVIDGraph.h:609
virtual void SetMassIDCapability(Bool_t yes=kTRUE)
Definition: KVIDGraph.h:240
void SetVarY(const char *v) override
Definition: KVIDGraph.h:637
Double_t fLastScaleX
last applied scaling factor on X
Definition: KVIDGraph.h:45
void SetEditable(Bool_t editable=kTRUE) override
Definition: KVIDGraph.cpp:1644
void UpdateLastSavedVersion()
update last saved version. mkae copy of current state of graph.
Definition: KVIDGraph.cpp:539
Axis_t GetXmax() const
Definition: KVIDGraph.h:466
const Char_t * GetFileWrite() const
Definition: KVIDGraph.cpp:577
void ClearListOfIDTelescopes()
Definition: KVIDGraph.h:480
void ExtendEndAllIdentLines(Double_t, Option_t *="")
Definition: KVIDGraph.cpp:1108
void RemoveInfo(KVIDentifier *)
Remove and destroy cut.
Definition: KVIDGraph.cpp:365
virtual void WriteToAsciiFile(std::ofstream &gridfile)
Definition: KVIDGraph.cpp:444
const Char_t * GetNamesOfIDTelescopes() const
Definition: KVIDGraph.h:490
Bool_t IsSorted() const
Definition: KVIDGraph.h:453
const Char_t * GetTimestamp() const
Definition: KVIDGraph.cpp:559
static void SetAutoAdd(Bool_t yes=kTRUE)
Definition: KVIDGraph.h:156
void init()
Definition: KVIDGraph.cpp:69
virtual void AddInfo(KVIDentifier *info)
Definition: KVIDGraph.h:437
void Increment(Float_t x)
Definition: KVIDGraph.h:307
void SortIdentifiers()
Definition: KVIDGraph.h:448
void SetMaximum(Double_t maximum=-1111) override
Definition: KVIDGraph.h:564
KVIDentifier * GetInfo(const Char_t *name) const
Definition: KVIDGraph.h:353
void AddIDTelescope(KVBase *t)
Definition: KVIDGraph.h:510
Int_t GetNumberOfIdentifiers() const
Definition: KVIDGraph.h:397
const Char_t * GetRunList() const
Definition: KVIDGraph.h:335
virtual void ReadIdentifierFromAsciiFile(TString &name, TString &type, TString &cl, std::ifstream &gridfile)
Read in new identifier object from file.
Definition: KVIDGraph.cpp:830
Axis_t fXmin
Definition: KVIDGraph.h:42
Bool_t IsOnlyZId() const
Definition: KVIDGraph.h:57
Int_t GetMassFormula() const
Definition: KVIDGraph.h:548
void SetFillAttributes() override
Definition: KVIDGraph.h:625
KVIDentifier * GetCut(const Char_t *name) const
Definition: KVIDGraph.h:349
void MakeBestGuessForNewIDLineZandA(KVIDentifier *idline)
Definition: KVIDGraph.h:73
const KVList * GetCuts() const
Definition: KVIDGraph.h:377
TVirtualPad * GetPad() const
Definition: KVIDGraph.h:192
const KVList * GetInfos() const
Definition: KVIDGraph.h:387
void RevertToLastSavedVersion()
Definition: KVIDGraph.cpp:596
void UnDraw()
Definition: KVIDGraph.cpp:1041
void UpdateTimestamp()
Definition: KVIDGraph.h:322
void SetVarX(const char *v) override
Definition: KVIDGraph.h:633
virtual void ReadFromAsciiFile(std::ifstream &gridfile)
Definition: KVIDGraph.cpp:656
virtual Bool_t ExistVersion(Int_t version)
Definition: KVIDGraph.h:292
TVirtualPad * IsDrawn() const
Definition: KVIDGraph.h:554
void SetLineAttributes() override
Definition: KVIDGraph.h:621
void ClearPad(TVirtualPad *)
Definition: KVIDGraph.cpp:51
static Bool_t GetAutoAdd()
Definition: KVIDGraph.h:162
void SetStats(Bool_t stats=kTRUE) override
Definition: KVIDGraph.h:119
void WriteParameterListOfIDTelescopes()
Definition: KVIDGraph.cpp:384
virtual void Identify(Double_t, Double_t, KVIdentificationResult *) const =0
TString GetPattern(void)
Definition: KVIDGraph.h:302
TString fGridName
Definition: KVIDGraph.h:55
TString fPattern
pattern of filenames used to write or read grid
Definition: KVIDGraph.h:51
void SaveAs(const char *filename="", Option_t *option="") const override
Definition: KVIDGraph.h:613
Int_t RemovePoint() override
Definition: KVIDGraph.h:645
const Char_t * GetName() const override
Definition: KVIDGraph.cpp:1414
virtual void DrawAndAdd(const TString &type="ID", const TString &classname="KVIDentifier")
Definition: KVIDGraph.cpp:1252
virtual void WriteAsciiFile_WP(Int_t version=-1)
Definition: KVIDGraph.cpp:1469
void Delete(Option_t *option="") override
Definition: KVIDGraph.h:593
KVIDentifier * GetIdentifier(Int_t Z, Int_t A) const
Definition: KVIDGraph.cpp:312
virtual Bool_t HasMassIDCapability() const
Definition: KVIDGraph.h:231
KVIDentifier * GetIdentifierAt(Int_t index) const
Definition: KVIDGraph.h:340
Int_t InsertPoint() override
Definition: KVIDGraph.h:641
virtual ~KVIDGraph()
Definition: KVIDGraph.cpp:190
const KVNumberList & GetRuns() const
Definition: KVIDGraph.h:330
void AddIDTelescope(const TString &t)
Definition: KVIDGraph.h:500
void SetLineStyle(Style_t lstyle) override
Definition: KVIDGraph.h:257
TObject * DrawClone(Option_t *option="") const override
Definition: KVIDGraph.h:601
virtual Bool_t IsIdentifiable(Double_t, Double_t, TString *rejected_by=nullptr) const
Definition: KVIDGraph.cpp:1351
void FindAxisLimits()
Calculate X/Y min/max of all objects in graph.
Definition: KVIDGraph.cpp:1148
Axis_t GetYmin() const
Definition: KVIDGraph.h:462
KVIDentifier * fLastIDLineAdded
Definition: KVIDGraph.h:72
const KVNameValueList * GetParameters() const
Definition: KVIDGraph.h:357
static KVIDGraph * AddGraphs(KVIDGraph *g1, Int_t id1_min, Int_t id1_max, KVIDGraph *g2, Int_t id2_min, Int_t id2_max)
Definition: KVIDGraph.cpp:1301
void SetName(const Char_t *nome="") override
Definition: KVIDGraph.h:108
const Char_t * GetIDTelescopeLabel() const
Definition: KVIDGraph.h:540
KVIDGraph * GetLastSavedVersion() const
Definition: KVIDGraph.h:168
virtual void AddCut(KVIDentifier *cut)
Definition: KVIDGraph.h:422
void AddParameter(char *Name, char *Value)
Definition: KVIDGraph.h:141
void SetHighlight(Bool_t yes=kTRUE) override
Definition: KVIDGraph.h:124
KVNameValueList * GetParameters()
Definition: KVIDGraph.h:362
void SetMassFormula(Int_t)
Definition: KVIDGraph.cpp:1555
TList fTelescopes
ID telescopes for which grid is valid.
Definition: KVIDGraph.h:49
TFitResultPtr Fit(TF1 *f1, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0) override
Definition: KVIDGraph.h:586
const TList * GetListOfIDTelescopes() const
Definition: KVIDGraph.h:486
static Bool_t fAutoAddGridManager
if =kTRUE, grids are automatically added to ID grid manager on creation (default)
Definition: KVIDGraph.h:54
void WriteAsciiFile(const Char_t *filename)
Open, write and close ascii file containing this grid.
Definition: KVIDGraph.cpp:406
virtual KVIDentifier * New(const Char_t *)
Create new object of class "id_class" which derives from KVIDentifier.
Definition: KVIDGraph.cpp:882
void Scale(Double_t c1=1., Option_t *option="y") override
Definition: KVIDGraph.h:181
virtual void BackwardsCompatibilityFix()
Definition: KVIDGraph.cpp:1443
void AddIDTelescopes(const TList *)
Associate this graph with all ID telescopes in list.
Definition: KVIDGraph.cpp:1598
virtual void AddIdentifier(KVIDentifier *id)
Definition: KVIDGraph.h:409
virtual void SetInfos(Double_t, Double_t, KVIdentificationResult *) const
loop over KVIDGraph::fInfoZones to set flags in KVIdentificationResult
Definition: KVIDGraph.cpp:1379
void DrawPanel() override
Definition: KVIDGraph.h:577
static KVIDGraph * MakeIDGraph(const Char_t *)
Definition: KVIDGraph.cpp:1618
void SetLineColor(Color_t lcolor) override
Definition: KVIDGraph.h:249
Axis_t GetXmin() const
Definition: KVIDGraph.h:458
void SetXScaleFactor(Double_t=0)
Definition: KVIDGraph.cpp:228
Int_t GetNumberOfInfos() const
Definition: KVIDGraph.h:405
void Dump() const override
Definition: KVIDGraph.h:605
void SetIDTelescopes(const TString &)
Set value of "IDTelescopes" parameter with comma-separated list of ID telescope names.
Definition: KVIDGraph.cpp:1674
virtual Int_t GetQualityCode() const
Definition: KVIDGraph.h:474
TVirtualPad * fPad
pad in which graph is drawn
Definition: KVIDGraph.h:47
void SetYVariable(const char *v)
Definition: KVIDGraph.h:213
void FitPanel() override
virtual void SetTitle(const char *title="") {TGraph::SetTitle(title);};
Definition: KVIDGraph.h:573
KVList * GetCuts()
Definition: KVIDGraph.h:382
virtual Bool_t AcceptIDForTest(const KVIdentificationResult &idr)
Definition: KVIDGraph.h:131
void SetLineWidth(Width_t lwidth) override
Definition: KVIDGraph.h:265
KVList * GetInfos()
Definition: KVIDGraph.h:392
Axis_t fYmax
min/max Y coordinates of graph
Definition: KVIDGraph.h:43
void SetRuns(const KVNumberList &nl)
Set list of runs for which grid is valid.
Definition: KVIDGraph.cpp:1398
virtual Int_t CheckVersion(Int_t version)
Definition: KVIDGraph.cpp:1505
TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Axis_t xmin=0, Axis_t xmax=0) override
Definition: KVIDGraph.h:582
void SetMinimum(Double_t minimum=-1111) override
Definition: KVIDGraph.h:568
void SetYScaleFactor(Double_t=0)
Definition: KVIDGraph.cpp:252
virtual void Initialize()=0
void SetDrawOption(Option_t *option="") override
Definition: KVIDGraph.h:617
Axis_t fXmax
min/max X coordinates of graph
Definition: KVIDGraph.h:42
KVList * GetIdentifiers()
Definition: KVIDGraph.h:372
Bool_t fOnlyZId
set to kTRUE when only to be used to give Z identification of nuclei, no mass info
Definition: KVIDGraph.h:38
void ResetPad()
Definition: KVIDGraph.cpp:35
Int_t fMassFormula
OPTION={GetMethod="GetMassFormula";SetMethod="SetMassFormula";Items=(0="Beta-stability",...
Definition: KVIDGraph.h:52
void ResetDraw()
Definition: KVIDGraph.cpp:1078
void SetPattern(TString pattern)
Definition: KVIDGraph.h:297
Axis_t fYmin
Definition: KVIDGraph.h:43
void Copy(TObject &) const override
Copy this to 'obj'.
Definition: KVIDGraph.cpp:117
void RemoveCut(KVIDentifier *)
Remove and destroy cut.
Definition: KVIDGraph.cpp:352
void RemoveIDTelescope(KVBase *t)
Definition: KVIDGraph.h:523
void Print(Option_t *opt="") const override
Print out all objects in graph.
Definition: KVIDGraph.cpp:1122
KVList fInfoZones
contours/lines used to add info to particles (ex: punch-through)
Definition: KVIDGraph.h:41
void SetMarkerAttributes() override
Definition: KVIDGraph.h:629
virtual void SetOnlyZId(Bool_t yes=kTRUE)
Definition: KVIDGraph.cpp:1578
void SetTitle(const Char_t *t="") override
Definition: KVIDGraph.h:114
void Modified()
Definition: KVIDGraph.h:313
void SetGridName(const char *name)
Definition: KVIDGraph.h:198
void ScaleXY(Double_t sx=-1, Double_t sy=-1)
Called by SetX/YScaleFactor methods to rescale every point of every object in the grid.
Definition: KVIDGraph.cpp:1221
const KVList * GetIdentifiers() const
Definition: KVIDGraph.h:367
Handles a stock of identification grids to be used by one or more identification telescopes.
Base class for graphical cuts used in particle identification.
Definition: KVIDentifier.h:28
virtual void SetAandZ(Int_t atnum, Int_t ztnum)
Definition: KVIDentifier.h:94
virtual Int_t GetA() const
Definition: KVIDentifier.h:76
virtual Int_t GetZ() const
Definition: KVIDentifier.h:80
void SetParent(KVIDGraph *)
Set pointer to parent ID graph.
virtual const Char_t * GetSelectionType() const
Definition: KVIDentifier.h:250
virtual void SetZ(Int_t ztnum)
Definition: KVIDentifier.h:84
Full result of one attempted particle identification.
Bool_t IDOK
general quality of identification, =kTRUE if acceptable identification made
Extended TList class which owns its objects by default.
Definition: KVList.h:22
void Sort(Bool_t order=kSortAscending)
Definition: KVList.h:40
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
void SetValue(const Char_t *name, value_type value)
void RemoveParameter(const Char_t *name)
void IncrementValue(const Char_t *name, value_type value)
const Char_t * GetStringValue(const Char_t *name) const
Bool_t HasParameter(const Char_t *name) const
Strings used to represent a set of ranges of values.
Definition: KVNumberList.h:85
Bool_t IsSorted() const override
void Execute(const char *method, const char *params, Int_t *error=0) override
void Add(TObject *obj) override
TObject * FindObject(const char *name) const override
TObject * Last() const override
Int_t GetSize() const override
TObject * At(Int_t idx) const override
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Definition: KVString.h:73
void RemoveFromList(const KVString &item, const KVString &delimiter=",")
Remove the given item from a list of items separated by the given delimiter.
Definition: KVString.cpp:1466
virtual void SetFillAttributes()
virtual void SetLineAttributes()
virtual void SetLineColor(Color_t lcolor)
virtual void SetMarkerAttributes()
Bool_t Contains(const char *name) const
const char * GetVarX() const
virtual void SetVarY(const char *vary)
virtual void SetVarX(const char *varx)
const char * GetVarY() const
const char * AsSQLString() const
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
virtual void SetHighlight(Bool_t set=kTRUE)
virtual void SetStats(Bool_t stats=kTRUE)
void SetTitle(const char *title="") override
virtual Int_t InsertPoint()
virtual void DrawPanel()
virtual void SetMinimum(Double_t minimum=-1111)
void Clear(Option_t *option="") override
void Add(TObject *obj) override
TObject * Remove(const TObjLinkPtr_t &lnk)
TObject * First() const override
const char * GetName() const override
virtual void Inspect() const
void SetBit(UInt_t f)
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
TString & ReplaceAll(const char *s1, const char *s2)
RooCmdArg Name(const char *name)
return c1
Double_t x[n]
TF1 * f1
void Error(UserClass p, const char *location, const char *va_(fmt),...)
Definition: KVError.h:116
v