Index: trunk/MagicSoft/Mars/callisto_Dec04Jan05.rc
===================================================================
--- trunk/MagicSoft/Mars/callisto_Dec04Jan05.rc	(revision 8314)
+++ trunk/MagicSoft/Mars/callisto_Dec04Jan05.rc	(revision 8315)
@@ -218,5 +218,5 @@
 # Use this if you want to change the higain-vs. logain intercalibration
 # -------------------------------------------------------------------------
-MJCalibration.HiLoCalibFile:    mjobs/hilocalib_sp1.root
+MJCalibration.HiLoCalibFile:    resources/hilocalib_sp1.rc
 #MJCalibration.HiLoCalibration:  yes
 
@@ -334,5 +334,5 @@
 # -------------------------------------------------------------------------
 #MJPedestalY2.PulsePosCheck: yes
-#MJPedestalY2.ExtractWinLeft:  0.0
+#MJPedestalY2.ExtractWinLeft:  0.0 
 #MJPedestalY2.ExtractWinRight: 0.0
 
Index: trunk/MagicSoft/Mars/macros/tutorials/disprfl.C
===================================================================
--- trunk/MagicSoft/Mars/macros/tutorials/disprfl.C	(revision 8315)
+++ trunk/MagicSoft/Mars/macros/tutorials/disprfl.C	(revision 8315)
@@ -0,0 +1,53 @@
+/* ======================================================================== *\
+!
+! *
+! * 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, 2/2007 <mailto:tbretz@astro.uni-wuerzburg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2007
+!
+!
+\* ======================================================================== */
+
+void disprfl()
+{
+    MParList  plist;
+    MTaskList tlist;
+    plist.AddToList(&tlist);
+
+    MGeomCamMagic geomcam;
+    plist.AddToList(&geomcam);
+
+    MDirIter files("/magic/montecarlo/reflector/reflex/gammas/HE/zbin0", "Gamma*.rfl");
+
+    MReadRflFile read;
+    read.AddFiles(files);
+    tlist.AddToList(&read);
+
+    MHReflector refl;
+    MFillH fill(&refl);
+
+    tlist.AddToList(&fill);
+
+    MStatusDisplay *d = new MStatusDisplay;
+
+    MEvtLoop evtloop;
+    evtloop.SetParList(&plist);
+    evtloop.SetDisplay(d);
+
+    if (!evtloop.Eventloop())
+        return;
+}
Index: trunk/MagicSoft/Mars/manalysis/MParameterCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MParameterCalc.cc	(revision 8314)
+++ trunk/MagicSoft/Mars/manalysis/MParameterCalc.cc	(revision 8315)
@@ -200,5 +200,5 @@
     fData = f;
 
-    if (!fData->IsValid())
+    if (!f->HasValidRule())
     {
         *fLog << err << "MParameterCalc::ReadEnv - ERROR: Inavlid rule from resource file." << endl;
Index: trunk/MagicSoft/Mars/mbase/MLog.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MLog.h	(revision 8314)
+++ trunk/MagicSoft/Mars/mbase/MLog.h	(revision 8315)
@@ -1,4 +1,4 @@
 /* ======================================================================== *\
-!  $Name: not supported by cvs2svn $:$Id: MLog.h,v 1.36 2006-10-17 14:11:36 tbretz Exp $
+!  $Name: not supported by cvs2svn $:$Id: MLog.h,v 1.37 2007-02-13 11:06:53 tbretz Exp $
 \* ======================================================================== */
 #ifndef MARS_MLog
@@ -220,7 +220,7 @@
             const Int_t l = (78-str.Length())/2-3;
             str.Prepend("={ ");
-            str.Prepend('-', l);
+            str.Prepend('-', l<1?1:l);
             str.Append(" }=");
-            str.Append('-', l);
+            str.Append('-', l<1?1:l);
         }
         if (str.Length()<78)
Index: trunk/MagicSoft/Mars/mdata/MDataPhrase.h
===================================================================
--- trunk/MagicSoft/Mars/mdata/MDataPhrase.h	(revision 8314)
+++ trunk/MagicSoft/Mars/mdata/MDataPhrase.h	(revision 8315)
@@ -45,4 +45,5 @@
     // MData
     Bool_t   IsValid() const;
