Index: trunk/MagicSoft/Cosy/tpoint/tpoint0506.txt
===================================================================
--- trunk/MagicSoft/Cosy/tpoint/tpoint0506.txt	(revision 7169)
+++ trunk/MagicSoft/Cosy/tpoint/tpoint0506.txt	(revision 7170)
@@ -27,2 +27,40 @@
 # ------------- Since 9./10.6.2005 (incl)------------------
 
+# --- 09.06.2005 --- 22:35:17.919
+# Her Zeta 40, 2.81 mag
+76.14804 63.13297 218.6275 54.12496 16.68806 31.60306 -0.03058983 -0.03046012 53530.94118 200.4 3.184
+
+# --- 09.06.2005 --- 22:43:19.625
+# Oph Alpha 55, 2.08 mag
+103.27 47.39119 245.7967 38.41366 17.58222 12.56 -0.001175297 -0.04200264 53530.946755 181.3 2.789
+# Oph Zeta 13, 2.56 mag
+143.3179 43.19028 285.8166 34.21567 16.61917 -10.56722 0.002758086 -0.02612032 53530.951578 203.9 3.03
+# Dschubba, 2.32 mag
+162.4109 36.54496 304.92 27.59281 16.00556 -22.62167 0.02234637 -0.03181517 53530.95675 210.3 2.765
+# Alderamin, 3
+2.511824 56.10478 145.0219 47.13649 21.30972 62.58556 0.005204482 -0.03225844 53531.210643 191.2 3.076
+# Dra Eta 14, 2.44 mag
+-32.99673 33.39271 109.5274 24.54389 16.39972 61.51417 -0.004258851 -0.02098879 53531.215465 198.8 3.132
+# Sadalsuud, 2.91 mag
+175.6778 55.64592 318.1474 46.64616 21.52583 -5.571111 -0.02591623 -0.02546906 53531.221523 205.2 3.152
+# Eltanin, Az -45
+-44.6716 44.28141 97.83765 35.43805 17.94333 51.48889 -7.625169e-05 -0.02159711 53531.228684 240 2.593
+
+# --- 11.06.2005 --- 05:09:43.020
+# Enif, 2.39 mag
+159.5913 70.09753 301.9844 61.07831 21.73639 9.875 -0.04423529 -0.02549534 53532.215081 194.9 2.906
+
+# --- 11.06.2005 --- 21:02:05.255
+# Benetnash, Zd 22, Az 18, 1.86 mag
+16.02673 68.38808 158.5149 59.37905 13.79222 49.31333 -0.03384319 -0.05428281 53532.87645 211.4 2.64
+# Muphrid, Zd 14, Az 139, 2.68 mag
+141.5051 77.12943 283.8804 68.09366 13.91139 18.39778 -0.06099519 -0.09162465 53532.883057 199.1 3.046
+# Cen Iota, Zd 66, Az 181, 2.75 mag
+-177.7981 24.51422 324.7028 15.63997 13.34333 -36.71222 -0.02873433 -0.01499224 53532.889797 204.3 3.178
+# Crv Beta-9, Zd 54, Az 197, 2.65 mag,
+-162.0731 35.67407 340.4175 26.80336 12.57306 -23.39667 -0.02593803 -0.01765152 53532.894671 179.1 3.127
+-161.7421 35.59113 340.7601 26.71727 12.57306 -23.39667 -0.02925694 -0.02782703 53532.895548 201.8 3.118
+# Hya Gamma 46, Zd 52, Az 187, 3.00 mag
+-172.4884 37.78711 330.0127 28.83604 13.31528 -23.17167 -0.1059985 -0.02888653 53532.899623 194.8 3.328
+# Menkent, Zd 65, Az 177, 2.06 mag
+177.181 24.72644 319.6983 15.83175 14.11139 -36.37 0.07903746 -0.0316159 53532.906037 202.2 2.832
Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 7169)
+++ trunk/MagicSoft/Mars/Changelog	(revision 7170)
@@ -21,4 +21,33 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2005/06/27 Thomas Bretz
+
+   * macros/optim/optimenergy.C:
+     - changed algorithm from Simplex to Migrad
+     - fixed a typo (RunDisp)
+
+   * mhflux/FluxLinkDef.h, mhflux/Makefile:
+     - added new class for threshold calculation
+
+   * mhflux/MHCollectionArea.cc:
+     - replaced BinningEnergy by BinningEnergyEst
+
+   * mimage/MHHillasSrc.cc:
+     - set minimum of fAlpha, fCosDA and fDCADelta to 0
+
+   * mjobs/MDataSet.cc:
+     - improved reading source position
+
+   * mranforest/MRanForest.[h,cc]:
+     - implemented a value describing the forest (eg. corresponding
+       energy)
+     - increased ClassVersion
+
+   * mtrigger/MFTriggerPattern.cc, mtrigger/MTriggerPattern.cc,
+     mtrigger/MTriggerPatternDecode.cc
+     - improved dox (thx to Nicola)
+
+
 
  2005/06/17 Thomas Bretz
