Index: trunk/MagicSoft/Mars/macros/status.C
===================================================================
--- trunk/MagicSoft/Mars/macros/status.C	(revision 2549)
+++ trunk/MagicSoft/Mars/macros/status.C	(revision 2550)
@@ -58,5 +58,5 @@
 
     // ------------- user change -----------------
-    MDirIter files("~MAGIC/online_data/rootdata", "*Mkn501-I*.root", -1);
+    MDirIter files(".", "G*.root", -1);
     //files.Print("all");
 
@@ -94,5 +94,15 @@
     trighi.SetType(1);
 
+    MHCamEvent maxhi("MaxIdxHi", "Index of maximum hi-gain slice");
+    MHCamEvent maxlo("MaxIdxLo", "Index of maximum lo-gain slice");
+    maxhi.SetType(3);
+    maxlo.SetType(4);
+    plist.AddToList(&maxhi);
+    plist.AddToList(&maxlo);
+
+
     MFillH fillhi(&trighi, "MRawEvtData");
+    MFillH hfilhi("MaxIdxHi", "MRawEvtData");
+    MFillH hfillo("MaxIdxLo", "MRawEvtData");
     MFillH hfill0("Uncleaned [MHCamEvent]", "MCerPhotEvt");
     MFillH hfill1("Pedestals [MHCamEvent]", "MPedestalCam");
@@ -110,4 +120,6 @@
     tlist.AddToList(&read);
     tlist.AddToList(&geomapl);
+    tlist.AddToList(&hfilhi);
+    tlist.AddToList(&hfillo);
     tlist.AddToList(&fillhi);
     tlist.AddToList(&pcopy);
Index: trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc	(revision 2549)
+++ trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc	(revision 2550)
@@ -560,6 +560,9 @@
 //
 MStatusDisplay::MStatusDisplay(Long_t t)
-: TGMainFrame(gClient ? gClient->GetRoot() : NULL, 1, 1), fTab(NULL), fTimer(this, t, kTRUE), fStatus(kLoopNone), fLog(&gLog), fLogIdx(-1), fLogTimer(this, 250, kTRUE), fLogBox(NULL), fIsLocked(0)
-{
+: TGMainFrame(NULL, 1, 1), fTab(NULL), fTimer(this, t, kTRUE), fStatus(kLoopNone), fLog(&gLog), fLogIdx(-1), fLogTimer(this, 250, kTRUE), fLogBox(NULL), fIsLocked(0)
+{
+    // p==NULL means: Take gClient->GetRoot() if not in batch mode
+    // see TGWindow::TGWindow()
+
     //
     // This is a possibility for the user to check whether this
@@ -1383,4 +1386,9 @@
 
     gLog << dbg << "MStatusDisplay is on heap: " << (int)IsOnHeap() << endl;
+
+    if (TestBit(kExitLoopOnExit))
+        gSystem->ExitLoop();
+    if (TestBit(kExitLoopOnClose))
+        gSystem->ExitLoop();
 
     if (fIsLocked<=0 && IsOnHeap())
Index: trunk/MagicSoft/Mars/mbase/MStatusDisplay.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MStatusDisplay.h	(revision 2549)
+++ trunk/MagicSoft/Mars/mbase/MStatusDisplay.h	(revision 2550)
@@ -53,4 +53,10 @@
         kSearch
     } Status_t;
+
+    enum
+    {
+        kExitLoopOnExit  = BIT(14),
+        kExitLoopOnClose = BIT(15)
+     };
 
 protected:
Index: trunk/MagicSoft/Mars/mcamera/CameraLinkDef.h
===================================================================
--- trunk/MagicSoft/Mars/mcamera/CameraLinkDef.h	(revision 2549)
+++ trunk/MagicSoft/Mars/mcamera/CameraLinkDef.h	(revision 2550)
@@ -6,4 +6,6 @@
 
 #pragma link C++ class MCameraCooling+;
+#pragma link C++ class MCameraAUX+;
+#pragma link C++ class MCameraLid+;
 #pragma link C++ class MCameraLids+;
 #pragma link C++ class MCameraHV+;
Index: trunk/MagicSoft/Mars/mhist/MHCamEvent.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamEvent.cc	(revision 2549)
+++ trunk/MagicSoft/Mars/mhist/MHCamEvent.cc	(revision 2550)
@@ -54,5 +54,5 @@
 //
 MHCamEvent::MHCamEvent(const char *name, const char *title)
-    : fSum(NULL), fEvt(NULL), fType(0)
+    : fSum(NULL), fRms(NULL), fEvt(NULL), fType(0)
 {
     //
@@ -71,4 +71,6 @@
     if (fSum)
         delete fSum;
+    if (fRms)
+        delete fRms;
 }
 
@@ -99,4 +101,6 @@
     if (fSum)
         delete (fSum);
+    if (fRms)
+        delete (fRms);
 
     const TString name = fNameEvt.IsNull() ? fName : fNameEvt;
@@ -105,4 +109,7 @@
     fSum->SetYTitle("a.u.");
     fSum->SetBit(MHCamera::kProfile);
+
+    fRms = new MHCamera(*cam, name+";rms", fTitle);
+    fRms->SetYTitle("a.u.");
     return kTRUE;
 }
