Index: trunk/MagicSoft/Mars/mjobs/MJCalibration.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 6064)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 6065)
@@ -101,4 +101,5 @@
 #include <TPaveText.h>
 #include <TPaveStats.h>
+#include <TEnv.h>
 
 #include "MLog.h"
@@ -175,24 +176,5 @@
 const Int_t MJCalibration::gkSpecialPixelsContInstallation = 34057;
 const Int_t MJCalibration::gkThirdBlindPixelInstallation   = 43308;
-
-const Double_t MJCalibration::fgConvFADC2PheMin           = 0.;
-const Double_t MJCalibration::fgConvFADC2PheMax           = 1.5;
-const Double_t MJCalibration::fgConvFADC2PhotMin          = 0.; 
-const Double_t MJCalibration::fgConvFADC2PhotMax          = 10.; 
-const Double_t MJCalibration::fgQEMin                     = 0.;
-const Double_t MJCalibration::fgQEMax                     = 0.3;
-const Double_t MJCalibration::fgArrivalTimeMin            = 1.;
-const Double_t MJCalibration::fgArrivalTimeMax            = 10.;
-
-const Float_t  MJCalibration::fgRefConvFADC2PheInner      = 0.14;       
-const Float_t  MJCalibration::fgRefConvFADC2PheOuter      = 0.4;       
-const Float_t  MJCalibration::fgRefConvFADC2PhotInner     = 0.8; 
-const Float_t  MJCalibration::fgRefConvFADC2PhotOuter     = 3.8; 
-const Float_t  MJCalibration::fgRefQEInner                = 0.18;            
-const Float_t  MJCalibration::fgRefQEOuter                = 0.12;
-const Float_t  MJCalibration::fgRefArrivalTimeInner       = 4.5;            
-const Float_t  MJCalibration::fgRefArrivalTimeOuter       = 5.0;
-const Float_t  MJCalibration::fgRefArrivalTimeRmsInner    = 0.5;            
-const Float_t  MJCalibration::fgRefArrivalTimeRmsOuter    = 0.5;
+const TString MJCalibration::fgReferenceFile = "mjobs/calibrationref.rc";
 // --------------------------------------------------------------------------
 //
@@ -224,4 +206,27 @@
   SetNoStorage(kFALSE);
   SetHistsStorage(kFALSE);
+
+  SetReferenceFile();
+
+  fConvFADC2PheMin           = 0.;
+  fConvFADC2PheMax           = 1.5;
+  fConvFADC2PhotMin          = 0.; 
+  fConvFADC2PhotMax          = 10.; 
+  fQEMin                     = 0.;
+  fQEMax                     = 0.3;
+  fArrivalTimeMin            = 1.;
+  fArrivalTimeMax            = 10.;
+  
+  fRefConvFADC2PheInner      = 0.14;       
+  fRefConvFADC2PheOuter      = 0.4;       
+  fRefConvFADC2PhotInner     = 0.8; 
+  fRefConvFADC2PhotOuter     = 3.8; 
+  fRefQEInner                = 0.18;            
+  fRefQEOuter                = 0.12;
+  fRefArrivalTimeInner       = 4.5;            
+  fRefArrivalTimeOuter       = 5.0;
+  fRefArrivalTimeRmsInner    = 0.5;            
+  fRefArrivalTimeRmsOuter    = 0.5;
+
 }
 
@@ -526,6 +531,6 @@
       // for the datacheck, fix the ranges!!
       //
-      // obj1->SetMinimum(fgChargeMin);
-      // obj1->SetMaximum(fgChargeMax);
+      // obj1->SetMinimum(fChargeMin);
+      // obj1->SetMaximum(fChargeMax);
       //
       // Set the datacheck sizes:
@@ -591,5 +596,5 @@
       //
       //      obj3->SetMinimum(0.);
-      // obj3->SetMaximum(fgChargeMax);
+      // obj3->SetMaximum(fChargeMax);
       //
       // Set the datacheck sizes:
@@ -623,6 +628,6 @@
       // for the datacheck, fix the ranges!!
       //
-      // obj3->SetMinimum(fgChargeMin);
-      // obj3->SetMaximum(fgChargeMax);
+      // obj3->SetMinimum(fChargeMin);
+      // obj3->SetMaximum(fChargeMax);
       //
       // Set the datacheck sizes:
@@ -658,6 +663,6 @@
       // for the datacheck, fix the ranges!!
       //
-      obj5->SetMinimum(fgConvFADC2PheMin);
-      obj5->SetMaximum(fgConvFADC2PheMax);
+      obj5->SetMinimum(fConvFADC2PheMin);
+      obj5->SetMaximum(fConvFADC2PheMax);
       //
       // Set the datacheck sizes:
@@ -690,6 +695,6 @@
       // for the datacheck, fix the ranges!!
       //
-      obj6->SetMinimum(fgQEMin);
-      obj6->SetMaximum(fgQEMax);
+      obj6->SetMinimum(fQEMin);
+      obj6->SetMaximum(fQEMax);
       //
       // Set the datacheck sizes:
@@ -723,6 +728,6 @@
       // for the datacheck, fix the ranges!!
       //
-      obj7->SetMinimum(fgConvFADC2PhotMin);
-      obj7->SetMaximum(fgConvFADC2PhotMax);
+      obj7->SetMinimum(fConvFADC2PhotMin);
+      obj7->SetMaximum(fConvFADC2PhotMax);
       //
       // Set the datacheck sizes:
@@ -757,6 +762,6 @@
       // for the datacheck, fix the ranges!!
       //
-      obj10->SetMinimum(fgArrivalTimeMin);
-      obj10->SetMaximum(fgArrivalTimeMax);
+      obj10->SetMinimum(fArrivalTimeMin);
+      obj10->SetMaximum(fArrivalTimeMax);
       //
       // Set the datacheck sizes:
@@ -789,6 +794,6 @@
       // for the datacheck, fix the ranges!!
       //
-      //      obj11->SetMinimum(fgArrivalTimeMin);
-      //      obj11->SetMaximum(fgArrivalTimeMax);
+      //      obj11->SetMinimum(fArrivalTimeMin);
+      //      obj11->SetMaximum(fArrivalTimeMax);
       //
       // Set the datacheck sizes:
@@ -971,6 +976,6 @@
           // for the datacheck, fix the ranges!!
           //
-          //   obj10->SetMinimum(fgConvFADC2PheMin);
-          //   obj10->SetMaximum(fgConvFADC2PheMax);
+          //   obj10->SetMinimum(fConvFADC2PheMin);
+          //   obj10->SetMaximum(fConvFADC2PheMax);
           //
           // Set the datacheck sizes:
@@ -1003,6 +1008,6 @@
           // for the datacheck, fix the ranges!!
           //
-          //          obj11->SetMinimum(fgQEMin);
-          //          obj11->SetMaximum(fgQEMax);
+          //          obj11->SetMinimum(fQEMin);
+          //          obj11->SetMaximum(fQEMax);
           //
           // Set the datacheck sizes:
@@ -1231,13 +1236,13 @@
 
   if (what == 0)
-    l1 = line.DrawLine(0, fgRefQEInner, x, fgRefQEInner);      
+    l1 = line.DrawLine(0, fRefQEInner, x, fRefQEInner);      
   else if (what == 1)
-    l1 = line.DrawLine(0, fgRefConvFADC2PhotInner, x, fgRefConvFADC2PhotInner);      
+    l1 = line.DrawLine(0, fRefConvFADC2PhotInner, x, fRefConvFADC2PhotInner);      
   else if (what == 2)
-    l1 = line.DrawLine(0, fgRefConvFADC2PheInner, x, fgRefConvFADC2PheInner );
+    l1 = line.DrawLine(0, fRefConvFADC2PheInner, x, fRefConvFADC2PheInner );
   else if (what == 3)
-    l1 = line.DrawLine(0, fgRefArrivalTimeInner, x, fgRefArrivalTimeInner );
+    l1 = line.DrawLine(0, fRefArrivalTimeInner, x, fRefArrivalTimeInner );
   else if (what == 4)
-    l1 = line.DrawLine(0, fgRefArrivalTimeRmsInner, x, fgRefArrivalTimeRmsInner );
+    l1 = line.DrawLine(0, fRefArrivalTimeRmsInner, x, fRefArrivalTimeRmsInner );
   
   if (geom->InheritsFrom("MGeomCamMagic"))
