Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 666)
+++ trunk/MagicSoft/Mars/Changelog	(revision 667)
@@ -2,4 +2,5 @@
  2000/03/02: Thomas Bretz
 
+   
  * manalysis/Makefile, mdatacheck/Makefile, meventdisp/Makefile,
    mgui/Makefile: 
@@ -7,5 +8,5 @@
    
  * mbase/MParList.[cc,h]: 
-   Added FindCreateObj member function
+   Added FindCreateObj member function, added a name to the constructor
  
  * mbase/MReadTree.cc: 
@@ -14,4 +15,8 @@
  * mdatacheck/MDumpEvtHeader.cc: 
    removed fPixelIter from member list, changed cout to *fLog
+   
+ * mdatacheck/MViewAdcSpectra.cc:
+   removed a HUGE memory leak. All the objects in the list (and the
+   lists itself were NEVER deleted)
    
  * mdatacheck/MFillAdcSpect.cc
@@ -20,5 +25,5 @@
    
  * mdatacheck/MShowSpect.cc
-   changed cout to *fLog
+   changed cout to *fLog, added a name to the constructor
    
  * mraw/MRawFileRead.cc:
@@ -26,5 +31,6 @@
    
  * mdatacheck/MGDisplayAdc.[h,cc]: 
-   added some new member functions to make code more clear
+   added some new member functions to make code more clear,
+   removed fHists from the destructor
    
  * mdatacheck/MHistosAdc.h:
Index: trunk/MagicSoft/Mars/mbase/MParList.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 666)
+++ trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 667)
@@ -24,20 +24,21 @@
 ClassImp(MParList)
 
-MParList::MParList()
+MParList::MParList(const char *name, const char *title)
 {
-  //
-  //  default constructor 
-  //  creates an empty list 
-  //
-
+    //
+    //  default constructor
+    //  creates an empty list
+    //
+    *fName  = name  ? name  : "MParList";
+    *fTitle = title ? title : "List of Parameter Containers";
 }
 
 MParList::MParList(MParList &ts)
 {
-  //
-  // copy constructor 
-  //
+    //
+    // copy constructor
+    //
 
-  fContainer.AddAll(&ts.fContainer);
+    fContainer.AddAll(&ts.fContainer);
 }
 
Index: trunk/MagicSoft/Mars/mbase/MParList.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MParList.h	(revision 666)
+++ trunk/MagicSoft/Mars/mbase/MParList.h	(revision 667)
@@ -29,5 +29,5 @@
 
 public:
-    MParList();
+    MParList(const char *name=NULL, const char *title=NULL);
     MParList(MParList &ts);
 
Index: trunk/MagicSoft/Mars/mdatacheck/MGDisplayAdc.cc
===================================================================
--- trunk/MagicSoft/Mars/mdatacheck/MGDisplayAdc.cc	(revision 666)
+++ trunk/MagicSoft/Mars/mdatacheck/MGDisplayAdc.cc	(revision 667)
@@ -23,5 +23,5 @@
 } ; 
 
