heatMap.C
Go to the documentation of this file.
1 #include <iostream.h>
2 #include <math.h>
3 
4 void heatMap(string input) {
5  gROOT->ForceStyle();
6 
7  TChain *ch=new TChain("t");
8  ch->SetMakeClass(1); //<===== important
9  ch->Add(input.c_str());
10 
11  int truelabel=0;
12  int chosenlabel=0;
13 
14  ch->SetBranchAddress("truelabel",&truelabel);
15  ch->SetBranchAddress("chosenlabel",&chosenlabel);
16 
17  TH2D *heatmap= new TH2D( "heatmap", "", 15,0,15,15,0,15);
18 
19  char *interaction[15] =
20  {"#nu_{#mu} QE", "#nu_{#mu} RES","#nu_{#mu} DIS","#nu_{#mu} COH",
21  "#nu_{e} QE", "#nu_{e} RES","#nu_{e} DIS","#nu_{e} COH",
22  "#nu_{#tau} QE", "#nu_{#tau} RES","#nu_{#tau} DIS","#nu_{#tau} COH",
23  "#nu on e", "NC","Cosmic"};
24  //heatmap->SetBit(TH1::kCanRebin);
25  Int_t nevent =ch.GetEntries();
26  for(Int_t i=0;i<nevent;i++){
27  ch->GetEntry(i);
28 
29  //heatmap->Fill(interaction[truelabel],interaction[chosenlabel],1);
30  heatmap->Fill(double(truelabel),double(chosenlabel));
31 
32  }
33 
34  for (int i=1;i<16;i++){
35  double scale=0;
36  for (int j=1;j<16;j++){
37  scale=scale+heatmap->GetBinContent(i,j);
38  }
39  //std::cout<<"bin "<<i<<std::endl;
40  std::cout<<"how many events do I see? "<<scale<<std::endl;
41 
42  for (int j=1;j<16;j++){
43  if(heatmap->GetBinContent(i,j)/scale>0.0001)
44  {
45  heatmap->SetBinContent(i,j,(heatmap->GetBinContent(i,j))/scale);
46  }
47  else{
48  heatmap->SetBinContent(i,j,.0001);
49  }
50  }
51  }
52 
53 
54 
55  string title="heatmap";
56 
57  TCanvas c3("c3",title.c_str(),900,900);
58 
59  heatmap->SetTitle("");
60  heatmap->SetXTitle("True");
61  heatmap->SetYTitle("Selected");
62  for(int i=1;i<16;i++){
63  heatmap->GetYaxis()->SetBinLabel(i, interaction[i-1]);
64  heatmap->GetXaxis()->SetBinLabel(i, interaction[i-1]);
65  }
66  heatmap->GetXaxis()->SetTickLength(0);
67  heatmap->GetYaxis()->SetTickLength(0);
68  heatmap->GetYaxis()->SetTitleSize(0.06);
69  heatmap->GetXaxis()->SetTitleSize(0.06);
70  heatmap->GetYaxis()->SetTitleOffset(1);
71  heatmap->GetXaxis()->SetTitleOffset(1);
72  heatmap->GetYaxis()->SetLabelSize(0.025);
73  heatmap->GetXaxis()->SetLabelSize(0.025);
74  heatmap->GetZaxis()->SetLabelSize(0.03);
75 
76  heatmap->GetXaxis()->CenterTitle();
77  heatmap->GetYaxis()->CenterTitle();
78 
79  gStyle->SetPalette(53);
80  heatmap->SetMaximum(1.0);
81  heatmap->Draw("colz");
82 
83  string output = "plots/"+title+".gif";
84  c3.Print(output.c_str());
85  string output = "plots/"+title+".C";
86  c3.Print(output.c_str());
87  string output = "plots/"+title+".eps";
88  c3.Print(output.c_str());
89 
90 
91 
92 
93  return;
94 }
95 
ofstream output
void heatMap(string input)
Definition: heatMap.C:4
Double_t scale
Definition: plot.C:25
const double j
Definition: BetheBloch.cxx:29
OStream cout
Definition: OStream.cxx:6
Int_t nevent
Definition: macro.C:10