CMS 3D CMS Logo

fwPaletteExtra.cc
Go to the documentation of this file.
2 
3 
4 #include "TROOT.h"
5 #include "TColor.h"
6 #include "TMath.h"
7 
8 
9 
10 namespace fireworks {
11 
12 //static unsigned int rSize = 17;
13 
15  float(* colVals)[3];
16  bool whiteBg;
18  PaletteExtraTopBottomIndices(float(* iColors)[3], bool iIsWhiteBg, FWColorManager::EPalette iId):colVals(iColors), whiteBg(iIsWhiteBg), id(iId){};
19 
20  void set(int i, Color_t cidx) {
21 
22  if (whiteBg) {
23  //if (id == FWColorManager::kFall || id == FWColorManager::kArctic)
24  const TColor * c = gROOT->GetColor(cidx);
25  colVals[i][0] = c->GetRed();
26  colVals[i][1] = c->GetGreen();
27  colVals[i][2] = c->GetBlue();
28  if (id != FWColorManager::kPurple)
29  TColor::HLStoRGB(c->GetHue(), 1.2*c->GetLight(), c->GetSaturation(), colVals[i][0], colVals[i][1], colVals[i][2]);
30 
31  /*
32 
33  cidx = TColor::GetColorBright(cidx);
34  TColor* cb = gROOT->GetColor(cidx);
35  colVals[i+rSize][0] = cb->GetRed();
36  colVals[i+rSize][1] = cb->GetGreen();
37  colVals[i+rSize][2] = cb->GetBlue();
38  */
39 
40  }
41  else {
42 
43  const TColor * c = gROOT->GetColor(cidx);
44  colVals[i][0] = c->GetRed();
45  colVals[i][1] = c->GetGreen();
46  colVals[i][2] = c->GetBlue();
47  /*
48  cidx = TColor::GetColorDark(cidx);
49  const TColor * cd = gROOT->GetColor(cidx);
50  colVals[i+rSize][0] = cd->GetRed();
51  colVals[i+rSize][1] = cd->GetGreen();
52  colVals[i+rSize][2] = cd->GetBlue();
53  */
54  }
55  }
56 
57 //______________________________________________________________________________
58 
59 
60 
61  void InitArctic(){
62  // set muon geometry gray
63  set(0, kYellow+2);
64  set(1, kMagenta-3);
65  set(2, kCyan+3);
66  set(3, kAzure+7);
67  set(4, kAzure+8);
68 
69  set(5, kAzure+3);// jets, met
70  set(6, kAzure-3);
71  set(7, kOrange+7);
72  set(8, kAzure);// jets, met
73  set(9, kBlue-1);
74  set(10, kBlue-7);
75  set(11, kTeal-1);
76  set(12, kTeal-7);
77  set(13, kCyan-7);
78  set(14, kAzure+10);
79  // set(16, kOrange);
80  }
81 
82 //______________________________________________________________________________
83 
84 
85  void InitFall()
86  {
87  set(0, kYellow -4); //vertices, jets
88  set(1, kRed +1);
89  set(2, kMagenta+3);
90  set(3, kGreen + 2);
91  set(4, kBlue +2);
92  set(5, kOrange -5);//hcal
93  set(6, kOrange -8);
94  set(7, kMagenta -1);
95  set(8, kRed -2); // muon, ecal, met
96  set(9, kCyan +2); // tracks
97 
98 
99  int j = 2;
100  for (int i = 10; i < 15; ++i)
101  {
102  set(i, kRed -j);
103  j++;
104 
105  }
106  }
107 
108  void InitSpring()
109  {
110  set(0, kRed);// jet
111  set(1, kOrange-2);
112  set(2, kRed-7);
113  set(3, kPink+2);
114  set(4, kOrange-7);
115  set(5, kSpring+5);//hcal
116 
117  set(6, kSpring);
118  set(7, kMagenta); // electrons
119  set(8, kSpring +4); //ecal, muons
120  set(9, kGreen+2 );
121  set(10, kSpring +3);
122  set(11,kGreen -5 );
123  set(12,kGreen -6 );
124  set(13,kGreen -7 );
125  set(14, kTeal-5);
126  }
127 
129  {
130  set(0, kGreen-7);
131  set(1, kRed +1);
132  set(2, kMagenta+3);
133  set(3, kCyan + 2);
134  set(4, kBlue +2);
135  set(5, kViolet -5);
136  set(6, kViolet -6);
137  set(7, kViolet -7);
138  set(8, kGray+1); //ecal, muo
139  set(9, kPink-8); //tracks
140  set(10, kBlue-8);
141  set(11, kBlue-4);
142  set(12, kBlue-2);
143  set(13, kViolet+8);
144  set(14, kViolet +10);
145  }
146 
147 };
148 
149 
150 
151 void
152 GetColorValuesForPaletteExtra(float(* iColors)[3], unsigned int iSize, FWColorManager::EPalette id, bool isWhiteBg)
153 {
154  PaletteExtraTopBottomIndices p(iColors, isWhiteBg, id);
155  switch (id) {
157  p.InitArctic();
158  break;
160  p.InitFall();
161  break;
163  p.InitSpring();
164  break;
165 
167  p.InitPurple();
168  break;
169  default:
170  break;
171  }
172 
173 
174  iSize = iSize/2;
175  unsigned int lastIdx = iSize -2;
176  if (isWhiteBg)
177  {
178  for (unsigned int i = 0; i<lastIdx; ++i) {
179 
180  float s = 1.2;
181  float r = TMath::Min(1.f,s* iColors[i][0]);
182  float g = TMath::Min(1.f,s *iColors[i][1]);
183  float b = TMath::Min(1.f,s *iColors[i][2]);
184 
185 
186  iColors[i][0] = r;
187  iColors[i][1] = g;
188  iColors[i][2] = b;
189 
190 
191  float value = 1.7;
192  r = TMath::Power(r, (2.5 - value)/2.5);
193  g = TMath::Power(g, (2.5 - value)/2.5);
194  b = TMath::Power(b, (2.5 - value)/2.5);
195  /*
196  s = 1.2;
197  r = TMath::Min(1.f,s* iColors[i][0]);
198  g = TMath::Min(1.f,s *iColors[i][1]);
199  b = TMath::Min(1.f,s *iColors[i][2]);
200  */
201 
202  r = TMath::Min(1.f, r);
203  g = TMath::Min(1.f, g);
204  b = TMath::Min(1.f, b);
205 
206  iColors[i + iSize][0] = r;
207  iColors[i + iSize][1] = g;
208  iColors[i + iSize][2] = b;
209  }
210  }
211  else {
212  for (unsigned int i = 0; i<lastIdx; ++i) {
213  // TColor* c = gROOT->GetColor(i);
214  float s = 0.4;
215  float r = s* iColors[i][0];
216  float g = s *iColors[i][1];
217  float b = s * iColors[i][2];
218 
219 
220  // printf("[%d] (%.1f, %.1f, %.1f) => ", i, r, g, b);
221  float value = -0.5;
222  r = TMath::Power( r, (2.5 - value)/2.5);
223  g = TMath::Power(g, (2.5 - value)/2.5);
224  b = TMath::Power(b, (2.5 - value)/2.5);
225 
226 
227  // printf(" (%.1f, %.1f, %.1f) \n", r, g, b);
228  //TColor::HLStoRGB(c->GetHue(), c->GetSaturation(), c->GetLight()*0.8, r, g, b);
229  iColors[i + iSize][0] = r;
230  iColors[i + iSize][1] = g;
231  iColors[i + iSize][2] = b;
232 
233  }
234  }
235 }
236 
237 }
T Min(T a, T b)
Definition: MathUtil.h:39
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
void GetColorValuesForPaletteExtra(float(*iColors)[3], unsigned int iSize, FWColorManager::EPalette id, bool isWhiteBg)
double f[11][100]
Definition: value.py:1
double b
Definition: hdecay.h:120
PaletteExtraTopBottomIndices(float(*iColors)[3], bool iIsWhiteBg, FWColorManager::EPalette iId)