Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 1210)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 1211)
@@ -25,4 +25,18 @@
    * mhist/MHHillas.[h,cc], mhist/MHHillasSrc.[h,cc]:
      - added SetupFill and usage of MBinning objects
+
+   * manalysis/MEnergyEst.[h,cc], manalysis/MEnergyEstimate.[h,cc],
+     mhist/MHTimeDiffTime.[h,cc], mhist/MHEnergyTheta.[h,cc],
+     mhist/MHEnergyTime.[h,cc], mhist/MHAlphaEnergyTheta.[h,cc],
+     mhist/MHAlphaEnergyTime.[h,cc], mhist/MHTimeDiffTheta.[h,cc],
+     mmontecarlo/MMcTimeGenerate.[h,cc]:
+     - added
+
+   * manalysis/Makefile:
+     - added MEnergyEst.cc
+     - added MEnergyEstimate.cc
+   
+   * mbase/MFilter.[h,cc], mfilter/MF*.[h,cc]:
+     - added name and title to constructor
 
 
Index: /trunk/MagicSoft/Mars/macros/flux.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/flux.C	(revision 1211)
+++ /trunk/MagicSoft/Mars/macros/flux.C	(revision 1211)
@@ -0,0 +1,273 @@
+/* ======================================================================== *\
+!
+! *
+! * This file is part of MARS, the MAGIC Analysis and Reconstruction
+! * Software. It is distributed to you in the hope that it can be a useful
+! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
+! * It is distributed WITHOUT ANY WARRANTY.
+! *
+! * Permission to use, copy, modify and distribute this software and its
+! * documentation for any purpose is hereby granted without fee,
+! * provided that the above copyright notice appear in all copies and
+! * that both that copyright notice and this permission notice appear
+! * in supporting documentation. It is provided "as is" without express
+! * or implied warranty.
+! *
+!
+!
+!   Author(s): Thomas Bretz  1/2002 <mailto:tbretz@uni-sw.gwdg.de>
+!   Author(s): Wolfgang Wittek 1/2002 <mailto:wittek@mppmu.mpg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2002
+!
+!
+\* ======================================================================== */
+
+void flux()
+{ 
+    //
+    // first we have to create our empty lists
+    //
+    MParList  parlist;
+    MTaskList tasklist;
+
+    parlist.AddToList(&tasklist);
+
+    //
+    // Define the two source positions
+    //
+    MSrcPosCam source("Source");
+    MSrcPosCam antisrc("AntiSource");
+    source.SetXY(0, 0);
+    antisrc.SetXY(+240, 0);
+    parlist.AddToList(&source);
+    parlist.AddToList(&antisrc);
+
+    //
+    // Setup binning for the histograms
+    //
+    MBinning binsalpha("BinningAlpha");
+    binsalpha.SetEdges(45, -90, 90);
+
+    MBinning binse("BinningE");
+    binse.SetEdgesLog(10, 10, 1e3);
+
+    MBinning binstheta("BinningTheta");
+    binstheta.SetEdges(5, 2.5, 27.5);
+
+    MBinning binstime("BinningTime");
+    binstime.SetEdges(5, 0, 50);
+
+    MBinning binsdifftime("BinningTimeDiff");
+    binsdifftime.SetEdges(50, 0, 0.1);
+
+    parlist.AddToList(&binsalpha);
+    parlist.AddToList(&binse);
+    parlist.AddToList(&binstheta);
+    parlist.AddToList(&binstime);
+    parlist.AddToList(&binsdifftime);
+
+    //
+    // Setup our tasks
+    //
+    MReadMarsFile reader("Events", "~/data/Gamma*.root");
+
+    MGeomCamMagic geomcam;
+    parlist.AddToList(&geomcam);
+
+    MMcTimeGenerate   rand;
+    MMcPedestalCopy   pcopy;
+    MMcPedestalNSBAdd pnsb;
+    MCerPhotCalc      ncalc;
+    MImgCleanStd      clean;
+    MBlindPixelCalc   blind;
+    MHillasCalc       hcalc;
+    MHillasSrcCalc    hsrc1("Source",     "HillasSrc");
+    MHillasSrcCalc    hsrc2("AntiSource", "HillasAntiSrc");
+    MEnergyEstimate   estim;
+
+    MFillH hfill1h("MHHillas",  "MHillas");
+    MFillH hfill1m("MHStarMap", "MHillas");
+    MFillH hfill2s("HSource     [MHHillasSrc]", "HillasSrc");
+    MFillH hfill2a("HAntiSource [MHHillasSrc]", "HillasAntiSrc");
+ 
+    MMcCollectionAreaCalc acalc;
+
+    const Float_t alpha0 = 15; // [deg]
+
+    MFAlpha fsrc ("HillasSrc",     '>', alpha0);
+    MFAlpha fasrc("HillasAntiSrc", '>', alpha0);
+
+    MFillH fillsp      ("FluxSrcTime   [MHAlphaEnergyTime]",  "HillasSrc");
+    MFillH fillasp     ("FluxASrcTime  [MHAlphaEnergyTime]",  "HillasAntiSrc");
+    MFillH fillsptheta ("FluxSrcTheta  [MHAlphaEnergyTheta]", "HillasSrc");
+    MFillH fillasptheta("FluxASrcTheta [MHAlphaEnergyTheta]", "HillasAntiSrc");
+
+    MFTriggerLvl1 lvl1;
+    MFillH fethetaall("AllTheta [MHEnergyTheta]", "MMcEvt");
+    MFillH fethetasel("SelTheta [MHEnergyTheta]", "MMcEvt");
+    MFillH fetimeall ("AllTime  [MHEnergyTime]",  "MMcEvt");
+    MFillH fetimesel ("SelTime  [MHEnergyTime]",  "MMcEvt");
+
+    fetimesel.SetFilter(&lvl1);
+    fethetasel.SetFilter(&lvl1);
+
+    fillsp.SetFilter(&fasrc);
+    fillasp.SetFilter(&fsrc);
+    fillsptheta.SetFilter(&fsrc);
+    fillasptheta.SetFilter(&fasrc);
+
+    MFillH fillontime ("EffOnTime  [MHTimeDiffTime]",  "MMcEvt");
+    MFillH fillontheta("EffOnTheta [MHTimeDiffTheta]", "MMcEvt");
+
+    //
+    // Setup Task list
+    //
+    tasklist.AddToList(&reader);
+    tasklist.AddToList(&rand);
+    tasklist.AddToList(&fillontime);
+    tasklist.AddToList(&fillontheta);
+    tasklist.AddToList(&acalc);
+    tasklist.AddToList(&pcopy);
+    tasklist.AddToList(&pnsb);
+    tasklist.AddToList(&ncalc);
+    tasklist.AddToList(&clean);
+    tasklist.AddToList(&blind);
+    tasklist.AddToList(&hcalc);
+    tasklist.AddToList(&hsrc1);
+    tasklist.AddToList(&hsrc2);
+    tasklist.AddToList(&estim);
+    tasklist.AddToList(&hfill1h);
+    tasklist.AddToList(&hfill1m);
+    tasklist.AddToList(&hfill2s);
+    tasklist.AddToList(&hfill2a);
+    tasklist.AddToList(&fsrc);
+    tasklist.AddToList(&fasrc);
+    tasklist.AddToList(&fillsp);
+    tasklist.AddToList(&fillasptheta);
+    tasklist.AddToList(&fillasp);
+    tasklist.AddToList(&fillsptheta);
+    tasklist.AddToList(&lvl1);
+    tasklist.AddToList(&fethetaall);
+    tasklist.AddToList(&fethetasel);
+    tasklist.AddToList(&fetimeall);
+    tasklist.AddToList(&fetimesel);
+ 
+    //
+    // set up the loop for the processing
+    //
+    MEvtLoop magic;
+    magic.SetParList(&parlist);
+
+    //
+    // Start to loop over all events
+    //
+    if (!magic.Eventloop())
+        return;
+
+    tasklist.PrintStatistics();
+
+    return;
+
+    parlist.FindObject("MHMcCollectionArea")->DrawClone();
+    parlist.FindObject("MHStarMap")->DrawClone();
+
+    // ------------ Eff On Time -----------------
+
+    MHEnergyTime  &alltime  = *(MHEnergyTime*)parlist.FindObject("AllTime");
+    MHEnergyTheta &alltheta = *(MHEnergyTheta*)parlist.FindObject("AllTheta");
+    MHEnergyTime  &seltime  = *(MHEnergyTime*)parlist.FindObject("SelTime");
+    MHEnergyTheta &seltheta = *(MHEnergyTheta*)parlist.FindObject("SelTheta");
+
+    MHEnergyTime collareatime;
+    MHEnergyTheta collareatheta;
+    collareatime.Divide(&seltime, &alltime);
+    collareatheta.Divide(&seltheta, &alltheta);
+
+    MHTimeDiffTime  &effontime  =  *(MHTimeDiffTime*)parlist.FindObject("EffOnTime");
+    MHTimeDiffTheta &effontheta = *(MHTimeDiffTheta*)parlist.FindObject("EffOnTheta");
+
+    effontime.DrawClone();
+    effontheta.DrawClone();
+
+    MHEffOnTimeTime  ontime;
+    MHEffOnTimeTheta ontheta;
+    ontime.SetupFill(&parlist);
+    ontheta.SetupFill(&parlist);
+
+    ontime.Calc(effontime.GetHist());
+    ontheta.Calc(effontheta.GetHist());
+
+    ontime.DrawClone();
+    ontheta.DrawClone();
+
+    parlist.FindObject("HSource")->DrawClone();;
+    parlist.FindObject("HAntiSource")->DrawClone();
+    parlist.FindObject("MHHillas")->DrawClone();
+
+    MHAlphaEnergyTime  &fluxsp       = *(MHAlphaEnergyTime)parlist.FindObject("HillasSrc");
+    MHAlphaEnergyTime  &fluxasp      = *(MHAlphaEnergyTime)parlist.FindObject("HillasAntiSrc");
+    MHAlphaEnergyTheta &fluxsptheta  = *(MHAlphaEnergyTime)parlist.FindObject("HillasSrc");
+    MHAlphaEnergyTheta &fluxasptheta = *(MHAlphaEnergyTime)parlist.FindObject("HillasAntiSrc");
+
+    fluxsp.DrawClone();
+    fluxasp.DrawClone();
+    fluxsptheta.DrawClone();
+    fluxasptheta.DrawClone();
+
+    MHAlphaEnergyTheta resulttime;
+    MHAlphaEnergyTheta resulttheta;
+    resulttime.Substract(&fluxsp, &fluxasp);
+    resulttheta.Substract(&fluxsptheta, &fluxasptheta);
+
+    resulttime.DrawClone();
+    resulttheta.DrawClone();
+
+    TH2D &projecttime  = *resulttime.GetAlphaProjection(-10, 10);
+    TH2D &projecttheta = *resulttheta.GetAlphaProjection(-10, 10);
+
+    projecttime.SetTitle("Number of Gammas vs. EnergyEst and Time (Alpha integrated between -10, 10deg)");
+    projecttheta.SetTitle("Number of Gammas vs. EnergyEst and Theta (Alpha integrated between -10, 10deg)");
+
+    c = new TCanvas("To be unfolded");
+    c->Divide(2,2);
+    c->cd(1);
+    projecttime.DrawCopy();
+    c->cd(2);
+    projecttheta.DrawCopy();
+
+    for (int i=1; i<=binstime.GetNumBins(); i++)
+    {
+        if (ontime.GetHist()->GetBinContent(i)==0)
+            continue;
+
+	TH1D &hist = *projecttime.ProjectionX("Number of Gammas vs. EnergyEst for a fixed time", i, i);
+
+        /* UNFOLDING */
+
+	//hist->Divide(collareatime);
+        hist.Scale(1./ontime.GetHist()->GetBinContent(i));
+
+        for (int j=1; j<=binse.GetNumBins(); j++)
+	  hist.SetBinContent(j, hist.GetBinContent(j)/hist.GetBinWidth(j));
+
+        hist.SetName("Flux");
+        hist.SetTitle("Flux[Gammas/s/m^2/GeV] vs. EnergyTrue for a fixed Time");
+
+        char n[100];
+        sprintf(n, "Canv%d", j);
+        c= new TCanvas(n, "Title");
+        hist.DrawCopy();
+    }
+
+    delete &projecttime;
+    delete &projecttheta;
+
+    return;
+
+    // ------------------------------------------
+
+    MHMcCollectionArea carea;
+    TH1D *collareatime  = carea.GetHist();  // FIXME!
+    TH1D *collareatheta = carea.GetHist();  // FIXME!
+}
Index: /trunk/MagicSoft/Mars/manalysis/MEnergyEst.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MEnergyEst.cc	(revision 1211)
+++ /trunk/MagicSoft/Mars/manalysis/MEnergyEst.cc	(revision 1211)
@@ -0,0 +1,48 @@
+/* ======================================================================== *\
+!
+! *
+! * This file is part of MARS, the MAGIC Analysis and Reconstruction
+! * Software. It is distributed to you in the hope that it can be a useful
+! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
+! * It is distributed WITHOUT ANY WARRANTY.
+! *
+! * Permission to use, copy, modify and distribute this software and its
+! * documentation for any purpose is hereby granted without fee,
+! * provided that the above copyright notice appear in all copies and
+! * that both that copyright notice and this permission notice appear
+! * in supporting documentation. It is provided "as is" without express
+! * or implied warranty.
+! *
+!
+!
+!   Author(s): Thomas Bretz  1/2002 <mailto:tbretz@uni-sw.gwdg.de>
+!   Author(s): Wolfgang Wittek 1/2002 <mailto:wittek@mppmu.mpg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2002
+!
+!
+\* ======================================================================== */
+
+/////////////////////////////////////////////////////////////////////////////
+//                                                                         //
+// MEnergyEst                                                              //
+//                                                                         //
+// Storage Container for the estimated energy                              //
+//                                                                         //
+//                                                                         //
+/////////////////////////////////////////////////////////////////////////////
+#include "MEnergyEst.h"
+
+ClassImp(MEnergyEst);
+
+// --------------------------------------------------------------------------
+//
+// Default constructor.
+//
+MEnergyEst::MEnergyEst(const char *name, const char *title) : fEnergy(0)
+{
+    fName  = name  ? name  : "MEnergyEst";
+    fTitle = title ? title : "Storage container for the estimated energy [GeV]";
+}
+
+
Index: /trunk/MagicSoft/Mars/manalysis/MEnergyEst.h
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MEnergyEst.h	(revision 1211)
+++ /trunk/MagicSoft/Mars/manalysis/MEnergyEst.h	(revision 1211)
@@ -0,0 +1,23 @@
+#ifndef MARS_MEnergyEst
+#define MARS_MEnergyEst
+
+#ifndef MARS_MParContainer
+#include "MParContainer.h"
+#endif
+
+class MEnergyEst : public MParContainer
+{
+private:
+    Double_t fEnergy; // [GeV] Estimated Energy
+
+public:
+    MEnergyEst(const char *name=NULL, const char *title=NULL);
+
+    void SetEnergy(Double_t e) { fEnergy = e; }
+    Double_t GetEnergy() const { return fEnergy; }
+
+    ClassDef(MEnergyEst, 1) // Storage Container for the estimated Energy
+};
+
+#endif
+
Index: /trunk/MagicSoft/Mars/manalysis/MEnergyEstimate.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MEnergyEstimate.cc	(revision 1211)
+++ /trunk/MagicSoft/Mars/manalysis/MEnergyEstimate.cc	(revision 1211)
@@ -0,0 +1,87 @@
+/* ======================================================================== *\
+!
+! *
+! * This file is part of MARS, the MAGIC Analysis and Reconstruction
+! * Software. It is distributed to you in the hope that it can be a useful
+! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
+! * It is distributed WITHOUT ANY WARRANTY.
+! *
+! * Permission to use, copy, modify and distribute this software and its
+! * documentation for any purpose is hereby granted without fee,
+! * provided that the above copyright notice appear in all copies and
+! * that both that copyright notice and this permission notice appear
+! * in supporting documentation. It is provided "as is" without express
+! * or implied warranty.
+! *
+!
+!
+!   Author(s): Thomas Bretz  1/2002 <mailto:tbretz@uni-sw.gwdg.de>
+!   Author(s): Wolfgang Wittek 1/2002 <mailto:wittek@mppmu.mpg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2002
+!
+!
+\* ======================================================================== */
+
+/////////////////////////////////////////////////////////////////////////////
+//                                                                         //
+// MEnergyEstimate                                                         //
+//                                                                         //
+// Task to estimate the energy                                             //
+//                                                                         //
+//                                                                         //
+/////////////////////////////////////////////////////////////////////////////
+#include "MEnergyEstimate.h"
+
+#include "MParList.h"
+
+#include "MMcEvt.hxx"
+#include "MHillas.h"
+#include "MEnergyEst.h"
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+ClassImp(MEnergyEstimate);
+
+// --------------------------------------------------------------------------
+//
+// Default constructor.
+//
+MEnergyEstimate::MEnergyEstimate(const char *name, const char *title)
+{
+    fName  = name  ? name  : "MEnergyEstimate";
+    fTitle = title ? title : "Task to estimate the energy";
+
+    AddToBranchList("MMcEvt.fEnergy");
+}
+
+Bool_t MEnergyEstimate::PreProcess(MParList *plist)
+{
+   fHillas = (MHillas*)plist->FindObject("MHillas");
+   if (!fHillas)
+   {
+       *fLog << err << dbginf << "MHillas not found... aborting." << endl;
+       return kFALSE;
+   }
+
+   fMcEvt = (MMcEvt*)plist->FindObject("MMcEvt");
+   if (!fMcEvt)
+   {
+       *fLog << err << dbginf << "MMcEvt not found... aborting." << endl;
+       return kFALSE;
+   }
+
+   fEnergy = (MEnergyEst*)plist->FindCreateObj("MEnergyEst");
+   if (!fEnergy)
+      return kFALSE;
+
+   return kTRUE;    
+}
+
+Bool_t MEnergyEstimate::Process()
+{
+  //fEnergy->SetEnergy(fHillas->GetSize());
+  fEnergy->SetEnergy(fMcEvt->GetEnergy());
+  return kTRUE;
+}
Index: /trunk/MagicSoft/Mars/manalysis/MEnergyEstimate.h
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MEnergyEstimate.h	(revision 1211)
+++ /trunk/MagicSoft/Mars/manalysis/MEnergyEstimate.h	(revision 1211)
@@ -0,0 +1,29 @@
+#ifndef MARS_MEnergyEstimate
+#define MARS_MEnergyEstimate
+
+#ifndef MARS_MTask
+#include "MTask.h"
+#endif
+
+class MMcEvt;
+class MHillas;
+class MEnergyEst;
+
+class MEnergyEstimate : public MTask
+{
+private:
+    MMcEvt     *fMcEvt;
+    MHillas    *fHillas;
+    MEnergyEst *fEnergy;
+
+public:
+    MEnergyEstimate(const char *name=NULL, const char *title=NULL);
+
+    Bool_t PreProcess(MParList *plist);
+    Bool_t Process();
+
+    ClassDef(MEnergyEstimate, 0) // Task to estimate the energy
+};
+
+#endif
+
Index: /trunk/MagicSoft/Mars/manalysis/MHillas.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MHillas.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/manalysis/MHillas.cc	(revision 1211)
@@ -20,5 +20,5 @@
 !   Author(s): Rudolf Bock     10/2001 <mailto:Rudolf.Bock@cern.ch>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/manalysis/MHillasCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MHillasCalc.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/manalysis/MHillasCalc.cc	(revision 1211)