Index: trunk/MagicSoft/Mars/macros/optim/optimenergy.C
===================================================================
--- trunk/MagicSoft/Mars/macros/optim/optimenergy.C	(revision 7169)
+++ trunk/MagicSoft/Mars/macros/optim/optimenergy.C	(revision 7170)
@@ -3,5 +3,5 @@
     MJOptimizeEnergy opt;
     opt.SetDebug(2);
-    opt.SetOptimizer(MJOptimize::kSimplex);
+    opt.SetOptimizer(MJOptimize::kMigrad);
     opt.EnableTestTrain();
 
@@ -19,4 +19,4 @@
 
     //opt.AddPreCut("MNewImagePar.fLeakage1<0.0001");
-    opt.RunDisp("ganymedmcpart.root", r);
+    opt.RunEnergy("ganymedmcpart.root", r);
 }
Index: trunk/MagicSoft/Mars/mhflux/FluxLinkDef.h
===================================================================
--- trunk/MagicSoft/Mars/mhflux/FluxLinkDef.h	(revision 7169)
+++ trunk/MagicSoft/Mars/mhflux/FluxLinkDef.h	(revision 7170)
@@ -14,4 +14,5 @@
 #pragma link C++ class MHEffectiveOnTime+;
 #pragma link C++ class MHCollectionArea+;
+#pragma link C++ class MHThreshold+;
 #pragma link C++ class MMcSpectrumWeight+;
 
Index: trunk/MagicSoft/Mars/mhflux/MHCollectionArea.cc
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MHCollectionArea.cc	(revision 7169)
+++ trunk/MagicSoft/Mars/mhflux/MHCollectionArea.cc	(revision 7170)
@@ -38,5 +38,4 @@
 #include "MLogManip.h"
 
-#include "MH.h"
 #include "MBinning.h"
 
@@ -182,5 +181,5 @@
             binst.SetEdges(*bins);
 
-        bins = (MBinning*)pl->FindObject("BinningEnergy", "MBinning");
+        bins = (MBinning*)pl->FindObject("BinningEnergyEst", "MBinning");
         if (bins)
             binse.SetEdges(*bins);
