Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 1739)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 1740)
@@ -1,4 +1,23 @@
 
                                                          -*-*- END -*-*-
+
+ 2003/01/31  Antonio Stamerra & Marcos Lopez
+
+  * mgui/MCamDisplay.[cc|h]
+    - Added a new function MCamDisplay::SetPix(const Int_t pixnum, const Int_t
+   color, Float_t min, Float_t max) which just set the color of a given pixel 
+
+  * created two new classes for simulating the second level trigger in the 
+    directory MAnalysis:
+    - MTrigLvl2.[cc|h]         // Implement the Lvl2 topology and selection
+                               // strategies
+    - MTrigLvl2FillTask.[cc|h] // For a given MMc event, fill the MTrigLvl2 
+                                  with the Lvl1 trigger information 
+
+  * manalysis/Makefile
+    - Added -I../mgui
+
+  * Added macro macros/triglvl2.C which uses the above classes.
+
 
  2003/01/27: Robert Wagner
Index: /trunk/MagicSoft/Mars/macros/triglvl2.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/triglvl2.C	(revision 1740)
+++ /trunk/MagicSoft/Mars/macros/triglvl2.C	(revision 1740)
@@ -0,0 +1,98 @@
+
+Bool_t HandleInput()
+{
+    TTimer timer("gSystem->ProcessEvents();", 50, kFALSE);
+    while (1)
+    {
+        //
+        // While reading the input process gui events asynchronously
+        //
+        timer.TurnOn();
+        TString input = Getline("Type 'q' to exit, <return> to go on: ");
+        timer.TurnOff();
+
+        if (input=="q\n")
+            return kFALSE;
+
+        if (input=="\n")
+            return kTRUE;
+    };
+
+    return kFALSE;
+}
+
+void secondlt(char *filename = "../../Mars-0.8/gamma_new.root")
+{ 
+    //
+    // first we have to create our empty lists
+    //
+    MParList  parlist;
+    MTaskList tasklist;
+
+    MTrigLvl2 cell;
+      
+    parlist.AddToList(&cell);
+    parlist.AddToList(&tasklist);
+
+    //
+    // Setup out tasks:
+    //  - First we have to read the events
+    //  - Then we can fill the efficiency histograms
+    //
+    MReadMarsFile reader("Events", filename);
+    reader.EnableBranch("fEnergy");
+    reader.EnableBranch("fImpact"); reader.EnableBranch("fTimeFirst[4]");
+    reader.EnableBranch("fPixelsFirst[73][4]");
+   
+   
+   
+    MTrigLvl2FillTask fill("MTrigLvl2FillTask","MTrigLvl2FillTask");  
+  
+    tasklist.AddToList(&reader);
+      tasklist.AddToList(&fill);
+
+
+    //
+    // set up the loop for the processing
+    //
+    MEvtLoop magic;
+    magic.SetParList(&parlist);
+
+    //
+    // Start to loop over all events
+    //
+    MProgressBar bar;
+    magic.SetProgressBar(&bar);
+
+
+   //  if (!magic.Eventloop())
+   //         return;
+
+
+    if (!magic.PreProcess())
+      return;
+
+
+
+    while (tasklist.Process())
+      {
+        cout << "Event #" << reader.GetEventNum() ":" << endl;
+
+	cell.DrawLv1();
+      
+	//if (!HandleInput())
+	 // break;
+    } 
+
+
+
+    magic.PostProcess();
+
+    tasklist.PrintStatistics();
+
+    //
+    // Now the histogram we wanted to get out of the data is
+    // filled and can be displayd
+    //
+  // parlist.FindObject("MHMcCollectionArea")->DrawClone();
+}
Index: /trunk/MagicSoft/Mars/manalysis/AnalysisLinkDef.h
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/AnalysisLinkDef.h	(revision 1739)
+++ /trunk/MagicSoft/Mars/manalysis/AnalysisLinkDef.h	(revision 1740)
@@ -46,3 +46,7 @@
 #pragma link C++ class MApplyPadding+;
 
+#pragma link C++ class MTrigLvl2+;
+#pragma link C++ class MTrigLvl2FillTask+;
+
+
 #endif