@@ -19,5 +19,5 @@
 !   Author(s): Harald Kornmayer 1/2001 (harald@mppmu.mpg.de)
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/manalysis/MHillasExt.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MHillasExt.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/manalysis/MHillasExt.cc	(revision 1211)
@@ -19,5 +19,5 @@
 !   Author(s): Rudolf Bock     10/2001 <mailto:Rudolf.Bock@cern.ch>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/manalysis/MHillasSrc.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MHillasSrc.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/manalysis/MHillasSrc.cc	(revision 1211)
@@ -20,5 +20,5 @@
 !   Author(s): Rudolf Bock     10/2001 <mailto:Rudolf.Bock@cern.ch>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.cc	(revision 1211)
@@ -19,5 +19,5 @@
 !   Author(s): Rudolf Bock     10/2001 <mailto:Rudolf.Bock@cern.ch>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc	(revision 1211)
@@ -19,5 +19,5 @@
 !   Author(s): Harald Kornmayer 1/2001 (harald@mppmu.mpg.de)
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/manalysis/MSrcPosCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MSrcPosCam.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/manalysis/MSrcPosCam.cc	(revision 1211)
@@ -19,5 +19,5 @@
 !   Author(s): Rudolf Bock     10/2001 <mailto:Rudolf.Bock@cern.ch>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/manalysis/Makefile
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/Makefile	(revision 1210)
+++ /trunk/MagicSoft/Mars/manalysis/Makefile	(revision 1211)
@@ -34,13 +34,15 @@
            MMcPedestalNSBAdd.cc \
            MImgCleanStd.cc \
