/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/src/BDSMagnetColours.cc

00001 #include "BDSMagnetColours.hh"
00002 
00003 #include "globals.hh"            // geant4 types / globals
00004 #include <map>
00005 #include "G4Colour.hh"
00006 
00007 
00008 BDSMagnetColours* BDSMagnetColours::_instance = 0;
00009 
00010 BDSMagnetColours* BDSMagnetColours::Instance()
00011 {
00012   if (_instance == 0)
00013     {_instance = new BDSMagnetColours();}
00014   return _instance;
00015 }
00016 
00017 BDSMagnetColours::BDSMagnetColours()
00018 {
00019   magnetName[2] = "quadrupole";
00020   magnetName[3] = "sextupole";
00021   magnetName[4] = "octupole";
00022   magnetName[5] = "decapole";
00023   
00024   colours["default"]          = new G4Colour(1,     0.078, 0.576); // hot warning pink
00025   colours["sectorbend"]       = new G4Colour(0,     0.4,   0.8);   // blue
00026   colours["rectangularbend"]  = new G4Colour(0,     0.4,   0.8);   // blue
00027   colours["quadrupole"]       = new G4Colour(1,     0,     0);     // red
00028   colours["sextupole"]        = new G4Colour(1,     0.8,   0);     // yellow
00029   colours["octupole"]         = new G4Colour(0,     0.6,   0.3);   // green
00030   colours["decapole"]         = new G4Colour(0.4,   0,     0.8);   // green
00031   colours["solenoid"]         = new G4Colour(1,     0.549, 0);     // orange
00032   colours["multipole"]        = new G4Colour(0.466, 0.533, 0.6);   // slate gray
00033   colours["rfcavity"]         = new G4Colour(0.466, 0.533, 0.6);   // slate gray
00034   colours["muspoiler"]        = new G4Colour(0,     0.807, 0.819); // "light blue" / tab blue
00035   colours["vkicker"]          = new G4Colour(0,     0.4,   0.8);   // blue
00036   colours["hkicker"]          = new G4Colour(0,     0.4,   0.8);   // blue
00037   colours["coil"]             = new G4Colour(0.722, 0.451, 0.2);   // copper
00038 }
00039 
00040 G4Colour* BDSMagnetColours::GetMagnetColour(G4String magnetTypeName)
00041 {
00042   if (colours.find(magnetTypeName) == colours.end())
00043     {// colour not found
00044       return colours["default"];
00045     }
00046   else
00047     {// colour must therefore exist
00048       return colours[magnetTypeName];
00049     }
00050 }
00051 
00052 G4Colour* BDSMagnetColours::GetMagnetColour(G4int magnetOrder)
00053 {
00054   if (magnetOrder < 2)
00055     { // too low order
00056       return colours["default"];
00057     }
00058   else if (magnetOrder > 5)
00059     { // high order multipole
00060       return colours["multipole"];
00061     }
00062   else
00063     { // specified order
00064       return colours[magnetName[magnetOrder]];
00065     }
00066 }

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7