Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 6230)
+++ trunk/MagicSoft/Mars/Changelog	(revision 6231)
@@ -20,4 +20,10 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2005/02/03 Markus Gaug
+
+   * mcalib/MCalibColorSet.[h,cc]
+     - implement possibility to set colour explicitely (e.g. for MC).
+
 
  2005/02/02 Markus Gaug
Index: trunk/MagicSoft/Mars/callisto.rc
===================================================================
--- trunk/MagicSoft/Mars/callisto.rc	(revision 6230)
+++ trunk/MagicSoft/Mars/callisto.rc	(revision 6231)
@@ -56,4 +56,11 @@
 # -------------------------------------------------------------------------
 MJPedestalC1.ExtractSignal: MExtractTimeAndChargeDigitalFilter
+# -------------------------------------------------------------------------
+# Define here an extractor which can be used for the December 04 data.
+# -------------------------------------------------------------------------
+#MJPedestalC1.ExtractSignal: MExtractTimeAndChargeSpline
+#MJCalibration.ExtractSignal.Amplitude
+#MJCalibrateSignal.ExtractSignal.Amplitude
+#MJCalibrateSignal.ExtractInterlaced.Amplitude
 
 # -------------------------------------------------------------------------
@@ -182,4 +189,7 @@
 # Use this to change the behaviour of the calibration
 # -------------------------------------------------------------------------
+# Type if you set a colour explicitely from outside (only for MC!!!)
+#MJCalibration.MCalibColorSet.ExplicitColor: green,blue,uv,ct1
+
 #MJCalibration.MCalibrationChargeCalc.ChargeLimit:        2.5
 #MJCalibration.MCalibrationChargeCalc.ChargeErrLimit:     0
@@ -304,4 +314,6 @@
 # Type of used data format: raw,root,MC
 #MJCalibrateSignal.DataType: Root
+# Type if you set a colour explicitely from outside (only for MC!!!)
+#MJCalibrateSignal.MCalibColorSet.ExpicitColor: green,blue,uv,ct1
 #MJCalibrateSignal.MCalibrateData.PedestalFlag: Event
 #MJCalibrateSignal.MCalibrateData.CalibrationMode: Default
Index: trunk/MagicSoft/Mars/mcalib/MCalibColorSet.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibColorSet.cc	(revision 6230)
+++ trunk/MagicSoft/Mars/mcalib/MCalibColorSet.cc	(revision 6231)
@@ -65,5 +65,5 @@
 //
 MCalibColorSet::MCalibColorSet(const char *name, const char *title)
-  : fPattern(0), fHeader(0)
+    : fPattern(0), fHeader(0), fIsExplicitColor(kFALSE)
 {
   fName  = name  ? name  : "MCalibColorSet";
@@ -76,8 +76,11 @@
 {
   
-  fColor    = MCalibrationCam::kNONE;
-  fStrength = -1.;
-  fIsValid  = kFALSE;
-
+  fIsValid         = kFALSE;
+
+  if (fIsExplicitColor)
+    return;
+
+  fColor           = MCalibrationCam::kNONE;
+  fStrength        = -1.;
 }
 
@@ -169,4 +172,10 @@
     }
  
+  if (fIsExplicitColor)
+    {
+      fIsValid = kTRUE;
+      return kTRUE;
+    }
+
   const Int_t num = header->GetRunNumber();
 
@@ -535,2 +544,24 @@
   return kTRUE;
 }
+
+Int_t MCalibColorSet::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
+{
+
+  Bool_t rc = kFALSE;
+
+  if (IsEnvDefined(env, prefix, "ExplicitColor", print))
+    {
+      TString dat = GetEnvValue(env, prefix, "ExplicitColor", "");
+      if (dat.BeginsWith("green", TString::kIgnoreCase))
+        SetExplicitColor(MCalibrationCam::kGREEN);
+      if (dat.BeginsWith("blue", TString::kIgnoreCase))
+        SetExplicitColor(MCalibrationCam::kBLUE);
+      if (dat.BeginsWith("uv", TString::kIgnoreCase))
+        SetExplicitColor(MCalibrationCam::kUV);
+      if (dat.BeginsWith("ct1", TString::kIgnoreCase))
+        SetExplicitColor(MCalibrationCam::kCT1);
+      rc = kTRUE;
+    }
+
+  return rc;
+}
Index: trunk/MagicSoft/Mars/mcalib/MCalibColorSet.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibColorSet.h	(revision 6230)
+++ trunk/MagicSoft/Mars/mcalib/MCalibColorSet.h	(revision 6231)
@@ -29,5 +29,6 @@
 
   Bool_t fIsValid;                             //  Have to set the pulse pattern?
-
+  Bool_t fIsExplicitColor;                     //  Is colour set explicitely from outside (for MC)? 
+  
   void CheckAndSet(const TString &str, const char *regexp, MCalibrationCam::PulserColor_t col, Float_t strength);
 
@@ -35,4 +36,6 @@
   Int_t  PreProcess(MParList *pList);
   Int_t  Process();
+
+  Int_t  ReadEnv(const TEnv &env, TString prefix, Bool_t print);
   
 public:
@@ -41,4 +44,11 @@
   
   void Clear(const Option_t *o="");
+
+  void SetExplicitColor( const MCalibrationCam::PulserColor_t col, const Float_t strength=10.) 
+    {
+      fIsExplicitColor = kTRUE;
+      fColor    = col;
+      fStrength = 10.;
+    }
   
   ClassDef(MCalibColorSet, 0) // Task to workaround missing colors