-MGDisplayAdc::MGDisplayAdc ( MHistosAdc *Histos,
+MGDisplayAdc::MGDisplayAdc ( MHistosAdc *histos,
 			    const TGWindow *p, const TGWindow *main, 
 			    UInt_t w, UInt_t h, 
@@ -29,177 +29,164 @@
 	: TGTransientFrame(p, main, w, h, options ) 
 {
-	//   default constructor
-	// 
-	fHists = Histos ; 
+    //
+    //   default constructor
+    //
+
+    //
+    // NEVER try to delete them in the destructor!
+    //
+    fHists = histos ;
+
+    //
+    //   the top frame for the list and some buttons and the Canvas
+    //
+    fFrameTop = new TGHorizontalFrame (this, 60,20,  kFitWidth ) ;
+
+    //
+    //    left part of top frame
+    //
+    fFT1 =  new TGVerticalFrame (fFrameTop, 80,300,  kFitWidth ) ;
+
+    fHistoList = new TGListBox ( fFT1, M_LIST_HISTO ) ;
+    fHistoList->Associate( this ) ;
+    fFT1->AddFrame ( fHistoList, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 10 ) )  ;
 	
-	//   the top frame for the list and some buttons and the Canvas 
+    fHistoList->Resize(80, 405 ) ;
+
+    fFrameTop->AddFrame (fFT1, new TGLayoutHints ( kLHintsTop , 10, 10, 10, 10 ) ) ;
+
+    //
+    //    middle part of top frame
+    //
+    fFT2 =  new TGVerticalFrame (fFrameTop, 80,20,  kFitWidth ) ;
+
+    fButtonPrev = new TGTextButton ( fFT2, "Prev Histo", M_BUTTON_PREV ) ;
+    fButtonPrev->Associate (this) ;
+    fFT2->AddFrame ( fButtonPrev, new TGLayoutHints (kLHintsLeft | kLHintsTop,10, 10, 0, 10 ) )  ;
+
+
+    fVslider1 = new TGVSlider (fFT2, 250, kSlider1 | kScaleBoth, M_VSId1);
+
+    fVslider1->Associate(this);
+    fVslider1->SetRange(0, 576);
+    fFT2->AddFrame(fVslider1);
+
+    fButtonNext = new TGTextButton ( fFT2, "Next Histo", M_BUTTON_NEXT ) ;
+    fButtonNext->Associate (this) ;
+    fFT2->AddFrame ( fButtonNext, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ;
+
+    fFrameTop->AddFrame (fFT2, new TGLayoutHints ( kLHintsTop , 10, 10, 10, 10 ) ) ;
+
+    //
+    // Radio buttons, used to select the high, low anh high/low display
+    //
+    fRadio[0] = new  TGRadioButton(fFT2, "&High Gain", M_RADIO_HIGH);
+    fFT2->AddFrame ( fRadio[0], new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ;
+    fRadio[0]->Associate(this);
+    fRadio[0]->SetState(kButtonDown);
+    fHistoLock = kFALSE;
+    fHistoType=1;
+
+    fRadio[1] = new  TGRadioButton(fFT2, "&Low Gain", M_RADIO_LOW);
+    fFT2->AddFrame ( fRadio[1], new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ;
+    fRadio[1]->Associate(this);
+
+    fRadio[2] = new  TGRadioButton(fFT2, "H&igh/Low Gain", M_RADIO_LH);
+    fFT2->AddFrame ( fRadio[2], new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ;
+    fRadio[2]->Associate(this);
+
+    //
+    //    right part of top frame
+    //
+    fFT3 =  new TGVerticalFrame (fFrameTop, 60, 60,  kFitWidth ) ;
+
+    fECanv = new TRootEmbeddedCanvas("fECanv", fFT3, 400, 400 ) ;
+
+    fFT3->AddFrame( fECanv, new TGLayoutHints ( kLHintsCenterX | kLHintsCenterY | kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10 ) ) ;
+
+    //
+    //the button for reseting the histogram
+    //
+    fButtonReset = new TGTextButton ( fFT3, "Reset histo", M_BUTTON_RESET ) ;
+    fButtonReset->Associate (this) ;
+    fFT3->AddFrame ( fButtonReset, new TGLayoutHints (kLHintsCenterX | kLHintsTop,10, 10, 0, 10 ) )  ;
+	
+    fCanv = fECanv->GetCanvas() ;
+
+    fFrameTop->AddFrame (fFT3, new TGLayoutHints ( kLHintsCenterX | kLHintsCenterY | kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10 ) ) ;
+
+    AddFrame ( fFrameTop, new TGLayoutHints ( kLHintsTop | kLHintsExpandX , 10, 10, 10, 10 ) ) ;
+
+    //
+    //   the low frame for the control buttons
+    //
+    fFrameLow = new TGHorizontalFrame (this, 60,20, kFixedWidth ) ;
+
+    fButtonSave = new TGTextButton ( fFrameLow, "Save", M_BUTTON_SAVE ) ;
+    fButtonSave->Associate (this) ;
+    fFrameLow->AddFrame ( fButtonSave, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ;
+
+    fButtonPrint = new TGTextButton ( fFrameLow, "Print", M_BUTTON_PRINT ) ;
+    fButtonPrint->Associate (this) ;
+    fFrameLow->AddFrame ( fButtonPrint, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ;
+
+    fButtonPrintAll = new TGTextButton ( fFrameLow, "PrintAll", M_BUTTON_PRINTALL ) ;
+    fButtonPrintAll->Associate (this) ;
+    fFrameLow->AddFrame ( fButtonPrintAll, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ;
   
-	fFrameTop = new TGHorizontalFrame (this, 60,20,  kFitWidth ) ;
-  
-  
-	//    left part of top frame
-	fFT1 =  new TGVerticalFrame (fFrameTop, 80,300,  kFitWidth ) ; 
-  
-	fHistoList = new TGListBox ( fFT1, M_LIST_HISTO ) ; 
-	fHistoList->Associate( this ) ;
-	fFT1->AddFrame ( fHistoList, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 10 ) )  ;
+    fButtonClose = new TGTextButton ( fFrameLow, "Close", M_BUTTON_CLOSE ) ;
+    fButtonClose->Associate (this) ;
+    fFrameLow->AddFrame ( fButtonClose, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ;
+    AddFrame ( fFrameLow, new TGLayoutHints ( kLHintsBottom | kLHintsExpandX , 10, 10, 10, 10 ) ) ;
 	
-	fHistoList->Resize(80, 405 ) ; 
-	
-	
-	fFrameTop->AddFrame (fFT1, new TGLayoutHints ( kLHintsTop , 10, 10, 10, 10 ) ) ; 
-	
-	//    middle part of top frame
-	// 
-  
-	fFT2 =  new TGVerticalFrame (fFrameTop, 80,20,  kFitWidth ) ;  
-	
-	fButtonPrev = new TGTextButton ( fFT2, "Prev Histo", M_BUTTON_PREV ) ; 
-	fButtonPrev->Associate (this) ; 
-	fFT2->AddFrame ( fButtonPrev, new TGLayoutHints (kLHintsLeft | kLHintsTop,10, 10, 0, 10 ) )  ; 
-	
-  
-	fVslider1 = new TGVSlider (fFT2, 250, kSlider1 | kScaleBoth, M_VSId1);
-	
-	fVslider1->Associate(this);
-	fVslider1->SetRange(0, 576);
-	fFT2->AddFrame(fVslider1);   	
-	
-	fButtonNext = new TGTextButton ( fFT2, "Next Histo", M_BUTTON_NEXT ) ;
-	fButtonNext->Associate (this) ;
-	fFT2->AddFrame ( fButtonNext, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ;  		
-	
-	fFrameTop->AddFrame (fFT2, new TGLayoutHints ( kLHintsTop , 10, 10, 10, 10 ) ) ; 	
-	
-
-
-	// Radio buttons, used to select the high, low anh high/low display
-		
-	fRadio[0] = new  TGRadioButton(fFT2, "&High Gain", M_RADIO_HIGH);                       
-	fFT2->AddFrame ( fRadio[0], new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ; 
-	fRadio[0]->Associate(this); 
-	fRadio[0]->SetState(kButtonDown);
-	fHistoLock = kFALSE;
-	fHistoType=1;  	
-	
-        fRadio[1] = new  TGRadioButton(fFT2, "&Low Gain", M_RADIO_LOW);  
-	fFT2->AddFrame ( fRadio[1], new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ;
-	fRadio[1]->Associate(this); 
-	
-	fRadio[2] = new  TGRadioButton(fFT2, "H&igh/Low Gain", M_RADIO_LH); 
-	fFT2->AddFrame ( fRadio[2], new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 10, 5 ) )  ; 
-	fRadio[2]->Associate(this); 
-       
-	
-	
-	//    right part of top frame
-	// 
-	fFT3 =  new TGVerticalFrame (fFrameTop, 60, 60,  kFitWidth ) ;
-  
+    //
+    //
+    //
+    BuildHistoList() ;
+
+    MapSubwindows();
+
+    Layout();
+
+    SetWindowName("ADC Spectra");
+    SetIconName("ADC Spectra");
+
+    //
+    // Here the initial display is set to hitogram 0
+    //
+    fHistoList->Select(1, kTRUE);
+    DrawSelectedHi() ;
+    SetSelectedTopEntry();
+    fCanv->Modified() ;
+    fCanv->Update() ;
+    SetSelectedPos();
+
+    MapWindow();
+    SetWMSizeHints(550, 550, 1000, 1000, 1, 1);
+}  
+
+MGDisplayAdc::~MGDisplayAdc ()
+{ 
+    delete fButtonSave ;
+    delete fButtonPrint ; 
+    delete fButtonPrintAll ; 
+    delete fButtonClose ; 
     
-	
-	fECanv = new TRootEmbeddedCanvas("fECanv", fFT3, 400, 400 ) ;	 
-	
-	fFT3->AddFrame( fECanv, new TGLayoutHints ( kLHintsCenterX | kLHintsCenterY | kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10 ) ) ;
-	
-	
-	//the button for reseting the histogram
-        fButtonReset = new TGTextButton ( fFT3, "Reset histo", M_BUTTON_RESET ) ;
-        fButtonReset->Associate (this) ;
-        fFT3->AddFrame ( fButtonReset, new TGLayoutHints (kLHintsCenterX | kLHintsTop,10, 10, 0, 10 ) )  ;
-	//
-	 
-	  
-	
-	fCanv = fECanv->GetCanvas() ; 
-	
-	fFrameTop->AddFrame (fFT3, new TGLayoutHints ( kLHintsCenterX | kLHintsCenterY | kLHintsExpandX | kLHintsExpandY , 10, 10, 10, 10 ) ) ; 
-	
-	AddFrame ( fFrameTop, new TGLayoutHints ( kLHintsTop | kLHintsExpandX , 10, 10, 10, 10 ) ) ; 
- 
-	
-	//  fHists->GetHighList()->At( fHistoList->GetSelected()-1)->Draw() ;  
-	//
-	//   the low frame for the control buttons
-	//
-	fFrameLow = new TGHorizontalFrame (this, 60,20, kFixedWidth ) ;
-  
-	fButtonSave = new TGTextButton ( fFrameLow, "Save", M_BUTTON_SAVE ) ; 
-	fButtonSave->Associate (this) ; 
-	fFrameLow->AddFrame ( fButtonSave, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ;
-	
-	fButtonPrint = new TGTextButton ( fFrameLow, "Print", M_BUTTON_PRINT ) ; 
-	fButtonPrint->Associate (this) ; 
-	fFrameLow->AddFrame ( fButtonPrint, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ; 
-  
-	fButtonPrintAll = new TGTextButton ( fFrameLow, "PrintAll", M_BUTTON_PRINTALL ) ; 
-	fButtonPrintAll->Associate (this) ; 
-	fFrameLow->AddFrame ( fButtonPrintAll, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ;
-  
-  
-  
-	fButtonClose = new TGTextButton ( fFrameLow, "Close", M_BUTTON_CLOSE ) ; 
-	fButtonClose->Associate (this) ; 
-	fFrameLow->AddFrame ( fButtonClose, new TGLayoutHints (kLHintsLeft | kLHintsTop, 10, 10, 5, 5 ) )  ; 
-	AddFrame ( fFrameLow, new TGLayoutHints ( kLHintsBottom | kLHintsExpandX , 10, 10, 10, 10 ) ) ; 
-	
-	//
-	//
-	//
-	BuildHistoList() ; 
-  
-	MapSubwindows();
- 
-	Layout();
-	
-	SetWindowName("ADC Spectra");
-	SetIconName("ADC Spectra");
-
-	//Here the initial display is set to hitogram 0
-	
-	fHistoList->Select(1, kTRUE);
-	DrawSelectedHi() ;
-	SetSelectedTopEntry();
-	fCanv->Modified() ;
-        fCanv->Update() ;
-        SetSelectedPos();
-	 
-	MapWindow();
-	SetWMSizeHints(550, 550, 1000, 1000, 1, 1); 
-
-}  
-
-// ======================================================================
-// ======================================================================
-// 
-// 
-
-MGDisplayAdc::~MGDisplayAdc () 
-{ 
-
-		
-	delete fButtonSave ; 
-	delete fButtonPrint ; 
-	delete fButtonPrintAll ; 
-	delete fButtonClose ; 
-	
-	delete fButtonPrev; 
-	delete fButtonNext ; 
-	delete fButtonReset ;
-	
-	delete fVslider1; 
-	delete fECanv ;
-	
-
-	delete fHists; 
-	delete fHistoList ;
-	delete fRadio[2];
-	delete fRadio[1];
-	delete fRadio[0]; 
-	delete fFT1 ; 
-	delete fFT2 ; 
-	delete fFT3 ; 
-	delete fFrameLow ; 
-	delete fFrameTop ; 
+    delete fButtonPrev; 
+    delete fButtonNext ; 
+    delete fButtonReset ;
+    
+    delete fVslider1; 
+    delete fECanv ;
+    
+    delete fHistoList ;
+    delete fRadio[2];
+    delete fRadio[1];
+    delete fRadio[0]; 
+    delete fFT1 ; 
+    delete fFT2 ; 
+    delete fFT3 ; 
+    delete fFrameLow ; 
+    delete fFrameTop ; 
 }  
 
@@ -297,5 +284,7 @@
                 //
             case M_BUTTON_PREV:
-                if (GetSelected()-1 != 0)
+            case M_BUTTON_NEXT:
+                if ((parm1==M_BUTTON_PREV && GetSelected()-1 > 0) ||
+                    (parm2==M_BUTTON_NEXT && GetSelected()-1 < 576))
                 {
                     if (fHistoLock == kTRUE )
@@ -312,36 +301,4 @@
                         SelectSelected();
                         DrawSelectedHi() ;
-                    }
-
-                    SetSelectedTopEntry();
-                    fCanv->Modified() ;
-                    fCanv->Update() ;
-                    SetSelectedPos();
-                }
-                if (fRadio[1]->GetState() != kButtonDown)
-                    break;
-
-                fRadio[0]->SetState(kButtonDown);
-                fRadio[1]->SetState(kButtonUp);
-
-                break;
-
-                //The same as above, but for next histogram
-            case M_BUTTON_NEXT:
-                if (GetSelected()-1 != 576)
-                {
-                    if (fHistoLock == kTRUE )
-                    {
-                        fCanvas->cd(1);
-                        SelectSelected();
-                        DrawSelectedHi() ;
-                        fCanvas->cd(2);
-                        DrawSelectedLo() ;
-                    }
-                    else
-                    {
-                        fCanv->cd();
-                        SelectSelected();
-                        DrawSelectedHi() ;
 
                     }
@@ -357,5 +314,4 @@
                 fRadio[0]->SetState(kButtonDown);
                 fRadio[1]->SetState(kButtonUp);
-
                 break;
 
@@ -370,11 +326,23 @@
             {
             case M_RADIO_HIGH:
-                fRadio[1]->SetState(kButtonUp);
-                fRadio[2]->SetState(kButtonUp);
+            case M_RADIO_LOW:
+                if (parm1 == M_RADIO_HIGH)
+                {
+                    fRadio[1]->SetState(kButtonUp);
+                    fRadio[2]->SetState(kButtonUp);
+                    fHistoType=1;
+                }
+                else
+                {
+                    fRadio[0]->SetState(kButtonUp);
+                    fRadio[2]->SetState(kButtonUp);
+                    fHistoType = 2;
+                }
                 fHistoLock = kFALSE;
-                fHistoType=1;
+
                 fCanv->cd();
                 SelectSelected();
-                DrawSelectedHi() ;
+                parm1 == M_RADIO_HIGH ? DrawSelectedHi() : DrawSelectedLo();
+
                 SetSelectedTopEntry();
                 fCanv->Modified() ;
@@ -383,20 +351,4 @@
                 break;
 				
-            case M_RADIO_LOW:
-                fRadio[0]->SetState(kButtonUp);
-                fRadio[2]->SetState(kButtonUp);
-                fCanv->cd();
-                fHistoLock = kFALSE;
-                fHistoType = 2;
-
-                SelectSelected();
-                DrawSelectedLo() ;
-                SetSelectedTopEntry();
-
-                fCanv->Modified() ;
-                fCanv->Update() ;
-                SetSelectedPos();
-                break;
-
             case M_RADIO_LH:
                 fRadio[0]->SetState(kButtonUp);
Index: trunk/MagicSoft/Mars/mdatacheck/MHistosAdc.cc
===================================================================
--- trunk/MagicSoft/Mars/mdatacheck/MHistosAdc.cc	(revision 666)
+++ trunk/MagicSoft/Mars/mdatacheck/MHistosAdc.cc	(revision 667)
@@ -52,5 +52,4 @@
 
         fHistLo->Add( new TH1F ( tmp1, tmp2, 256, 0., 255. ) ) ;
-
     }
 }
Index: trunk/MagicSoft/Mars/mdatacheck/MShowSpect.cc
===================================================================
--- trunk/MagicSoft/Mars/mdatacheck/MShowSpect.cc	(revision 666)
+++ trunk/MagicSoft/Mars/mdatacheck/MShowSpect.cc	(revision 667)
@@ -16,9 +16,14 @@
 ClassImp(MShowSpect)
 
-MShowSpect::MShowSpect(char *nameHist ) 
-{ 
-  // default constructor 
+MShowSpect::MShowSpect(const char *nameHist, const char *name, const char *title)
+{
+    //
+    // default constructor
+    //
 
-  sprintf (fHistName, "%s", nameHist ) ; 
+    *fName  = name ? name : ClassName();
+    *fTitle = title ? title : "Task to ??? (Harald?)";
+
+    strcpy( fHistName, nameHist ) ;
 } 
 
@@ -53,11 +58,2 @@
 } 
 
-
-
-
-
-
-
-
-
-
Index: trunk/MagicSoft/Mars/mdatacheck/MShowSpect.h
===================================================================
--- trunk/MagicSoft/Mars/mdatacheck/MShowSpect.h	(revision 666)
+++ trunk/MagicSoft/Mars/mdatacheck/MShowSpect.h	(revision 667)
@@ -17,16 +17,17 @@
 {
 private:
-  char       fHistName[256] ; 
+    char       fHistName[256] ;
 
-  MHistosAdc *fHists;		// Pointer to Container with the histograms
+    MHistosAdc *fHists;		// Pointer to Container with the histograms
   
  public:
   
-  MShowSpect(char* histName );
+     MShowSpect(const char* histName,
+                const char *name=NULL, const char *title=NULL);
   
-  Bool_t PreProcess(MParList * pList); 
-  Bool_t PostProcess();
-  
-  ClassDef(MShowSpect, 1)	// Fill the raw ADC in the histograms
+     Bool_t PreProcess(MParList * pList);
+     Bool_t PostProcess();
+
+     ClassDef(MShowSpect, 1)	// Fill the raw ADC in the histograms
 };
 
Index: trunk/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.cc
===================================================================
--- trunk/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.cc	(revision 666)
+++ trunk/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.cc	(revision 667)
@@ -26,5 +26,6 @@
 MViewAdcSpectra::~MViewAdcSpectra() 
 {
-  // default destructor  
+    // default destructor
+    delete fHistosAdc;
 } 
 
@@ -44,46 +45,49 @@
   // connect them in the required way. 
  
-  MParList *plist  = new MParList;
-  MTaskList *tasks = new MTaskList;
-  plist->AddToList(tasks);
+  //
+  //   create the data containers for the raw data
+  //
+  MParList plist;
+  
+  MRawRunHeader runheader;
+  plist.AddToList(&runheader);
 
-  //   create the data containers for the raw data 
+  MRawEvtHeader evtheader;
+  plist.AddToList(&evtheader);
   
-  MRawRunHeader *runheader = new MRawRunHeader;
-  plist->AddToList(runheader);
+  MRawEvtData evtdata;
+  plist.AddToList(&evtdata);
+  
+  MRawCrateArray cratearray;
+  plist.AddToList(&cratearray);
+  
+  MTime evttime("MTime");
+  plist.AddToList(&evttime);
 
-  MRawEvtHeader *evtheader = new MRawEvtHeader;
-  plist->AddToList(evtheader);
-  
-  MRawEvtData *evtdata = new MRawEvtData;
-  plist->AddToList(evtdata);
-  
-  MRawCrateArray *cratearray = new MRawCrateArray;
-  plist->AddToList(cratearray);
-  
-  MTime *evttime = new MTime("MTime");
-  plist->AddToList(evttime);
+  fHistosAdc= new MHistosAdc;
+  plist.AddToList( fHistosAdc ) ;
 
-  MHistosAdc *histosAdc = new MHistosAdc() ; 
-  plist->AddToList( histosAdc ) ; 
-  
+  //
   //    set up the tasks for this job
+  //
+  MTaskList tasks;
+  plist.AddToList(&tasks);
 
-  MReadTree *readin  =  new MReadTree ( inputfile, treeName ) ; 
-  tasks->AddToList( readin ) ; 
+  MReadTree readin ( inputfile, treeName ) ;
+  tasks.AddToList( &readin ) ;
 
   //  MDumpEvtHeader *dumpheader = new MDumpEvtHeader() ; 
   //  tasks->AddToList( dumpheader ) ; 
  
-  MFillAdcSpect *fillspect = new MFillAdcSpect() ; 
-  tasks->AddToList( fillspect ) ; 
+  MFillAdcSpect fillspect;
+  tasks.AddToList( &fillspect ) ;
 
-  MShowSpect *showspect = new MShowSpect( "MHistosAdc" ) ; 
-  tasks->AddToList( showspect ) ;
+  MShowSpect showspect( "MHistosAdc" ) ;
+  tasks.AddToList( &showspect ) ;
 
   //    set up the loop for the processing 
   
   MEvtLoop magic;
-  magic.SetParList(plist);
+  magic.SetParList(&plist);
 
   //    start the loop running 
@@ -91,8 +95,5 @@
   magic.Eventloop() ; 
   
-
-  cout << " End of this job " << endl ; 
-
-  return kTRUE ; 
+  return kTRUE ;
 
 } 
Index: trunk/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.h
===================================================================
--- trunk/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.h	(revision 666)
+++ trunk/MagicSoft/Mars/mdatacheck/MViewAdcSpectra.h	(revision 667)
@@ -6,15 +6,19 @@
 #endif
 
+class MHistosAdc;
+
 class MViewAdcSpectra {
 
  private:
-  
+
+     MHistosAdc *fHistosAdc;
+
  public:
   
-  MViewAdcSpectra() ; 
+     MViewAdcSpectra() ;
   
-  ~MViewAdcSpectra() ; 
+     ~MViewAdcSpectra() ;
   
-  Bool_t AdcSpectra( Char_t *inputFile , Char_t *treeName ) ; 
+     Bool_t AdcSpectra( Char_t *inputFile , Char_t *treeName ) ;
 
   //  Bool_t CrAdcSpectra ( Char_t *inputFile ) ; 