+           MEnergyEst.cc \
+           MEnergyEstimate.cc \
            MSrcPosCam.cc \
            MHillas.cc \
+           MHillasSrc.cc \
            MHillasExt.cc \
            MHillasCalc.cc \
-           MHillasSrc.cc \
            MHillasSrcCalc.cc \
+	   MCerPhotPix.cc \
            MCerPhotCalc.cc \
 	   MCerPhotEvt.cc \
-	   MCerPhotPix.cc \
 	   MPedCalcPedRun.cc \
            MBlindPixels.cc \
Index: /trunk/MagicSoft/Mars/mbase/MFilter.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MFilter.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mbase/MFilter.cc	(revision 1211)
@@ -72,4 +72,10 @@
 ClassImp(MFilter);
 
+MFilter::MFilter(const char *name, const char *title)
+{
+    fName  = name  ? name  : "MFilter";
+    fTitle = title ? title : "Base Class for a filter";
+}
+
 // --------------------------------------------------------------------------
 //
Index: /trunk/MagicSoft/Mars/mbase/MFilter.h
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MFilter.h	(revision 1210)
+++ /trunk/MagicSoft/Mars/mbase/MFilter.h	(revision 1211)
@@ -11,8 +11,5 @@
 {
 public:
-    MFilter() {}
-    ~MFilter()
-    {
-    }
+    MFilter(const char *name=NULL, const char *title=NULL);
 
     virtual Bool_t IsExpressionTrue() const = 0;
Index: /trunk/MagicSoft/Mars/mbase/MParContainer.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mbase/MParContainer.cc	(revision 1211)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz  12/2000 <mailto:tbretz@uni-sw.gwdg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/mbase/MParList.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mbase/MParList.cc	(revision 1211)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz  12/2000 <mailto:tbretz@uni-sw.gwdg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/mbase/MReadMarsFile.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MReadMarsFile.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mbase/MReadMarsFile.cc	(revision 1211)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz  12/2000 <mailto:tbretz@uni-sw.gwdg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/mbase/MReadTree.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MReadTree.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mbase/MReadTree.cc	(revision 1211)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz  12/2000 <mailto:tbretz@uni-sw.gwdg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
@@ -577,6 +577,8 @@
     // will be fixed in 3.03
     //
+#if ROOT_VERSION_CODE < ROOT_VERSION(3,03,01)
     if (fNumEntry >= fNumEntries)
         return kFALSE;
+#endif
 
 #if ROOT_VERSION_CODE < ROOT_VERSION(3,02,06)
Index: /trunk/MagicSoft/Mars/mfilter/MFAlpha.cc
===================================================================
--- /trunk/MagicSoft/Mars/mfilter/MFAlpha.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mfilter/MFAlpha.cc	(revision 1211)
@@ -44,21 +44,27 @@
 // --------------------------------------------------------------------------
 //
-MFAlpha::MFAlpha(const char *cname, const char type, const Float_t val) : fHillas(NULL)
+MFAlpha::MFAlpha(const char *cname, const char type, const Float_t val,
+                 const char *name, const char *title) : fHillas(NULL)
 {
     fContName = cname;
-    Init(type, val);
+    Init(type, val, name, title);
 }
 
 // --------------------------------------------------------------------------
 //
-MFAlpha::MFAlpha(const MHillasSrc *hillas, const char type, const Float_t val) : fHillas(hillas)
+MFAlpha::MFAlpha(const MHillasSrc *hillas, const char type, const Float_t val,
+                 const char *name, const char *title) : fHillas(hillas)
 {
-    Init(type, val);
+    Init(type, val, name, title);
 }
 
 // --------------------------------------------------------------------------
 //
-void MFAlpha::Init(const char type, const Int_t val)
+void MFAlpha::Init(const char type, const Int_t val,
+                   const char *name, const char *title)
 {
+    fName  = name  ? name  : "MFAlpha";
+    fTitle = title ? title : "Filter using the alpha angle";
+
     fFilterType = (type=='<' ? kELowerThan : kEGreaterThan);
 
Index: /trunk/MagicSoft/Mars/mfilter/MFAlpha.h
===================================================================
--- /trunk/MagicSoft/Mars/mfilter/MFAlpha.h	(revision 1210)
+++ /trunk/MagicSoft/Mars/mfilter/MFAlpha.h	(revision 1211)
@@ -27,9 +27,12 @@
     Float_t fValue; // [deg]
 
-    void Init(const char type, const Int_t val);
+    void Init(const char type, const Int_t val,
+              const char *name, const char *title);
 
 public:
-    MFAlpha(const char       *cname="MHillas", const char type='>', const Float_t deg=15);
-    MFAlpha(const MHillasSrc *hillas,          const char type='>', const Float_t deg=15);
+    MFAlpha(const char       *cname="MHillas", const char type='>', const Float_t deg=15,
+            const char *name=NULL, const char *title=NULL);
+    MFAlpha(const MHillasSrc *hillas,          const char type='>', const Float_t deg=15,
+            const char *name=NULL, const char *title=NULL);
 
     Bool_t IsExpressionTrue() const;
Index: /trunk/MagicSoft/Mars/mfilter/MFTriggerLvl1.cc
===================================================================
--- /trunk/MagicSoft/Mars/mfilter/MFTriggerLvl1.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mfilter/MFTriggerLvl1.cc	(revision 1211)
@@ -42,21 +42,27 @@
 // --------------------------------------------------------------------------
 //
-MFTriggerLvl1::MFTriggerLvl1(const char *cname, const char type, const Int_t val) : fMcTrig(NULL)
+MFTriggerLvl1::MFTriggerLvl1(const char *cname, const char type, const Int_t val,
+                             const char *name, const char *title) : fMcTrig(NULL)
 {
     fContName = cname;
-    Init(type, val);
+    Init(type, val, name, title);
 }
 
 // --------------------------------------------------------------------------
 //
-MFTriggerLvl1::MFTriggerLvl1(const MMcTrig *mctrig, const char type, const Int_t val) : fMcTrig(mctrig)
+MFTriggerLvl1::MFTriggerLvl1(const MMcTrig *mctrig, const char type, const Int_t val,
+                             const char *name, const char *title) : fMcTrig(mctrig)
 {
-    Init(type, val);
+    Init(type, val, name, title);
 }
 
 // --------------------------------------------------------------------------
 //
-void MFTriggerLvl1::Init(const char type, const Int_t val)
+void MFTriggerLvl1::Init(const char type, const Int_t val,
+                         const char *name, const char *title)
 {
+    fName  = name  ? name  : "MFTriggerLvl1";
+    fTitle = title ? title : "Filter using number of 1st level triggers";
+
     fFilterType = (type=='<' ? kELowerThan : kEGreaterThan);
 
Index: /trunk/MagicSoft/Mars/mfilter/MFTriggerLvl1.h
===================================================================
--- /trunk/MagicSoft/Mars/mfilter/MFTriggerLvl1.h	(revision 1210)
+++ /trunk/MagicSoft/Mars/mfilter/MFTriggerLvl1.h	(revision 1211)
@@ -27,9 +27,12 @@
     Int_t  fValue;
 
-    void Init(const char type, const Int_t val);
+    void Init(const char type, const Int_t val,
+              const char *name, const char *title);
 
 public:
-    MFTriggerLvl1(const char *cname="MMcTrig", const char type='>', const Int_t val=0);
-    MFTriggerLvl1(const MMcTrig *mctrig,       const char type='>', const Int_t val=0);
+    MFTriggerLvl1(const char *cname="MMcTrig", const char type='>', const Int_t val=0,
+                  const char *name=NULL, const char *title=NULL);
+    MFTriggerLvl1(const MMcTrig *mctrig,       const char type='>', const Int_t val=0,
+                  const char *name=NULL, const char *title=NULL);
 
     Bool_t IsExpressionTrue() const;
Index: /trunk/MagicSoft/Mars/mgui/MGeomPix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mgui/MGeomPix.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mgui/MGeomPix.cc	(revision 1211)
@@ -19,5 +19,5 @@
 !   Author(s): Harald Kornmayer 1/2001
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/mhist/HistLinkDef.h
===================================================================
--- /trunk/MagicSoft/Mars/mhist/HistLinkDef.h	(revision 1210)
+++ /trunk/MagicSoft/Mars/mhist/HistLinkDef.h	(revision 1211)
@@ -21,6 +21,6 @@
 #pragma link C++ class MHEffOnTimeTime+;
 #pragma link C++ class MHEffOnTimeTheta+;
-#pragma link C++ class MHDiffTimeTime+;
-#pragma link C++ class MHDiffTimeTheta+;
+#pragma link C++ class MHTimeDiffTime+;
+#pragma link C++ class MHTimeDiffTheta+;
 
 #pragma link C++ class MBinning+;
Index: /trunk/MagicSoft/Mars/mhist/MFillH.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MFillH.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mhist/MFillH.cc	(revision 1211)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz  07/2001 <mailto:tbretz@uni-sw.gwdg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/mhist/MH.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MH.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mhist/MH.cc	(revision 1211)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz  07/2001 <mailto:tbretz@uni-sw.gwdg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTheta.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTheta.cc	(revision 1211)
+++ /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTheta.cc	(revision 1211)
@@ -0,0 +1,180 @@
+/* ======================================================================== *\
+!
+! *
+! * This file is part of MARS, the MAGIC Analysis and Reconstruction
+! * Software. It is distributed to you in the hope that it can be a useful
+! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
+! * It is distributed WITHOUT ANY WARRANTY.
+! *
+! * Permission to use, copy, modify and distribute this software and its
+! * documentation for any purpose is hereby granted without fee,
+! * provided that the above copyright notice appear in all copies and
+! * that both that copyright notice and this permission notice appear
+! * in supporting documentation. It is provided "as is" without express
+! * or implied warranty.
+! *
+!
+!
+!   Author(s): Thomas Bretz    1/2002 <mailto:tbretz@uni-sw.gwdg.de>
+!   Author(s): Wolfgang Wittek 1/2002 <mailto:wittek@mppmu.mpg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2002
+!
+!
+\* ======================================================================== */
+
+//////////////////////////////////////////////////////////////////////////////
+//                                                                          //
+//  MHAlphaEnergyTheta                                                       //
+//                                                                          //
+//                                                                          //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "MHAlphaEnergyTheta.h"
+
+#include <TCanvas.h>
+
+#include "MMcEvt.hxx"
+#include "MHillasSrc.h"
+#include "MEnergyEst.h"
+
+#include "MBinning.h"
+#include "MParList.h"
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+ClassImp(MHAlphaEnergyTheta);
+
+// --------------------------------------------------------------------------
+//
+// Default Constructor. It sets name and title only. Typically you won't
+// need to change this.
+//
+MHAlphaEnergyTheta::MHAlphaEnergyTheta(const char *name, const char *title)
+{
+    //
+    //   set the name and title of this object
+    //
+    fName  = name  ? name  : "MHAlphaEnergyTheta";
+    fTitle = title ? title : "3-D histogram in alpha, energy and theta";
+
+    fHist.SetDirectory(NULL);
+
+    fHist.GetXaxis()->SetTitle("\\alpha [\\circ]");
+    fHist.GetYaxis()->SetTitle("E_{est} [GeV]");
+    fHist.GetZaxis()->SetTitle("\\Theta [\\circ]");
+}
+
+Bool_t MHAlphaEnergyTheta::SetupFill(const MParList *plist)
+{
+   fEnergy = (MEnergyEst*)plist->FindObject("MEnergyEst");
+   if (!fEnergy)
+   {
+       *fLog << err << dbginf << "MEnergyEst not found... aborting." << endl;
+       return kFALSE;
+   }
+
+   fMcEvt = (MMcEvt*)plist->FindObject("MMcEvt");
+   if (!fMcEvt)
+   {
+       *fLog << err << dbginf << "MMcEvt not found... aborting." << endl;
+       return kFALSE;
+   }
+
+   MBinning* binsenergy = (MBinning*)plist->FindObject("BinningE");
+   MBinning* binsalpha  = (MBinning*)plist->FindObject("BinningAlpha");
+   MBinning* binstheta  = (MBinning*)plist->FindObject("BinningTheta");
+   if (!binsenergy || !binsalpha || !binstheta)
+   {
+       *fLog << err << dbginf << "At least one MBinning not found... aborting." << endl;
+       return kFALSE;      
+   }
+
+   SetBinning(&fHist, binsalpha, binsenergy, binstheta);
+
+   return kTRUE;
+}
+
+Bool_t MHAlphaEnergyTheta::Fill(const MParContainer *par)
+{
+    MHillasSrc &hil = *(MHillasSrc*)par;
+
+    fHist.Fill(hil.GetAlpha(), fEnergy->GetEnergy(), fMcEvt->GetTheta()*kRad2Deg);
+    return kTRUE;
+}
+
+void MHAlphaEnergyTheta::Draw(Option_t *opt)
+{
+    if (!gPad)
+        MakeDefCanvas("AlphaEnergyTheta", "Distrib of \\alpha, E, \\Theta");
+
+    gPad->Divide(2,2);
+
+    gPad->cd(1);
+    fHist.Project3D("x")->Draw(opt);
+
+    gPad->cd(2);
+    fHist.Project3D("y")->Draw(opt);
+
+    gPad->cd(3);
+    fHist.Project3D("z")->Draw(opt);
+
+    gPad->cd(4);
+    fHist.Draw(opt);
+
+    gPad->Modified();
+    gPad->Update();
+}
+
+TObject *MHAlphaEnergyTheta::DrawClone(Option_t *opt) const
+{
+    TCanvas *c = MakeDefCanvas("DiffTimeTheta", "Distrib of \\Delta t, \\Theta");
+    c->Divide(2, 2);
+
+    gROOT->SetSelectedPad(NULL);
+
+    //
+    // FIXME: ProjectionX,Y is not const within root
+    //
+    c->cd(1);
+    ((TH3*)(&fHist))->Project3D("x")->DrawCopy(opt);
+
+    c->cd(2);
+    ((TH3*)(&fHist))->Project3D("y")->DrawCopy(opt);
+
+    c->cd(3);
+    ((TH3*)(&fHist))->Project3D("z")->DrawCopy(opt);
+
+    c->cd(4);
+    ((TH3*)(&fHist))->DrawCopy(opt);
+
+    c->Modified();
+    c->Update();
+
+    return c;
+}
+
+void MHAlphaEnergyTheta::Substract(const TH3D *h1, const TH3D *h2)
+{
+    MH::SetBinning(&fHist, h1);
+
+    fHist.Sumw2();
+    fHist.Add((TH1*)h1, (TH1*)h2, 1, -1); // Root: FIXME
+}
+
+void MHAlphaEnergyTheta::SetAlphaRange(Axis_t lo, Axis_t up)
+{
+    TAxis &axe = *fHist.GetXaxis();
+
+    //
+    // FIXME: ROOT Binning??? of projection
+    // root 3.02: SetRangeUser
+    axe.SetRange(axe.FindFixBin(lo), axe.FindFixBin(up));
+}
+
+TH2D *MHAlphaEnergyTheta::GetAlphaProjection(Axis_t lo, Axis_t up)
+{
+    SetAlphaRange(lo, up);
+    return (TH2D*)fHist.Project3D("yz");
+}
Index: /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTheta.h
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTheta.h	(revision 1211)
+++ /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTheta.h	(revision 1211)
@@ -0,0 +1,57 @@
+#ifndef MARS_MHAlphaEnergyTheta
+#define MARS_MHAlphaEnergyTheta
+
+#ifndef MARS_MH
+#include "MH.h"
+#endif
+#ifndef ROOT_TH3
+#include "TH3.h"
+#endif
+
+class MMcEvt;
+class MHillasSrc;
+class MEnergyEst;
+class TH2D;
+class MParList;
+
+
+class MHAlphaEnergyTheta : public MH
+{
+private:
+    MMcEvt     *fMcEvt;  //!
+    MHillasSrc *fHillas; //!
+    MEnergyEst *fEnergy; //!
+
+    TH3D fHist;
+
+    void SetAlphaRange(Axis_t lo, Axis_t up);
+
+public:
+    MHAlphaEnergyTheta(const char *name=NULL, const char *title=NULL);
+
+    virtual Bool_t SetupFill(const MParList *pList);
+    virtual Bool_t Fill(const MParContainer *par);
+
+    const TH3D *GetHist()       { return &fHist; }
+    const TH3D *GetHist() const { return &fHist; }
+
+    void Draw(Option_t *option="");
+    TObject *DrawClone(Option_t *option="") const;
+
+    void Substract(const TH3D *h1, const TH3D *h2);
+    void Substract(const MHAlphaEnergyTheta *h1, const MHAlphaEnergyTheta *h2)
+    {
+        Substract(h1->GetHist(), h2->GetHist());
+    }
+
+    TH2D *GetAlphaProjection(Axis_t lo, Axis_t up);
+
+    ClassDef(MHAlphaEnergyTheta, 1) //Histogram to store a 3-Dim histogram in alpha, Energy and theta
+};
+
+#endif
+
+
+
+
+
Index: /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTime.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTime.cc	(revision 1211)
+++ /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTime.cc	(revision 1211)
@@ -0,0 +1,185 @@
+/* ======================================================================== *\
+!
+! *
+! * This file is part of MARS, the MAGIC Analysis and Reconstruction
+! * Software. It is distributed to you in the hope that it can be a useful
+! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
+! * It is distributed WITHOUT ANY WARRANTY.
+! *
+! * Permission to use, copy, modify and distribute this software and its
+! * documentation for any purpose is hereby granted without fee,
+! * provided that the above copyright notice appear in all copies and
+! * that both that copyright notice and this permission notice appear
+! * in supporting documentation. It is provided "as is" without express
+! * or implied warranty.
+! *
+!
+!
+!   Author(s): Thomas Bretz    1/2002 <mailto:tbretz@uni-sw.gwdg.de>
+!   Author(s): Wolfgang Wittek 1/2002 <mailto:wittek@mppmu.mpg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2002
+!
+!
+\* ======================================================================== */
+
+//////////////////////////////////////////////////////////////////////////////
+//                                                                          //
+//  MHAlphaEnergyTime                                                       //
+//                                                                          //
+//                                                                          //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "MHAlphaEnergyTime.h"
+
+#include <TCanvas.h>
+
+#include "MHillasSrc.h"
+#include "MEnergyEst.h"
+#include "MTime.h"
+
+#include "MBinning.h"
+#include "MParList.h"
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+ClassImp(MHAlphaEnergyTime);
+
+
+// --------------------------------------------------------------------------
+//
+// Default Constructor. It sets name and title only. Typically you won't
+// need to change this.
+//
+#include <iostream.h>
+MHAlphaEnergyTime::MHAlphaEnergyTime(const char *name, const char *title) 
+  : fHist()
+{
+    //
+    //   set the name and title of this object
+    //
+    fName  = name  ? name  : "MHAlphaEnergyTime";
+    fTitle = title ? title : "3-D histogram in alpha, energy and time";
+
+    fHist.SetDirectory(NULL);
+
+    fHist.GetXaxis()->SetTitle("\\alpha [\\circ]");
+    fHist.GetYaxis()->SetTitle("E_{est} [GeV]");
+    fHist.GetZaxis()->SetTitle("t [s]");
+}
+
+Bool_t MHAlphaEnergyTime::SetupFill(const MParList *plist)
+{
+   fEnergy = (MEnergyEst*)plist->FindObject("MEnergyEst");
+   if (!fEnergy)
+   {
+       *fLog << err << dbginf << "MEnergyEst not found... aborting." << endl;
+       return kFALSE;
+   }
+
+   fTime = (MTime*)plist->FindObject("MTime");
+   if (!fTime)
+   {
+       *fLog << err << dbginf << "MTime not found... aborting." << endl;
+       return kFALSE;
+   }
+
+   MBinning* binsenergy = (MBinning*)plist->FindObject("BinningE");
+   MBinning* binsalpha  = (MBinning*)plist->FindObject("BinningAlpha");
+   MBinning* binstime   = (MBinning*)plist->FindObject("BinningTime");
+   if (!binsenergy || !binsalpha || !binstime)
+   {
+       *fLog << err << dbginf << "At least one MBinning not found... aborting." << endl;
+       return kFALSE;      
+   }
+
+   SetBinning(&fHist, binsalpha, binsenergy, binstime);
+
+   fHist.Sumw2();
+
+   return kTRUE;
+}
+
+Bool_t MHAlphaEnergyTime::Fill(const MParContainer *par)
+{
+    MHillasSrc &hil = *(MHillasSrc*)par;
+
+    fHist.Fill(hil.GetAlpha(), fEnergy->GetEnergy(), 0.0001*fTime->GetTimeLo());
+    return kTRUE;
+}
+
+void MHAlphaEnergyTime::Draw(Option_t *opt)
+{
+    if (!gPad)
+        MakeDefCanvas("AlphaEnergyTime", "Distrib of \\alpha, E, t");
+
+    gPad->Divide(2,2);
+
+    gPad->cd(1);
+    fHist.Project3D("x")->Draw(opt);
+
+    gPad->cd(2);
+    fHist.Project3D("y")->Draw(opt);
+
+    gPad->cd(3);
+    fHist.Project3D("z")->Draw(opt);
+
+    gPad->cd(4);
+    fHist.Draw(opt);
+
+    gPad->Modified();
+    gPad->Update();
+}
+
+TObject *MHAlphaEnergyTime::DrawClone(Option_t *opt) const
+{
+    TCanvas *c = MakeDefCanvas("DiffTimeTheta", "Distrib of \\Delta t, t");
+    c->Divide(2, 2);
+
+    gROOT->SetSelectedPad(NULL);
+
+    //
+    // FIXME: ProjectionX,Y is not const within root
+    //
+    c->cd(1);
+    ((TH3D*)(&fHist))->Project3D("x")->DrawCopy(opt);
+
+    c->cd(2);
+    ((TH3D*)(&fHist))->Project3D("y")->DrawCopy(opt);
+
+    c->cd(3);
+    ((TH3D*)(&fHist))->Project3D("z")->DrawCopy(opt);
+
+    c->cd(4);
+    ((TH3D*)(&fHist))->DrawCopy(opt);
+
+    c->Modified();
+    c->Update();
+
+    return c;
+}
+
+void MHAlphaEnergyTime::Substract(const TH3D *h1, const TH3D *h2)
+{
+    MH::SetBinning(&fHist, h1);
+
+    fHist.Sumw2();
+    fHist.Add((TH1*)h1, (TH1*)h2, 1, -1); // ROOT: FIXME!
+}
+
+void MHAlphaEnergyTime::SetAlphaRange(Axis_t lo, Axis_t up)
+{
+    TAxis &axe = *fHist.GetXaxis();
+
+    //
+    // FIXME: ROOT Binning??? of projection
+    // root 3.02: SetRangeUser
+    axe.SetRange(axe.FindFixBin(lo), axe.FindFixBin(up));
+}
+
+TH2D *MHAlphaEnergyTime::GetAlphaProjection(Axis_t lo, Axis_t up)
+{
+    SetAlphaRange(lo, up);
+    return (TH2D*)fHist.Project3D("yz");
+}
Index: /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTime.h
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTime.h	(revision 1211)
+++ /trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTime.h	(revision 1211)
@@ -0,0 +1,52 @@
+#ifndef MARS_MHAlphaEnergyTime
+#define MARS_MHAlphaEnergyTime
+
+#ifndef MARS_MH
+#include "MH.h"
+#endif
+#ifndef ROOT_TH3
+#include "TH3.h"
+#endif
+
+class MHillasSrc;
+class MEnergyEst;
+class MTime;
+class TH2D;
+class MParList;
+
+class MHAlphaEnergyTime : public MH
+{
+private:
+    MHillasSrc *fHillas; //!
+    MEnergyEst *fEnergy; //!
+    MTime      *fTime;   //!
+
+    TH3D    fHist;
+
+    void SetAlphaRange(Axis_t lo, Axis_t up);
+
+public:
+    MHAlphaEnergyTime(const char *name=NULL, const char *title=NULL);
+
+    virtual Bool_t SetupFill(const MParList *pList);
+    virtual Bool_t Fill(const MParContainer *par);
+
+    const TH3D *GetHist()       { return &fHist; }
+    const TH3D *GetHist() const { return &fHist; }
+
+    void Draw(Option_t *option="");
+    TObject *DrawClone(Option_t *option="") const;
+
+    void Substract(const TH3D *h1, const TH3D *h2);
+    void Substract(const MHAlphaEnergyTime *h1, const MHAlphaEnergyTime *h2)
+    {
+        Substract(h1->GetHist(), h2->GetHist());
+    }
+
+    TH2D *GetAlphaProjection(Axis_t lo, Axis_t up);
+
+    ClassDef(MHAlphaEnergyTime, 1) //Histogram to store a 3-Dim histogram in alpha, Energy and time
+};
+
+#endif
+
Index: /trunk/MagicSoft/Mars/mhist/MHFadcCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHFadcCam.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mhist/MHFadcCam.cc	(revision 1211)
@@ -19,5 +19,5 @@
 !   Author(s): Harald Kornmayer 1/2001
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/mhist/MHStarMap.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHStarMap.cc	(revision 1210)
+++ /trunk/MagicSoft/Mars/mhist/MHStarMap.cc	(revision 1211)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz  12/2000 <mailto:tbretz@uni-sw.gwdg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2002
 !
 !
Index: /trunk/MagicSoft/Mars/mhist/MHTimeDiffTheta.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHTimeDiffTheta.cc	(revision 1211)
+++ /trunk/MagicSoft/Mars/mhist/MHTimeDiffTheta.cc	(revision 1211)
@@ -0,0 +1,160 @@
+/* ======================================================================== *\
+!
+! *
+! * This file is part of MARS, the MAGIC Analysis and Reconstruction
+! * Software. It is distributed to you in the hope that it can be a useful
+! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
+! * It is distributed WITHOUT ANY WARRANTY.
+! *
+! * Permission to use, copy, modify and distribute this software and its
+! * documentation for any purpose is hereby granted without fee,
+! * provided that the above copyright notice appear in all copies and
+! * that both that copyright notice and this permission notice appear
+! * in supporting documentation. It is provided "as is" without express
+! * or implied warranty.
+! *
+!
+!
+!   Author(s): Thomas Bretz    1/2002 <mailto:tbretz@uni-sw.gwdg.de>
+!   Author(s): Wolfgang Wittek 1/2002 <mailto:wittek@mppmu.mpg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2002
+!
+!
+\* ======================================================================== */
+
+//////////////////////////////////////////////////////////////////////////////
+//                                                                          //
+//  MHTimeDiffTheta                                                       //
+//                                                                          //
+//                                                                          //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "MHTimeDiffTheta.h"
+
+#include <TCanvas.h>
+
+#include "MTime.h"
+#include "MMcEvt.hxx"
+
+#include "MBinning.h"
+#include "MParList.h"
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+ClassImp(MHTimeDiffTheta);
+
+
+// --------------------------------------------------------------------------
+//
+// Default Constructor. It sets name and title only. Typically you won't
+// need to change this.
+//
+MHTimeDiffTheta::MHTimeDiffTheta(const char *name, const char *title)
+    : fHist(), fLastTime(0)
+{
+    //
+    //   set the name and title of this object
+    //
+    fName  = name  ? name  : "MHTimeDiffTheta";
+    fTitle = title ? title : "2-D histogram in time and time difference";
+
+    fHist.SetDirectory(NULL);
+
+    fHist.GetXaxis()->SetTitle("\\Delta t [s]");
+    fHist.GetYaxis()->SetTitle("\\Theta [\\circ]");
+}
+
+Bool_t MHTimeDiffTheta::SetupFill(const MParList *plist)
+{
+   fTime = (MTime*)plist->FindObject("MTime");
+   if (!fTime)
+   {
+       *fLog << err << dbginf << "MTime not found... aborting." << endl;
+       return kFALSE;
+   }
+
+   fMcEvt = (MMcEvt*)plist->FindObject("MMcEvt");
+   if (!fMcEvt)
+   {
+       *fLog << err << dbginf << "MMcEvt not found... aborting." << endl;
+       return kFALSE;
+   }
+
+   const MBinning* binsdtime = (MBinning*)plist->FindObject("BinningTimeDiff");
+   const MBinning* binstheta = (MBinning*)plist->FindObject("BinningTheta");
+   if (!binstheta || !binsdtime)
+   {
+       *fLog << err << dbginf << "At least one MBinning not found... aborting." << endl;
+       return kFALSE;      
+   }
+
+   SetBinning(&fHist, binsdtime, binstheta);
+
+   return kTRUE;
+}
+
+TObject *MHTimeDiffTheta::DrawClone(Option_t *opt) const
+{
+    TCanvas *c = MakeDefCanvas("DiffTimeTheta", "Distrib \\Delta t, \\Theta");
+    c->Divide(2, 2);
+
+    gROOT->SetSelectedPad(NULL);
+
+    //
+    // FIXME: ProjectionX,Y is not const within root
+    //
+    c->cd(1);
+    ((TH2*)&fHist)->ProjectionX("ProX", -1, 9999, "E")->DrawCopy(opt);
+    gPad->SetLogy();
+
+    c->cd(2);
+    ((TH2*)&fHist)->ProjectionY("ProY", -1, 9999, "E")->DrawCopy(opt);
+
+    c->cd(3);
+    ((TH2*)&fHist)->DrawCopy(opt);
+
+    c->Modified();
+    c->Update();
+
+    return c;
+}
+
+void MHTimeDiffTheta::Draw(Option_t *opt)
+{
+    if (!gPad)
+        MakeDefCanvas("DiffTimeTheta", "Distrib \\Delta t, \\Theta");
+
+    TH1 *h;
+
+    gPad->Divide(2,2);
+
+    gPad->cd(1);
+    h = fHist.ProjectionX("ProX", -1, 9999, "E");
+    h->DrawCopy(opt);
+    delete h;
+    gPad->SetLogy();
+
+    gPad->cd(2);
+    h = fHist.ProjectionY("ProY", -1, 9999, "E");
+    h->DrawCopy(opt);
+    delete h;
+
+    gPad->cd(3);
+    fHist.Draw(opt);
+
+    gPad->Modified();
+    gPad->Update();
+}
+
+Bool_t MHTimeDiffTheta::Fill(const MParContainer *par)
+{
+    const Int_t time = fTime->GetTimeLo();
+
+    fHist.Fill(0.0001*(time-fLastTime), fMcEvt->GetTheta()*kRad2Deg);
+    fLastTime = time;
+
+    return kTRUE;
+}
+
Index: /trunk/MagicSoft/Mars/mhist/MHTimeDiffTheta.h
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHTimeDiffTheta.h	(revision 1211)
+++ /trunk/MagicSoft/Mars/mhist/MHTimeDiffTheta.h	(revision 1211)
@@ -0,0 +1,41 @@
+#ifndef MARS_MHTimeDiffTheta
+#define MARS_MHTimeDiffTheta
+
+#ifndef MARS_MH
+#include "MH.h"
+#endif
+#ifndef ROOT_TH2
+#include "TH2.h"
+#endif
+
+class MTime;
+class MMcEvt;
+
+class MParList;
+
+class MHTimeDiffTheta : public MH
+{
+private:
+    MTime  *fTime;   //!
+    MMcEvt *fMcEvt;  //!
+    Int_t   fLastTime;
+
+    TH2D    fHist;
+
+public:
+    MHTimeDiffTheta(const char *name=NULL, const char *title=NULL);
+
+    virtual Bool_t SetupFill(const MParList *pList);
+    virtual Bool_t Fill(const MParContainer *par);
+
+    const TH2D *GetHist() { return &fHist; }
+    const TH2D *GetHist() const { return &fHist; }
+
+    void Draw(Option_t *option="");
+    TObject *DrawClone(Option_t *option="") const;
+
+    ClassDef(MHTimeDiffTheta, 1) //Histogram to store a 3-Dim histogram in alpha, Energy and time
+};
+
+#endif
+
Index: /trunk/MagicSoft/Mars/mhist/MHTimeDiffTime.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHTimeDiffTime.cc	(revision 1211)
+++ /trunk/MagicSoft/Mars/mhist/MHTimeDiffTime.cc	(revision 1211)
@@ -0,0 +1,147 @@
+/* ======================================================================== *\
+!
+! *
+! * This file is part of MARS, the MAGIC Analysis and Reconstruction
+! * Software. It is distributed to you in the hope that it can be a useful
+! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
+! * It is distributed WITHOUT ANY WARRANTY.
+! *
+! * Permission to use, copy, modify and distribute this software and its
+! * documentation for any purpose is hereby granted without fee,
+! * provided that the above copyright notice appear in all copies and
+! * that both that copyright notice and this permission notice appear
+! * in supporting documentation. It is provided "as is" without express
+! * or implied warranty.
+! *
+!
+!
+!   Author(s): Thomas Bretz    1/2002 <mailto:tbretz@uni-sw.gwdg.de>
+!   Author(s): Wolfgang Wittek 1/2002 <mailto:wittek@mppmu.mpg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2002
+!
+!
+\* ======================================================================== */
+
+//////////////////////////////////////////////////////////////////////////////
+//                                                                          //
+//  MHTimeDiffTime                                                       //
+//                                                                          //
+//                                                                          //
+//////////////////////////////////////////////////////////////////////////////
+
+#include "MHTimeDiffTime.h"
+
+#include <TCanvas.h>
+
+#include "MTime.h"
+
+#include "MBinning.h"
+#include "MParList.h"
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+ClassImp(MHTimeDiffTime);
+
+
+// --------------------------------------------------------------------------
+//
+// Default Constructor. It sets name and title only. Typically you won't
+// need to change this.
+//
+MHTimeDiffTime::MHTimeDiffTime(const char *name, const char *title)
+    : fHist(), fLastTime(0)
+{
+    //
+    //   set the name and title of this object
+    //
+    fName  = name  ? name  : "MHTimeDiffTime";
+    fTitle = title ? title : "2-D histogram in time and time difference";
+
+    fHist.SetDirectory(NULL);
+
+    fHist.GetXaxis()->SetTitle("\\Delta t [s]");
+    fHist.GetYaxis()->SetTitle("t [s]");
+}
+
+Bool_t MHTimeDiffTime::SetupFill(const MParList *plist)
+{
+   fTime = (MTime*)plist->FindObject("MTime");
+   if (!fTime)
+   {
+       *fLog << err << dbginf << "MTime not found... aborting." << endl;
+       return kFALSE;
+   }
+
+   const MBinning* binsdtime = (MBinning*)plist->FindObject("BinningTimeDiff");
+   const MBinning* binstime  = (MBinning*)plist->FindObject("BinningTime");
+   if (!binstime || !binsdtime)
+   {
+       *fLog << err << dbginf << "At least one MBinning not found... aborting." << endl;
+       return kFALSE;      
+   }
+
+   SetBinning(&fHist, binsdtime, binstime);
+
+   return kTRUE;
+}
+
+TObject *MHTimeDiffTime::DrawClone(Option_t *opt) const
+{
+    TCanvas *c = MakeDefCanvas("DiffTimeTime", "Distrib of \\Delta t, t");
+    c->Divide(2, 2);
+
+    gROOT->SetSelectedPad(NULL);
+
+    //
+    // FIXME: ProjectionX,Y is not const within root
+    //
+    c->cd(1);
+    ((TH2*)&fHist)->ProjectionX("ProX", -1, 9999, "E")->DrawCopy(opt);
+    gPad->SetLogy();
+
+    c->cd(2);
+    ((TH2*)&fHist)->ProjectionY("ProY", -1, 9999, "E")->DrawCopy(opt);
+
+    c->cd(3);
+    ((TH2*)&fHist)->DrawCopy(opt);
+
+    c->Modified();
+    c->Update();
+
+    return c;
+}
+
+void MHTimeDiffTime::Draw(Option_t *opt)
+{
+    if (!gPad)
+        MakeDefCanvas("DiffTimeTime", "Distrib of \\Delta t, t");
+
+    gPad->Divide(2,2);
+
+    gPad->cd(1);
+    fHist.ProjectionX("ProX", -1, 9999, "E")->DrawCopy(opt);
+    gPad->SetLogy();
+
+    gPad->cd(2);
+    fHist.ProjectionY("ProY", -1, 9999, "E")->DrawCopy(opt);
+
+    gPad->cd(3);
+    fHist.DrawCopy(opt);
+
+    gPad->Modified();
+    gPad->Update();
+}
+
+Bool_t MHTimeDiffTime::Fill(const MParContainer *par)
+{
+    const Int_t time = fTime->GetTimeLo();
+
+    fHist.Fill(0.0001*(time-fLastTime), 0.0001*time);
+
+    fLastTime = time;
+
+    return kTRUE;
+}
+
Index: /trunk/MagicSoft/Mars/mhist/MHTimeDiffTime.h
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHTimeDiffTime.h	(revision 1211)
+++ /trunk/MagicSoft/Mars/mhist/MHTimeDiffTime.h	(revision 1211)
@@ -0,0 +1,39 @@
+#ifndef MARS_MHTimeDiffTime
+#define MARS_MHTimeDiffTime
+
+#ifndef MARS_MH
+#include "MH.h"
+#endif
+#ifndef ROOT_TH2
+#include "TH2.h"
+#endif
+
+class MTime;
+
+class MParList;
+
+class MHTimeDiffTime : public MH
+{
+private:
+    MTime *fTime;   //!
+    Int_t  fLastTime;
+
+    TH2D   fHist;
+
+public:
+    MHTimeDiffTime(const char *name=NULL, const char *title=NULL);
+
+    virtual Bool_t SetupFill(const MParList *pList);
+    virtual Bool_t Fill(const MParContainer *par);
+
+    const TH2D *GetHist() { return &fHist; }
+    const TH2D *GetHist() const { return &fHist; }
+
+    void Draw(Option_t *option="");
+    TObject *DrawClone(Option_t *option="") const;
+
+    ClassDef(MHTimeDiffTime, 1) //Histogram to store a 3-Dim histogram in alpha, Energy and time
+};
+
+#endif
+
Index: /trunk/MagicSoft/Mars/mhist/Makefile
===================================================================
--- /trunk/MagicSoft/Mars/mhist/Makefile	(revision 1210)
+++ /trunk/MagicSoft/Mars/mhist/Makefile	(revision 1211)
@@ -22,5 +22,5 @@
 #  connect the include files defined in the config.mk file
 #
-INCLUDES = -I. -I../mbase -I../mraw -I../manalysis
+INCLUDES = -I. -I../mbase -I../mraw -I../manalysis -I../mmc
 
 #------------------------------------------------------------------------------
@@ -36,5 +36,13 @@
            MHHillasSrc.cc \
            MHStarMap.cc \
+           MHEnergyTime.cc \
+           MHEnergyTheta.cc \
            MHMcCollectionArea.cc \
+           MHAlphaEnergyTime.cc \
+           MHAlphaEnergyTheta.cc \
+           MHEffOnTimeTime.cc \
+           MHEffOnTimeTheta.cc \
+           MHTimeDiffTime.cc \
+           MHTimeDiffTheta.cc \
            MHMcEnergy.cc \
 	   MHMcRate.cc
Index: /trunk/MagicSoft/Mars/mmontecarlo/MMcTimeGenerate.cc
===================================================================
--- /trunk/MagicSoft/Mars/mmontecarlo/MMcTimeGenerate.cc	(revision 1211)
+++ /trunk/MagicSoft/Mars/mmontecarlo/MMcTimeGenerate.cc	(revision 1211)
@@ -0,0 +1,95 @@
+/* ======================================================================== *\
+!
+! *
+! * This file is part of MARS, the MAGIC Analysis and Reconstruction
+! * Software. It is distributed to you in the hope that it can be a useful
+! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
+! * It is distributed WITHOUT ANY WARRANTY.
+! *
+! * Permission to use, copy, modify and distribute this software and its
+! * documentation for any purpose is hereby granted without fee,
+! * provided that the above copyright notice appear in all copies and
+! * that both that copyright notice and this permission notice appear
+! * in supporting documentation. It is provided "as is" without express
+! * or implied warranty.
+! *
+!
+!
+!   Author(s): Thomas Bretz  12/2000 <mailto:tbretz@uni-sw.gwdg.de>
+!   Author(s): Harald Kornmayer 1/2001
+!
+!   Copyright: MAGIC Software Development, 2000-2001
+!
+!
+\* ======================================================================== */
+
+#include "MMcTimeGenerate.h"
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+#include "MParList.h"
+#include "MTime.h"
+
+ClassImp(MMcTimeGenerate);
+
+// --------------------------------------------------------------------------
+//
+MMcTimeGenerate::MMcTimeGenerate(const char *name, const char *title)
+{
+    fName  = name  ? name  : "MMcTimeGenerate";
+    fTitle = title ? title : "Task to generate a random event time";
+
+    const Double_t lambda = 100; // [Hz]
+
+    fFunc = new TF1("Poisson", "[0] * exp(-[0]*x)", 0, 1);
+    fFunc->SetParameter(0, lambda);
+
+    fDeadTime = 0.1/lambda;
+}
+
+MMcTimeGenerate::~MMcTimeGenerate()
+{
+    delete fFunc;
+}
+
+
+// --------------------------------------------------------------------------
+//
+//  The PreProcess connects the raw data with this task. It checks if the 
+//  input containers exist, if not a kFalse flag is returned. It also checks
+//  if the output contaniers exist, if not they are created.
+//  This task can read either Montecarlo files with multiple trigger
+//  options, either Montecarlo files with a single trigger option.
+//
+Bool_t MMcTimeGenerate::PreProcess (MParList *pList)
+{
+    // connect the raw data with this task
+
+    fTime = (MTime*)pList->FindCreateObj("MTime");
+    if (!fTime)
+        return kFALSE;
+
+    return kTRUE;
+}
+
+// --------------------------------------------------------------------------
+//
+//  The Process-function counts the number of simulated showers, the
+//  number of analised showers and the number of triggers. It also updates
+//  the limits for theta, phi, energy and impact parameter in the
+//  MHMcRate container.
+//
+Bool_t MMcTimeGenerate::Process()
+{
+    Double_t dt;
+
+    do dt = fFunc->GetRandom();
+    while (dt < fDeadTime);
+
+    const Int_t t = fTime->GetTimeLo();
+
+    fTime->SetTime(t+dt*10000, 0); // [ms]
+
+    return kTRUE;
+}
Index: /trunk/MagicSoft/Mars/mmontecarlo/MMcTimeGenerate.h
===================================================================
--- /trunk/MagicSoft/Mars/mmontecarlo/MMcTimeGenerate.h	(revision 1211)
+++ /trunk/MagicSoft/Mars/mmontecarlo/MMcTimeGenerate.h	(revision 1211)
@@ -0,0 +1,33 @@
+#ifndef MARS_MMcTimeGenerate
+#define MARS_MMcTimeGenerate
+
+#ifndef MARS_MTask
+#include "MTask.h"
+#endif
+#ifndef ROOT_TF1
+#include "TF1.h"
+#endif
+
+class MParList;
+class MTime;
+
+class MMcTimeGenerate : public MTask
+{
+private:
+    MTime    *fTime;        //!
+    TF1      *fFunc;        //!
+
+    Double_t fDeadTime;
+
+public:
+    MMcTimeGenerate(const char *name=NULL, const char *title=NULL);
+
+    ~MMcTimeGenerate();
+
+    Bool_t PreProcess(MParList *pList);
+    Bool_t Process();
+
+    ClassDef(MMcTimeGenerate, 0) // To generate a random time
+};
+
+#endif 
Index: /trunk/MagicSoft/Mars/mmontecarlo/Makefile
===================================================================
--- /trunk/MagicSoft/Mars/mmontecarlo/Makefile	(revision 1210)
+++ /trunk/MagicSoft/Mars/mmontecarlo/Makefile	(revision 1211)
@@ -30,4 +30,5 @@
 SRCFILES = MMcCollectionAreaCalc.cc \
 	   MMcThresholdCalc.cc \
+           MMcTimeGenerate.cc \
 	   MMcTriggerRateCalc.cc
 
Index: /trunk/MagicSoft/Mars/mmontecarlo/MonteCarloLinkDef.h
===================================================================
--- /trunk/MagicSoft/Mars/mmontecarlo/MonteCarloLinkDef.h	(revision 1210)
+++ /trunk/MagicSoft/Mars/mmontecarlo/MonteCarloLinkDef.h	(revision 1211)
@@ -6,4 +6,5 @@
 
 #pragma link C++ class MMcThresholdCalc+;
+#pragma link C++ class MMcTimeGenerate+;
 #pragma link C++ class MMcCollectionAreaCalc+;
 #pragma link C++ class MMcTriggerRateCalc+;