@@ -131,10 +138,13 @@
 Bool_t MHCamEvent::Finalize()
 {
-    fSum->ResetBit(MHCamera::kProfile);
-    if (fSum->GetEntries()>0)
-        fSum->Scale(1./fSum->GetEntries());
+    fRms->AddCamContent(*fSum, 1);
     return kTRUE;
 }
 
+// --------------------------------------------------------------------------
+//
+// Take the mean of the sum histogram and print all pixel indices
+// which are above sum+s*rms
+//
 void MHCamEvent::PrintOutliers(Float_t s) const
 {
@@ -156,9 +166,16 @@
 // --------------------------------------------------------------------------
 //
-// Return fSum.
+// Return fSum for "sum" and fRms for "rms"
 //
 TH1 *MHCamEvent::GetHistByName(const TString name)
 {
-    return fSum;
+//    name.ToLower();
+
+    if (name=="sum")
+        return fSum;
+    if (name=="rms")
+        return fRms;
+
+    return NULL;
 }
 
@@ -171,8 +188,18 @@
 
     pad->cd(1);
+    gPad->SetBorderMode(0);
+    fSum->Draw("EPhist");
+
+    pad->cd(2);
+    gPad->SetBorderMode(0);
+    gPad->Divide(2, 1);
+    pad = gPad;
+
+    pad->cd(1);
+    gPad->SetBorderMode(0);
     fSum->Draw();
 
     pad->cd(2);
     gPad->SetBorderMode(0);
-    fSum->Draw("EPhist");
-}
+    fRms->Draw();
+}
Index: trunk/MagicSoft/Mars/mhist/MHCamEvent.h
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamEvent.h	(revision 2549)
+++ trunk/MagicSoft/Mars/mhist/MHCamEvent.h	(revision 2550)
@@ -13,4 +13,5 @@
 private:
     MHCamera  *fSum; // storing the sum
+    MHCamera  *fRms; // storing the rms
     MCamEvent *fEvt; //! the current event
 
Index: trunk/MagicSoft/Mars/mhist/MHCamera.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 2549)
+++ trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 2550)
@@ -1131,7 +1131,8 @@
     cout << "Software Pixel Index: " << idx << endl;
     cout << "Hardware Pixel Id:    " << idx+1 << endl;
