Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 1117)
+++ trunk/MagicSoft/Mars/Changelog	(revision 1118)
@@ -1,3 +1,71 @@
                                                                   -*-*- END -*-*-
+
+ 2001/12/18: Thomas Bretz
+ 
+   * manalysis/MMcPedestalCopy.cc:
+     - changed output
+     
+   * manalysis/MMcPedestalNSB.cc:
+     - changed output
+     - simplified initialization in PreProcess
+     
+   * mbase/MAGIC.h:
+     - added kSKIP
+     
+   * mbase/MParList.cc:
+     - added a check for the correct inheritance in FindCreateObj
+   
+   * mbase/MTask.cc:
+     - added support for kSKIP in PreProcess
+
+   * mbase/MTaskList.[h,cc]
+     - added support for kSKIP in PreProcess
+     - added Remove function (private)
+
+
+
+ 2001/12/17: Thomas Bretz
+ 
+   * .rootrc:
+     - added Root.Html.DescriptionStyle
+     - added Root.Html.SearchEngine
+     
+   * macros/dohtml.C:
+     - changed to use THtml (root >= 3.02/06 only)
+     
+   * manalysis/Makefile:
+     - changed order to get rid of some wranings
+   
+   * mbase/BaseLinkDef.h:
+     - removed MHtml
+     
+   * mbase/MEvtLoop.cc:
+     - exchanged gSystem->ProcessEvents() by gClient->ProcessEventsFor()
+       to make gui update faster
+       
+   * mbase/MGList.cc:
+     - added a missing sanity check (workaround for a root bug)
+     
+   * mbase/MReadTree.cc:
+     - uncomment EnableBranchCoosing for AutoEnablingScheme
+       (don't know why there was a comment which made things realy slow)
+     - changed the auto enabling scheme, so that a branch isn't enabled
+       more than once. This doesn't hurt, but the output may confuse the
+       users.
+       
+    * mbase/MTask.cc:
+      - added a simple not really necessary check whether the branch is
+        already in the list
+        
+    * mbase/MWriteRootFile.cc:
+      - changed kFillTree to a local const
+      
+    * mbase/Makefile:
+      - removed MHtml.cc
+    
+    * mfilter/MFTriggerLvl1.cc:
+      - changed AddBranchToList to use the correct container name
+
+
 
  2001/12/14: Thomas Bretz
Index: trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.cc	(revision 1117)
+++ trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.cc	(revision 1118)
@@ -65,16 +65,16 @@
     MRawRunHeader *run = (MRawRunHeader*)pList->FindObject("MRawRunHeader");
     if (run)
-    {
         if (run->GetRunType() != kRTMonteCarlo)
         {
-            *fLog << "No Monte Carlo File - MMcPedestalCopy skipped." << endl;
-            return kTRUE;
+            *fLog << warn << dbginf << "MMcPedestalCopy is for Monte Carlo files only... removing this task from list." << endl;
+            return kSKIP;
         }
-    }
+    else
+        *fLog << warn << dbginf << "Warning - cannot check file type, MRawRunHeader not found." << endl;
 
     const MMcFadcHeader *mcped = (MMcFadcHeader*)pList->FindObject("MMcFadcHeader");
     if (!mcped)
     {
-        *fLog << dbginf << "MMcFadcHeader not found... aborting." << endl;
+        *fLog << warn << dbginf << "MMcFadcHeader not found... aborting." << endl;
         return kFALSE;
     }
Index: trunk/MagicSoft/Mars/manalysis/MMcPedestalNSB.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MMcPedestalNSB.cc	(revision 1117)
+++ trunk/MagicSoft/Mars/manalysis/MMcPedestalNSB.cc	(revision 1118)
@@ -60,5 +60,5 @@
     AddToBranchList("fElecNoise");
 
-    fdnsb_pixel=difnsb;
+    fdnsb_pixel = difnsb;
 }
 
