KaliVeda
Toolkit for HIC analysis
KVIDZAFromZGridMassHomogenizer.h
1 #pragma once
2 
3 #include "KVBase.h"
4 #include "KVIDGridManager.h"
5 #include "KVIDZAFromZGrid.h"
6 
45 {
46  KVIDGridManager theGrids;
47  TFile theData;
48 
49  using mass_dist_stat_t = std::unordered_map<std::string,std::vector<std::string>>;
50  std::map<int,mass_dist_stat_t> all_mass_ranges;
51 
52  void correct_masses_for_grid(const TString& grid_name, int Z, int deltaA,
53  const KVNameValueList& mass_fit_parameters);
54  KVIDZAFromZGrid* GetGrid(TObject* obj)
55  {
57  auto gr = dynamic_cast<KVIDZAFromZGrid*>(obj);
58  if(gr && !gr->HasRunList())
59  return gr;
60  return nullptr;
61  }
62  void Analyse(KVIDZAFromZGrid* grid,double min_yield);
63  void Analyse(const TString& gridname,double min_yield)
64  {
65  auto gr = GetGrid(gridname);
66  Analyse(gr,min_yield);
67  }
68 
69  public:
70  KVIDZAFromZGridMassHomogenizer(const TString& gridfile, const TString& datafile);
71 
72  void Analyse(double min_yield)
73  {
77 
78  for(auto obj : *theGrids.GetGrids())
79  {
80  Analyse(GetGrid(obj),min_yield);
81  }
82  }
83  KVIDZAFromZGrid* GetGrid(const TString& gridname)
84  {
86  return GetGrid(theGrids.GetGrid(gridname));
87  }
88  void Print() const;
89  void ShowFits(int Z, const std::string& alist);
90  void CorrectMasses(int Z, const std::string& alist, int deltaA,
91  const KVNameValueList& mass_fit_parameters);
92  void CorrectMassesForTelescope(int Z, const TString& idtel, int deltaA,
93  const KVNameValueList& mass_fit_parameters);
94  void Clear()
95  {
97  all_mass_ranges.clear();
98  }
99  void SaveGrids(const TString& filename);
100 
102 };
103 
#define ClassDefOverride(name, id)
Base class for KaliVeda framework.
Definition: KVBase.h:140
Handles a stock of identification grids to be used by one or more identification telescopes.
KVIDGraph * GetGrid(const Char_t *name) const
Return pointer to grid with name "name".
const KVSeqCollection * GetGrids() const
Check & correct if necessary that isotopic masses used in different multi-gauss fits are consistent.
KVIDZAFromZGrid * GetGrid(const TString &gridname)
void CorrectMassesForTelescope(int Z, const TString &idtel, int deltaA, const KVNameValueList &mass_fit_parameters)
void SaveGrids(const TString &filename)
Save all grids: overwrites original file if no filename given (filename=""), otherwise writes a new f...
KVIDZAFromZGridMassHomogenizer(const TString &gridfile, const TString &datafile)
void CorrectMasses(int Z, const std::string &alist, int deltaA, const KVNameValueList &mass_fit_parameters)
void ShowFits(int Z, const std::string &alist)
Hybrid charge & mass identification grid.
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
TGraphErrors * gr