Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 4880)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 4881)
@@ -33,4 +33,7 @@
      - implemented Nicola's solution for the compiling problem of the 
        TArrayD's 
+
+   * mcalib/MCalibColorSet.cc
+     - implemented intensity recognition
 
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibColorSet.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibColorSet.cc	(revision 4880)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibColorSet.cc	(revision 4881)
@@ -123,7 +123,32 @@
   enum ColorCode_t 
     {
+      k01LedGreen  = BIT(15),
+      k1LedGreen   = BIT(14),
+      k2LedGreen   = BIT(1 ),
+      k3LedGreen   = k1LedGreen & k2LedGreen,
       k5LedGreen   = BIT(0 ),
-      k5LedUV      = BIT(11),
-      k5LedBlue    = BIT(13),
+      k1LedUV      = BIT(3 ),
+      k2LedUV      = BIT(4 ),
+      k3LedUV      = k1LedUV & k2LedUV,
+      k5LedUV1     = BIT(11),
+      k5LedUV2     = BIT(12),
+      k10LedUV     = k5LedUV1 & k5LedUV2,
+      k11LedUV     = k10LedUV & k1LedUV,
+      k12LedUV     = k10LedUV & k2LedUV,
+      k13LedUV     = k10LedUV & k1LedUV,
+      k01LedBlue   = BIT(8 ),
+      k1LedBlue    = BIT(10),
+      k2LedBlue    = BIT(7 ),
+      k3LedBlue    = k1LedBlue & k2LedBlue,
+      k5LedBlue1   = BIT(13),
+      k5LedBlue2   = BIT(2 ),      
+      k5LedBlue3   = BIT(5 ),
+      k5LedBlue4   = BIT(6 ),
+      k10LedBlue   = k5LedBlue1 & k5LedBlue2,
+      k15LedBlue   = k10LedBlue & k5LedBlue3,
+      k20LedBlue   = k15LedBlue & k5LedBlue4,
+      k21LedBlue   = k20LedBlue & k1LedBlue,
+      k22LedBlue   = k20LedBlue & k2LedBlue,
+      k23LedBlue   = k22LedBlue & k1LedBlue,
       kCT1Pulser   = BIT(16)
     };
@@ -166,19 +191,88 @@
   
   if (color!=kNONE)