+    Bool_t   HasValidRule() const { return fFormula ? kTRUE : kFALSE; }
     Double_t GetValue() const;
     TString  GetRule() const;
Index: trunk/MagicSoft/Mars/mfileio/MReadRflFile.cc
===================================================================
--- trunk/MagicSoft/Mars/mfileio/MReadRflFile.cc	(revision 8314)
+++ trunk/MagicSoft/Mars/mfileio/MReadRflFile.cc	(revision 8315)
@@ -33,5 +33,4 @@
 
 #include <errno.h>
-#include <fstream>
 
 #include <TSystem.h>
@@ -39,5 +38,11 @@
 #include "structures_rfl.h"
 
+#include "MLog.h"
+#include "MLogManip.h"
+
+#include "MZlib.h"
+
 #include "MParList.h"
+
 #include "MRflEvtData.h"
 #include "MRflEvtHeader.h"
@@ -45,6 +50,4 @@
 #include "MRflSinglePhoton.h"
 
-#include "MLog.h"
-#include "MLogManip.h"
 
 ClassImp(MReadRflFile);
@@ -185,10 +188,19 @@
                 *fLog << inf << "FIXME: Call ReInit" << endl;
 
+                // FIXME: fRunHeader->Read(fIn);
+                //        fRunHeader->Print();
+
                 fRunHeader->SetRunNumber((int)rrunh.RunNumber);
                 *fLog << underline << "RunHeader:" << endl;
-                *fLog << " Run Number:   " << rrunh.RunNumber << endl;
-                *fLog << " Date:         " << rrunh.date << endl;
-                *fLog << " Corsika Ver.: " << rrunh.Corsika_version << endl;
-
+                *fLog << " Run Number:    " << rrunh.RunNumber << endl;
+                *fLog << " Date:          " << rrunh.date << endl;
+                *fLog << " Corsika Ver.:  " << rrunh.Corsika_version << endl;
+                *fLog << " Energy Range:  " << rrunh.ELowLim << "GeV to " << rrunh.EUppLim << "GeV" << endl;
+                *fLog << " Energy Slope:  " << rrunh.SlopeSpec << endl;
+                *fLog << " Wobble Mode:   " << rrunh.wobble_mode << endl;
+                *fLog << " Atm. Model:    " << rrunh.atmospheric_model << endl;
+                // *fLog << " Theta Range:   " << rrunh.ThetaMin << "deg to " << rrunh.ThetaMax << "deg" << endl;
+                // *fLog << " Phi Range:     " << rrunh.PhiMin << "deg to " << rrunh.PhiMax << "deg" << endl;
+                // *fLog << " View Cone Rad: " << rrunh.ViewconeRadius << "deg" << endl;
                 break;
             }
@@ -196,5 +208,10 @@
             *fLog << err << "Error! found end of file... But no EOF flag. Exiting." << endl;
             return kError;
-        }
+        }/*
+        else
+        {
+            *fLog << err << "ERROR - Reflector versions <= 0.5 are not supported!" << endl;
+            return kError;
+        }*/
         return kUndefined;
 
@@ -299,5 +316,5 @@
     //
     fFileName = file->GetName();
-    const TString expname = fFileName;
+    TString expname = fFileName;
     gSystem->ExpandPathName(expname);
 
@@ -309,5 +326,5 @@
     *fLog << inf << "Open file: '" << fFileName << "'" << endl;
 
-    fIn = new ifstream(expname);
+    fIn = new MZlib(expname);
     if (!*fIn)
     {
Index: trunk/MagicSoft/Mars/mfileio/MReadRflFile.h
===================================================================
--- trunk/MagicSoft/Mars/mfileio/MReadRflFile.h	(revision 8314)
+++ trunk/MagicSoft/Mars/mfileio/MReadRflFile.h	(revision 8315)
@@ -10,4 +10,5 @@
 #endif
 
+class MZlib;
 class TList;
 class MRflEvtData;
@@ -28,6 +29,6 @@
     };
 
