#include <TClass.h>
#include <RQ_OBJECT.h>
#include <TSlider.h>
+#define NESTED(X) AliFMDSpectraDisplay::AliFMDSpectraDisplay # X
//==================================================================
-void AliFMDSpectraDisplayElement::MakeHistograms(TAxis* axis)
+void AliFMDSpectraDisplay::AliFMDSpectraDisplayElement::MakeHistograms(TAxis* axis)
{
+ // Create the
+ // needed histograms
+ // for this element
if (fFull) return;
if (axis->IsVariableBinSize()) {
fFull = new TH1F(Form("f_%s", GetName()), Form("%s spectra", GetName()),
fCut->SetFillStyle(3001);
}
//__________________________________________________________________
-void AliFMDSpectraDisplayElement::DoFill(Double_t v)
+void AliFMDSpectraDisplay::AliFMDSpectraDisplayElement::DoFill(Double_t v)
{
+ // Fill into histograms
if (fFull) fFull->Fill(v);
}
//__________________________________________________________________
-void AliFMDSpectraDisplayElement::Show(Option_t* option,
+void AliFMDSpectraDisplay::AliFMDSpectraDisplayElement::Show(Option_t* option,
Double_t l, Double_t h)
{
+ // Show this element
+ //
if (!fFull) return;
gPad->SetLogy(fFull->GetMaximum() > 10);
fFull->Draw(option);
//__________________________________________________________________
Int_t
-AliFMDSpectraDisplayElement::Compare(const TObject*) const
+AliFMDSpectraDisplay::AliFMDSpectraDisplayElement::Compare(const TObject*) const
{
return -1;
}
//==================================================================
-AliFMDSpectraDisplayTop::AliFMDSpectraDisplayTop(TGCompositeFrame& frame,
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::AliFMDSpectraDisplayTop(TGCompositeFrame& frame,
TCanvas* canvas)
: AliFMDSpectraDisplayElement("All", "Everything"),
fHints(kLHintsExpandX|kLHintsExpandY,3, 3, 3, 3),
fChildren(0),
fCurrentEntry(0),
fCanvas(canvas),
- fHist1DIcon(gClient->GetPicture("h1_t.xpm")),
- fHist2DIcon(gClient->GetPicture("h2_t.xpm")),
- fHist3DIcon(gClient->GetPicture("h3_t.xpm")),
- fGraphIcon(gClient->GetPicture("graph.xpm")),
+ fkHist1DIcon(gClient->GetPicture("h1_t.xpm")),
+ fkHist2DIcon(gClient->GetPicture("h2_t.xpm")),
+ fkHist3DIcon(gClient->GetPicture("h3_t.xpm")),
+ fkGraphIcon(gClient->GetPicture("graph.xpm")),
fAxis(0),
fEntry(*(fList.AddItem(0, GetName(), this)))
{
+ // Constructor
+ // Parameters:
+ // frame PArent frame
+ // canvas Canvas to draw in
fContainer.AddFrame(&fList, &fHints);
frame.AddFrame(&fContainer, &fHints);
fList.Connect("Clicked(TGListTreeItem*,Int_t)",
- "AliFMDSpectraDisplayTop", this,
+ "AliFMDSpectraDisplay::AliFMDSpectraDisplayTop", this,
"HandleEntry(TGListTreeItem*,Int_t)");
fList.Connect("KeyPressed(TGListTreeItem*,ULong_t,ULong_t)",
- "AliFMDSpectraDisplayTop", this,
+ "AliFMDSpectraDisplay::AliFMDSpectraDisplayTop", this,
"HandleKey(TGListTreeItem*,UInt_t,UInt_t)");
fList.Connect("ReturnPressed(TGListTreeItem*)",
- "AliFMDSpectraDisplayTop", this,
+ "AliFMDSpectraDisplay::AliFMDSpectraDisplayTop", this,
"HandleReturn(TGListTreeItem*)");
}
//____________________________________________________________________
void
-AliFMDSpectraDisplayTop::SetAxis(TAxis* axis)
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::SetAxis(TAxis* axis)
{
+ // Set the axis of histograms
fAxis = axis;
MakeHistograms(axis);
}
//____________________________________________________________________
void
-AliFMDSpectraDisplayTop::ClearCanvas()
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::ClearCanvas()
{
+ // Clear the canvas
if (!fCanvas) return;
fCanvas->Clear();
}
//____________________________________________________________________
void
-AliFMDSpectraDisplayTop::ClearList()
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::ClearList()
{
+ // Clear the lsit
fList.DeleteItem(fList.GetFirstItem());
UpdateList();
}
//____________________________________________________________________
void
-AliFMDSpectraDisplayTop::HandleReturn(TGListTreeItem * f)
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::HandleReturn(TGListTreeItem * f)
{
-
+ // HAndle when return is pressed
if (!f) {
fList.UnselectAll(kFALSE);
fList.SetSelected(0);
//____________________________________________________________________
void
-AliFMDSpectraDisplayTop::HandleKey(TGListTreeItem * f, UInt_t keysym, UInt_t)
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::HandleKey(TGListTreeItem * f, UInt_t keysym, UInt_t)
{
+ // Handle a key stroke
if (!f) {
fList.UnselectAll(kFALSE);
fList.SetSelected(0);
//____________________________________________________________________
void
-AliFMDSpectraDisplayTop::HandleEntry(TGListTreeItem* entry, Int_t /*id*/)
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::HandleEntry(TGListTreeItem* entry, Int_t /*id*/)
{
+ // Handle selection of entries
TGListTreeItem* old = fCurrentEntry;
if (entry) {
if (!entry->GetUserData()) return;
//____________________________________________________________________
void
-AliFMDSpectraDisplayTop::UpdateList()
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::UpdateList()
{
+ // Update list
gClient->NeedRedraw(&fList);
}
//____________________________________________________________________
void
-AliFMDSpectraDisplayTop::UpdateCanvas()
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::UpdateCanvas()
{
+ // update canvas
if (!fCanvas) return;
fCanvas->Modified();
fCanvas->Update();
fCanvas->cd();
}
//____________________________________________________________________
-TObject* AliFMDSpectraDisplayTop::Current() const
+TObject* AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::Current() const
{
+ // Get currently selected entry if any
if (!fCurrentEntry) return 0;
if (!fCurrentEntry->GetUserData()) return 0;
return static_cast<TObject*>(fCurrentEntry->GetUserData());
}
//__________________________________________________________________
-AliFMDSpectraDisplayDetector& AliFMDSpectraDisplayTop::GetOrAdd(UShort_t id)
+AliFMDSpectraDisplay::AliFMDSpectraDisplayDetector&
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::GetOrAdd(UShort_t id)
{
+ // Get or add a sub-element
Int_t idx = id - 1;
AliFMDSpectraDisplayDetector* d = 0;
if (fChildren.GetEntriesFast() <= idx ||
return *d;
}
//__________________________________________________________________
-void AliFMDSpectraDisplayTop::Fill(UShort_t det, Char_t ring,
- UShort_t sec, UShort_t str, Double_t v)
+void
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::Fill(UShort_t det, Char_t ring,
+ UShort_t sec, UShort_t str,
+ Double_t v)
{
AliFMDSpectraDisplayDetector& d = GetOrAdd(det);
d.Fill(ring, sec, str, v);
}
//__________________________________________________________________
Int_t
-AliFMDSpectraDisplayTop::Compare(const TObject*) const
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::Compare(const TObject*) const
{
+ // Compare to another object
return -1;
}
//==================================================================
-AliFMDSpectraDisplayDetector::AliFMDSpectraDisplayDetector(UShort_t det,
+AliFMDSpectraDisplay::AliFMDSpectraDisplayDetector::AliFMDSpectraDisplayDetector(UShort_t det,
AliFMDSpectraDisplayTop& tree)
: AliFMDSpectraDisplayElement(Form("FMD%d", det), "FMD Sub-detector"),
fId(det),
fChildren(0),
fEntry(*(tree.GetList().AddItem(&(tree.GetEntry()), GetName())))
{
+ // Constructor
fEntry.SetUserData(this);
fEntry.SetText(GetName());
if (GetTop().GetAxis()) MakeHistograms(GetTop().GetAxis());
}
//__________________________________________________________________
-AliFMDSpectraDisplayRing& AliFMDSpectraDisplayDetector::GetOrAdd(Char_t id)
+AliFMDSpectraDisplay::AliFMDSpectraDisplayRing&
+AliFMDSpectraDisplay::AliFMDSpectraDisplayDetector::GetOrAdd(Char_t id)
{
+ // Get or add an element
Int_t idx = (id == 'I' || id == 'i') ? 0 : 1;
AliFMDSpectraDisplayRing* r = 0;;
if (fChildren.GetEntriesFast() <= idx ||
return *r;
}
//__________________________________________________________________
-void AliFMDSpectraDisplayDetector::Fill(Char_t ring, UShort_t sec,
- UShort_t str, Double_t v)
+void
+AliFMDSpectraDisplay::AliFMDSpectraDisplayDetector::Fill(Char_t ring,
+ UShort_t sec,
+ UShort_t str,
+ Double_t v)
{
+ // Fill values
AliFMDSpectraDisplayRing& r = GetOrAdd(ring);
r.Fill(sec, str, v);
DoFill(v);
}
//__________________________________________________________________
Int_t
-AliFMDSpectraDisplayDetector::Compare(const TObject* o) const
+AliFMDSpectraDisplay::AliFMDSpectraDisplayDetector::Compare(const TObject* o) const
{
+ // Compare to other element
std::cout << "Comparing detector to a " << o->ClassName() << std::endl;
- if (o->IsA() == AliFMDSpectraDisplayDetector::Class()) {
+ if (o->IsA() == AliFMDSpectraDisplay::AliFMDSpectraDisplayDetector::Class()) {
const AliFMDSpectraDisplayDetector* ro =
static_cast<const AliFMDSpectraDisplayDetector*>(o);
return (Id() < ro->Id() ? -1 :
return -1;
}
//==================================================================
-AliFMDSpectraDisplayRing::AliFMDSpectraDisplayRing(Char_t id,
+AliFMDSpectraDisplay::AliFMDSpectraDisplayRing::AliFMDSpectraDisplayRing(Char_t id,
AliFMDSpectraDisplayDetector& d)
: AliFMDSpectraDisplayElement(Form("FMD%d%c", d.Id(), id), "FMD Ring"),
fParent(d),
fChildren(0),
fEntry(*(GetTop().GetList().AddItem(&(d.GetEntry()), GetName(), this)))
{
+ // Constructor
fEntry.SetText(GetName());
if (GetTop().GetAxis()) MakeHistograms(GetTop().GetAxis());
}
//__________________________________________________________________
-AliFMDSpectraDisplaySector& AliFMDSpectraDisplayRing::GetOrAdd(UShort_t id)
+AliFMDSpectraDisplay::AliFMDSpectraDisplaySector&
+AliFMDSpectraDisplay::AliFMDSpectraDisplayRing::GetOrAdd(UShort_t id)
{
+ // Get or add another element
AliFMDSpectraDisplaySector* s = 0;
if (fChildren.GetEntriesFast() <= id ||
!(s = static_cast<AliFMDSpectraDisplaySector*>(fChildren.At(id)))) {
return *s;
}
//__________________________________________________________________
-void AliFMDSpectraDisplayRing::Fill(UShort_t sec, UShort_t str, Double_t v)
+void
+AliFMDSpectraDisplay::AliFMDSpectraDisplayRing::Fill(UShort_t sec,
+ UShort_t str,
+ Double_t v)
{
+ // Fill values
AliFMDSpectraDisplaySector& s = GetOrAdd(sec);
s.Fill(str, v);
DoFill(v);
}
//__________________________________________________________________
Int_t
-AliFMDSpectraDisplayRing::Compare(const TObject* o) const
+AliFMDSpectraDisplay::AliFMDSpectraDisplayRing::Compare(const TObject* o) const
{
+ // Compare to other element
std::cout << "Comparing ring to a " << o->ClassName() << std::endl;
- if (o->IsA() == AliFMDSpectraDisplayRing::Class()) {
+ if (o->IsA() == AliFMDSpectraDisplay::AliFMDSpectraDisplayRing::Class()) {
const AliFMDSpectraDisplayRing* ro =
static_cast<const AliFMDSpectraDisplayRing*>(o);
return (Id() < ro->Id() ? -1 :
return -1;
}
//==================================================================
-AliFMDSpectraDisplaySector::AliFMDSpectraDisplaySector(UShort_t id,
+AliFMDSpectraDisplay::AliFMDSpectraDisplaySector::AliFMDSpectraDisplaySector(UShort_t id,
AliFMDSpectraDisplayRing& r)
: AliFMDSpectraDisplayElement(Form("FMD%d%c_%02d",r.DetectorId(),r.Id(),id),
"FMD Sector"),
fChildren(0),
fEntry(*(GetTop().GetList().AddItem(&(r.GetEntry()), GetName(), this)))
{
+ // Constructor
fEntry.SetText(GetName());
if (GetTop().GetAxis()) MakeHistograms(GetTop().GetAxis());
}
//__________________________________________________________________
-AliFMDSpectraDisplayStrip& AliFMDSpectraDisplaySector::GetOrAdd(UShort_t id)
+AliFMDSpectraDisplay::AliFMDSpectraDisplayStrip&
+AliFMDSpectraDisplay::AliFMDSpectraDisplaySector::GetOrAdd(UShort_t id)
{
+ // Get or add another element
AliFMDSpectraDisplayStrip* s = 0;
if (fChildren.GetEntriesFast() <= id ||
!(s = static_cast<AliFMDSpectraDisplayStrip*>(fChildren.At(id)))) {
return *s;
}
//__________________________________________________________________
-void AliFMDSpectraDisplaySector::Fill(UShort_t str, Double_t v)
+void
+AliFMDSpectraDisplay::AliFMDSpectraDisplaySector::Fill(UShort_t str,
+ Double_t v)
{
+ // Fill values
AliFMDSpectraDisplayStrip& s = GetOrAdd(str);
s.Fill(v);
DoFill(v);
}
//__________________________________________________________________
Int_t
-AliFMDSpectraDisplaySector::Compare(const TObject* o) const
+AliFMDSpectraDisplay::AliFMDSpectraDisplaySector::Compare(const TObject* o) const
{
+ // Compare to another elemnt
std::cout << "Comparing sector to a " << o->ClassName() << std::endl;
- if (o->IsA() == AliFMDSpectraDisplaySector::Class()) {
+ if (o->IsA() == AliFMDSpectraDisplay::AliFMDSpectraDisplaySector::Class()) {
const AliFMDSpectraDisplaySector* ro =
static_cast<const AliFMDSpectraDisplaySector*>(o);
return (Id() < ro->Id() ? -1 :
return -1;
}
//==================================================================
-AliFMDSpectraDisplayStrip::AliFMDSpectraDisplayStrip(UShort_t id,
+AliFMDSpectraDisplay::AliFMDSpectraDisplayStrip::AliFMDSpectraDisplayStrip(UShort_t id,
AliFMDSpectraDisplaySector& s)
: AliFMDSpectraDisplayElement(Form("FMD%d%c_%02d_%03d",
s.DetectorId(), s.RingId(),
fId(id),
fEntry(*(GetTop().GetList().AddItem(&(s.GetEntry()), GetName(), this)))
{
+ // Constructor
fEntry.SetText(GetName());
fEntry.SetPictures(GetTop().GetH1Pic(), GetTop().GetH1Pic());
if (GetTop().GetAxis()) MakeHistograms(GetTop().GetAxis());
}
//__________________________________________________________________
-void AliFMDSpectraDisplayStrip::Fill(Double_t v)
+void
+AliFMDSpectraDisplay::AliFMDSpectraDisplayStrip::Fill(Double_t v)
{
+ // Fill values
DoFill(v);
}
//__________________________________________________________________
Int_t
-AliFMDSpectraDisplayStrip::Compare(const TObject* o) const
+AliFMDSpectraDisplay::AliFMDSpectraDisplayStrip::Compare(const TObject* o) const
{
+ // Compare to another element
std::cout << "Comparing strip to a " << o->ClassName() << std::endl;
- if (o->IsA() == AliFMDSpectraDisplayStrip::Class()) {
+ if (o->IsA() == AliFMDSpectraDisplay::AliFMDSpectraDisplayStrip::Class()) {
const AliFMDSpectraDisplayStrip* ro =
static_cast<const AliFMDSpectraDisplayStrip*>(o);
return (Id() < ro->Id() ? -1 :
fSelector(gClient->GetRoot(), 100, 100),
fTop(fSelector, fAux)
{
- AddLoad(AliFMDInput::kRaw);
+ // Constructor
+ // AddLoad(AliFMDInput::kRaw);
SetName("RAW");
SetTitle("RAW");
Bool_t
AliFMDSpectraDisplay::HandleDraw()
{
+ // Handle draw request
TObject* user = fTop.Current();
if (!user) return kFALSE;
- if (!user->InheritsFrom(AliFMDSpectraDisplayElement::Class())) {
+ if (!user->InheritsFrom(AliFMDSpectraDisplay::AliFMDSpectraDisplayElement::Class())) {
Warning("HandleDraw", "%s does not inherit from Spectra::Element",
user->GetName());
return kFALSE;
void
AliFMDSpectraDisplay::MakeAux()
{
+ // MAke auxilary canvas
AliFMDPattern::MakeAux();
if (!fAux) return;
fTop.SetAxis(fSpec->GetXaxis());
Bool_t
AliFMDSpectraDisplay::ProcessHit(AliFMDHit* hit, TParticle* p)
{
+ // Process a hit
fTop.Fill(hit->Detector(),
hit->Ring(),
hit->Sector(),
Bool_t
AliFMDSpectraDisplay::ProcessDigit(AliFMDDigit* digit)
{
+ // Process a digit
fTop.Fill(digit->Detector(),
digit->Ring(),
digit->Sector(),
Bool_t
AliFMDSpectraDisplay::ProcessSDigit(AliFMDSDigit* sdigit)
{
+ // Process a summable digit
fTop.Fill(sdigit->Detector(),
sdigit->Ring(),
sdigit->Sector(),
Bool_t
AliFMDSpectraDisplay::ProcessRawDigit(AliFMDDigit* digit)
{
+ // Process a raw digit
return ProcessDigit(digit);
}
//__________________________________________________________________
Bool_t
AliFMDSpectraDisplay::ProcessRecPoint(AliFMDRecPoint* recpoint)
{
+ // Process a rec-point
fTop.Fill(recpoint->Detector(),
recpoint->Ring(),
recpoint->Sector(),
AliFMDSpectraDisplay::ProcessESD(UShort_t det, Char_t rng, UShort_t sec,
UShort_t str, Float_t x, Float_t mult)
{
+ // Process ESD entry
fTop.Fill(det, rng, sec, str, mult);
return AliFMDDisplay::ProcessESD(det, rng, sec, str, x, mult);
}