-    *fLog << inf << "Color determined from the run-number... ";
+    {
+      *fLog << inf << "Color determined from the run-number... ";
+      switch (color)
+        {
+        case kGREEN: *fLog << "Green."; fPattern |= k5LedGreen; break;
+        case kBLUE:  *fLog << "Blue.";  fPattern |= k5LedBlue1; break;
+        }
+      *fLog << endl;
+      fIsValid  = kTRUE;
+      return kTRUE;
+    }
   else
     {
       const TString proj = header->GetProjectName();
       
-      if (proj.Contains("gree",TString::kIgnoreCase))
-        color = kGREEN;
-      if (proj.Contains("blue",TString::kIgnoreCase))
-        color = kBLUE;
-      if (proj.Contains("uv",TString::kIgnoreCase))
-        color = kUV;
-      if (proj.Contains("ct1",TString::kIgnoreCase))
-        color = kCT1;
+      // Possible green combinations
+      if (proj.Contains("0.1ledgree",TString::kIgnoreCase))
+        { fPattern |= k01LedGreen; color = kGREEN;    }
+      if (proj.Contains("1ledgree",TString::kIgnoreCase))
+        { fPattern |= k1LedGreen; color = kGREEN;    }
+      if (proj.Contains("2ledgree",TString::kIgnoreCase))
+        { fPattern |= k2LedGreen; color = kGREEN;    }
+      if (proj.Contains("3ledgree",TString::kIgnoreCase))
+        { fPattern |= k3LedGreen; color = kGREEN;    }
+      if (proj.Contains("5ledgree",TString::kIgnoreCase))
+        { fPattern |= k5LedGreen; color = kGREEN;    }
+
+      // Possible green combinations
+      if (proj.Contains("0.1ledblue",TString::kIgnoreCase))
+        { fPattern |= k01LedBlue; color = kBLUE;    }
+      if (proj.Contains("1ledblue",TString::kIgnoreCase))
+        { fPattern |= k1LedBlue; color = kBLUE;    }
+      if (proj.Contains("2ledblue",TString::kIgnoreCase))
+        { fPattern |= k2LedBlue; color = kBLUE;    }
+      if (proj.Contains("3ledblue",TString::kIgnoreCase))
+        { fPattern |= k3LedBlue; color = kBLUE;    }
+      if (proj.Contains("5ledblue",TString::kIgnoreCase))
+        { fPattern |= k5LedBlue1; color = kBLUE;    }
+      if (proj.Contains("10ledblue",TString::kIgnoreCase))
+        { fPattern |= k10LedBlue; color = kBLUE;    }
+      if (proj.Contains("15ledblue",TString::kIgnoreCase))
+        { fPattern |= k15LedBlue; color = kBLUE;    }
+      if (proj.Contains("20ledblue",TString::kIgnoreCase))
+        { fPattern |= k20LedBlue; color = kBLUE;    }
+      if (proj.Contains("21ledblue",TString::kIgnoreCase))
+        { fPattern |= k21LedBlue; color = kBLUE;    }
+      if (proj.Contains("22ledblue",TString::kIgnoreCase))
+        { fPattern |= k22LedBlue; color = kBLUE;    }
+      if (proj.Contains("23ledblue",TString::kIgnoreCase))
+        { fPattern |= k23LedBlue; color = kBLUE;    }
       
-      *fLog << inf << "Color determined from project-name (" << proj << ")... ";
+      // Possible UV combinations
+      if (proj.Contains("1leduv",TString::kIgnoreCase))
+        { fPattern |= k1LedUV; color = kUV;    }
+      if (proj.Contains("2leduv",TString::kIgnoreCase))
+        { fPattern |= k2LedUV; color = kUV;    }
+      if (proj.Contains("3leduv",TString::kIgnoreCase))
+        { fPattern |= k3LedUV; color = kUV;    }
+      if (proj.Contains("5leduv",TString::kIgnoreCase))
+        { fPattern |= k5LedUV1; color = kUV;    }
+      if (proj.Contains("10leduv",TString::kIgnoreCase))
+        { fPattern |= k10LedUV; color = kUV;    }
+      if (proj.Contains("11leduv",TString::kIgnoreCase))
+        { fPattern |= k11LedUV; color = kUV;    }
+      if (proj.Contains("12leduv",TString::kIgnoreCase))
+        { fPattern |= k12LedUV; color = kUV;    }
+      if (proj.Contains("13leduv",TString::kIgnoreCase))
+        { fPattern |= k13LedUV; color = kUV;    }
+
+      if (color != kNONE)
+        *fLog << inf << "Color and Intensity determined from project-name (" << proj << ")... ";          
+      else
+        {
+          if (proj.Contains("gree",TString::kIgnoreCase))
+            { fPattern |= k5LedGreen; color = kGREEN; }
+          if (proj.Contains("blue",TString::kIgnoreCase))
+            { fPattern |=k5LedBlue1; color = kBLUE;}
+          if (proj.Contains("uv",TString::kIgnoreCase))
+            { fPattern |=k5LedUV1  ; color = kUV;  }
+          if (proj.Contains("ct1",TString::kIgnoreCase))
+            { fPattern |=kCT1Pulser; color = kCT1; }
+          if (color != kNONE)
+            *fLog << inf << "Color determined from project-name (" << proj << ")... ";
+        }
     }
   
@@ -193,8 +287,8 @@
   switch (color)
     {
-    case kGREEN: *fLog << "Green."; fPattern |= k5LedGreen; break;
-    case kBLUE:  *fLog << "Blue.";  fPattern |= k5LedBlue ; break;
-    case kUV:    *fLog << "UV.";    fPattern |= k5LedUV   ; break;
-    case kCT1:   *fLog << "CT1.";   fPattern |= kCT1Pulser; break;
+    case kGREEN: *fLog << "Green.";  break;
+    case kBLUE:  *fLog << "Blue.";   break;
+    case kUV:    *fLog << "UV.";     break;
+    case kCT1:   *fLog << "CT1.";    break;
     }
   *fLog << endl;