Index: trunk/MagicSoft/Mars/mhflux/MHThreshold.cc
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MHThreshold.cc	(revision 7170)
+++ trunk/MagicSoft/Mars/mhflux/MHThreshold.cc	(revision 7170)
@@ -0,0 +1,140 @@
+/* ======================================================================== *\
+!
+! *
+! * 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@astro.uni-wuerzburg.de>
+!   Author(s): Harald Kornmayer 1/2001
+!
+!   Copyright: MAGIC Software Development, 2000-2002
+!
+!
+\* ======================================================================== */
+
+//////////////////////////////////////////////////////////////////////////////
+//
+//  MHThreshold
+//
+//////////////////////////////////////////////////////////////////////////////
+#include "MHThreshold.h" 
+
+#include <TF1.h>
+#include <TLatex.h>
+#include <TCanvas.h>
+#include <TPaveStats.h>
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+#include "MBinning.h"
+
+#include "MMcEvt.hxx"
+
+#include "MParList.h"
+
+ClassImp(MHThreshold);
+
+using namespace std;
+
+// --------------------------------------------------------------------------
+//
+//  Creates the three necessary histograms:
+//   - selected showers (input)
+//   - all showers (input)
+//   - collection area (result)
+//
+MHThreshold::MHThreshold(const char *name, const char *title)
+{ 
+    //   initialize the histogram for the distribution r vs E
+    //
+    //   we set the energy range from 2 Gev to 20000 GeV (in log 4 orders
+    //   of magnitude) and for each order we take 25 subdivision --> 100 xbins
+    //
+    //   we set the radius range from 0 m to 500 m with 10 m bin --> 50 ybins
+    //
+    fName  = name  ? name  : "MHThreshold";
+    fTitle = title ? title : "Collection Area vs. Energy/Theta";
+
+    fHEnergy.SetName("Threshold");
+    fHEnergy.SetTitle("Energy Thrshold");
+    fHEnergy.SetXTitle("E [GeV]");
+    fHEnergy.SetYTitle("dN/dE [GeV^{-1}]");
+    fHEnergy.SetDirectory(NULL);
+    fHEnergy.UseCurrentStyle();
+
+    MBinning binse(80, 10, 1000000, "", "log");
+    binse.Apply(fHEnergy);
+}
+
+Bool_t MHThreshold::SetupFill(const MParList *pl)
+{
+    fMcEvt = (MMcEvt*)pl->FindObject("MMcEvt");
+    if (!fMcEvt)
+    {
+        *fLog << err << "MMcEvt not found... abort." << endl;
+        return kFALSE;
+    }
+/*
+    MBinning binse;
+    binse.SetEdges(fHEnergy, 'x');
+
+    MBinning *bins = (MBinning*)pl->FindObject("BinningEnergyEst", "MBinning");
+    if (bins)
+        binse.SetEdges(*bins);
+
+    binse.Apply(fHEnergy);
+  */
+    return kTRUE;
+}
+
+void MHThreshold::Paint(Option_t *option)
+{
+    const TAxis &axe = *fHEnergy.GetXaxis();
+
+    const Int_t  bin  = fHEnergy.GetMaximumBin();
+
+    // Assume that the energy binning is logarithmic
+    const Axis_t maxe = TMath::Sqrt(axe.GetBinLowEdge(bin)*axe.GetBinUpEdge(bin));
+
+    TLatex text(0.30, 0.95, Form("E_{max}=%dGeV", TMath::Nint(maxe)));
+    text.SetBit(TLatex::kTextNDC);
+    text.SetTextSize(0.04);
+    text.Paint();
+}
+
+void MHThreshold::Draw(Option_t *option)
+{
+    TVirtualPad *pad = gPad ? gPad : MakeDefCanvas(this);
+
+    // Do the projection before painting the histograms into
+    // the individual pads
+    pad->SetBorderMode(0);
+
+    gPad->SetLogx();
+    gPad->SetLogy();
+
+    fHEnergy.Draw();
+
+    AppendPad();
+}
+
+Bool_t MHThreshold::Fill(const MParContainer *par, const Stat_t weight)
+{
+    const Double_t energy = fMcEvt->GetEnergy();
+
+    fHEnergy.Fill(energy, weight/energy);
+
+    return kTRUE;
+}
Index: trunk/MagicSoft/Mars/mhflux/MHThreshold.h
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MHThreshold.h	(revision 7170)
+++ trunk/MagicSoft/Mars/mhflux/MHThreshold.h	(revision 7170)
@@ -0,0 +1,33 @@
+#ifndef MARS_MHThreshold
+#define MARS_MHThreshold
+
+#ifndef MARS_MH
+#include "MH.h"
+#endif
+
+#ifndef ROOT_TH1
+#include <TH1.h>
+#endif
+
+class MMcEvt;
+
+class MHThreshold : public MH
+{
+private:
+    const MMcEvt *fMcEvt; //! POinter to MC energy
+
+    TH1D fHEnergy;
+
+public:
+    MHThreshold(const char *name=NULL, const char *title=NULL);
+
+    Bool_t SetupFill(const MParList *pList);
+    Bool_t Fill(const MParContainer *par, const Stat_t weight=1);
+
+    void Draw(Option_t *option="");
+    void Paint(Option_t *option="");
+
+    ClassDef(MHThreshold, 1)  // Data Container to calculate threshold
+};
+
+#endif
Index: trunk/MagicSoft/Mars/mhflux/Makefile
===================================================================
--- trunk/MagicSoft/Mars/mhflux/Makefile	(revision 7169)
+++ trunk/MagicSoft/Mars/mhflux/Makefile	(revision 7170)
@@ -31,4 +31,5 @@
 	   MHEffectiveOnTime.cc \
            MHCollectionArea.cc \
