Index: trunk/MagicSoft/Mars/manalysis/MSigmabar.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MSigmabar.cc	(revision 2206)
+++ trunk/MagicSoft/Mars/manalysis/MSigmabar.cc	(revision 2209)
@@ -145,6 +145,5 @@
         }
 
-        const MGeomPix    &gpix = geom[id];
-        const MPedestalPix &pix =  ped[id];
+        const MGeomPix &gpix = geom[id];
 
         Int_t sector = (Int_t)(atan2(gpix.GetY(),gpix.GetX())*6 / (TMath::Pi()*2));
@@ -153,5 +152,5 @@
 
         // count only those pixels which have a sigma != 0.0
-        const Float_t sigma = pix.GetMeanRms();
+        const Float_t sigma = ped[id].GetMeanRms();
 
         if ( sigma <= 0 )
Index: trunk/MagicSoft/Mars/manalysis/MSigmabarCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MSigmabarCalc.cc	(revision 2206)
+++ trunk/MagicSoft/Mars/manalysis/MSigmabarCalc.cc	(revision 2209)
@@ -65,9 +65,4 @@
 }
 
-MSigmabarCalc::~MSigmabarCalc()
-{
-  // nothing special yet.
-}
-
 // --------------------------------------------------------------------------
 //
@@ -75,5 +70,5 @@
 //  if not create one and add them to the list
 //
-Bool_t MSigmabarCalc::PreProcess(MParList *pList)
+Int_t MSigmabarCalc::PreProcess(MParList *pList)
 {
     fCam = (MGeomCam*)pList->FindObject("MGeomCam");
@@ -91,18 +86,4 @@
     }
 
-    fSig = (MSigmabar*)pList->FindCreateObj("MSigmabar");
-    if (!fSig)
-    {
-        *fLog << err << "MSigmabar not found... aborting." << endl;
-        return kFALSE;
-    }
-
-    fSigParam = (MSigmabarParam*)pList->FindCreateObj("MSigmabarParam");
-    if (!fSigParam)
-    {
-        *fLog << err << "MSigmabarParam not found... aborting." << endl;
-        return kFALSE;
-    }
-
     fRun = (MRawRunHeader*)pList->FindObject("MRawRunHeader");
     if (!fRun)
@@ -111,12 +92,13 @@
         return kFALSE;
     }
-    
+
     // This is needed for determining min/max Theta
     fMcEvt = (MMcEvt*)pList->FindObject("MMcEvt");
     if (!fMcEvt)
-      {
-	*fLog << err << "MMcEvt not found... aborting." << endl;
-	return kFALSE;
-      }
+    {
+        *fLog << warn << "MMcEvt not found... aborting." << endl;
+        fThetaMin =  0;
+        fThetaMax = 90;
+    }
 
     fEvt = (MCerPhotEvt*)pList->FindObject("MCerPhotEvt");
@@ -126,4 +108,13 @@
 	return kFALSE;
       }
+
+    fSig = (MSigmabar*)pList->FindCreateObj("MSigmabar");
+    if (!fSig)
+        return kFALSE;
+
+    fSigParam = (MSigmabarParam*)pList->FindCreateObj("MSigmabarParam");
+    if (!fSigParam)
+        return kFALSE;
+
 
     return kTRUE;
@@ -137,15 +128,18 @@
 // values. Preliminary.
 //
-Bool_t MSigmabarCalc::Process()
+Int_t MSigmabarCalc::Process()
 {
     const Double_t rc = fSig->Calc(*fCam, *fPed, *fEvt);
 
-    fSigmabarMax = TMath::Max(rc, fSigmabarMax);
-    fSigmabarMin = TMath::Min(rc, fSigmabarMin);
+    if (rc>fSigmabarMax) fSigmabarMax=rc;
+    if (rc<fSigmabarMin) fSigmabarMin=rc;
+
+    if (!fMcEvt)
+        return kTRUE;
 
     const Double_t theta = fMcEvt->GetTelescopeTheta()*kRad2Deg;
 
-    fThetaMax = TMath::Max(theta, fThetaMax);
-    fThetaMin = TMath::Min(theta, fThetaMin);
+    if (theta>fSigmabarMax) fSigmabarMax=theta;
+    if (theta<fSigmabarMax) fSigmabarMin=theta;
 
     return kTRUE;
@@ -169,7 +163,10 @@
 void MSigmabarCalc::Reset()
 {
-    fThetaMin = 200;    // there must be a function which gives me the hightest
-    fThetaMax = 0;      // value allowed for a certain type!
-    fSigmabarMin = 200;
+    if (!fMcEvt)
+        return;
+
+    fThetaMin    = FLT_MAX;
+    fThetaMax    = 0;
+    fSigmabarMin = FLT_MAX;
     fSigmabarMax = 0;
 }
Index: trunk/MagicSoft/Mars/manalysis/MSigmabarCalc.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MSigmabarCalc.h	(revision 2206)
+++ trunk/MagicSoft/Mars/manalysis/MSigmabarCalc.h	(revision 2209)
@@ -48,11 +48,11 @@
     void Reset();
 
+    Int_t PreProcess(MParList *pList);
+    Int_t Process();
+
+    Bool_t ReInit(MParList *pList);
+
 public:
     MSigmabarCalc(const char *name=NULL, const char *title=NULL);
-    ~MSigmabarCalc();
-
-    Bool_t PreProcess(MParList *pList);
-    Bool_t ReInit(MParList *pList);
-    Bool_t Process();
 
     ClassDef(MSigmabarCalc, 0) // task for calculating sigmabar
