20 #include "KVIDGridManager.h"
48 gIDGridManager =
this;
50 fGrids.Connect(
"Modified()",
"KVIDGridManager",
this,
"Modified()");
60 KVIDGridManager::~KVIDGridManager()
65 if (gIDGridManager ==
this)
67 fGrids.Disconnect(
"Modified()",
this,
"Modified()");
68 fLastReadGrids.Clear();
76 void KVIDGridManager::AddGrid(
KVIDGraph* grid)
96 if (!update) fGrids.Disconnect(
"Modified()",
this,
"Modified()");
99 if (!update) fGrids.Connect(
"Modified()",
"KVIDGridManager",
this,
"Modified()");
111 fGrids.Disconnect(
"Modified()",
this,
"Modified()");
112 fLastReadGrids.Clear();
115 fGrids.Connect(
"Modified()",
"KVIDGridManager",
this,
"Modified()");
145 fLastReadGrids.Clear();
147 Bool_t is_it_ok = kFALSE;
148 ifstream gridfile(filename);
149 if (!gridfile.good()) {
150 KVError::Error(
this,
"ReadAsciiFile",
"File %s cannot be opened", filename);
156 fGrids.Disconnect(
"Modified()",
this,
"Modified()");
157 while (gridfile.good()) {
159 s.ReadLine(gridfile);
160 if (s.BeginsWith(
"++")) {
170 Bool_t onlyz = kFALSE;
171 if (s ==
"KVIDZGrid") {
175 TClass* clas = TClass::GetClass(s.Data());
177 Fatal(
"ReadAsciiFile",
178 "Cannot load TClass information for %s", s.Data());
181 fLastReadGrids.Add(grid);
191 fGrids.Connect(
"Modified()",
"KVIDGridManager",
this,
"Modified()");
204 TIter it(&fLastReadGrids);
KVIDGraph* igr;
224 ofstream gridfile(filename);
226 const TCollection* list_of_grids = (selection ? selection : &fGrids);
227 TIter next(list_of_grids);
233 Info(
"WriteAsciiFile",
"%s saved", grid->
GetName());
261 if (gROOT->IsBatch()) {
262 KVError::Warning(
this,
"StartViewer",
"To launch graphical interface, you should not use ROOT in batch mode");
265 TClass* cl = TClass::GetClass(
"KVIDGridManagerGUI");
287 if (!list.Contains(lab)) list.Append(lab);
290 list.ReplaceAll(
"//",
",");
291 list.ReplaceAll(
"/",
"");
292 if (list.EqualTo(
",")) list =
"";
Base class for particle identification in a 2D map.
virtual void WriteToAsciiFile(std::ofstream &gridfile)
virtual void ReadFromAsciiFile(std::ifstream &gridfile)
const Char_t * GetName() const override
const Char_t * GetIDTelescopeLabel() const
virtual void Initialize()=0
virtual void SetOnlyZId(Bool_t yes=kTRUE)
Handles a stock of identification grids to be used by one or more identification telescopes.
void Clear(Option_t *opt="") override
Delete all grids and empty list, ready to start anew.
void GetListOfIDTelescopeLabels(KVString &)
KVIDGraph * GetGrid(const Char_t *name) const
Return pointer to grid with name "name".
void DeleteGrid(KVIDGraph *, Bool_t update=kTRUE)
KVIDGridManager(Bool_t owns_grids=kFALSE)
Int_t WriteAsciiFile(const Char_t *filename, const TCollection *selection=0)
void AddLastReadGrids()
Add all grids read the last time ReadAsciiFile() was called to the grid manager.
Bool_t ReadAsciiFile(const Char_t *filename)
void StartViewer() const
Opens GUI for managing grids.
const KVSeqCollection * GetGrids() const
void Initialize(Option_t *="")
virtual void SendModifiedSignals(Bool_t yes=kTRUE)
TObject * Remove(TObject *obj) override
Remove object from list.
void Add(TObject *obj) override
void Clear(Option_t *option="") override
void SetOwner(Bool_t enable=kTRUE) override
virtual TObject * FindObjectByName(const Char_t *name) const
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
void Error(UserClass p, const char *location, const char *va_(fmt),...)
void Warning(UserClass p, const char *location, const char *va_(fmt),...)