source: branches/removing_cpp11_features/macros/fact/fact_trigger.C@ 19127

Last change on this file since 19127 was 9877, checked in by tbretz, 14 years ago
File size: 2.2 KB
Line 
1void fact_trigger()
2{
3 MLut lut;
4
5 // read all trigger patches
6 lut.ReadFile("resmc/fact-trigger-all.txt");
7 // read only the regular trigger patches
8 //lut.ReadFile("resmc/fact-trigger-sum.txt");
9
10 // For crosscheck print the table to the console
11 lut.Print();
12
13 // Create FACT camera geometry
14 MGeomCamFACT fact;
15
16 // create to camera histograms, one for the colors and one for the patch number
17 MHCamera h(fact);
18 MHCamera p(fact);
19 h.SetTitle("FACT trigger layout in MARS");
20
21 // remove all obsolete stuff around
22 h.SetStats(kFALSE);
23 h.SetBit(MHCamera::kNoLegend);
24
25 // Number of maximum colors
26 Int_t n = 99;
27
28 for (int i=0; i<lut.GetNumRows(); i++)
29 {
30 // Get the i-th patch
31 MArrayI &row = lut.GetRow(i);
32
33 // Check for all colors already used in the neighborhood
34 MArrayI col(n+1);
35 for (int j=0; j<9; j++)
36 {
37 if (row[j]==1438 || row[j]==1439)
38 continue;
39
40 for (int k=0; k<fact[row[j]].GetNumNeighbors(); k++)
41 col[TMath::Nint(h.GetBinContent(fact[row[j]].GetNeighbor(k)+1))]=1;
42 }
43
44 // Find the first unused color
45 int k = 1;
46 for (; k<n+1; k++)
47 if (col[k]<0.5)
48 break;
49
50 // This is just to "adjust" the colors a bit more to the palette
51 // For simplicity (rounding below) the adjustment must not exceed +- 0.5
52 // If the number of needed colors is different this needs adjustment!
53 Double_t c[99] = { 1.0, 2.4, 3.4, 4.1, 5.0 };
54
55 // Loop over all nine pixles in the patch
56 for (int j=0; j<9; j++)
57 {
58 if (row[j]==1438 || row[j]==1439)
59 continue;
60
61 h.SetBinContent(row[j]+1, c[k-1]); // Color (For a funny symmetry replace it by row[0]%6)
62 p.SetBinContent(row[j]+1, i); // Patch number
63 h.SetUsed(row[j]); // Switch on that the color is shown
64 }
65 }
66
67 // Plot the colors and the numbers on top
68 h.DrawCopy("");
69 p.DrawCopy("same integer");
70
71 // Adjust the canvas attributes
72 gPad->SetBorderMode(0);
73 gPad->SetFillColor(kWhite);
74}
Note: See TracBrowser for help on using the repository browser.