@@ -1248,17 +1253,17 @@
         {
         case 0:
-          line.DrawLine(x2, fgRefQEOuter, 398, fgRefQEOuter);      
+          line.DrawLine(x2, fRefQEOuter, 398, fRefQEOuter);      
           break;
         case 1:
-          line.DrawLine(x2, fgRefConvFADC2PhotOuter, 398, fgRefConvFADC2PhotOuter );      
+          line.DrawLine(x2, fRefConvFADC2PhotOuter, 398, fRefConvFADC2PhotOuter );      
           break;
         case 2:
-          line.DrawLine(x2, fgRefConvFADC2PheOuter, 398, fgRefConvFADC2PheOuter);
+          line.DrawLine(x2, fRefConvFADC2PheOuter, 398, fRefConvFADC2PheOuter);
           break;
         case 3:
-          line.DrawLine(x2, fgRefArrivalTimeOuter, 398, fgRefArrivalTimeOuter);
+          line.DrawLine(x2, fRefArrivalTimeOuter, 398, fRefArrivalTimeOuter);
           break;
         case 4:
-          line.DrawLine(x2, fgRefArrivalTimeRmsOuter, 398, fgRefArrivalTimeRmsOuter);
+          line.DrawLine(x2, fRefArrivalTimeRmsOuter, 398, fRefArrivalTimeRmsOuter);
           break;
         }
@@ -1382,5 +1387,29 @@
     SetGeometry(GetEnv("Geometry", fGeometry));
 
-    return kTRUE;
+    fReferenceFile = GetEnv("ReferenceFile",fReferenceFile.Data());
+
+    TEnv refenv(fReferenceFile);
+    
+    fConvFADC2PheMin           = refenv.GetValue("ConvFADC2PheMin",fConvFADC2PheMin);
+    fConvFADC2PheMax           = refenv.GetValue("ConvFADC2PheMax",fConvFADC2PheMax);
+    fConvFADC2PhotMin          = refenv.GetValue("ConvFADC2PhotMin",fConvFADC2PhotMin);
+    fConvFADC2PhotMax          = refenv.GetValue("ConvFADC2PhotMax",fConvFADC2PhotMax);
+    fQEMin                     = refenv.GetValue("QEMin",fQEMin);
+    fQEMax                     = refenv.GetValue("QEMax",fQEMax);
+    fArrivalTimeMin            = refenv.GetValue("ArrivalTimeMin",fArrivalTimeMin);
+    fArrivalTimeMax            = refenv.GetValue("ArrivalTimeMax",fArrivalTimeMax);
+						                        
+    fRefConvFADC2PheInner      = refenv.GetValue("RefConvFADC2PheInner",fRefConvFADC2PheInner);
+    fRefConvFADC2PheOuter      = refenv.GetValue("RefConvFADC2PheOuter",fRefConvFADC2PheOuter);
+    fRefConvFADC2PhotInner     = refenv.GetValue("RefConvFADC2PhotInner",fRefConvFADC2PhotInner);
+    fRefConvFADC2PhotOuter     = refenv.GetValue("RefConvFADC2PhotOuter",fRefConvFADC2PhotOuter);
+    fRefQEInner                = refenv.GetValue("RefQEInner",fRefQEInner);
+    fRefQEOuter                = refenv.GetValue("RefQEOuter",fRefQEOuter);
+    fRefArrivalTimeInner       = refenv.GetValue("RefArrivalTimeInner",fRefArrivalTimeInner);
+    fRefArrivalTimeOuter       = refenv.GetValue("RefArrivalTimeOuter",fRefArrivalTimeOuter);
+    fRefArrivalTimeRmsInner    = refenv.GetValue("RefArrivalTimeRmsInner",fRefArrivalTimeRmsInner);
+    fRefArrivalTimeRmsOuter    = refenv.GetValue("RefArrivalTimeRmsOuter",fRefArrivalTimeRmsOuter);
+				 
+    return kTRUE;		 
 }
 
Index: trunk/MagicSoft/Mars/mjobs/MJCalibration.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibration.h	(revision 6064)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibration.h	(revision 6065)
@@ -64,23 +64,27 @@
   static const Int_t gkThirdBlindPixelInstallation;     //! Run number upon which third blind pixel was installed  
 
