Index: /trunk/MagicSoft/Mars/macros/triglvl2.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/triglvl2.C	(revision 1990)
+++ /trunk/MagicSoft/Mars/macros/triglvl2.C	(revision 1991)
@@ -10,4 +10,7 @@
 //      - fValue        comparision value for the filter
 //
+//  23/04/2003 Added example of MFEnergySlope filter
+//
+//  
 void triglvl2(char *filename = "Gamma.root")
   //    USER:   Data File Name    ---^
@@ -20,4 +23,10 @@
 
     parlist.AddToList(&tasklist);
+
+    MGeomCamMagic geocam;
+    parlist.AddToList(&geocam);
+
+    //    MHillas hillas;
+    // parlist.AddToList(&hillas);
 
     // An instance of the class MMcTriggerLvl2 is created and added to the 
@@ -35,10 +44,9 @@
     //
     MF lvl2filter("MMcTriggerLvl2.fLutPseudoSize > 8");
-    // MF lvl2filter("MMcTriggerLvl2.fSizeBiggerCell > 16");
 
     //
     // A second filter is created using the class MFTriggerLvl2
     //
-    MFTriggerLvl2 fTrig1("MMcTriggerLvl2", '>', 8);
+    MFTriggerLvl2 fTrig("MMcTriggerLvl2", '>', 8);
     //      USER:       fValue to be compared --^
 
@@ -48,13 +56,23 @@
     MF energyfilter("MMcEvt.fEnergy > 100");
     MFEventSelector selector;
-    selector.SetNumSelectEvts(4000);
+    //selector.SetNumSelectEvts(4000);
+
+
+    // Filter to select events according to a give slope
+    MFEnergySlope eslope;
+
+    eslope.SetMcMinEnergy(50.);
+    eslope.SetMcMaxEnergy(400.);
+    eslope.SetNewSlope(-3.91);
 
     // A filter list is created; the filters created can be added to the list
     //
     MFilterList flist;
-    //    flist.AddToList(&energyfilter);
-    //    flist.AddToList(&lvl2filter);
-    //    flist.AddToList(&selector);
-    flist.AddToList(&fTrig1);
+    //   flist.AddToList(&energyfilter);
+    //   flist.AddToList(&lvl2filter);
+    //   flist.AddToList(&selector);
+    //   flist.AddToList(&eslope);
+       flist.AddToList(&fTrig);
+
 
     // 
@@ -72,4 +90,9 @@
 
     //
+    // The filter list is added to the task list
+    //
+    tasklist.AddToList(&flist);
+
+    //
     //  Task to calculate and plot the effective area
     //
@@ -83,13 +106,14 @@
  
     //
-    // The filter list is added to the task list
-    //
-    tasklist.AddToList(&flist);
-
-    //
     // The task to calculate the L2T parameter is added to the task list
     //
     MMcTriggerLvl2Calc fill("MMcTriggerLvl2","MMcTriggerLvl2");  
     tasklist.AddToList(&fill);
+
+    //
+    // Filling of histos for MHMcTriggerLvl2
+    //
+    MFillH hfill1("MHMcTriggerLvl2","MMcTriggerLvl2");
+    tasklist.AddToList(&hfill1);
 
     //
@@ -117,10 +141,11 @@
 
     parlist.FindObject("MHMcTriggerLvl2")->DrawClone("lps");
-    parlist.FindObject("MHMcTriggerLvl2")->DrawClone();
+    //     parlist.FindObject("MHMcTriggerLvl2")->DrawClone();
 
     // Returns histogram of the class MHMcTriggerLvl2  
-    //parlist.FindObject("MHMcTriggerLvl2")->GetHistByName("hfPseudoSize");
- 
-    
+    //   parlist.FindObject("MHMcTriggerLvl2")->GetHistByName("hfPseudoSize"));
     
 }
+
+
+
Index: /trunk/MagicSoft/Mars/manalysis/MMcTriggerLvl2Calc.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MMcTriggerLvl2Calc.cc	(revision 1990)
+++ /trunk/MagicSoft/Mars/manalysis/MMcTriggerLvl2Calc.cc	(revision 1991)
@@ -47,4 +47,6 @@
 #include "MMcRunHeader.hxx"
 
+#include "MGeomCam.h"
+
 
 ClassImp(MMcTriggerLvl2Calc);
@@ -83,4 +85,11 @@
     {
         *fLog << err << dbginf << "MMcTrig not found... exit." << endl;
+        return kFALSE;
+    }
+
+    fCam = (MGeomCam*)pList->FindObject("MGeomCam");
+    if (!fCam)
+    {
+        *fLog << dbginf << "MGeomCam not found (no geometry information available)... aborting." << endl;
         return kFALSE;
     }
@@ -125,8 +134,8 @@
 
   fMMcTriggerLvl2->SetLv1(fMcTrig);
- 
+
+  fMMcTriggerLvl2->CalcCompactPixels(fCam);
+
   fMMcTriggerLvl2->Calc();
-
-  fMHMcTriggerLvl2->Fill(fMMcTriggerLvl2);
 
   //fMMcTriggerLvl2->DrawLv1();
@@ -149,2 +158,5 @@
 }
 
+
+
+