-    ifstream *fIn;              // the inputfile
-    TList    *fFileNames;       // Array which stores the \0-terminated filenames
+    MZlib *fIn;              // the inputfile
+    TList *fFileNames;       // Array which stores the \0-terminated filenames
 
     MRflEvtData   *fEvtData;    //!
Index: trunk/MagicSoft/Mars/mjobs/MJPedestal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 8314)
+++ trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 8315)
@@ -1050,14 +1050,4 @@
     plist.AddToList(&fBadPixels);
     
-    //
-    // Read bad pixels from outside
-    // 
-    if (!fBadPixelsFile.IsNull())
-    {
-        *fLog << inf << "Excluding: " << fBadPixelsFile << endl;
-        ifstream fin(fBadPixelsFile);
-        fBadPixels.AsciiRead(fin);
-    }
-
     MGeomApply geomapl;
     MBadPixelsMerge merge(&fBadPixels);
@@ -1094,4 +1084,14 @@
         fExtractor->Print();
         *fLog << endl;
+    }
+
+    //
+    // Read bad pixels from outside
+    // 
+    if (!fBadPixelsFile.IsNull())
+    {
+        *fLog << inf << "Excluding: " << fBadPixelsFile << endl;
+        ifstream fin(fBadPixelsFile);
+        fBadPixels.AsciiRead(fin);
     }
 
Index: trunk/MagicSoft/Mars/mpointing/MPointingDevCalc.h
===================================================================
--- trunk/MagicSoft/Mars/mpointing/MPointingDevCalc.h	(revision 8314)
+++ trunk/MagicSoft/Mars/mpointing/MPointingDevCalc.h	(revision 8315)
@@ -52,5 +52,5 @@
 
 public:
-    MPointingDevCalc() : fReport(0), fDeviation(0), fSkip(6), fNumMinStars(8),
+    MPointingDevCalc() : fReport(0), fDeviation(0), fSkip(7), fNumMinStars(8),
         fNsbLevel(3), fNsbMin(30), fNsbMax(60), fMaxAbsDev(15), fMaxAge(1), fDx(-7), fDy(16)
     {
Index: trunk/MagicSoft/Mars/mreflector/MHReflector.cc
===================================================================
--- trunk/MagicSoft/Mars/mreflector/MHReflector.cc	(revision 8315)
+++ trunk/MagicSoft/Mars/mreflector/MHReflector.cc	(revision 8315)
@@ -0,0 +1,326 @@
+/* ======================================================================== *\
+!
+! *
+! * 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, 2/2007 <mailto:tbretz@astro.uni-wuerzburg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2007
+!
+!
+\* ======================================================================== */
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// MHReflector
+//
+/////////////////////////////////////////////////////////////////////////////
+#include "MHReflector.h"
+
+#include <TLegend.h>
+#include <TCanvas.h>
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+#include "MParList.h"
+#include "MBinning.h"
+
+#include "MGeomCam.h"
+
+#include "MRflEvtData.h"
+#include "MRflEvtHeader.h"
+
+
+ClassImp(MHReflector);
+
+using namespace std;
+
+// --------------------------------------------------------------------------
+//
+// Default constructor. Creates and initializes the histograms
+//
+MHReflector::MHReflector(const char *name, const char *title)
+{
+    fName  = name  ? name  : "MHReflector";
+    fTitle = title ? title : "Histogram for the reflected photons";
+
+    fHistXY.SetDirectory(NULL);
+    fHistXY.SetName("ReflXY");
+    fHistXY.SetTitle("Histogram vs X/Y and Energy");
+    fHistXY.SetXTitle("X [\\circ]");
+    fHistXY.SetYTitle("Y [\\circ]");
+    fHistXY.SetZTitle("E [GeV]");
+    fHistXY.Sumw2();
+
+    fHistRad.SetDirectory(NULL);
+    fHistRad.SetName("ReflRad");
+    fHistRad.SetTitle("Histogram vs Radius and Energy");
+    fHistRad.SetXTitle("E [GeV]");
+    fHistRad.SetYTitle("R [\\circ]");
+    fHistRad.SetZTitle("Cnts/deg^{2}");
+    fHistRad.Sumw2();
+
+    fHistSize.SetDirectory(NULL);
+    fHistSize.SetName("ReflSize");
+    fHistSize.SetTitle("Histogram vs Size and Energy");
+    fHistSize.SetXTitle("E [GeV]");
+    fHistSize.SetYTitle("N\\gamma");
+    fHistSize.SetZTitle("Cnts");
+    fHistSize.Sumw2();
+
+    MBinning binse, binsd, binsr;
+    binse.SetEdgesLog(2*5, 10, 1000000);
+    binsd.SetEdges(50, -2.5, 2.5);
+    binsr.SetEdges(15, 0, 2.5);
+
+    SetBinning(&fHistXY,   &binsd, &binsd, &binse);
+    SetBinning(&fHistRad,  &binse, &binsr);
+    SetBinning(&fHistSize, &binse, &binse);
+}
+
+// --------------------------------------------------------------------------
+//
+// Search for MRflEvtData, MRflEvtHeader and MGeomCam
+//
+Bool_t MHReflector::SetupFill(const MParList *pList)
+{
+    fHeader = (MRflEvtHeader*)pList->FindObject("MRflEvtHeader");
+    if (!fHeader)
+    {
+        *fLog << err << "MRflEvtHeader not found... abort." << endl;
+        return kFALSE;
+    }
+    fData = (MRflEvtData*)pList->FindObject("MRflEvtData");
+    if (!fData)
+    {
+        *fLog << err << "MRflEvtData not found... abort." << endl;
+        return kFALSE;
+    }
+    MGeomCam *geom = (MGeomCam*)pList->FindObject("MGeomCam");
+    if (!geom)
+    {
+        *fLog << err << "MGeomCam not found... abort." << endl;
+        return kFALSE;
+    }
+
+    fMm2Deg = geom->GetConvMm2Deg();
+
+    return kTRUE;
+}
+
+// --------------------------------------------------------------------------
+//
+// Fill position and radius versus energy
+//
+#include "MRflSinglePhoton.h"
+Bool_t MHReflector::Fill(const MParContainer *par, const Stat_t weight)
+{
+    const Double_t energy = fHeader->GetEnergy();
+
+    const Int_t n = fData->GetNumPhotons();
+
+    fHistSize.Fill(energy, n);
+
+    for (int i=0; i<n; i++)
+    {
+        const MRflSinglePhoton &ph = fData->GetPhoton(i);
+
+        const Double_t x = ph.GetX()*fMm2Deg;
+        const Double_t y = ph.GetY()*fMm2Deg;
+        const Double_t r = TMath::Hypot(x, y);
+        const Double_t U = r*TMath::TwoPi();
+
+        if (U==0)
+            continue;
+
+        fHistRad.Fill(energy, r, weight/U);
+        //fHistXY.Fill(x, y, energy);
+    }
+
+    //fData->FillRad(fHistRad, energy/*x*/, fMm2Deg);
+    //fData->Fill(fHistXY,     energy/*z*/, fMm2Deg);
+
+    return kTRUE;
+}
+
+// --------------------------------------------------------------------------
+//
+// Scale radial histogram with area
+//
+Bool_t MHReflector::Finalize()
+{
+    /*
+    const TAxis &axey = *fHistRad.GetYaxis();
+    for (int y=1; y<=fHistRad.GetNbinsY(); y++)
+    {
+        const Double_t lo = axey.GetBinLowEdge(y);
+        const Double_t hi = axey.GetBinLowEdge(y+1);
+
+        const Double_t A = (hi*hi-lo*lo)*TMath::Pi()*TMath::Pi();
+
+        for (int x=1; x<=fHistRad.GetNbinsX(); x++)
+            fHistRad.SetBinContent(x, y, fHistRad.GetBinContent(x, y)/A);
+    }
+    */
+    return kTRUE;
+}
+
+#include "../mmc/MMcEvt.hxx"
+void MHReflector::Draw(Option_t *o)
+{
+    TVirtualPad *pad = gPad ? gPad : MakeDefCanvas(this);
+    pad->SetBorderMode(0);
+
+    AppendPad();
+
+    pad->Divide(3,2);
+
+    pad->cd(1);
+    gPad->SetBorderMode(0);
+    gPad->SetLogx();
+    fHistRad.Draw("colz");
+
+    pad->cd(2);
+    gPad->SetBorderMode(0);
+    TH1 *h = fHistRad.ProjectionY("ProfRad", -1, 9999, "e");
+    h->SetTitle("RadialProfile");
+    h->SetDirectory(NULL);
+    h->SetBit(kCanDelete);
+    h->SetLineWidth(2);
+    h->SetLineColor(kBlue);
+    h->SetStats(kFALSE);
+    h->Draw("");
+
+    pad->cd(3);
+    gPad->SetBorderMode(0);
+    gPad->SetLogx();
+    gPad->SetLogy();
+    h = fHistSize.ProjectionY("ProfSize", -1, 9999, "e");
+    h->SetTitle("Size distribution");
+    h->SetDirectory(NULL);
+    h->SetBit(kCanDelete);
+    h->SetLineColor(kBlue);
+    h->SetLineWidth(2);
+    h->SetStats(kFALSE);
+    h->Draw("");
+
+    pad->cd(5);
+    gPad->SetBorderMode(0);
+
+    TLegend *leg = new TLegend(0.01, 0.01, 0.99, 0.99, "Energy Range");
+    for (int i=1; i<=fHistRad.GetNbinsX(); i++)
+    {
+        h = fHistRad.ProjectionY(Form("ProjRad%d", i), i, i, "e");
+        h->SetDirectory(NULL);
+        h->SetBit(kCanDelete);
+        h->SetLineWidth(2);
+        h->SetStats(kFALSE);
+        h->Draw(i==1?"":"same");
+        if (i==1)
+            h->SetTitle("Radial Profile");
+
+        const Float_t xlo = fHistRad.GetXaxis()->GetBinLowEdge(i);
+        const Float_t xhi = fHistRad.GetXaxis()->GetBinUpEdge(i);
+
+        const TString lo = MMcEvt::GetEnergyStr(xlo);
+        const TString hi = MMcEvt::GetEnergyStr(xhi);
+
+        leg->AddEntry(h, Form("%s - %s", lo.Data(), hi.Data()));
+    }
+
+    pad->cd(4);
+    gPad->SetBorderMode(0);
+    leg->SetBit(kCanDelete);
+    leg->Draw();
+
+    pad->cd(6);
+    gPad->SetBorderMode(0);
+
+    gPad->SetLogx();
+    gPad->SetLogy();
+
+    for (int i=1; i<=fHistSize.GetNbinsX(); i++)
+    {
+        h = fHistSize.ProjectionY(Form("ProjSize%d", i), i, i, "e");
+        h->SetDirectory(NULL);
+        h->SetBit(kCanDelete);
+        h->SetLineWidth(2);
+        h->SetStats(kFALSE);
+        h->Draw(i==1?"":"same");
+        if (i==1)
+            h->SetTitle("Size distribution");
+    }
+}
+
+void MHReflector::Paint(Option_t *opt)
+{
+    TVirtualPad *pad = gPad;
+
+    pad->cd(1);
+    SetPalette("pretty");
+
+    TH1 *h=0;
+
+    pad->cd(2);
+    gPad->SetBorderMode(0);
+    if (gPad->FindObject("ProfRad"))
+    {
+        h = fHistRad.ProjectionY("ProfRad", -1, 9999, "e");
+        h->Scale(1./h->Integral());
+    }
+
+    pad->cd(3);
+    gPad->SetBorderMode(0);
+    if (gPad->FindObject("ProfSize"))
+    {
+        h = fHistSize.ProjectionY("ProfSize", -1, 9999, "e");
+        h->Scale(1./h->Integral());
+    }
+
+    pad->cd(5);
+
+    for (int i=1; i<=fHistRad.GetNbinsX(); i++)
+    {
+        const TString name = Form("ProjRad%d", i);
+        if (!gPad->FindObject(name))
+            continue;
+
+        h = fHistRad.ProjectionY(name, i, i, "e");
+        h->SetLineColor(i);
+        h->Scale(1./fHistRad.Integral());
+        if (i==1)
+            h->SetMaximum(fHistRad.GetMaximum()/fHistRad.Integral()*1.05);
+    }
+
+    pad->cd(6);
+
+    for (int i=1; i<=fHistRad.GetNbinsX(); i++)
+    {
+        const TString name = Form("ProjSize%d", i);
+        if (!gPad->FindObject(name))
+            continue;
+
+        h = fHistSize.ProjectionY(name, i, i, "e");
+        h->SetLineColor(i);
+        h->Scale(1./fHistSize.Integral());
+        if (i==1)
+        {
+            h->SetMaximum(TMath::Power(fHistSize.GetMaximum()/fHistSize.Integral(), 1.05));
+            h->SetMinimum(TMath::Power(fHistSize.GetMinimum(0)/fHistSize.Integral(), 0.95));
+        }
+    }
+
+}
Index: trunk/MagicSoft/Mars/mreflector/MHReflector.h
===================================================================
--- trunk/MagicSoft/Mars/mreflector/MHReflector.h	(revision 8315)
+++ trunk/MagicSoft/Mars/mreflector/MHReflector.h	(revision 8315)
@@ -0,0 +1,47 @@
+#ifndef MARS_MHReflector
+#define MARS_MHReflector
+
+#ifndef MARS_MH
+#include "MH.h"
+#endif
+
+#ifndef ROOT_TH2
+#include <TH2.h>
+#endif
+
+#ifndef ROOT_TH3
+#include <TH3.h>
+#endif
+
+class MRflEvtData;
+class MRflEvtHeader;
+
+class MHReflector : public MH
+{
+private:
+    MRflEvtData   *fData;   //!
+    MRflEvtHeader *fHeader; //!
+
+    Double_t fMm2Deg;
+
+    TH3D fHistXY;
+    TH2D fHistRad;
+    TH2D fHistSize;
+
+    Bool_t SetupFill(const MParList *pList);
+    Bool_t Fill(const MParContainer *par, const Stat_t weight=1);
+    Bool_t Finalize();
+
+public:
+    MHReflector(const char *name=0, const char *title=0);
+
+    TH2D *GetHistRad() { return &fHistRad; }
+    TH3D *GetHistXY()  { return &fHistXY; }
+
+    void Draw(Option_t *o="");
+    void Paint(Option_t *o="");
+
+    ClassDef(MHReflector, 1)
+};
+
+#endif
Index: trunk/MagicSoft/Mars/mreflector/Makefile
===================================================================
--- trunk/MagicSoft/Mars/mreflector/Makefile	(revision 8314)
+++ trunk/MagicSoft/Mars/mreflector/Makefile	(revision 8315)
@@ -19,10 +19,11 @@
 #  connect the include files defined in the config.mk file
 #
-INCLUDES = -I. -I../mbase -I../mgui -I../mgeom
+INCLUDES = -I. -I../mbase -I../mgui -I../mgeom -I../mhbase
 
 SRCFILES = MRflEvtData.cc \
 	   MRflEvtHeader.cc \
 	   MRflRunHeader.cc \
-	   MRflSinglePhoton.cc
+	   MRflSinglePhoton.cc \
+	   MHReflector.cc
 
 ############################################################
Index: trunk/MagicSoft/Mars/mreflector/ReflectorLinkDef.h
===================================================================
--- trunk/MagicSoft/Mars/mreflector/ReflectorLinkDef.h	(revision 8314)
+++ trunk/MagicSoft/Mars/mreflector/ReflectorLinkDef.h	(revision 8315)
@@ -10,3 +10,5 @@
 #pragma link C++ class MRflSinglePhoton+;
 
+#pragma link C++ class MHReflector+;
+
 #endif
