Various small fixes
authorcholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 21 Nov 2008 20:41:11 +0000 (20:41 +0000)
committercholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 21 Nov 2008 20:41:11 +0000 (20:41 +0000)
12 files changed:
FMD/AliFMDDisplay.cxx
FMD/AliFMDPattern.cxx
FMD/AliFMDSpectraDisplay.cxx
FMD/AliFMDSpectraDisplay.h
FMD/Config.C
FMD/FMDutilLinkDef.h
FMD/Simulate.C
FMD/analysis/FMDanalysisLinkDef.h
FMD/libFMDanalysis.pkg
FMD/libFMDutil.pkg
FMD/scripts/ShowFMDITS.C
FMD/scripts/SpectraMonitor.C

index 26b466d..f9d45bc 100644 (file)
@@ -738,13 +738,13 @@ AliFMDDisplay::ProcessDigit(AliFMDDigit* digit)
   UShort_t str           =  digit->Strip();
   Double_t ped           =  parm->GetPedestal(det,ring, sec, str);
   Double_t pedW          =  parm->GetPedestalWidth(det,ring, sec, str);
-  Double_t threshold     =  ((fFMDReader->IsZeroSuppressed(det-1) ? 
-                            0 : (ped * (fFactor->GetMaximum()
-                                        -fFactor->GetMinimum())))
+  Double_t threshold     =  ((fFMDReader && fFMDReader->IsZeroSuppressed(det-1)
+                             ? 0 : (ped * (fFactor->GetMaximum()
+                                           -fFactor->GetMinimum())))
                             + pedW * 10 * fFactor->GetMinimum());
   if (threshold > fgkAdcRange.fHigh) threshold = fgkAdcRange.fHigh;
   Float_t  counts        =  digit->Counts();
-  if (fFMDReader->IsZeroSuppressed(det-1) && counts > 0)
+  if (fFMDReader && fFMDReader->IsZeroSuppressed(det-1) && counts > 0)
     counts += fFMDReader->NoiseFactor(det-1) * pedW;
 
   AliFMDDebug(10, ("FMD%d%c[%02d,%03d] counts %4d threshold %4d", 
index bd51c50..a359e64 100644 (file)
@@ -332,17 +332,24 @@ AliFMDPattern::Init()
     Int_t            nm = ring->GetNModules();
     AliFMDDebug(1, ("Making %d modules for %c", nm, *r));
     for (Int_t m = 0; m < nm; m++) {
-      Int_t          nv = vs.GetEntries();
+      Int_t          nv = 6; // vs.GetEntries();
       Double_t       a  = TMath::Pi() / 180 * (m * 2 + 1) * ring->GetTheta();
       TGraph*        g  = new TGraph(nv+1);
       Double_t       x0 = 0, y0 = 0;
       gs.AddAtAndExpand(g, m);
-      for (Int_t c = 0; c < nv; c++) {
+      for (Int_t c = 1; c < 4; c++) {
        TVector2* v = static_cast<TVector2*>(vs.At(c));
        mr          = TMath::Max(mr, Float_t(v->Mod()));
        TVector2  w(v->Rotate(a));
-       if (c == 0) { x0 = w.X(); y0 = w.Y(); }
-       g->SetPoint(c, w.X(), w.Y());
+       if (c == 1) { x0 = w.X(); y0 = w.Y(); }
+       g->SetPoint(c-1, w.X(), w.Y());
+      }
+      for (Int_t c = 3; c > 0; c--) {
+       TVector2* v = static_cast<TVector2*>(vs.At(c));
+       TVector2  u(-v->X(), v->Y());
+       mr          = TMath::Max(mr, Float_t(u.Mod()));
+       TVector2  w(u.Rotate(a));
+       g->SetPoint(3+(3-c), w.X(), w.Y());
       }
       g->SetName(Form("FMDX%c_%02d%02d", *r, 2*m,2*m+1));
       g->SetTitle(Form("FMDX%c, sectors %d and %d", *r, 2*m,2*m+1));
index 1e9c549..50c9f7b 100644 (file)
 #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()),
@@ -63,14 +67,17 @@ void AliFMDSpectraDisplayElement::MakeHistograms(TAxis* axis)
   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);
@@ -92,14 +99,14 @@ void AliFMDSpectraDisplayElement::Show(Option_t* 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),
@@ -108,45 +115,52 @@ AliFMDSpectraDisplayTop::AliFMDSpectraDisplayTop(TGCompositeFrame& frame,
     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();
 }
@@ -154,9 +168,9 @@ AliFMDSpectraDisplayTop::ClearList()
   
 //____________________________________________________________________
 void
-AliFMDSpectraDisplayTop::HandleReturn(TGListTreeItem * f)
+AliFMDSpectraDisplay::AliFMDSpectraDisplayTop::HandleReturn(TGListTreeItem * f)
 {
-    
+  // HAndle when return is pressed
   if (!f) { 
     fList.UnselectAll(kFALSE);
     fList.SetSelected(0);
@@ -169,8 +183,9 @@ AliFMDSpectraDisplayTop::HandleReturn(TGListTreeItem * f)
   
 //____________________________________________________________________
 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);
@@ -220,8 +235,9 @@ AliFMDSpectraDisplayTop::HandleKey(TGListTreeItem * f, UInt_t keysym, UInt_t)
 
 //____________________________________________________________________
 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;
@@ -237,31 +253,36 @@ AliFMDSpectraDisplayTop::HandleEntry(TGListTreeItem* entry, Int_t /*id*/)
 
 //____________________________________________________________________
 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 ||
@@ -274,8 +295,10 @@ AliFMDSpectraDisplayDetector& AliFMDSpectraDisplayTop::GetOrAdd(UShort_t id)
   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);
@@ -283,12 +306,13 @@ void AliFMDSpectraDisplayTop::Fill(UShort_t det, Char_t ring,
 }
 //__________________________________________________________________
 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), 
@@ -296,13 +320,16 @@ AliFMDSpectraDisplayDetector::AliFMDSpectraDisplayDetector(UShort_t 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 ||
@@ -315,19 +342,24 @@ AliFMDSpectraDisplayRing& AliFMDSpectraDisplayDetector::GetOrAdd(Char_t id)
   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 : 
@@ -336,7 +368,7 @@ AliFMDSpectraDisplayDetector::Compare(const TObject* o) const
   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),
@@ -344,12 +376,15 @@ AliFMDSpectraDisplayRing::AliFMDSpectraDisplayRing(Char_t id,
     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)))) {
@@ -361,18 +396,23 @@ AliFMDSpectraDisplaySector& AliFMDSpectraDisplayRing::GetOrAdd(UShort_t 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 : 
@@ -381,7 +421,7 @@ AliFMDSpectraDisplayRing::Compare(const TObject* o) const
   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"), 
@@ -390,12 +430,15 @@ AliFMDSpectraDisplaySector::AliFMDSpectraDisplaySector(UShort_t id,
     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)))) {
@@ -407,18 +450,22 @@ AliFMDSpectraDisplayStrip& AliFMDSpectraDisplaySector::GetOrAdd(UShort_t 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 : 
@@ -427,7 +474,7 @@ AliFMDSpectraDisplaySector::Compare(const TObject* o) const
   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(), 
@@ -436,21 +483,25 @@ AliFMDSpectraDisplayStrip::AliFMDSpectraDisplayStrip(UShort_t id,
     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 : 
@@ -465,7 +516,8 @@ AliFMDSpectraDisplay::AliFMDSpectraDisplay()
     fSelector(gClient->GetRoot(), 100, 100), 
     fTop(fSelector, fAux)
 {
-  AddLoad(AliFMDInput::kRaw);
+  // Constructor
+  // AddLoad(AliFMDInput::kRaw);
   SetName("RAW");
   SetTitle("RAW");
   
@@ -481,9 +533,10 @@ AliFMDSpectraDisplay::AliFMDSpectraDisplay()
 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;
@@ -501,6 +554,7 @@ AliFMDSpectraDisplay::HandleDraw()
 void 
 AliFMDSpectraDisplay::MakeAux()
 {
+  // MAke auxilary canvas
   AliFMDPattern::MakeAux();
   if (!fAux) return;
   fTop.SetAxis(fSpec->GetXaxis());
@@ -519,6 +573,7 @@ AliFMDSpectraDisplay::DrawAux()
 Bool_t 
 AliFMDSpectraDisplay::ProcessHit(AliFMDHit* hit, TParticle* p) 
 {
+  // Process a hit
   fTop.Fill(hit->Detector(), 
            hit->Ring(), 
            hit->Sector(),
@@ -530,6 +585,7 @@ AliFMDSpectraDisplay::ProcessHit(AliFMDHit* hit, TParticle* p)
 Bool_t 
 AliFMDSpectraDisplay::ProcessDigit(AliFMDDigit* digit)
 {
+  // Process a digit
   fTop.Fill(digit->Detector(), 
            digit->Ring(), 
            digit->Sector(),
@@ -541,6 +597,7 @@ AliFMDSpectraDisplay::ProcessDigit(AliFMDDigit* digit)
 Bool_t 
 AliFMDSpectraDisplay::ProcessSDigit(AliFMDSDigit* sdigit)
 {
+  // Process a summable digit
   fTop.Fill(sdigit->Detector(), 
            sdigit->Ring(), 
            sdigit->Sector(),
@@ -552,12 +609,14 @@ AliFMDSpectraDisplay::ProcessSDigit(AliFMDSDigit* sdigit)
 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(),
@@ -570,6 +629,7 @@ Bool_t
 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);
 }
index 20fd856..0bd4719 100644 (file)
@@ -29,611 +29,611 @@ class TGPicture;
 class TH1;
 class TAxis;
 
-class AliFMDSpectraDisplayTop;
-class AliFMDSpectraDisplayDetector;
-class AliFMDSpectraDisplayRing;
-class AliFMDSpectraDisplaySector;
-class AliFMDSpectraDisplayStrip;
-
-//__________________________________________________________________
+//____________________________________________________________________
 /**
- * Base class for elements in the tree.
+ * FMD event and spectra display
  * 
  */
-class AliFMDSpectraDisplayElement : public TNamed 
+class AliFMDSpectraDisplay : public AliFMDPattern
 {
 public:
-  /** 
-   * Destructor.
-   * 
-   * 
-   */  
-  virtual ~AliFMDSpectraDisplayElement() {}
-  /** 
-   * Draw it
-   * 
-   * @param option Draw option
-   * @param l      Low cut 
-   * @param h      High cut
-   */
-  virtual void Show(Option_t* option, Double_t l, Double_t h);
-  /** 
-   * Get the top of the tree
-   * 
-   * @return Top element
-   */
-  virtual AliFMDSpectraDisplayTop& GetTop() = 0;
-  /** 
-   * Make histograms for this element.
-   * 
-   * @param axis Axis specs
-   */
-  virtual void MakeHistograms(TAxis* axis);
-  /** 
-   * Compare to object
-   * 
-   * @param o 
-   * 
-   * @return 
-   */  
-  virtual Int_t Compare(const TObject* o) const;
-protected:
-  /** 
-   * Constructor
-   * 
-   * @param name  Name 
-   * @param title Title
-   */  
-  AliFMDSpectraDisplayElement(const char* name, const char* title) 
-    : TNamed(name, title), fFull(0), fCut(0)
-  {}
-  AliFMDSpectraDisplayElement(const AliFMDSpectraDisplayElement& o) 
-    : TNamed(o), 
-      fFull(o.fFull), 
-      fCut(o.fCut) 
-  {}
-  AliFMDSpectraDisplayElement&
-  operator=(const AliFMDSpectraDisplayElement&) { return *this; }
-  /** 
-   * Fill histogram
-   * 
-   * @param v Value to fill
-   */
-  void DoFill(Double_t v);
-  TH1* fFull; // Full spectra
-  TH1* fCut;  // Spectra after cut
-  ClassDef(AliFMDSpectraDisplayElement,0); // Element in FMD spectra display
-};
+  class AliFMDSpectraDisplayTop;
+  class AliFMDSpectraDisplayDetector;
+  class AliFMDSpectraDisplayRing;
+  class AliFMDSpectraDisplaySector;
+  class AliFMDSpectraDisplayStrip;
 
-//__________________________________________________________________
-/**
- * Top element in FMD spectra display
- * 
- */
-class AliFMDSpectraDisplayTop : public AliFMDSpectraDisplayElement, 
-                               public TQObject
-{
-public:
-  /** 
-   * Constructor
-   * 
-   * @param frame   Parent frame
-   * @param canvas  Canvas
-   */
-  AliFMDSpectraDisplayTop(TGCompositeFrame& frame, TCanvas* canvas);
-  /** 
-   * Get the list tree
-   * 
-   * @return List tree
-   */
-  TGListTree& GetList() { return fList; }
-  /** 
-   * Get or add a detector element
-   * 
-   * @param id Element id
-   * 
-   * @return element
-   */
-  AliFMDSpectraDisplayDetector& GetOrAdd(UShort_t id);
-  /** 
-   * Fill histograms
-   * 
-   * @param d    Detector
-   * @param ring Ring 
-   * @param sec  Sector
-   * @param str  Strip
-   * @param v    value
-   */
-  void      Fill(UShort_t d, Char_t ring, 
-                UShort_t sec, UShort_t str, Double_t v);
-  /** 
-   * Get the axis spec.
-   *
-   * @return Axis spec,
-   */
-  TAxis* GetAxis() { return fAxis; }
-  /** 
-   * Set the axis spec.
+  //__________________________________________________________________
+  /**
+   * Base class for elements in the tree.
    * 
-   * @param a Axis spec.
    */
-  void SetAxis(TAxis* a);
-  /** 
-   * Get the top.
+  class AliFMDSpectraDisplayElement : public TNamed 
+  {
+  public:
+    /** 
+     * Destructor.
+     * 
+     * 
+     */  
+    virtual ~AliFMDSpectraDisplayElement() {}
+    /** 
+     * Draw it
+     * 
+     * @param option Draw option
+     * @param l      Low cut 
+     * @param h      High cut
+     */
+    virtual void Show(Option_t* option, Double_t l, Double_t h);
+    /** 
+     * Get the top of the tree
+     * 
+     * @return Top element
+     */
+    virtual AliFMDSpectraDisplayTop& GetTop() = 0;
+    /** 
+     * Make histograms for this element.
+     * 
+     * @param axis Axis specs
+     */
+    virtual void MakeHistograms(TAxis* axis);
+    /** 
+     * Compare to object
+     * 
+     * @param o 
+     * 
+     * @return 
+     */  
+    virtual Int_t Compare(const TObject* o) const;
+  protected:
+    /** 
+     * Constructor
+     * 
+     * @param name  Name 
+     * @param title Title
+     */  
+    AliFMDSpectraDisplayElement(const char* name, const char* title) 
+      : TNamed(name, title), fFull(0), fCut(0)
+    {}
+    AliFMDSpectraDisplayElement(const AliFMDSpectraDisplayElement& o) 
+      : TNamed(o), 
+       fFull(o.fFull), 
+       fCut(o.fCut) 
+    {}
+    AliFMDSpectraDisplayElement&
+    operator=(const AliFMDSpectraDisplayElement&) { return *this; }
+    /** 
+     * Fill histogram
+     * 
+     * @param v Value to fill
+     */
+    void DoFill(Double_t v);
+    TH1* fFull; // Full spectra
+    TH1* fCut;  // Spectra after cut
+    ClassDef(AliFMDSpectraDisplayElement,0); // Element in FMD spectra display
+  };
+
+  //__________________________________________________________________
+  /**
+   * Top element in FMD spectra display
    * 
-   * @return top element
    */
-  AliFMDSpectraDisplayTop&   GetTop() { return *this; }
+  class AliFMDSpectraDisplayTop : public AliFMDSpectraDisplayElement, 
+                                 public TQObject
+  {
+  public:
+    /** 
+     * Constructor
+     * 
+     * @param frame   Parent frame
+     * @param canvas  Canvas
+     */
+    AliFMDSpectraDisplayTop(TGCompositeFrame& frame, TCanvas* canvas);
+    /** 
+     * Get the list tree
+     * 
+     * @return List tree
+     */
+    TGListTree& GetList() { return fList; }
+    /** 
+     * Get or add a detector element
+     * 
+     * @param id Element id
+     * 
+     * @return element
+     */
+    AliFMDSpectraDisplayDetector& GetOrAdd(UShort_t id);
+    /** 
+     * Fill histograms
+     * 
+     * @param d    Detector
+     * @param ring Ring 
+     * @param sec  Sector
+     * @param str  Strip
+     * @param v    value
+     */
+    void      Fill(UShort_t d, Char_t ring, 
+                  UShort_t sec, UShort_t str, Double_t v);
+    /** 
+     * Get the axis spec.
+     *
+     * @return Axis spec,
+     */
+    TAxis* GetAxis() const { return fAxis; }
+    /** 
+     * Set the axis spec.
+     * 
+     * @param a Axis spec.
+     */
+    void SetAxis(TAxis* a);
+    /** 
+     * Get the top.
+     * 
+     * @return top element
+     */
+    AliFMDSpectraDisplayTop&   GetTop() { return *this; }
        
-  /** 
-   * Handle entries 
-   *
-   * @param e  selected entry, if any 
-   * @param id Id of entry 
-   */
-  virtual void HandleEntry(TGListTreeItem* e, Int_t id);
-  /** 
-   * Handle key strokes 
-   * @param f      Item selected, if any 
-   * @param keysym Key symbol 
-   * @param mask   Modifier mask 
-   */
-  virtual void HandleKey(TGListTreeItem* f, UInt_t keysym, UInt_t mask);
-  /**
-   * Handle Return 
-   * @param f Selected item, if any 
-   */
-  virtual void HandleReturn(TGListTreeItem* f);
-  /** 
-   * Clear the list 
-   */
-  virtual void ClearList();
-  /** 
-   * Clear the canvas 
-   */ 
-  virtual void ClearCanvas();
-  /** 
-   * Update canvas 
-   */ 
-  virtual void UpdateCanvas();
-  /** 
-   * Update canvas 
-   */ 
-  virtual void UpdateList();
-  /** 
-   * Return the currently selected entry 
-   */ 
-  TGListTreeItem* CurrentEntry() const { return fCurrentEntry; }
-  /** 
-   * @return the currently selected user data (possibly 0) 
-   */
-  TObject* Current() const;
-  /** 
-   * Selection changed signal 
-   */
-  void SelectionChanged() { Emit("SelectionChanged()"); }//*SIGNAL*
-  /** 
-   * Get Picture for 1D histogram 
-   */
-  const TGPicture* GetH1Pic() { return fHist1DIcon; }
-  /** 
-   * 2D Histogram Icon 
-   */
-  const TGPicture* GetH2Pic() { return fHist2DIcon; }
-  /** 
-   * 3D Histogram Icon 
-   */
-  const TGPicture* GetH3Pic() { return fHist3DIcon; }
-  /** 
-   * Graph Icon 
-   */
-  const TGPicture* GetGPic() { return fGraphIcon; }
-  /** 
-   * Get the entry 
-   *
-   * @return 
-   */
-  TGListTreeItem&  GetEntry() { return fEntry; }
-  /** 
-   * Compare to object
-   * 
-   * @param o 
-   * 
-   * @return 
-   */  
-  virtual Int_t Compare(const TObject* o) const;
-protected:
-  AliFMDSpectraDisplayTop(const AliFMDSpectraDisplayTop& o) 
-    : AliFMDSpectraDisplayElement(o), 
-      TQObject(),
-      fHints(o.fHints),
-      fContainer(), // o.fContainer), 
-      fList(), // o.fList), 
-      fChildren(o.fChildren), 
-      fCurrentEntry(o.fCurrentEntry),
-      fCanvas(o.fCanvas),
-      fHist1DIcon(o.fHist1DIcon),
-      fHist2DIcon(o.fHist2DIcon),
-      fHist3DIcon(o.fHist3DIcon),
-      fGraphIcon(o.fGraphIcon),
-      fAxis(o.fAxis),
-      fEntry(o.fEntry)
-  {}
+    /** 
+     * Handle entries 
+     *
+     * @param e  selected entry, if any 
+     * @param id Id of entry 
+     */
+    virtual void HandleEntry(TGListTreeItem* e, Int_t id);
+    /** 
+     * Handle key strokes 
+     * @param f      Item selected, if any 
+     * @param keysym Key symbol 
+     * @param mask   Modifier mask 
+     */
+    virtual void HandleKey(TGListTreeItem* f, UInt_t keysym, UInt_t mask);
+    /**
+     * Handle Return 
+     * @param f Selected item, if any 
+     */
+    virtual void HandleReturn(TGListTreeItem* f);
+    /** 
+     * Clear the list 
+     */
+    virtual void ClearList();
+    /** 
+     * Clear the canvas 
+     */ 
+    virtual void ClearCanvas();
+    /** 
+     * Update canvas 
+     */ 
+    virtual void UpdateCanvas();
+    /** 
+     * Update canvas 
+     */ 
+    virtual void UpdateList();
+    /** 
+     * Return the currently selected entry 
+     */ 
+    TGListTreeItem* CurrentEntry() const { return fCurrentEntry; }
+    /** 
+     * @return the currently selected user data (possibly 0) 
+     */
+    TObject* Current() const;
+    /** 
+     * Selection changed signal 
+     */
+    void SelectionChanged() { Emit("SelectionChanged()"); }//*SIGNAL*
+    /** 
+     * Get Picture for 1D histogram 
+     */
+    const TGPicture* GetH1Pic() const { return fkHist1DIcon; }
+    /** 
+     * 2D Histogram Icon 
+     */
+    const TGPicture* GetH2Pic() const { return fkHist2DIcon; }
+    /** 
+     * 3D Histogram Icon 
+     */
+    const TGPicture* GetH3Pic() const { return fkHist3DIcon; }
+    /** 
+     * Graph Icon 
+     */
+    const TGPicture* GetGPic() const { return fkGraphIcon; }
+    /** 
+     * Get the entry 
+     *
+     * @return 
+     */
+    TGListTreeItem&  GetEntry() const { return fEntry; }
+    /** 
+     * Compare to object
+     
+     * @param o 
+     
+     * @return 
+     */  
+    virtual Int_t Compare(const TObject* o) const;
+  protected:
+    AliFMDSpectraDisplayTop(const AliFMDSpectraDisplayTop& o) 
+      : AliFMDSpectraDisplayElement(o), 
+       TQObject(),
+       fHints(o.fHints),
+       fContainer(), // o.fContainer), 
+       fList(), // o.fList), 
+       fChildren(o.fChildren), 
+       fCurrentEntry(o.fCurrentEntry),
+       fCanvas(o.fCanvas),
+       fkHist1DIcon(o.fkHist1DIcon),
+       fkHist2DIcon(o.fkHist2DIcon),
+       fkHist3DIcon(o.fkHist3DIcon),
+       fkGraphIcon(o.fkGraphIcon),
+       fAxis(o.fAxis),
+       fEntry(o.fEntry)
+    {}
   
-  AliFMDSpectraDisplayTop& operator=(const AliFMDSpectraDisplayTop&) 
-  {
-    return *this;
-  }
-  TGLayoutHints fHints;                // Layout hints
-  TGCanvas      fContainer;            // Container
-  TGListTree    fList;                 // List
-  TObjArray     fChildren;             // Children
-  TGListTreeItem* fCurrentEntry;       // Current entry
-  TCanvas*        fCanvas;             // Canvas
-  const TGPicture*    fHist1DIcon;     // 1D Histogram Icon
-  const TGPicture*    fHist2DIcon;     // 2D Histogram Icon
-  const TGPicture*    fHist3DIcon;     // 3D Histogram Icon
-  const TGPicture*    fGraphIcon;      // Graph Icon 
-  TAxis* fAxis;                        // The axis to use 
-  TGListTreeItem& fEntry;              // Entry
+    AliFMDSpectraDisplayTop& operator=(const AliFMDSpectraDisplayTop&) 
+    {
+      return *this;
+    }
+    TGLayoutHints fHints;                // Layout hints
+    TGCanvas      fContainer;            // Container
+    TGListTree    fList;                 // List
+    TObjArray     fChildren;             // Children
+    TGListTreeItem* fCurrentEntry;       // Current entry
+    TCanvas*        fCanvas;             // Canvas
+    const TGPicture*    fkHist1DIcon;    // 1D Histogram Icon
+    const TGPicture*    fkHist2DIcon;    // 2D Histogram Icon
+    const TGPicture*    fkHist3DIcon;    // 3D Histogram Icon
+    const TGPicture*    fkGraphIcon;     // Graph Icon 
+    TAxis* fAxis;                        // The axis to use 
+    TGListTreeItem& fEntry;              // Entry
 
-  ClassDef(AliFMDSpectraDisplayTop,0);
-};
+    ClassDef(AliFMDSpectraDisplayTop,0);
+  };
 
-//__________________________________________________________________
-/**
- * Detector element in FMD spectra display
- * 
- */
-class AliFMDSpectraDisplayDetector : public AliFMDSpectraDisplayElement 
-{
-public:
-  /** 
-   * Constructor
-   * 
-   * @param det 
-   * @param top 
-   */
-  AliFMDSpectraDisplayDetector(UShort_t det, AliFMDSpectraDisplayTop& top);
-  /** 
-   * Get identifier
-   * 
-   * @return 
-   */
-  UShort_t Id() const { return fId; }
-  /** 
-   * Get top of hierarcy
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayTop&     GetTop() { return fParent; }
-  /** 
-   * Get parent
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayTop&     GetParent() { return fParent; }
-  /** 
-   * Get or add a ring element
-   * 
-   * @param id 
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayRing&    GetOrAdd(Char_t id);
-  /** 
-   * Fill histograms
-   * 
-   * @param ring 
-   * @param sec 
-   * @param str 
-   * @param v 
-   */
-  void     Fill(Char_t ring, UShort_t sec, UShort_t str, Double_t v);
-  /** 
-   * Get the entry
-   * 
+  //__________________________________________________________________
+  /**
+   * Detector element in FMD spectra display
    * 
-   * @return 
    */
-  TGListTreeItem&  GetEntry() { return fEntry; }
-  /** 
-   * Compare to object
-   * 
-   * @param o 
-   * 
-   * @return 
-   */  
-  virtual Int_t Compare(const TObject* o) const;
-protected:
-  UShort_t                            fId; // Identifier
-  AliFMDSpectraDisplayTop&            fParent; // Parent
-  TObjArray                           fChildren; // Children
-  TGListTreeItem&                     fEntry; // The entry
-  ClassDef(AliFMDSpectraDisplayDetector,0); // Detector element in FMD spectra
-};
+  class AliFMDSpectraDisplayDetector : public AliFMDSpectraDisplayElement 
+  {
+  public:
+    /** 
+     * Constructor
+     * 
+     * @param det 
+     * @param top 
+     */
+    AliFMDSpectraDisplayDetector(UShort_t det, AliFMDSpectraDisplayTop& top);
+    /** 
+     * Get identifier
+     * 
+     * @return 
+     */
+    UShort_t Id() const { return fId; }
+    /** 
+     * Get top of hierarcy
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayTop&     GetTop() { return fParent; }
+    /** 
+     * Get parent
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayTop&     GetParent() const { return fParent; }
+    /** 
+     * Get or add a ring element
+     * 
+     * @param id 
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayRing&    GetOrAdd(Char_t id);
+    /** 
+     * Fill histograms
+     * 
+     * @param ring 
+     * @param sec 
+     * @param str 
+     * @param v 
+     */
+    void     Fill(Char_t ring, UShort_t sec, UShort_t str, Double_t v);
+    /** 
+     * Get the entry
+     * 
+     * 
+     * @return 
+     */
+    TGListTreeItem&  GetEntry() const { return fEntry; }
+    /** 
+     * Compare to object
+     * 
+     * @param o 
+     * 
+     * @return 
+     */  
+    virtual Int_t Compare(const TObject* o) const;
+  protected:
+    UShort_t                            fId; // Identifier
+    AliFMDSpectraDisplayTop&            fParent; // Parent
+    TObjArray                           fChildren; // Children
+    TGListTreeItem&                     fEntry; // The entry
+    ClassDef(AliFMDSpectraDisplayDetector,0); // Detector element in FMD spectra
+  };
 
-//__________________________________________________________________
-/**
- * Ring element in FMD spectra display
- * 
- */
-class AliFMDSpectraDisplayRing : public AliFMDSpectraDisplayElement 
-{
-public:
-  /** 
-   * Constructor
-   * 
-   * @param id 
-   * @param d 
-   */
-  AliFMDSpectraDisplayRing(Char_t id, AliFMDSpectraDisplayDetector& d);
-  /** 
-   * Get identifier
-   * 
-   * @return 
-   */
-  Char_t    Id() const { return fId; }
-  /** 
-   * Get detector identifier
-   * 
-   * @return 
-   */
-  UShort_t  DetectorId() { return fParent.Id(); }
-  /** 
-   * Get top of hierarcy
-   * 
-   * @return 
-   */  
-  AliFMDSpectraDisplayTop&      GetTop() { return fParent.GetTop(); }
-  /** 
-   * Get parent detector
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayDetector& GetDetector() { return GetParent(); }
-  /** 
-   * Get parent detector
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayDetector& GetParent() { return fParent; }
-  /** 
-   * Get or add a sector element
-   * 
-   * @param id 
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplaySector&   GetOrAdd(UShort_t id);
-  /** 
-   * Fill histograms
-   * 
-   * @param sec 
-   * @param str 
-   * @param v 
-   */
-  void      Fill(UShort_t sec, UShort_t str, Double_t v);
-  /** 
-   * Get the entry
+  //__________________________________________________________________
+  /**
+   * Ring element in FMD spectra display
    * 
-   * @return 
    */
-  TGListTreeItem&  GetEntry() { return fEntry; }
-  /** 
-   * Compare to object
-   * 
-   * @param o 
-   * 
-   * @return 
-   */  
-  virtual Int_t Compare(const TObject* o) const;
-protected:
-  AliFMDSpectraDisplayDetector&       fParent; // Parent
-  Char_t                              fId;        // Identifier
-  TObjArray                           fChildren;  // Children
-  TGListTreeItem&                     fEntry;     // Entry
-  ClassDef(AliFMDSpectraDisplayRing,0); // Ring element in FMD spectra
-};
+  class AliFMDSpectraDisplayRing : public AliFMDSpectraDisplayElement 
+  {
+  public:
+    /** 
+     * Constructor
+     * 
+     * @param id 
+     * @param d 
+     */
+    AliFMDSpectraDisplayRing(Char_t id, AliFMDSpectraDisplayDetector& d);
+    /** 
+     * Get identifier
+     * 
+     * @return 
+     */
+    Char_t    Id() const { return fId; }
+    /** 
+     * Get detector identifier
+     * 
+     * @return 
+     */
+    UShort_t  DetectorId() const { return fParent.Id(); }
+    /** 
+     * Get top of hierarcy
+     * 
+     * @return 
+     */  
+    AliFMDSpectraDisplayTop&      GetTop() { return fParent.GetTop(); }
+    /** 
+     * Get parent detector
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayDetector& GetDetector() const { return GetParent(); }
+    /** 
+     * Get parent detector
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayDetector& GetParent() const { return fParent; }
+    /** 
+     * Get or add a sector element
+     * 
+     * @param id 
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplaySector&   GetOrAdd(UShort_t id);
+    /** 
+     * Fill histograms
+     * 
+     * @param sec 
+     * @param str 
+     * @param v 
+     */
+    void      Fill(UShort_t sec, UShort_t str, Double_t v);
+    /** 
+     * Get the entry
+     * 
+     * @return 
+     */
+    TGListTreeItem&  GetEntry() const { return fEntry; }
+    /** 
+     * Compare to object
+     * 
+     * @param o 
+     * 
+     * @return 
+     */  
+    virtual Int_t Compare(const TObject* o) const;
+  protected:
+    AliFMDSpectraDisplayDetector&       fParent; // Parent
+    Char_t                              fId;        // Identifier
+    TObjArray                           fChildren;  // Children
+    TGListTreeItem&                     fEntry;     // Entry
+    ClassDef(AliFMDSpectraDisplayRing,0); // Ring element in FMD spectra
+  };
   
-//__________________________________________________________________
-/**
- * Sector element in FMD spectra display
- * 
- */
-class AliFMDSpectraDisplaySector : public AliFMDSpectraDisplayElement 
-{
-public:
-  /** 
-   * Constructor
-   * 
-   * @param id 
-   * @param r 
-   */
-  AliFMDSpectraDisplaySector(UShort_t id, AliFMDSpectraDisplayRing& r);
-  /** 
-   * Get identifier
-   * 
-   * @return 
-   */
-  UShort_t  Id() const    { return fId; }
-  /** 
-   * Get detector identifier
-   * 
-   * @return 
-   */
-  UShort_t  DetectorId()  { return fParent.DetectorId(); }
-  /** 
-   * Get ring identifier
-   * 
-   * @return 
-   */
-  Char_t    RingId()      { return fParent.Id(); }
-  /** 
-   * Get top of hierarcy
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayTop&      GetTop()      { return fParent.GetTop(); }
-  /** 
-   * Get parent detector
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayDetector& GetDetector() { return fParent.GetDetector(); }
-  /** 
-   * Get parent ring.
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayRing&     GetRing()     { return fParent; }
-  /** 
-   * Get parent ring.
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayRing&     GetParent()   { return fParent; }
-  /** 
-   * Get or add a strip element
-   * 
-   * @param id 
+  //__________________________________________________________________
+  /**
+   * Sector element in FMD spectra display
    * 
-   * @return 
    */
-  AliFMDSpectraDisplayStrip&    GetOrAdd(UShort_t id);
-  /** 
-   * Fill histograms
-   * 
-   * @param str 
-   * @param v 
-   */  
-  void      Fill(UShort_t str, Double_t v);
-  /** 
-   * Get the entry
-   * 
-   * @return 
-   */  
-  TGListTreeItem&  GetEntry() { return fEntry; }
-  /** 
-   * Compare to object
-   * 
-   * @param o 
-   * 
-   * @return 
-   */  
-  virtual Int_t Compare(const TObject* o) const;
-protected:
-  AliFMDSpectraDisplayRing&           fParent;  // PArent
-  UShort_t                            fId;      // Identifier
-  TObjArray                           fChildren;// Children
-  TGListTreeItem&                     fEntry;   // Entry
-  ClassDef(AliFMDSpectraDisplaySector,0); // Sector element in FMD spectra
-};
+  class AliFMDSpectraDisplaySector : public AliFMDSpectraDisplayElement 
+  {
+  public:
+    /** 
+     * Constructor
+     * 
+     * @param id 
+     * @param r 
+     */
+    AliFMDSpectraDisplaySector(UShort_t id, AliFMDSpectraDisplayRing& r);
+    /** 
+     * Get identifier
+     * 
+     * @return 
+     */
+    UShort_t  Id() const    { return fId; }
+    /** 
+     * Get detector identifier
+     * 
+     * @return 
+     */
+    UShort_t  DetectorId()  const { return fParent.DetectorId(); }
+    /** 
+     * Get ring identifier
+     * 
+     * @return 
+     */
+    Char_t    RingId()      const { return fParent.Id(); }
+    /** 
+     * Get top of hierarcy
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayTop&      GetTop()    { return fParent.GetTop(); }
+    /** 
+     * Get parent detector
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayDetector& GetDetector() { return fParent.GetDetector(); }
+    /** 
+     * Get parent ring.
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayRing&     GetRing()     { return fParent; }
+    /** 
+     * Get parent ring.
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayRing&     GetParent()   { return fParent; }
+    /** 
+     * Get or add a strip element
+     * 
+     * @param id 
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayStrip&    GetOrAdd(UShort_t id);
+    /** 
+     * Fill histograms
+     * 
+     * @param str 
+     * @param v 
+     */  
+    void      Fill(UShort_t str, Double_t v);
+    /** 
+     * Get the entry
+     * 
+     * @return 
+     */  
+    TGListTreeItem&  GetEntry() const { return fEntry; }
+    /** 
+     * Compare to object
+     * 
+     * @param o 
+     * 
+     * @return 
+     */  
+    virtual Int_t Compare(const TObject* o) const;
+  protected:
+    AliFMDSpectraDisplayRing&           fParent;  // PArent
+    UShort_t                            fId;      // Identifier
+    TObjArray                           fChildren;// Children
+    TGListTreeItem&                     fEntry;   // Entry
+    ClassDef(AliFMDSpectraDisplaySector,0); // Sector element in FMD spectra
+  };
 
-//__________________________________________________________________
-/**
- * Strip element in FMD spectra display
- * 
- */
-class AliFMDSpectraDisplayStrip : public AliFMDSpectraDisplayElement 
-{
-public:
-  /** 
-   * Constructor
-   * 
-   * @param id 
-   * @param s 
-   */
-  AliFMDSpectraDisplayStrip(UShort_t id, AliFMDSpectraDisplaySector& s);
-  /** 
-   * Get identifier
-   * 
-   * @return 
-   */
-  UShort_t  Id() const    { return fId; }
-  /** 
-   * Get detector identifier
-   * 
-   * @return 
-   */
-  UShort_t  DetectorId()  { return fParent.DetectorId(); }
-  /** 
-   * Get ring identifier
-   * 
-   * @return 
-   */
-  Char_t    RingId()      { return fParent.RingId(); }
-  /** 
-   * Get sector identifier
-   * 
-   * @return 
-   */
-  UShort_t  SectorId()    { return fParent.Id(); }
-  /** 
-   * Get top of hierarcy
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayTop&      GetTop()      { return fParent.GetTop(); }
-  /** 
-   * Get parent detector
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayDetector& GetDetector() { return fParent.GetDetector(); }
-  /** 
-   * Get parent ring
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplayRing&     GetRing()     { return fParent.GetRing(); }
-  /** 
-   * Get parent sector
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplaySector&   GetSector()   { return fParent; }
-  /** 
-   * Get parent sector
-   * 
-   * @return 
-   */
-  AliFMDSpectraDisplaySector&   GetParent()   { return fParent; }
-  /** 
-   * Fill histograms
-   * 
-   * @param v 
-   */  
-  void      Fill(Double_t v);
-  /** 
-   * Get entry
+  //__________________________________________________________________
+  /**
+   * Strip element in FMD spectra display
    * 
-   * @return 
    */
-  TGListTreeItem&  GetEntry() { return fEntry; }
-  /** 
-   * Compare to object
-   * 
-   * @param o 
-   * 
-   * @return 
-   */  
-  virtual Int_t Compare(const TObject* o) const;
-protected:
-  AliFMDSpectraDisplaySector&         fParent; // Parent
-  UShort_t                            fId;     // Identifier 
-  TGListTreeItem&                     fEntry;  // Entry
-  ClassDef(AliFMDSpectraDisplayStrip,0);
-};
+  class AliFMDSpectraDisplayStrip : public AliFMDSpectraDisplayElement 
+  {
+  public:
+    /** 
+     * Constructor
+     * 
+     * @param id 
+     * @param s 
+     */
+    AliFMDSpectraDisplayStrip(UShort_t id, AliFMDSpectraDisplaySector& s);
+    /** 
+     * Get identifier
+     * 
+     * @return 
+     */
+    UShort_t  Id() const    { return fId; }
+    /** 
+     * Get detector identifier
+     * 
+     * @return 
+     */
+    UShort_t  DetectorId()  const { return fParent.DetectorId(); }
+    /** 
+     * Get ring identifier
+     * 
+     * @return 
+     */
+    Char_t    RingId()  const    { return fParent.RingId(); }
+    /** 
+     * Get sector identifier
+     * 
+     * @return 
+     */
+    UShort_t  SectorId()  const  { return fParent.Id(); }
+    /** 
+     * Get top of hierarcy
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayTop&      GetTop()    { return fParent.GetTop(); }
+    /** 
+     * Get parent detector
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayDetector& GetDetector()  { return fParent.GetDetector(); }
+    /** 
+     * Get parent ring
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplayRing&     GetRing()    { return fParent.GetRing(); }
+    /** 
+     * Get parent sector
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplaySector&   GetSector()  { return fParent; }
+    /** 
+     * Get parent sector
+     * 
+     * @return 
+     */
+    AliFMDSpectraDisplaySector&   GetParent() { return fParent; }
+    /** 
+     * Fill histograms
+     * 
+     * @param v 
+     */  
+    void      Fill(Double_t v);
+    /** 
+     * Get entry
+     * 
+     * @return 
+     */
+    TGListTreeItem&  GetEntry() const { return fEntry; }
+    /** 
+     * Compare to object
+     * 
+     * @param o 
+     * 
+     * @return 
+     */  
+    virtual Int_t Compare(const TObject* o) const;
+  protected:
+    AliFMDSpectraDisplaySector&         fParent; // Parent
+    UShort_t                            fId;     // Identifier 
+    TGListTreeItem&                     fEntry;  // Entry
+    ClassDef(AliFMDSpectraDisplayStrip,0);
+  };
 
-//____________________________________________________________________
-/**
- * FMD event and spectra display
- * 
- */
-class AliFMDSpectraDisplay : public AliFMDPattern
-{
-public:
   /** 
    * Constructor
    * 
@@ -715,7 +715,7 @@ protected:
   AliFMDSpectraDisplayTop fTop;     // Top of hierarcy
   ClassDef(AliFMDSpectraDisplay,0); // FMD event and spectra display
 }
-;
+  ;
 
 #endif
 //____________________________________________________________________
index 0ede4e6..f4352c6 100644 (file)
     @date    Mon Mar 27 12:50:29 2006
     @brief   Simulation configuration script
 */
-#if !defined(__CINT__) || defined(__MAKECINT__)
-#include <Riostream.h>
-#include <TPDGCode.h>
-#include <TSystem.h>
-#include <TVirtualMC.h>
-#include <TGeant3.h>
-#include "STEER/AliRunLoader.h"
-#include "STEER/AliRun.h"
-#include "STEER/AliConfig.h"
-#include "STEER/AliGenerator.h"
-#include "PYTHIA6/AliDecayerPythia.h"
-#include "EVGEN/AliGenHIJINGpara.h"
-#include "THijing/AliGenHijing.h"
-#include "EVGEN/AliGenCocktail.h"
-#include "EVGEN/AliGenSlowNucleons.h"
-#include "EVGEN/AliSlowNucleonModelExp.h"
-#include "EVGEN/AliGenParam.h"
-#include "EVGEN/AliGenMUONlib.h"
-#include "EVGEN/AliGenMUONCocktail.h"
-#include "PYTHIA6/AliGenPythia.h"
-#include "STEER/AliMagFMaps.h"
-#include "STRUCT/AliBODY.h"
-#include "STRUCT/AliMAG.h"
-#include "STRUCT/AliABSOv0.h"
-#include "STRUCT/AliDIPOv2.h"
-#include "STRUCT/AliHALL.h"
-#include "STRUCT/AliFRAMEv2.h"
-#include "STRUCT/AliSHILv2.h"
-#include "STRUCT/AliPIPEv3.h"
-#include "ITS/AliITSvPPRasymmFMD.h"
-#include "TPC/AliTPCv2.h"
-#include "TOF/AliTOFv4T0.h"
-#include "HMPID/AliHMPIDv1.h"
-#include "ZDC/AliZDCv2.h"
-#include "TRD/AliTRDv1.h"
-#include "FMD/AliFMDv1.h"
-#include "MUON/AliMUONv1.h"
-#include "MUON/AliMUONSt1GeometryBuilderV2.h"
-#include "MUON/AliMUONSt2GeometryBuilder.h"
-#include "MUON/AliMUONSlatGeometryBuilder.h"
-#include "MUON/AliMUONTriggerGeometryBuilder.h"
-#include "PHOS/AliPHOSv1.h"
-#include "PMD/AliPMDv1.h"
-#include "T0/AliT0v1.h"
-#include "EMCAL/AliEMCALv2.h"
-#include "ACORDE/AliACORDEv1.h"
-#include "VZERO/AliVZEROv2.h"
-#endif
 
 //____________________________________________________________________
 // 
@@ -217,7 +169,7 @@ enum MC_t {
 //____________________________________________________________________
 // Functions
 Float_t       EtaToTheta(Float_t eta);
-Eg_t          LookupEG(const Char_t* name);
+EG_t          LookupEG(const Char_t* name);
 AliGenerator* GeneratorFactory(EG_t eg, Rad_t rad, TString& comment);
 AliGenHijing* HijingStandard();
 void          ProcessEnvironmentVars(EG_t& eg, Int_t& seed);
@@ -232,7 +184,8 @@ Config()
   // EG_t  eg   = kParam_fmd;
   // EG_t  eg   = kFMDFlat; // kParam_2000; // kPythia;
   // EG_t  eg   = kFMDFlat;
-  EG_t  eg   = kPythia6;
+  // EG_t  eg   = kPythia6;
+  EG_t  eg   = kFMD2Flat;
   Geo_t geo  = kNoHoles;
   Rad_t rad  = kGluonRadiation;
   Mag_t mag  = k5kG;
@@ -471,7 +424,7 @@ Config()
   Bool_t useMUON  = kFALSE; 
   Bool_t usePHOS  = kFALSE; 
   Bool_t usePIPE  = kTRUE; 
-  Bool_t usePMD   = kFALSE; 
+  Bool_t usePMD   = kTRUE; 
   Bool_t useHMPID = kFALSE; 
   Bool_t useSHIL  = kFALSE; 
   Bool_t useT0    = kFALSE; 
@@ -1424,7 +1377,7 @@ GeneratorFactory(EG_t eg, Rad_t rad, TString& comment)
   case kFMD2Flat: 
     {
       comment = comment.Append(" Flat in FMD2 range");
-      AliGenBox* gener = new AliGenBox(2000);
+      AliGenBox* gener = new AliGenBox(10);
       gener->SetPart(kPiPlus);
       gener->SetMomentumRange(3,4);
       gener->SetPhiRange(0, 360);
index 89a4888..fa0ae9d 100644 (file)
 #pragma link C++ class  AliFMDBackgroundCorrection+;
 
 #pragma link C++ class  AliFMDSpectraDisplay;
-#pragma link C++ class  AliFMDSpectraDisplayElement;
-#pragma link C++ class  AliFMDSpectraDisplayTop;
-#pragma link C++ class  AliFMDSpectraDisplayDetector;
-#pragma link C++ class  AliFMDSpectraDisplayRing;
-#pragma link C++ class  AliFMDSpectraDisplaySector;
-#pragma link C++ class  AliFMDSpectraDisplayStrip;
+#pragma link C++ class  AliFMDSpectraDisplay::AliFMDSpectraDisplayElement;
+#pragma link C++ class  AliFMDSpectraDisplay::AliFMDSpectraDisplayTop;
+#pragma link C++ class  AliFMDSpectraDisplay::AliFMDSpectraDisplayDetector;
+#pragma link C++ class  AliFMDSpectraDisplay::AliFMDSpectraDisplayRing;
+#pragma link C++ class  AliFMDSpectraDisplay::AliFMDSpectraDisplaySector;
+#pragma link C++ class  AliFMDSpectraDisplay::AliFMDSpectraDisplayStrip;
 
 #else
 # error Not for compilation 
index eed6092..61046af 100644 (file)
@@ -27,10 +27,10 @@ Simulate(Int_t n=1)
   // AliLog::SetModuleDebugLevel("FMD", 1);
   sim.SetConfigFile("$(ALICE_ROOT)/FMD/Config.C");
   // sim.SetMakeSDigits("FMD");
-  sim.SetMakeDigits("FMD"); 
+  sim.SetMakeDigits("FMD ITS VZERO PMD"); 
   sim.SetWriteRawData("FMD"); 
   // sim.SetMakeDigitsFromHits("FMD"); 
-  sim.SetRunQA("FMD");
+  sim.SetRunQA(":");
   TStopwatch w; 
   w.Start(); 
   sim.Run(n);  
index 22e0536..acf12f6 100644 (file)
@@ -28,6 +28,8 @@
 #pragma link off all functions;
 
 
+#pragma link C++ class AliFMDAnaCalibBackgroundCorrection+;
+#pragma link C++ class AliFMDAnaCalibEnergyDistribution+;
 #pragma link C++ class AliFMDAnaParameters+;
 #pragma link C++ class AliFMDAnaCalibEnergyDistribution+;
 #pragma link C++ class AliFMDAnaCalibBackgroundCorrection+;
index 43ce8c5..addbcbd 100644 (file)
@@ -13,6 +13,8 @@ SRCS          =  analysis/AliFMDAnaParameters.cxx     \
 
 HDRS           =  $(SRCS:.cxx=.h) 
 EINCLUDE       := ANALYSIS 
+#ELIBS           := ANALYSIS
+#ELIBSDIR      := $(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET)
 DHDR           := analysis/FMDanalysisLinkDef.h
 
 #
index e264112..d7a7e95 100644 (file)
@@ -20,6 +20,9 @@ HDRS          =  $(SRCS:.cxx=.h)
 DHDR           := FMDutilLinkDef.h
 EINCLUDE       := RAW FMD/analysis
 
+#ELIBS           := FMDanalysis
+#ELIBSDIR      := $(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET)
+
 ifeq (win32gcc,$(ALICE_TARGET))
 PACKSOFLAGS:= $(SOFLAGS) -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) \
                          -lFMDrec -lFMDbase -lSTEER -lCDB -lESD -lSTEERBase \
index 5836cca..4794a72 100644 (file)
@@ -6,10 +6,10 @@ ShowFMDITS(const char* name="ALIC")
 
   const char* inv[] = { "RB24", "RB26Pipe", 
                        "ICYL", 
-                       "ICU1", "ICU2", "ICU3", "ICU4", 
-                       "ICU5", "ICU6", "ICU7", "ICU8",
-                       "ICC1", "ICC2", "ICC3", "ICC4", 
-                       "ICC5", "ICC6", "ICC7", "ICC8", 
+                       "ICU0", "ICU1", "ICU2", "ICU3", "ICU4", 
+                       "ICU5", "ICU6", "ICU7", "ICU8", "ICU9",
+                       "ICC0", "ICC1", "ICC2", "ICC3", "ICC4", 
+                       "ICC5", "ICC6", "ICC7", "ICC8", "ICC9",
                        "IHK1", "IHK2", 
                        "ISR1", "ISR2", "ISR3", "ISR6",
                        "ITSSPD", 
@@ -26,6 +26,20 @@ ShowFMDITS(const char* name="ALIC")
                        "SDDCarbonFiberCone", 
                        "SSDexternalcylinder", 
                        "SSDfoamcylinder",
+                       "SSDCableLay5RightSidePCon1", 
+                       "SSDCableLay5RightSidePCon2", 
+                       "SSDCableLay5RightSidePCon3", 
+                       "SSDCableLay5RightSidePConWater1", 
+                       "SSDCableLay5RightSidePConWater2", 
+                       "SSDCableLay5RightSidePConWater3", 
+                       "SSDCableLay5RightSideTube", 
+                       "SSDCableLay5RightSideWaterTube", 
+                       "SSDCableLay6MaterialBudgetPCon", 
+                       "SSDCableLay6MaterialBudgetTube", 
+                       "SSDCableLay6RightSidePCon", 
+                       "SSDCableLay6RightSideTube", 
+                       "SSDCableLay6RightSideWaterPCon", 
+                       "SSDCableLay6RightSideWaterTube", 
                        "ITSssdCone", 
                        "ITScablesSDDpcon1Plast",
                        "ITScablesSDDpcon3Plast",
@@ -49,6 +63,7 @@ ShowFMDITS(const char* name="ALIC")
     vol->SetVisibility(kFALSE);
     vol->InvisibleAll(kTRUE);
   }
+
   vol = gGeoManager->GetVolume("SPDcentralomega");
   if (vol) vol->SetTransparency(64);
   vol = gGeoManager->GetVolume("SPDendcabomaga");
index e709a56..8b5ba0b 100644 (file)
@@ -15,6 +15,8 @@ SpectraMonitor(const char* file="",
               const char* cdbSrc="local://$ALICE_ROOT", 
               UShort_t    over=0)
 {
+  gSystem->Load("libANALYSIS.so");
+  gSystem->Load("libFMDanalysis.so");
   gSystem->Load("libFMDutil.so");
   // AliLog::SetModuleDebugLevel("FMD", 8);
   TString fname(file);
@@ -47,8 +49,9 @@ SpectraMonitor(const char* file="",
   if (over != 0) AliFMDParameters::Instance()->SetSampleRate(over);
   
   AliFMDSpectraDisplay* d = new AliFMDSpectraDisplay;
-  d->AddLoad(AliFMDInput::kRaw);
-  d->SetRawFile(file);
+  // d->AddLoad(AliFMDInput::kRaw);
+  d->AddLoad(AliFMDInput::kDigits);
+  // d->SetRawFile(file);
   d->Run();
 }