+           MHThreshold.cc \
            MHFalseSource.cc \
            MHDisp.cc \
Index: trunk/MagicSoft/Mars/mimage/MHHillasSrc.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHHillasSrc.cc	(revision 7169)
+++ trunk/MagicSoft/Mars/mimage/MHHillasSrc.cc	(revision 7170)
@@ -93,4 +93,8 @@
     fDCA->SetYTitle("Counts");
     fDCADelta->SetYTitle("Counts");
+
+    fAlpha->SetMinimum(0);
+    fCosDA->SetMinimum(0);
+    fDCADelta->SetMinimum(0);
 }
 
Index: trunk/MagicSoft/Mars/mjobs/MDataSet.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MDataSet.cc	(revision 7169)
+++ trunk/MagicSoft/Mars/mjobs/MDataSet.cc	(revision 7170)
@@ -326,5 +326,8 @@
 {
     if (!HasSource())
-        return kFALSE;
+    {
+        gLog << err << "ERROR - MDataSet::GetSourcePos called, but no source available." << endl;
+        return kFALSE;
+    }
 
     TString catalog(fCatalog);
@@ -339,5 +342,5 @@
     }
 
-    TString ra,dec,epoch;
+    TString ra, dec, epoch;
 
     Int_t n = 0;
@@ -350,7 +353,11 @@
 
         n++;
-        line = line.Strip(TString::kBoth);
-
-        if (!line.BeginsWith(fNameSource))
+
+        // Strip all spaces from line
+        for (int i=0; i<line.Length(); i++)
+            if (line[i]==' ')
+                line.Remove(i--, 1);
+
+        if (fNameSource!=line(0, fNameSource.Length()))
             continue;
 
@@ -362,6 +369,6 @@
             if (p<0 && i<5)
             {
-                gLog << err << "Not enough arguments in line #" << n << endl;
-                return kFALSE;
+                gLog << err << "ERROR - Not enough arguments in line #" << n << " of " << catalog << endl;
+                return kFALSE;;
             }
 
@@ -387,13 +394,20 @@
         if (line.First(',')>=0)
         {
-            gLog << err << "Too much arguments in line #" << n << endl;
+            gLog << err << "ERROR - Too much arguments in line #" << n << " of " << catalog << endl;
             return kFALSE;
         }
+
         break;
     }
 
+    if (epoch.IsNull())
+    {
+        gLog << err << "ERROR - No entry " << fNameSource << " in " << catalog << endl;
+        return kFALSE;
+    }
+
     if (epoch!=(TString)"2000")
     {
-        gLog << err << "Epoch not 2000... not supported." << endl;
+        gLog << err << "ERROR - Epoch not 2000... not supported." << endl;
         return kFALSE;
     }
Index: trunk/MagicSoft/Mars/mranforest/MRanForest.cc
===================================================================
--- trunk/MagicSoft/Mars/mranforest/MRanForest.cc	(revision 7169)
+++ trunk/MagicSoft/Mars/mranforest/MRanForest.cc	(revision 7170)
@@ -24,19 +24,22 @@
 
 /////////////////////////////////////////////////////////////////////////////
-//                                                                         //
-// MRanForest                                                              //
-//                                                                         //
-// ParameterContainer for Forest structure                                 //
-//                                                                         //
-// A random forest can be grown by calling GrowForest.                     //
-// In advance SetupGrow must be called in order to initialize arrays and   //
-// do some preprocessing.                                                  //
-// GrowForest() provides the training data for a single tree (bootstrap    //
-// aggregate procedure)                                                    //
-//                                                                         //
-// Essentially two random elements serve to provide a "random" forest,     //
-// namely bootstrap aggregating (which is done in GrowForest()) and random //
-// split selection (which is subject to MRanTree::GrowTree())              //
-//                                                                         //
+//
+// MRanForest
+//
+// ParameterContainer for Forest structure
+//
+// A random forest can be grown by calling GrowForest.
+// In advance SetupGrow must be called in order to initialize arrays and
+// do some preprocessing.
+// GrowForest() provides the training data for a single tree (bootstrap
+// aggregate procedure)
+//
+// Essentially two random elements serve to provide a "random" forest,
+// namely bootstrap aggregating (which is done in GrowForest()) and random
+// split selection (which is subject to MRanTree::GrowTree())
+//
+// Version 2:
+//  + fUserVal
+//
 /////////////////////////////////////////////////////////////////////////////
 #include "MRanForest.h"