Index: /trunk/MagicSoft/Mars/manalysis/MTrigLvl2.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MTrigLvl2.cc	(revision 1740)
+++ /trunk/MagicSoft/Mars/manalysis/MTrigLvl2.cc	(revision 1740)
@@ -0,0 +1,313 @@
+/*###########################################################################
+  #
+  #  This file is part of MTrigLvl2 simulation toolkit for simulating the 
+  #  MAGIC Second Level Trigger	
+  #                                           e-mail:  stamerra@pi.infn.it 
+  #                                                    marcos@gae.ucm.es    #
+  #                                             date:  January 2003         #
+  #                                          version:  0.1                  #
+  ###########################################################################*/
+
+#include "MTrigLvl2.h"
+#include <iostream.h>
+#include "MGeomCamMagic.h"
+#include "MCamDisplay.h"
+#include "MMcTrig.hxx"
+#include <TCanvas.h>
+
+
+ClassImp(MTrigLvl2)
+
+
+//
+// Correspondence TABLE between pixel numbering in the trigger celss and
+// the standard spiral counting 
+// (Notice: Pixels start to count from 1 instead of 0)
+//
+const Float_t pixels_in_cell[36][19] = {
+{26,  91,  66,  71,  76,  81,  86,  269,  224,  233,  242,  251,  260,  391,  336,  347,  358,	369,  380},
+{25,  61,  41,  45,  49,  53,  57,  215,  175,  183,  191,  199,  207,  325,  275,  285,  295,  305,  315},
+{24,  37,  22,  25,  28,  31,  34,  167,  132,  139,  146,  153,  160,  265,  220,  229,  238,  247,  256},
+{23,  19,   9,  11,  13,  15,  17,  125,   95,  101,  107,  113,  119,  211,  171,  179,  187,  195,  203},
+{27,  62,  67,  72,  77,  82,  87,  270,  225,  234,  243,  252,  261,  392,  337,  348,  359,  370,  381},
+{12,  38,  42,  46,  50,  54,  58,  216,  176,  184,  192,  200,  208,  326,  276,  286,  296,  306,  316},
+{11,  20,  23,  26,  29,  32,  35,  168,  133,  140,  147,  154,  161,  266,  221,  230,  239,  248,  257},
+{10,   8,  10,  12,  14,  16,  18,  126,   96,  102,  108,  114,  120,  212,  172,  180,  188,  196,  204},
+{22,   2,   3,   4,   5,   6,   7,   90,   65,   70,   75,   80,   85,  164,  129,  136,  143,  150,  157},
+{28,  93,  99, 105, 111, 117, 123,  271,  226,  235,  244,  253,  262,  393,  338,  349,  360,  371,  382},
+{13,  63,  68,  73,  78,  83,  88,  217,  177,  185,  193,  201,  209,  327,  277,  287,  297,  307,  317},
+{ 4,  39,  43,  47,  51,  55,  59,  169,  134,  141,  148,  155,  162,  267,  222,  231,  240,  249,  258},
+{ 3,  21,  24,  27,  30,  33,  36,  127,   97,  103,  109,  115,  121,  213,  173,  181,  189,  197,  205},
+{ 9,   9,  11,  13,  15,  17,  19,   91,   66,   71,   76,   81,   86,  165,  130,  137,  144,  151,  158},
+{21,   3,   4,   5,   6,   7,   2,   61,   41,   45,   49,   53,   57,  123,   93,   99,  105,  111,  117},
+{29, 130, 137, 144, 151, 158, 165,  218,  227,  236,  245,  254,  263,  394,  339,  350,  361,  372,  383},
+{14,  94, 100, 106, 112, 118, 124,  170,  178,  186,  194,  202,  210,  328,  278,  288,  298,  308,  318},
+{ 5,  64,  69,  74,  79,  84,  89,  128,  135,  142,  149,  156,  163,  268,  223,  232,  241,  250,  259},
+{ 1,  40,  44,  48,  52,  56,  60,   92,   98,  104,  110,  116,  122,  214,  174,  182,  190,  198,  206},
+{ 2,  22,  25,  28,  31,  34,  37,   62,   67,   72,   77,   82,   87,  166,  131,  138,  145,  152,  159},
+{ 8,  10,  12,  14,  16,  18,   8,   38,   42,   46,   50,   54,   58,  124,   94,  100,  106,  112,  118},
+{20,  11,  13,  15,  17,  19,   9,   20,   23,   26,   29,   32,   35,   88,   63,   68,   73,   78,   83},
+{30, 131, 138, 145, 152, 159, 166,  219,  228,  237,  246,  255,  264,  329,  279,  289,  299,  309,  319},
+{15,  95, 101, 107, 113, 119, 125,  171,  179,  187,  195,  203,  211,  269,  224,  233,  242,  251,  260},
+{ 6,  65,  70,  75,  80,  85,  90,  129,  136,  143,  150,  157,  164,  215,  175,  183,  191,  199,  207},
+{ 7,  41,  45,  49,  53,  57,  61,   93,   99,  105,  111,  117,  123,  167,  132,  139,  146,  153,  160},
+{19,  23,  26,  29,  32,  35,  20,   63,   68,   73,   78,   83,   88,  125,   95,  101,  107,  113,  119},
+{37,  24,  27,  30,  33,  36,  21,   39,   43,   47,   51,   55,   59,   89,   64,   69,   74,   79,   84},
+{31, 132, 139, 146, 153, 160, 167,  220,  229,  238,  247,  256,  265,  270,  225,  234,  243,  252,  261},
+{16,  96, 102, 108, 114, 120, 126,  172,  180,  188,  196,  204,  212,  216,  176,  184,  192,  200,  208},
+{17,  66,  71,  76,  81,  86,  91,  130,  137,  144,  151,  158,  165,  168,  133,  140,  147,  154,  161},
+{18,  42,  46,  50,  54,  58,  38,   94,  100,  106,  112,  118,  124,  126,   96,  102,  108,  114,  120},
+{36,  43,  47,  51,  55,  59,  39,   64,   69,   74,   79,   84,   89,   90,   65,   70,   75,   80,   85},
+{32, 133, 140, 147, 154, 161, 168,  221,  230,  239,  248,  257,  266,  217,  177,  185,  193,  201,  209},
+{33,  97, 103, 109, 115, 121, 127,  173,  181,  189,  197,  205,  213,  169,  134,  141,  148,  155,  162},
+{35,  68,  73,  78,  83,  88,  63,   95,  101,  107,  113,  119,  125,   91,   66,   71,   76,   81,   86}
+ };
+
+
+/******************************************************************************
+ * Default constructor
+ *
+ *****************************************************************************/
+MTrigLvl2::MTrigLvl2(const char *name, const char *title)
+{
+  fName = name ? name : ClassName();
+  fTitle = title;
+
+  cout << "created MTrigLvl2" << endl;
+
+  //
+  // Initialization of the fPixels array to cero
+  //
+ for(int i=0; i<36; i++){
+    for(int j=0; j<19; j++){
+	fPixels[i][j]=0;
+    }
+  }
+}
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+//  Print Functions
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/******************************************************************************
+ * Just print out the pixels containg in a given trigger cell
+ *
+ *****************************************************************************/
+void MTrigLvl2::PrintCell(Int_t cell)
+{
+   for (int i=0;i<36;i++)
+    {
+      cout << pixels_in_cell[i][cell]-1 << endl;
+    }
+}
+
+/******************************************************************************
+ * Print a table with the staus (pixel is fired or not after Lvl1) for all
+ * the pixels in all the trigger cells
+ *
+ *****************************************************************************/
+void MTrigLvl2::PrintStatus()
+{
+  for(int i=0; i<36; i++){
+    for(int j=0; j<9; j++){
+      cout.width(3);
+      cout << pixels_in_cell[i][j]-1 << ":" << fPixels[i][j]  << " ";
+    } 
+    cout << endl;
+  }
+}
+
+
+
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+//  Set Functions
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/******************************************************************************
+ *
+ * Take the information supplied by the Lvl1 (it reads from the object MMcTrig
+ * i the status of all pixels after Lvl1) and pass it to the Lvl2 (fill the 
+ * array fPixels)
+ *
+ *****************************************************************************/
+void MTrigLvl2::SetLv1(MMcTrig *trig)
+{
+  fMcTrig = trig;
+
+  //fMcTrig->PrintPixelsFirstLevel();
+
+  for(int i=0; i<36; i++){
+    for(int j=0; j<19; j++){
+      int pixel = pixels_in_cell[i][j]-1;
+      fPixels[i][j] = (fMcTrig->IsPixelFired(pixel,0)) ? 1 : 0;
+    }
+  }
+}
+
+
+/******************************************************************************
+ * Set the trigger status ( pixel fired(=1) or not(=0) ) manually for a given
+ * pixel of a given cell
+ *
+ *****************************************************************************/
+void MTrigLvl2::SetPixelFired(Int_t pixel, Int_t fired)
+{
+  for(int i=0; i<36; i++){
+    for(int j=0; j<19; j++){
+	if(pixels_in_cell[i][j]-1==pixel) fPixels[i][j]=fired;
+    }
+  }
+}
+
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+//  Graphical display Functions
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/******************************************************************************
+ * Display the MAGIC Camera a draw the pixels corresponding to a given cell
+ *
+ *****************************************************************************/
+void MTrigLvl2::DrawCell(Int_t cell)
+{
+
+  if(cell>18) return;
+
+  //
+  // Use MCamDisplay class variable for avoiding to create a MCamDisplay each 
+  // time this function is called. Also, now all the hexagons are drawn in 
+  // the same camera pad
+  //
+  if (!fGeomcam)
+    fGeomcam = new MGeomCamMagic;  
+  if (!fCam)
+    {
+      fCam = new MCamDisplay(fGeomcam);
+      fCam->Draw();
+      fCam->DrawPixelNumbers();
+    }
+
+  //fCam->Draw();
+  fCam->Reset();
+
+  int color=0;
+
+  for(int i=0; i<36; i++){
+    color = (fPixels[i][cell]) ? 5 : 3;
+    fCam->SetPix( pixels_in_cell[i][cell]-1, color, 1, 5 );
+  }
+
+  //
+  // Update the display (paint the camera with the new colors)
+  //
+  gPad->Modified();
+  gPad->Update(); 
+}
+
+
+
+/******************************************************************************
+ * Display the MAGIC camera and draw all the pixel fired after Lvl1
+ *
+ *****************************************************************************/
+void MTrigLvl2::DrawLv1()
+{
+  //
+  // Use MCamDisplay class variable for avoiding to create a MCamDisplay each 
+  // time this function is called. Also, now all the hexagons are drawn in 
+  // the same camera pad
+  //
+  if (!fGeomcam)
+    fGeomcam = new MGeomCamMagic;  
+  if (!fCam)
+    {
+      fCam = new MCamDisplay(fGeomcam);
+      fCam->Draw();  
+      fCam->DrawPixelNumbers();
+    }
+
+  //fCam->Draw(); 
+  //fCam->Reset();
+
+  //
+  // Set the array of colors for each pixel (that will be painted after 
+  // updating the dispaly)
+  //
+  int color=0;
+
+  for(int i=0; i<577; i++)
+    {
+      color = (fMcTrig->IsPixelFired(i,0)) ? 5 : 3;
+      fCam->SetPix( i, color, 1, 5 );
+    }
+
+  //
+  // Update the display (paint the camera with the new colors)
+  //
+  gPad->Modified();
+  gPad->Update(); 
+
+}
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+//  Implementation of the Lv2l selection strategies
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/******************************************************************************
+ * For a given cell, just count how many pixels have been fired after Lvl1
+ *
+ *****************************************************************************/
+Int_t MTrigLvl2::GetCellNumberFired(int cell)
+{
+  int size=0;
+ 
+  for(int i=0; i<36; i++){
+    size += fPixels[i][cell];
+  }
+
+  return size;
+  
+}
+
+
+/******************************************************************************
+ * Find the cell which the bigger number of fired pixels
+ *
+ *****************************************************************************/
+Int_t MTrigLvl2::GetBiggerFiredCell()
+{
+  int size=-1;
+  int cell=-1;
+
+  for(int j=0; j<19; j++){
+    if (GetCellNumberFired(j) > size) {
+      size = GetCellNumberFired(j);
+      cell = j;
+    }
+  }
+
+  cout << "size " <<size <<" in cell " << cell << endl;
+
+  return cell;
+  
+}
+
+
+
Index: /trunk/MagicSoft/Mars/manalysis/MTrigLvl2.h
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MTrigLvl2.h	(revision 1740)
+++ /trunk/MagicSoft/Mars/manalysis/MTrigLvl2.h	(revision 1740)
@@ -0,0 +1,50 @@
+/*###########################################################################
+  #
+  #  This file is part of MTrigLvl2 simulation toolkit for simulating the 
+  #  MAGIC Second Level Trigger	
+  #                                           e-mail:  stamerra@pi.infn.it 
+  #                                                    marcos@gae.ucm.es    #
+  #                                             date:  January 2003         #
+  #                                          version:  0.1                  #
+  ###########################################################################*/
+
+
+#include "MParContainer.h"
+
+class MMcTrig;
+class MGeomCamMagic;
+class MCamDisplay;
+
+
+class MTrigLvl2 : public MParContainer
+{
+
+ private:
+  Int_t fPixels[36][19];  // Array with the triggered pixels after Lvl1
+                          // First index:  pixels index in trigger cell       
+                          // Second index: trigger cell number  
+  MMcTrig *fMcTrig;
+  MGeomCamMagic *fGeomcam;  
+  MCamDisplay *fCam;
+
+   
+ public: 
+  MTrigLvl2(const char* name = NULL, const char* title = NULL);
+  
+  
+  void DrawCell(Int_t cell);  
+  void DrawLv1();
+
+  void PrintCell(Int_t cell);
+  void PrintStatus();
+
+  void SetLv1(MMcTrig *trig); 
+  void SetPixelFired(Int_t pixle, Int_t fired);
+ 
+  Int_t GetCellNumberFired(int cell);
+  Int_t GetBiggerFiredCell();
+  
+  ClassDef(MTrigLvl2,0)
+};
+
+
Index: /trunk/MagicSoft/Mars/manalysis/MTrigLvl2FillTask.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MTrigLvl2FillTask.cc	(revision 1740)
+++ /trunk/MagicSoft/Mars/manalysis/MTrigLvl2FillTask.cc	(revision 1740)
@@ -0,0 +1,110 @@
+
+#include "MTrigLvl2FillTask.h"
+#include "MTrigLvl2.h"
+
+
+#include "MParList.h"
+#include "MLog.h"
+#include "MLogManip.h"
+
+#include "MMcEvt.hxx"
+#include "MMcTrig.hxx"
+#include "MMcRunHeader.hxx"
+
+#include <TH1.h>
+#include <stdio.h>
+#include <iostream.h>
+
+ClassImp(MTrigLvl2FillTask);
+
+
+/******************************************************************************
+ * Default constructor
+ *
+ *****************************************************************************/
+MTrigLvl2FillTask::MTrigLvl2FillTask(const char *name, const char *title)
+{
+  fName  = name  ? name  : "MTrigLvl2FillTask";
+  fTitle = title ? title : "Task to Fill the MTrigLvl2 object";
+  
+  AddToBranchList("MMcEvt.fEnergy");
+  AddToBranchList("MMcEvt.fImpact"); 
+  AddToBranchList(Form("%s.fNumFirstLevel", "MMcTrig"));
+  AddToBranchList(Form("%s.fPixelsFirst[73][4]", "MMcTrig"));
+
+
+  h1 = new TH1F("h1","h1",30,0,30);
+} 
+
+
+/******************************************************************************
+ * PreProcess
+ *
+ *****************************************************************************/
+Bool_t MTrigLvl2FillTask::PreProcess (MParList *pList)
+{
+    // connect the raw data with this task
+
+    fMcEvt = (MMcEvt*)pList->FindObject("MMcEvt");
+    if (!fMcEvt)
+    {
+        *fLog << err << dbginf << "MMcEvt not found... exit." << endl;
+        return kFALSE;
+    }
+
+    fMcTrig = (MMcTrig*)pList->FindObject("MMcTrig");
+    if (!fMcTrig)
+    {
+        *fLog << err << dbginf << "MMcTrig not found... exit." << endl;
+        return kFALSE;
+    }
+
+    fMTrigLvl2 = (MTrigLvl2*)pList->FindObject("MTrigLvl2");
+    if (!fMTrigLvl2)
+    {
+        *fLog << err << dbginf << "MTrigLvl2 not found... exit." << endl;
+        return kFALSE;
+    }
+
+    return kTRUE;
+}
+
+
+
+
+/******************************************************************************
+ * Process 
+ *
+ *****************************************************************************/
+Bool_t MTrigLvl2FillTask::Process()
+{
+  //const Float_t energy = fMcEvt->GetEnergy();
+
+  fMTrigLvl2->SetLv1(fMcTrig);
+
+  //fMTrigLvl2->DrawLv1();
+  //fMTrigLvl2->DrawCell(fMTrigLvl2->GetBiggerFiredCell() );
+  //fMTrigLvl2->PrintStatus();
+
+  h1->Fill( fMTrigLvl2->GetCellNumberFired(fMTrigLvl2->GetBiggerFiredCell()) );
+
+
+  return kTRUE;
+}
+
+
+
+/******************************************************************************
+ * PostProcess : Display the histogram
+ *
+ *****************************************************************************/
+Bool_t MTrigLvl2FillTask::PostProcess()
+{ 
+  
+    *fLog << inf << "Filling..." << endl;
+ 
+    h1->Draw();
+      
+    return kTRUE;
+}
+
Index: /trunk/MagicSoft/Mars/manalysis/MTrigLvl2FillTask.h
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MTrigLvl2FillTask.h	(revision 1740)
+++ /trunk/MagicSoft/Mars/manalysis/MTrigLvl2FillTask.h	(revision 1740)
@@ -0,0 +1,35 @@
+#ifndef MARS_MTrigLvl2FillTask
+#define MARS_MTrigLvl2FillTask
+
+#ifndef MARS_MTask
+#include "MTask.h"
+#endif
+
+class MParList;
+class MMcEvt;
+class MMcTrig;
+class MTrigLvl2;
+class TH1F;
+
+class MTrigLvl2FillTask : public MTask
+{
+ private:
+  const MMcEvt  *fMcEvt;
+  MMcTrig *fMcTrig;
+
+  MTrigLvl2 *fMTrigLvl2;
+    
+  TH1F *h1;
+
+ public:
+    MTrigLvl2FillTask(const char *name=NULL, const char *title=NULL);   
+
+    Bool_t PreProcess(MParList *pList);
+    Bool_t Process();
+    Bool_t PostProcess();
+
+    ClassDef(MTrigLvl2FillTask, 0) // Task to calculate the collection area histogram
+};
+
+#endif 
+
Index: /trunk/MagicSoft/Mars/manalysis/Makefile
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/Makefile	(revision 1739)
+++ /trunk/MagicSoft/Mars/manalysis/Makefile	(revision 1740)
@@ -23,5 +23,5 @@
 #
 INCLUDES = -I. -I../mbase -I../mmc -I../mraw -I../mgeom \
