Index: /trunk/MagicSoft/Mars/mpointing/MPointingPosition.cc
===================================================================
--- /trunk/MagicSoft/Mars/mpointing/MPointingPosition.cc	(revision 2598)
+++ /trunk/MagicSoft/Mars/mpointing/MPointingPosition.cc	(revision 2598)
@@ -0,0 +1,36 @@
+/* ======================================================================== *\
+!
+! *
+! * 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, 11/2003 <mailto:tbretz@astro.uni-wuerzburg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2003
+!
+!
+\* ======================================================================== */
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// MPointingPosition
+//
+// Store the current pointing position of the telescope...
+//
+/////////////////////////////////////////////////////////////////////////////
+#include "MPointingPosition.h"
+
+ClassImp(MPointingPosition);
+
+using namespace std;
Index: /trunk/MagicSoft/Mars/mpointing/MPointingPosition.h
===================================================================
--- /trunk/MagicSoft/Mars/mpointing/MPointingPosition.h	(revision 2598)
+++ /trunk/MagicSoft/Mars/mpointing/MPointingPosition.h	(revision 2598)
@@ -0,0 +1,34 @@
+#ifndef MARS_MPointingPosition
+#define MARS_MPointingPosition
+
+#ifndef MARS_MParContainer
+#include "MParContainer.h"
+#endif
+
+class MPointingPosition : public MParContainer
+{
+private:
+    Double_t fZd;  // [deg] Zenith distance (ZA)
+    Double_t fAz;  // [deg] Azimuth
+
+    Double_t fRa;  // [deg] Right ascension
+    Double_t fHa;  // [deg] Houre angle
+    Double_t fDec; // [deg] Declination
+
+public:
+    MPointingPosition()
+    {
+        fName  = "MPointingPosition";
+        fTitle = "Container storing the (corrected) telescope pointing position";
+    }
+
+    void SetLocalPosition(Double_t zd, Double_t az) { fZd=zd; fAz=az; }
+    void SetSkyPosition(Double_t ra, Double_t dec, Double_t ha=0) { fRa=ra; fDec=dec; fHa=ha; }
+
+    Double_t GetZd() const { return fZd; }
+    Double_t GetAz() const { return fAz; }
+
+    ClassDef(MPointingPosition, 1) //Container storing the (corrected) telescope pointing position
+};
+
+#endif
Index: /trunk/MagicSoft/Mars/mpointing/MPointingPositionCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/mpointing/MPointingPositionCalc.cc	(revision 2598)
+++ /trunk/MagicSoft/Mars/mpointing/MPointingPositionCalc.cc	(revision 2598)
@@ -0,0 +1,143 @@
+/* ======================================================================== *\
+!
+! *
+! * 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, 11/2003 <mailto:tbretz@astro.uni-wuerzburg.de>
+!
+!   Copyright: MAGIC Software Development, 2000-2003
+!
+!
+\* ======================================================================== */
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// MPointingPositionCalc
+//
+// Currently:
+//
+//  * MC files:  Copy the simulated telescope position (Telescope Theta,
+//               Telescope Phi in MMcEvt) to MPointingPosition
+//
+//  * Real Data: Copy the nominal poiting position (Nominal Zd, Nominal Az
+//               in MReportDrive) to MPointingPosition
+//
+// Future: Interpolate the pointing position for each event between two
+//         consecutive drive reports.
+//
+// Input Container:
+//   MRawRunHeader
+//   [MMcEvt, MReportDrive]
+//
+// Output Container:
+//   MPointingPosition
+//
+/////////////////////////////////////////////////////////////////////////////
+#include "MPointingPositionCalc.h"
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+#include "MParList.h"
+
+#include "MPointingPosition.h"
+#include "MRawRunHeader.h"
+#include "MReportDrive.h"
+#include "MMcEvt.hxx"
+
+ClassImp(MPointingPositionCalc);
+
+using namespace std;
+
+// --------------------------------------------------------------------------
+//
+// Search for MRawRunHeader. Get the run type from there. Depending on
+// the run type search either for MMcEvt or MReportDrive.
+//
+Bool_t MPointingPositionCalc::ReInit(MParList *plist)
+{
+    MRawRunHeader *run = (MRawRunHeader*)plist->FindObject("MRawRunHeader");
+    if (!run)
+    {
+        *fLog << err << "MRawRunHeader not found... aborting." << endl;
+        return kFALSE;
+    }
+
+    fRunType = run->GetRunType();
+
+    switch (fRunType)
+    {
+    case kRTData:
+        fReport = (MReportDrive*)plist->FindObject("MReportDrive");
+        if (!fReport)
+        {
+            *fLog << err << "MReportDrive not found... aborting." << endl;
+            return kFALSE;
+        }
+        return kTRUE;
+
+    case kRTMonteCarlo:
+        fMcEvt = (MMcEvt*)plist->FindObject("MMcEvt");
+        if (!fMcEvt)
+        {
+            *fLog << err << "MMcEvt not found... aborting." << endl;
+            return kFALSE;
+        }
+        return kTRUE;
+
+    case kRTPedestal:
+        *fLog << err << "Cannot work in a pedestal Run!... aborting." << endl;
+        return kFALSE;
+
+    case kRTCalibration:
+        *fLog << err << "Cannot work in a calibration Run!... aborting." << endl;
+        return kFALSE;
+
+    default:
+        *fLog << err << "Run Type " << fRunType << " unknown!... aborting." << endl;
+        return kFALSE;
+    }
+
+    return kTRUE;
+}
+
+// --------------------------------------------------------------------------
+//
+//  Search for 'MPointingPosition'. Create if not found.
+//
+Int_t MPointingPositionCalc::PreProcess(MParList *plist)
+{
+    fPosition = (MPointingPosition*)plist->FindCreateObj("MPointingPosition");
+    return fPosition ? kTRUE : kFALSE;
+}
+
+// --------------------------------------------------------------------------
+//
+//  See class description.
+//
+Int_t MPointingPositionCalc::Process()
+{
+    switch (fRunType)
+    {
+    case kRTData:
+        fPosition->SetLocalPosition(fReport->GetNominalZd(), fReport->GetNominalAz());
+        return kTRUE;
+
+    case kRTMonteCarlo:
+        fPosition->SetLocalPosition(fMcEvt->GetTelescopeTheta()*TMath::RadToDeg(), fMcEvt->GetTelescopePhi()*TMath::RadToDeg());
+        return kTRUE;
+    }
+    return kTRUE;
+}
Index: /trunk/MagicSoft/Mars/mpointing/MPointingPositionCalc.h
===================================================================
--- /trunk/MagicSoft/Mars/mpointing/MPointingPositionCalc.h	(revision 2598)
+++ /trunk/MagicSoft/Mars/mpointing/MPointingPositionCalc.h	(revision 2598)
@@ -0,0 +1,35 @@
+#ifndef MARS_MPointingPositionCalc
+#define MARS_MPointingPositionCalc
+
+#ifndef MARS_MTask
+#include "MTask.h"
+#endif
+
+class MMcEvt;
+class MReportDrive;
+class MPointingPosition;
+
+class MPointingPositionCalc : public MParContainer
+{
+private:
+    MMcEvt            *fMcEvt;    //! MMcEvt to get simulated poiting position from
+    MReportDrive      *fReport;   //! MReportDrive to get real poiting position from
+    MPointingPosition *fPosition; //! Output container to store pointing position
+
+    UShort_t fRunType;            //! Run Type to decide where to get pointing position from
+
+    Bool_t ReInit(MParList *plist);
+    Int_t  PreProcess(MParList *plist);
+    Int_t  Process();
+
+public:
+    MPointingPositionCalc()
+    {
+        fName  = "MPointingPositionCalc";
+        fTitle = "Task calculating the pointing position";
+    }
+
+    ClassDef(MPointingPositionCalc, 0) //Task calculating the pointing position
+};
+
+#endif
Index: /trunk/MagicSoft/Mars/mpointing/Makefile
===================================================================
--- /trunk/MagicSoft/Mars/mpointing/Makefile	(revision 2598)
+++ /trunk/MagicSoft/Mars/mpointing/Makefile	(revision 2598)
@@ -0,0 +1,48 @@
+##################################################################
+#
+#   makefile
+# 
+#   for the MARS software
+#
+##################################################################
+include ../Makefile.conf.$(OSTYPE)
+include ../Makefile.conf.general
+
+#
+# Handling name of the Root Dictionary Files
+#
+CINT = Pointing
+
+#
+# Library name to creatre
+#
+LIB  = mpointing.a
+
+#
+#  connect the include files defined in the config.mk file
+#
+INCLUDES = -I. -I../mbase -I../mraw -I../mreport -I../mmc
+
+#------------------------------------------------------------------------------
+
+.SUFFIXES: .c .cc .cxx .h .hxx .o 
+
+SRCFILES = MPointingPosition.cc \
+	   MPointingPositionCalc.cc
+
+SRCS    = $(SRCFILES)
+HEADERS = $(SRCFILES:.cc=.h)
+OBJS    = $(SRCFILES:.cc=.o) 
+
+############################################################
+
+all: $(LIB)
+
+include ../Makefile.rules
+
+clean:	rmcint rmobjs rmcore rmlib
+
+mrproper:	clean rmbak
+
+# @endcode
+
Index: /trunk/MagicSoft/Mars/mpointing/PointingIncl.h
===================================================================
--- /trunk/MagicSoft/Mars/mpointing/PointingIncl.h	(revision 2598)
+++ /trunk/MagicSoft/Mars/mpointing/PointingIncl.h	(revision 2598)
@@ -0,0 +1,3 @@
+#ifndef __CINT__
+
+#endif // __CINT__
Index: /trunk/MagicSoft/Mars/mpointing/PointingLinkDef.h
===================================================================
--- /trunk/MagicSoft/Mars/mpointing/PointingLinkDef.h	(revision 2598)
+++ /trunk/MagicSoft/Mars/mpointing/PointingLinkDef.h	(revision 2598)
@@ -0,0 +1,10 @@
+#ifdef __CINT__
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class MPointingPosition+;
+#pragma link C++ class MPointingPositionCalc+;
+
+#endif