-    cout << "Contents:             " << GetBinContent(idx+1) << "  <";
-    cout << (IsUsed(idx)?"on":"off");
-    cout << ">" << endl;
+    cout << "Contents:             " << GetBinContent(idx+1);
+    if (GetBinError(idx+1)>0)
+        cout << " +/- " << GetBinError(idx+1);
+    cout << "  <" << (IsUsed(idx)?"on":"off") << ">" << endl;
 
     if (fNotify && fNotify->GetSize()>0)
Index: trunk/MagicSoft/Mars/mhist/MHTriggerLvl0.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHTriggerLvl0.cc	(revision 2549)
+++ trunk/MagicSoft/Mars/mhist/MHTriggerLvl0.cc	(revision 2550)
@@ -111,5 +111,6 @@
 
     fSum = new MHCamera(*cam, name+";avg", fTitle);
-    fSum->SetYTitle("%");
+    fSum->SetBit(MHCamera::kProfile);
+    fSum->SetYTitle("% [1]");
 
     return kTRUE;
@@ -140,10 +141,10 @@
 Bool_t MHTriggerLvl0::Finalize()
 {
-    if (fSum->GetEntries()>0)
-        fSum->Scale(100./fSum->GetEntries());
+    //    if (fSum->GetEntries()>0)
+    //        fSum->Scale(100);
     return kTRUE;
 }
 
-void MHTriggerLvl0::PrintOutlayers(Float_t s) const
+void MHTriggerLvl0::PrintOutliers(Float_t s) const
 {
     const Double_t mean = fSum->GetMean();
Index: trunk/MagicSoft/Mars/mhist/MHTriggerLvl0.h
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHTriggerLvl0.h	(revision 2549)
+++ trunk/MagicSoft/Mars/mhist/MHTriggerLvl0.h	(revision 2550)
@@ -36,5 +36,5 @@
     void Draw(Option_t * ="");
 
-    void PrintOutlayers(Float_t s) const;
+    void PrintOutliers(Float_t s) const;
 
     ClassDef(MHTriggerLvl0, 1) // Histogram to count how often a pixel is above threshold
Index: trunk/MagicSoft/Mars/mmain/MEventDisplay.cc
===================================================================
--- trunk/MagicSoft/Mars/mmain/MEventDisplay.cc	(revision 2549)
+++ trunk/MagicSoft/Mars/mmain/MEventDisplay.cc	(revision 2550)
@@ -470,12 +470,4 @@
 
     //
-    // Set name for 'FADC canvas'. The name is the anchor for MHCamera.
-    // and clear the canvas
-    //
-    MHEvent *o = (MHEvent*)plist->FindObject("Signal");
-    fCanvas->SetName(Form("%p;%p;PixelContent", o->GetHist(),
-                          GetCanvas(1)->GetPad(1)));
-
-    //
     // Draw ellipse on top of all pads
     //
@@ -520,5 +512,5 @@
 // The other two are parm1 and parm2.
 //
-Bool_t MEventDisplay::ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
+Bool_t MEventDisplay::ProcessMessage(Long_t msg, Long_t mp1, Long_t mp2)
 {
     switch (GET_MSG(msg))
@@ -545,6 +537,19 @@
         switch (GET_SUBMSG(msg))
         {
+        case kCM_TAB:
+            {
+                //
+                // Set name for 'FADC canvas'. The name is the anchor for MHCamera.
+                // and clear the canvas
+                //
+                MHEvent *o = (MHEvent*)fEvtLoop->GetParList()->FindObject(GetCanvas(mp1)->GetName());
+                if (o)
+                    fCanvas->SetName(Form("%p;%p;PixelContent", o->GetHist(),
+                                          GetCanvas(mp1)->GetPad(1)));
+            }
+            break;
+
         case kCM_BUTTON:
-            switch (parm1)
+            switch (mp1)
             {
             case kEvtPrev:
@@ -560,4 +565,5 @@
         break;
     }
-    return MStatusDisplay::ProcessMessage(msg, parm1, parm2);
-}
+
+    return MStatusDisplay::ProcessMessage(msg, mp1, mp2);
+}
