41 fNameData.Form(
"%s", data_histo->GetName());
42 fNameZreal.Form(
"PID:H=%s_G=%s", data_histo->GetName(),
g->GetName());
43 fNameZvsE.Form(
"PIDvsEres:H=%s_G=%s", data_histo->GetName(),
g->GetName());
44 hzvsexmax = data_histo->GetXaxis()->GetXmax();
47 g->GetIdentifiers()->Sort();
48 hzrealxmin = ((
KVIDentifier*)
g->GetIdentifiers()->First())->GetPID() - 1.0;
49 hzrealxmax = ((
KVIDentifier*)
g->GetIdentifiers()->Last())->GetPID() + 1.0;
50 hzvseymin = hzrealxmin;
51 hzvseymax = hzrealxmax;
53 if (
g->HasMassIDCapability() && !
g->InheritsFrom(
"KVIDZAFromZGrid")) {
54 hzrealbins = 150 * (hzrealxmax - hzrealxmin);
55 hzvseybins = hzrealbins;
60 fMain->Connect(
"CloseWindow()",
"KVTestIDGridDialog",
this,
62 fMain->DontCallClose();
70 fHdataNameLabel =
new TGLabel(fHdataFrame,
"Name of data histo (TH2F)");
71 fHdataNameEntry =
new TGTextEntry(fNameData, fHdataFrame);
72 fHdataNameEntry->SetWidth(150);
73 fHdataFrame->AddFrame(fHdataNameEntry,
75 fHdataFrame->AddFrame(fHdataNameLabel,
82 new TGLabel(fHzrealNameFrame,
"Name of PID histo (TH1F)");
83 fHzrealNameEntry =
new TGTextEntry(fNameZreal, fHzrealNameFrame);
84 fHzrealNameEntry->SetWidth(150);
85 fHzrealNameFrame->AddFrame(fHzrealNameEntry,
87 fHzrealNameFrame->AddFrame(fHzrealNameLabel,
90 fHzrealBinsLabel =
new TGLabel(fHzrealBinsFrame,
"nbins");
95 fHzrealXminLabel =
new TGLabel(fHzrealBinsFrame,
"xmin");
100 fHzrealXmaxLabel =
new TGLabel(fHzrealBinsFrame,
"xmax");
105 fHzrealBinsFrame->AddFrame(fHzrealXmaxEntry,
107 fHzrealBinsFrame->AddFrame(fHzrealXmaxLabel,
109 fHzrealBinsFrame->AddFrame(fHzrealXminEntry,
111 fHzrealBinsFrame->AddFrame(fHzrealXminLabel,
113 fHzrealBinsFrame->AddFrame(fHzrealBinsEntry,
115 fHzrealBinsFrame->AddFrame(fHzrealBinsLabel,
117 fHzrealFrame->AddFrame(fHzrealNameFrame,
119 fHzrealFrame->AddFrame(fHzrealBinsFrame,
123 fHzvseFrame =
new TGGroupFrame(fMain,
"PID vs. E histo");
125 fHzvseNameLabel =
new TGLabel(fHzvseNameFrame,
"Name of histo (TH2F)");
126 fHzvseNameEntry =
new TGTextEntry(fNameZvsE, fHzvseNameFrame);
127 fHzvseNameEntry->SetWidth(150);
128 fHzvseNameFrame->AddFrame(fHzvseNameEntry,
130 fHzvseNameFrame->AddFrame(fHzvseNameLabel,
133 fHzvseXBinsLabel =
new TGLabel(fHzvseXBinsFrame,
"nbins");
138 fHzvseXminLabel =
new TGLabel(fHzvseXBinsFrame,
"E : min");
142 fHzvseXmaxLabel =
new TGLabel(fHzvseXBinsFrame,
"max");
146 fHzvseXBinsFrame->AddFrame(fHzvseXmaxEntry,
148 fHzvseXBinsFrame->AddFrame(fHzvseXmaxLabel,
150 fHzvseXBinsFrame->AddFrame(fHzvseXminEntry,
152 fHzvseXBinsFrame->AddFrame(fHzvseXminLabel,
154 fHzvseXBinsFrame->AddFrame(fHzvseXBinsEntry,
156 fHzvseXBinsFrame->AddFrame(fHzvseXBinsLabel,
159 fHzvseYBinsLabel =
new TGLabel(fHzvseYBinsFrame,
"nbins");
164 fHzvseYminLabel =
new TGLabel(fHzvseYBinsFrame,
"PID : min");
169 fHzvseYmaxLabel =
new TGLabel(fHzvseYBinsFrame,
"max");
174 fHzvseYBinsFrame->AddFrame(fHzvseYmaxEntry,
176 fHzvseYBinsFrame->AddFrame(fHzvseYmaxLabel,
178 fHzvseYBinsFrame->AddFrame(fHzvseYminEntry,
180 fHzvseYBinsFrame->AddFrame(fHzvseYminLabel,
182 fHzvseYBinsFrame->AddFrame(fHzvseYBinsEntry,
184 fHzvseYBinsFrame->AddFrame(fHzvseYBinsLabel,
186 fHzvseFrame->AddFrame(fHzvseNameFrame,
188 fHzvseFrame->AddFrame(fHzvseXBinsFrame,
190 fHzvseFrame->AddFrame(fHzvseYBinsFrame,
196 fProgressBar->ShowPosition();
197 fProgressBar->SetBarColor(
"red");
202 fTestButton->Connect(
"Clicked()",
"KVTestIDGridDialog",
this,
204 fCloseButton =
new TGTextButton(fButtonsFrame,
"&Close");
205 fCloseButton->Connect(
"Clicked()",
"KVTestIDGridDialog",
this,
208 fButtonsFrame->AddFrame(fTestButton,
212 fButtonsFrame->AddFrame(fCloseButton,
217 fMain->AddFrame(fHdataFrame,
220 fMain->AddFrame(fHzrealFrame,
223 fMain->AddFrame(fHzvseFrame,
226 fMain->AddFrame(fProgressBar,
229 fMain->AddFrame(fButtonsFrame,
234 fMain->MapSubwindows();
235 fMain->Resize(fMain->GetDefaultSize());
238 fMain->CenterOnParent();
240 fMain->SetWindowName(
"Test ID grid");
255 KVTestIDGridDialog::~KVTestIDGridDialog()
352 TH1* icodemap = (
TH1*)hdata->
Clone(
"ZIDENT_ICODE0");
357 histos.
Add(icodemap);
358 histo_names.
SetValue(
"ZIDENT_ICODE0",
"ZIDENT_ICODE0");
359 icodemap = (
TH1*)hdata->
Clone(
"ZIDENT_ICODE123");
364 histos.
Add(icodemap);
365 histo_names.
SetValue(
"ZIDENT_ICODE123",
"ZIDENT_ICODE123");
366 icodemap = (
TH1*)hdata->
Clone(
"ZIDENT_ICODE4");
371 histos.
Add(icodemap);
372 histo_names.
SetValue(
"ZIDENT_ICODE4",
"ZIDENT_ICODE4");
373 icodemap = (
TH1*)hdata->
Clone(
"ZIDENT_ICODE5");
378 histos.
Add(icodemap);
379 histo_names.
SetValue(
"ZIDENT_ICODE5",
"ZIDENT_ICODE5");
380 icodemap = (
TH1*)hdata->
Clone(
"ZIDENT_ICODE6");
385 histos.
Add(icodemap);
386 histo_names.
SetValue(
"ZIDENT_ICODE6",
"ZIDENT_ICODE6");
387 icodemap = (
TH1*)hdata->
Clone(
"ZIDENT_ICODE7");
392 histos.
Add(icodemap);
393 histo_names.
SetValue(
"ZIDENT_ICODE7",
"ZIDENT_ICODE7");
398 TH2F* adist_aident = 0;
402 histo_names.
SetValue(
"Z_A_REAL",
"AZMap");
405 adist_aident =
new TH2F(
"ZADIST_AIDENT",
"Z-A distribution [isotopic ID OK]", hzmax - hzmin + 1, hzmin - .5, hzmax + .5, hamax - hamin + 1, hamin - .5, hamax + .5);
406 histo_names.
SetValue(
"ZADIST_AIDENT",
"ZADIST_AIDENT");
407 histos.
Add(adist_aident);
409 icodemap = (
TH1*)hdata->
Clone(
"AIDENT_ICODE0");
414 histos.
Add(icodemap);
415 histo_names.
SetValue(
"AIDENT_ICODE0",
"AIDENT_ICODE0");
416 icodemap = (
TH1*)hdata->
Clone(
"AIDENT_ICODE123");
421 histos.
Add(icodemap);
422 histo_names.
SetValue(
"AIDENT_ICODE123",
"AIDENT_ICODE123");
423 icodemap = (
TH1*)hdata->
Clone(
"AIDENT_ICODE4");
428 histos.
Add(icodemap);
429 histo_names.
SetValue(
"AIDENT_ICODE4",
"AIDENT_ICODE4");
430 icodemap = (
TH1*)hdata->
Clone(
"AIDENT_ICODE5");
435 histos.
Add(icodemap);
436 histo_names.
SetValue(
"AIDENT_ICODE5",
"AIDENT_ICODE5");
437 icodemap = (
TH1*)hdata->
Clone(
"AIDENT_ICODE6");
442 histos.
Add(icodemap);
443 histo_names.
SetValue(
"AIDENT_ICODE6",
"AIDENT_ICODE6");
444 icodemap = (
TH1*)hdata->
Clone(
"AIDENT_ICODE7");
449 histos.
Add(icodemap);
450 histo_names.
SetValue(
"AIDENT_ICODE7",
"AIDENT_ICODE7");
456 fSelectedGrid->Connect(
"Increment(Float_t)",
"TGHProgressBar",
458 #ifdef __WITHOUT_TGBUTTON_SETENABLED
459 #define SetEnabled(flag) \
460 SetState( flag ? kButtonUp : kButtonDisabled )
467 #ifdef __WITHOUT_TGBUTTON_SETENABLED
471 "SetPosition(Float_t)");
479 hazreal->
Draw(
"col");
481 if (!strcmp(hazreal->
GetTitle(),
"Z vs. A")) {
500 adist_aident->
Draw(
"col");
504 cc->SetTitle(
"AIDENT Quality Code Maps");
530 hzreal->
Draw(
"hist");
542 cc->SetTitle(
"ZIDENT Quality Code Maps");
574 nucChar->
Draw(
"same");
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
char * Form(const char *fmt,...)
R__EXTERN TStyle * gStyle
TCanvas with mouse-controlled dynamic zoom and pan & scan.
Extended version of ROOT THashList.
Base class for particle identification in a 2D map.
virtual void TestIdentification(TH2F *data, KVHashList &histos, KVNameValueList &histo_names)
virtual Bool_t HasMassIDCapability() const
const Char_t * GetName() const
KVList * GetIdentifiers() const
Hybrid identification grid.
Base class for graphical cuts used in particle identification.
Extended TList class which owns its objects by default.
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
void SetValue(const Char_t *name, value_type value)
Used to draw nuclear chart.
void Draw(Option_t *option="")
virtual TObject * Last() const
virtual TObject * First() const
virtual void Add(TObject *obj)
virtual TObject * FindObject(const char *name) const
GUI for testing identification grids.
TGNumberEntry * fHzrealXminEntry
TGNumberEntry * fHzvseXmaxEntry
TGTextButton * fTestButton
TGNumberEntry * fHzvseYmaxEntry
TGTextEntry * fHdataNameEntry
TGHProgressBar * fProgressBar
TGNumberEntry * fHzvseXBinsEntry
TGTextEntry * fHzvseNameEntry
KVIDGraph * fSelectedGrid
Bool_t CheckNameOK(const TString &name)
TGNumberEntry * fHzrealXmaxEntry
TGNumberEntry * fHzvseXminEntry
static Double_t hzvsexmax
TGNumberEntry * fHzvseYminEntry
TGTextEntry * fHzrealNameEntry
TGNumberEntry * fHzvseYBinsEntry
static Double_t hzvsexmin
static TString fNameZreal
TGTextButton * fCloseButton
void DrawChart(KVCanvas *cc, Int_t zmin, Int_t zmax, Int_t nmin, Int_t nmax)
TGNumberEntry * fHzrealBinsEntry
virtual void SetLabelOffset(Float_t offset=0.005)
virtual void SetNdivisions(Int_t n1, Int_t n2, Int_t n3, Bool_t optim=kTRUE)
virtual void SetTickLength(Float_t length=0.03)
virtual void SetFillColor(Color_t fcolor)
virtual void SetMarkerColor(Color_t mcolor=1)
virtual void SetBottomMargin(Float_t bottommargin)
virtual void SetLeftMargin(Float_t leftmargin)
virtual void SetRightMargin(Float_t rightmargin)
virtual void SetTopMargin(Float_t topmargin)
virtual Int_t GetEntries() const
virtual Long_t GetIntNumber() const
virtual Double_t GetNumber() const
void SetRange(Float_t min, Float_t max)
const char * GetText() const
virtual void SetTitle(const char *title)
TObject * Clone(const char *newname=0) const
virtual void SetMinimum(Double_t minimum=-1111)
virtual void Draw(Option_t *option="")
virtual void SetStats(Bool_t stats=kTRUE)
virtual const char * GetName() const
virtual const char * GetTitle() const
virtual Bool_t InheritsFrom(const char *classname) const
virtual void Draw(Option_t *option="")
const char * Data() const
void SetPalette(Int_t ncolors=kBird, Int_t *colors=0, Float_t alpha=1.)
static void SingleShot(Int_t milliSec, const char *receiver_class, void *receiver, const char *method)
int main(int argc, char **argv)
const long double g
masses
const long double cc
volumes