@@ -66,46 +66,43 @@
 {
     MRawRunHeader *run = (MRawRunHeader*)pList->FindObject("MRawRunHeader");
-    if (run)
+    if (!run)
     {
-	if (run->GetRunType() != kRTMonteCarlo){
-	    *fLog << dbginf << "This task is only for Monte Carlo files, therefore the RunType should be "<<kRTMonteCarlo<<" and it is: "<<run->GetRunType()<<" ... aborting"<<endl;
-	    return kFALSE;
-	}
-    }
-    else
-    {
-        *fLog << dbginf << "MRawRunHeader not found... aborting." << endl;
+        *fLog << err << dbginf << "MRawRunHeader not found... aborting." << endl;
 	return kFALSE;
     }
 
+    if (run->GetRunType() != kRTMonteCarlo)
+    {
+        *fLog << warn << dbginf << "Warning - MMcPedestalNSB is for Monte Carlo files only... removing this task from list." << endl;
+        return kSKIP;
+    }
+
     const MMcFadcHeader *mcped = (MMcFadcHeader*)pList->FindObject("MMcFadcHeader");
-
     if (!mcped)
     {
-        *fLog << dbginf << "MMcFadcHeader not found... aborting." << endl;
+        *fLog << err << dbginf << "MMcFadcHeader not found... aborting." << endl;
         return kFALSE;
     }
 
     MMcRunHeader *mcrun = (MMcRunHeader*)pList->FindObject("MMcRunHeader");
+    if (!mcrun && fdnsb_pixel < 0)
+    {
+        *fLog << err << dbginf << "Using the default argument of MMcPedestalNSB::MMcPedestalNSB() ";
+        *fLog << "only allowed if MMcRunHeader is available... aborting." << endl;
+        return kFALSE;
+    }
+
     if (mcrun)
     {
-	if (fdnsb_pixel >= 0 && fdnsb_pixel != mcrun->GetNumPheFromDNSB()){
-	    *fLog<< dbginf <<endl<< "The MC file has been generated with diffuse nsb : "<<mcrun->GetNumPheFromDNSB()<<" but you set up the diffuse NSB to :"<<fdnsb_pixel<<endl;
-	fdnsb_pixel = fdnsb_pixel*50.0/15.0;
-	}
-	else
-	    fdnsb_pixel = mcrun->GetNumPheFromDNSB()*50.0/15.0;
+        if (fdnsb_pixel >= 0 && fdnsb_pixel != mcrun->GetNumPheFromDNSB())
+        {
+            *fLog << warn << dbginf << "The MC file has been generated with diffuse nsb " << mcrun->GetNumPheFromDNSB();
+            *fLog <<" but you set up the diffuse NSB to " << fdnsb_pixel << endl;
+        }
+
+        fdnsb_pixel = mcrun->GetNumPheFromDNSB();
     }
-    else
-    {
-	if (fdnsb_pixel < 0 ){
-	    *fLog << dbginf << "MMcRunHeader not found... aborting." << endl;
-	    return kFALSE;
-	}
-	else {
-	    *fLog<< dbginf <<endl<< "The MC file has been generated with diffuse nsb : "<<mcrun->GetNumPheFromDNSB()<<" but you set up the diffuse NSB to :"<<fdnsb_pixel<<endl;
-	    fdnsb_pixel = fdnsb_pixel*50.0/15.0;
-	}
-    }
+
+    fdnsb_pixel *= 50.0/15.0;
 
     MPedestalCam *pedcam = (MPedestalCam*)pList->FindCreateObj("MPedestalCam");
@@ -122,21 +119,16 @@
 
         const Float_t pedrms = mcped->GetPedestalRms(i);
+        const Float_t sigrms = pedrms/sqrt(run->GetNumSamplesHiGain()*2);
+        const Float_t ampl   = mcped->GetAmplitud();
 
-        const Float_t sigrms = pedrms/sqrt(run->GetNumSamplesHiGain()*2);
+        //
+        // check for central pixel (i<397)
+        //
 
-	if (i<397) // Central Pixels 
-	{
-	    pix.SetPedestalRms(sqrt(pedrms*pedrms+fdnsb_pixel*mcped->GetAmplitud()*mcped->GetAmplitud()), sigrms);
-	}
-	else
-	{
-	    pix.SetPedestalRms(sqrt(pedrms*pedrms+fdnsb_pixel*mcped->GetAmplitud()*mcped->GetAmplitud()*4), sigrms);
-	}
+        const Double_t value = pedrms*pedrms + fdnsb_pixel*ampl*ampl;
 
+        pix.SetPedestalRms(sqrt(i<397 ? value : value*4), sigrms);
     }
 
     return kTRUE;
 }
-
-
-
Index: trunk/MagicSoft/Mars/mbase/MAGIC.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MAGIC.h	(revision 1117)
+++ trunk/MagicSoft/Mars/mbase/MAGIC.h	(revision 1118)
@@ -17,4 +17,5 @@
 //
 const Int_t kCONTINUE = 2;
+const Int_t kSKIP     = 2;
 
 //
Index: trunk/MagicSoft/Mars/mbase/MTask.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 1117)
+++ trunk/MagicSoft/Mars/mbase/MTask.cc	(revision 1118)
@@ -138,9 +138,21 @@
     fNumExecutions = 0;
 
-    if (!PreProcess(plist))
+    switch (PreProcess(plist))
+    {
+    case kFALSE:
         return kFALSE;
 
-    fIsPreprocessed = kTRUE;
-    return kTRUE;
+    case kTRUE:
+        fIsPreprocessed = kTRUE;
+        return kTRUE;
+
+    case kSKIP:
+        return kSKIP;
+    }
+
+    *fLog << err << dbginf << "PreProcess of " << GetDescriptor();
+    *fLog << " returned an unknown value... aborting." << endl;
+
+    return kFALSE;
 }
 
Index: trunk/MagicSoft/Mars/mbase/MTaskList.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MTaskList.cc	(revision 1117)
+++ trunk/MagicSoft/Mars/mbase/MTaskList.cc	(revision 1118)
@@ -245,4 +245,17 @@
 // --------------------------------------------------------------------------
 //
+//  removes a task from the list (used in PreProcess).
+//  if kIsOwner is set the task is deleted. (see SetOwner())
+//
+void MTaskList::Remove(MTask *task)
+{
+    TObject *obj = fTasks->Remove(task);
+
+    if (TestBit(kIsOwner))
+        delete obj;
+}
+
+// --------------------------------------------------------------------------
+//
 //  do pre processing (before eventloop) of all tasks in the task-list
 //
@@ -267,6 +280,20 @@
         *fLog << all << task->GetName() << "... " << flush;
 
-        if (!task->CallPreProcess(fParList))
+        switch (task->CallPreProcess(fParList))
+        {
+        case kFALSE:
             return kFALSE;
+
+        case kTRUE:
+            continue;
+
+        case kSKIP:
+            Remove(task);
+            continue;
+        }
+
+        *fLog << err << dbginf << "PreProcess of " << task->GetDescriptor();
+        *fLog << " returned an unknown value... aborting." << endl;
+        return kFALSE;
     }
 