-  static const Double_t fgConvFADC2PheMin;              //! Histogram minimum for conversion factor to phes
-  static const Double_t fgConvFADC2PheMax;              //! Histogram maximum for conversion factor to phes
-  static const Double_t fgConvFADC2PhotMin;             //! Histogram minimum for conversion factor to phs
-  static const Double_t fgConvFADC2PhotMax;             //! Histogram maixmum for conversion factor to phs
-  static const Double_t fgQEMin;                        //! Histogram minimum for quantum efficiency
-  static const Double_t fgQEMax;                        //! Histogram maximum for quantum efficiency
-  static const Double_t fgArrivalTimeMin;               //! Histogram minimum for arrival times 
-  static const Double_t fgArrivalTimeMax;               //! Histogram maximum for arrival times
-  
-  static const Float_t  fgRefConvFADC2PheInner;         //! Reference value for the conversion factor to phes - inner
-  static const Float_t  fgRefConvFADC2PheOuter;         //! Reference value for the conversion factor to phes - outer
-  static const Float_t  fgRefConvFADC2PhotInner;        //! Reference value for the conversion factor to phs - inner
-  static const Float_t  fgRefConvFADC2PhotOuter;        //! Reference value for the conversion factor to phs - outer
-  static const Float_t  fgRefQEInner;                   //! Reference value for the quantum eff. cascades - inner
-  static const Float_t  fgRefQEOuter;                   //! Reference value for the quantum eff. cascades - outer
-  static const Float_t  fgRefArrivalTimeInner;          //! Reference value for the arrival time - inner
-  static const Float_t  fgRefArrivalTimeOuter;          //! Reference value for the arrival time - outer
-  static const Float_t  fgRefArrivalTimeRmsInner;       //! Reference value for the arrival time - inner
-  static const Float_t  fgRefArrivalTimeRmsOuter;       //! Reference value for the arrival time - outer
+  static const TString  fgReferenceFile;   //! default for fReferenceFile ("mjobs/calibrationref.rc")
+
+  Double_t fConvFADC2PheMin;               //! Histogram minimum for conversion factor to phes
+  Double_t fConvFADC2PheMax;               //! Histogram maximum for conversion factor to phes
+  Double_t fConvFADC2PhotMin;              //! Histogram minimum for conversion factor to phs
+  Double_t fConvFADC2PhotMax;              //! Histogram maixmum for conversion factor to phs
+  Double_t fQEMin;                         //! Histogram minimum for quantum efficiency
+  Double_t fQEMax;                         //! Histogram maximum for quantum efficiency
+  Double_t fArrivalTimeMin;                //! Histogram minimum for arrival times 
+  Double_t fArrivalTimeMax;                //! Histogram maximum for arrival times
+  					   
+  Float_t  fRefConvFADC2PheInner;          //! Reference value for the conversion factor to phes - inner
+  Float_t  fRefConvFADC2PheOuter;          //! Reference value for the conversion factor to phes - outer
+  Float_t  fRefConvFADC2PhotInner;         //! Reference value for the conversion factor to phs - inner
+  Float_t  fRefConvFADC2PhotOuter;         //! Reference value for the conversion factor to phs - outer
+  Float_t  fRefQEInner;                    //! Reference value for the quantum eff. cascades - inner
+  Float_t  fRefQEOuter;                    //! Reference value for the quantum eff. cascades - outer
+  Float_t  fRefArrivalTimeInner;           //! Reference value for the arrival time - inner
+  Float_t  fRefArrivalTimeOuter;           //! Reference value for the arrival time - outer
+  Float_t  fRefArrivalTimeRmsInner;        //! Reference value for the arrival time - inner
+  Float_t  fRefArrivalTimeRmsOuter;        //! Reference value for the arrival time - outer
+					   
+  TString  fReferenceFile;                 // File name containing the reference values
 
   MRunIter       *fRuns;                                // Calibration files
@@ -213,4 +217,6 @@
   void SetHistsStorage ( const Bool_t b=kTRUE ) { b ? SETBIT(fStorage,kHistsStorage) : CLRBIT(fStorage,kHistsStorage); }
   
+  void SetReferenceFile( const TString ref=fgReferenceFile ) { fReferenceFile = ref; }
+
   // Precessing
   Bool_t ReadCalibrationCam();