@@ -59,5 +62,5 @@
 // Default constructor.
 //
-MRanForest::MRanForest(const char *name, const char *title) : fNumTrees(100), fRanTree(NULL),fUsePriors(kFALSE)
+MRanForest::MRanForest(const char *name, const char *title) : fNumTrees(100), fRanTree(NULL),fUsePriors(kFALSE), fUserVal(-1)
 {
     fName  = name  ? name  : "MRanForest";
Index: trunk/MagicSoft/Mars/mranforest/MRanForest.h
===================================================================
--- trunk/MagicSoft/Mars/mranforest/MRanForest.h	(revision 7169)
+++ trunk/MagicSoft/Mars/mranforest/MRanForest.h	(revision 7170)
@@ -70,4 +70,6 @@
     TArrayD fTreeHad;   //
 
+    Double_t fUserVal;
+
     void InitHadEst(Int_t from, Int_t to, const TMatrix &m, TArrayI &jinbag);
 
@@ -91,4 +93,5 @@
     void SetCurTree(MRanTree *rantree) { fRanTree=rantree; }
     Bool_t AddTree(MRanTree *rantree);
+    void SetUserVal(Double_t d) { fUserVal = d; }
 
     // getter methods
@@ -98,9 +101,9 @@
     MDataArray *GetRules() { return ((MRanTree*)(fForest->At(0)))->GetRules(); }
 
-
     Int_t      GetNumTrees() const { return fNumTrees; }
     Int_t      GetNumData()  const;
     Int_t      GetNumDim()   const;
     Double_t   GetTreeHad(Int_t i) const { return fTreeHad.At(i); }
+    Double_t   GetUserVal() const { return fUserVal; }
  
     // use forest to calculate hadronness of event
@@ -109,5 +112,5 @@
     Bool_t AsciiWrite(ostream &out) const;
 
-    ClassDef(MRanForest, 1) // Storage container for tree structure
+    ClassDef(MRanForest, 2) // Storage container for tree structure
 };
 
Index: trunk/MagicSoft/Mars/mtrigger/MFTriggerPattern.cc
===================================================================
--- trunk/MagicSoft/Mars/mtrigger/MFTriggerPattern.cc	(revision 7169)
+++ trunk/MagicSoft/Mars/mtrigger/MFTriggerPattern.cc	(revision 7170)
@@ -31,4 +31,6 @@
 // For files before file version 5 the trigger pattern is set to 00000000.
 //
+// For more details see: MTriggerPattern
+//
 /////////////////////////////////////////////////////////////////////////////
 #include "MFTriggerPattern.h"
Index: trunk/MagicSoft/Mars/mtrigger/MTriggerPattern.cc
===================================================================
--- trunk/MagicSoft/Mars/mtrigger/MTriggerPattern.cc	(revision 7169)
+++ trunk/MagicSoft/Mars/mtrigger/MTriggerPattern.cc	(revision 7170)
@@ -40,4 +40,94 @@
 // For files before file version 5 the trigger pattern is set to 00000000.
 //