-	   -I../mdata -I../mhist 
+	   -I../mdata -I../mhist -I../mgui 
 
 #------------------------------------------------------------------------------
@@ -58,5 +58,7 @@
 	   MSigmabarParam.cc \
 	   MSigmabarCalc.cc \
-	   MApplyPadding.cc
+	   MApplyPadding.cc \
+	   MTrigLvl2.cc \
+           MTrigLvl2FillTask.cc
 
 SRCS    = $(SRCFILES)
Index: /trunk/MagicSoft/Mars/mgui/MCamDisplay.cc
===================================================================
--- /trunk/MagicSoft/Mars/mgui/MCamDisplay.cc	(revision 1739)
+++ /trunk/MagicSoft/Mars/mgui/MCamDisplay.cc	(revision 1740)
@@ -942,2 +942,13 @@
  }
  */
+
+
+// ------------------------------------------------------------------------
+//
+// Function introduced  (31-01-03)
+//
+void MCamDisplay::SetPix(const Int_t pixnum, const Int_t color, Float_t min, Float_t max)
+{ 
+    (*this)[pixnum].SetFillColor(GetColor(color, min, max));
+
+}
Index: /trunk/MagicSoft/Mars/mgui/MCamDisplay.h
===================================================================
--- /trunk/MagicSoft/Mars/mgui/MCamDisplay.h	(revision 1739)
+++ /trunk/MagicSoft/Mars/mgui/MCamDisplay.h	(revision 1740)
@@ -90,4 +90,9 @@
     void SetInvDeepBlueSeaPalette(); // *MENU*
 
+
+    
+    void  SetPix(const Int_t pixnum, const Int_t color, Float_t min, Float_t max);      // New function added by M.Lopez in 31-01-03
+
+
     ClassDef(MCamDisplay, 0) // Displays the magic camera
 };