+// --------------------------------------------------------------------------
+//
+// Here an explanation about the meaning of the Trigger Pattern.
+// The trigger pattern is a 16-BIT number where are stored informations
+// about which thriggers have been shot on each event. Every bit
+// correspond to a prticular kind of trigger (Pedestal, Calibration,
+// LT1, LT2, PIN Diode...) but the whole trigger pattern number
+// is divided into two parts (from left to right):
+// 
+// 1) The first concerns unprescaled triggers.
+// 2) The second concerns prescaled triggers.
+// 
+// The prescaler is a devise installed AFTER the LT2. It collects
+// all kind of triggers and can prescale each trigger by a different
+// prescaling factor. This means that we can set the prescaler to
+// accept every LT2 trigger but only 1% of calibration triggers.
+// Therefore LT2 prescaling factor will be set to 1, while CAL prescaling
+// factor will be set to 100. If after the prescaler at least one trigger
+// survives, then the event is considered "TRIGGERED" and aquired by the DAQ.
+// 
+// The current BIT meaning is:
+// 
+// BIT(0):  prescaled LT1
+// BIT(1):  prescaled Calibration Trigger
+// BIT(2):  prescaled LT2
+// BIT(3):  prescaled Pedestal Trigger
+// BIT(4):  prescaled Pin Diode
+// BIT(5):  unused
+// BIT(6):  unused
+// BIT(7):  unused
+// BIT(8):  unprescaled LT1
+// BIT(9):  unprescaled Calibration Trigger
+// BIT(10): unprescaled LT2
+// BIT(11): unprescaled Pedestal Trigger
+// BIT(12): unprescaled Pin Diode
+// BIT(13): unused
+// BIT(14): unused
+// BIT(15): unused
+// 
+// Why are we saving both prescaled and unprescaled triggers?
+// Which should I look at? Let's give an example:
+// 
+//    BIT #      15-14-13-12-11-10- 9- 8- 7- 6- 5- 4- 3- 2- 1- 0
+// 
+//    event #1:   0  0  0  0  0  0  1  1  0  0  0  0  0  0  0  1
+//    event #2:   0  0  0  0  0  0  1  1  0  0  0  0  0  0  1  1
+// 
+// In both cases you have both CAL and LT1 trigger, but in first
+// event calibration trigger is prescaled and in second event no
+// trigger is prescaled. Imagine you are looking for calibration events. 
+// If you look at the prescale bits you are sure that events with CAL
+// flag are calibration events (event #2) but you can miss other
+// real calibration events (event #1). If you are lucky that
+// the related prescaling factor is 1 you won't have this problem,
+// otherway you will have it. 
+// 
+// To select events by the trigger pattern you should use MFTriggerPattern filter.
+// This filter uses Require- and Deny- methods to select your trigger pattern.
+// Require- methods requires that your trigger bit is ON, otherway the event
+// is kicked out. Deny- methods requires that your trigger bit is OFF, otherway
+// your event is kicked out. Other bits not selected by your Require- or Deny- call
+// are ignored. Let's give an example. You want to select all events that have
+// both LT1 and LT2 trigger but which are not calibration neither Pin Diode events. 
+// You should look at unprescaled bits to be sure
+// about which were the initial triggers. Then you can implement in your macro
+// something like:
+// 
+//      MFTriggerPattern ftrigpatt;
+//      ftrigpatt.RequireTriggerLvl1(MFTriggerPattern::kUnPrescaled);
+//      ftrigpatt.RequireTriggerLvl2(MFTriggerPattern::kUnPrescaled);
+//      ftrigpatt.DenyCalibration(MFTriggerPattern::kUnPrescaled);
+//      ftrigpatt.DenyPinDiode(MFTriggerPattern::kUnPrescaled);
+// 
+// Then you use in your tasklist as a usual MF filter. In this
+// example Pedestal trigger flag is ignored. Consider that by default
+// MFTriggerPattern::kUnPrescaled is set for Require- and Deny- methods.
+// 
+// WARNING: please use MTriggerPatternDecode task to read the trigger pattern
+// of the event and to fill MTriggerPattern container. If you use your
+// private stuff to read MRawEvtHeader.fTriggerPattern[0] (data member
+// where the trigger pattern is stored) you must invert all the bits of
+// your number. Current hardware, infact, writes the trigger pattern bit-inverted.
+// 
+// 
+// For further informations contact:
+// 
+// Nicola Galante        nicola.galante@pi.infn.it
+// Riccardo Paoletti     riccardo.paoletti@pi.infn.it
+// Antonio Stamerra      antonio.stamerra@pi.infn.it
+//
 /////////////////////////////////////////////////////////////////////////////
 #include "MTriggerPattern.h"
Index: trunk/MagicSoft/Mars/mtrigger/MTriggerPatternDecode.cc
===================================================================
--- trunk/MagicSoft/Mars/mtrigger/MTriggerPatternDecode.cc	(revision 7169)
+++ trunk/MagicSoft/Mars/mtrigger/MTriggerPatternDecode.cc	(revision 7170)
@@ -31,4 +31,6 @@
 // For files before file version 5 the trigger pattern is set to 00000000.
 // This can be changed using the information about the file-type.
+//
+// For more details see: MTriggerPattern
 //
 // Input:
