DESY Hbb Analysis Framework
Functions | Variables
CMS_lumi.h File Reference
#include "TPad.h"
#include "TLatex.h"
#include "TLine.h"
#include "TBox.h"
#include <iostream>

Go to the source code of this file.

Functions

void CMS_lumi (TPad *pad, TString mytxt="", int iPeriod=20, int iPosX=0)
 

Variables

TString cmsText = "CMS"
 
float cmsTextFont = 61
 
float cmsTextOffset = 0.1
 
float cmsTextSize = 0.75
 
bool drawLogo = false
 
float extraOverCmsTextSize = 0.76
 
TString extraText = "Preliminary"
 
float extraTextFont = 52
 
TString lumi_13TeV = "2.3 fb^{-1}"
 
TString lumi_7TeV = "5.1 fb^{-1}"
 
TString lumi_8TeV = "19.7 fb^{-1}"
 
float lumiTextOffset = 0.2
 
float lumiTextSize = 0.6
 
float relExtraDY = 1.2
 
float relPosX = 0.045
 
float relPosY = 0.035
 
bool writeExtraText = true
 

Function Documentation

void CMS_lumi ( TPad *  pad,
TString  mytxt = "",
int  iPeriod = 20,
int  iPosX = 0 
)

Definition at line 5 of file CMS_lumi.cc.

References cmsText, cmsTextFont, cmsTextSize, drawLogo, extraOverCmsTextSize, extraText, extraTextFont, H, lumi_13TeV, lumi_7TeV, lumi_8TeV, lumiTextOffset, lumiTextSize, relExtraDY, relPosX, relPosY, W, and writeExtraText.

Referenced by main(), and PlotTanBetaLimit().

6 {
7  writeExtraText = true;
8  extraText = mytxt;
9  bool outOfFrame = false;
10  if( iPosX/10==0 )
11  {
12  outOfFrame = true;
13  }
14  int alignY_=3;
15  int alignX_=2;
16  if( iPosX/10==0 ) alignX_=1;
17  if( iPosX==0 ) alignX_=1;
18  if( iPosX==0 ) alignY_=1;
19  if( iPosX/10==1 ) alignX_=1;
20  if( iPosX/10==2 ) alignX_=2;
21  if( iPosX/10==3 ) alignX_=3;
22  if( iPosX == 0 ) relPosX = 0.12;
23  int align_ = 10*alignX_ + alignY_;
24 
25  float H = pad->GetWh();
26  float W = pad->GetWw();
27  float l = pad->GetLeftMargin();
28  float t = pad->GetTopMargin();
29  float r = pad->GetRightMargin();
30  float b = pad->GetBottomMargin();
31  // float e = 0.025;
32 
33  pad->cd();
34 
35  TString lumiText;
36  if( iPeriod==1 )
37  {
38  lumiText += lumi_7TeV;
39  lumiText += " (7 TeV)";
40  }
41  else if ( iPeriod==2 )
42  {
43  lumiText += lumi_8TeV;
44  lumiText += " (8 TeV)";
45  }
46  else if( iPeriod==3 )
47  {
48  lumiText = lumi_8TeV;
49  lumiText += " (8 TeV)";
50  lumiText += " + ";
51  lumiText += lumi_7TeV;
52  lumiText += " (7 TeV)";
53  }
54  else if ( iPeriod==4 )
55  {
56  lumiText += lumi_13TeV;
57  lumiText += " (13 TeV)";
58  }
59  else if ( iPeriod==7 )
60  {
61  if( outOfFrame ) lumiText += "#scale[0.85]{";
62  lumiText += lumi_13TeV;
63  lumiText += " (13 TeV)";
64  lumiText += " + ";
65  lumiText += lumi_8TeV;
66  lumiText += " (8 TeV)";
67  lumiText += " + ";
68  lumiText += lumi_7TeV;
69  lumiText += " (7 TeV)";
70  if( outOfFrame) lumiText += "}";
71  }
72  else if ( iPeriod==12 )
73  {
74  lumiText += "8 TeV";
75  }
76 
77  std::cout<< lumiText << std::endl;
78 
79  TLatex latex;
80  latex.SetNDC();
81  latex.SetTextAngle(0);
82  latex.SetTextColor(kBlack);
83 
84  float extraTextSize = extraOverCmsTextSize*cmsTextSize;
85 
86  latex.SetTextFont(42);
87  latex.SetTextAlign(31);
88  latex.SetTextSize(lumiTextSize*t);
89  latex.DrawLatex(1-r,1-t+lumiTextOffset*t,lumiText);
90 
91  if( outOfFrame )
92  {
93  latex.SetTextFont(cmsTextFont);
94  latex.SetTextAlign(11);
95  latex.SetTextSize(cmsTextSize*t);
96  latex.DrawLatex(l,1-t+lumiTextOffset*t,cmsText);
97  }
98 
99  pad->cd();
100 
101  float posX_=0;
102  if( iPosX%10<=1 )
103  {
104  posX_ = l + relPosX*(1-l-r);
105  }
106  else if( iPosX%10==2 )
107  {
108  posX_ = l + 0.5*(1-l-r);
109  }
110  else if( iPosX%10==3 )
111  {
112  posX_ = 1-r - relPosX*(1-l-r);
113  }
114  float posY_ = 1-t - relPosY*(1-t-b);
115  if( !outOfFrame )
116  {
117  if( drawLogo )
118  {
119  posX_ = l + 0.045*(1-l-r)*W/H;
120  posY_ = 1-t - 0.045*(1-t-b);
121  float xl_0 = posX_;
122  float yl_0 = posY_ - 0.15;
123  float xl_1 = posX_ + 0.15*H/W;
124  float yl_1 = posY_;
125 // TASImage* CMS_logo; = new TASImage("CMS-BW-label.png",TASImage::EImageFileTypes::kPng);
126  TPad* pad_logo = new TPad("logo","logo", xl_0, yl_0, xl_1, yl_1 );
127  pad_logo->Draw();
128  pad_logo->cd();
129 // CMS_logo->Draw("X");
130  pad_logo->Modified();
131  pad->cd();
132  }
133  else
134  {
135  latex.SetTextFont(cmsTextFont);
136  latex.SetTextSize(cmsTextSize*t);
137  latex.SetTextAlign(align_);
138  latex.DrawLatex(posX_, posY_, cmsText);
139  if( writeExtraText )
140  {
141  latex.SetTextFont(extraTextFont);
142  latex.SetTextAlign(align_);
143  latex.SetTextSize(extraTextSize*t);
144  latex.DrawLatex(posX_, posY_- relExtraDY*cmsTextSize*t + 0.01, extraText);
145  }
146  }
147  }
148  else if( writeExtraText )
149  {
150  if( iPosX==0)
151  {
152  posX_ = l + relPosX*(1-l-r);
153  posY_ = 1-t+lumiTextOffset*t;
154  }
155  latex.SetTextFont(extraTextFont);
156  latex.SetTextSize(extraTextSize*t);
157  latex.SetTextAlign(align_);
158 // latex.DrawLatex(posX_, posY_+0.7, extraText);
159  latex.DrawLatex(posX_, posY_, extraText);
160  }
161  return;
162 }
float relPosY
Definition: CMS_lumi.h:32
TString lumi_8TeV
Definition: CMS_lumi.h:39
float cmsTextFont
Definition: CMS_lumi.h:18
float relExtraDY
Definition: CMS_lumi.h:33
bool drawLogo
Definition: CMS_lumi.h:42
float relPosX
Definition: CMS_lumi.h:31
bool writeExtraText
Definition: CMS_lumi.h:20
TString lumi_7TeV
Definition: CMS_lumi.h:40
float cmsTextSize
Definition: CMS_lumi.h:28
TString extraText
Definition: CMS_lumi.h:21
int H
Definition: PlotsCompare.cc:16
float lumiTextSize
Definition: CMS_lumi.h:26
int W
Definition: PlotsCompare.cc:15
TString cmsText
Definition: CMS_lumi.h:17
TString lumi_13TeV
Definition: CMS_lumi.h:38
float extraOverCmsTextSize
Definition: CMS_lumi.h:36
float extraTextFont
Definition: CMS_lumi.h:22
float lumiTextOffset
Definition: CMS_lumi.h:27

Variable Documentation

TString cmsText = "CMS"

Definition at line 17 of file CMS_lumi.h.

Referenced by CMS_lumi().

float cmsTextFont = 61

Definition at line 18 of file CMS_lumi.h.

Referenced by CMS_lumi().

float cmsTextOffset = 0.1

Definition at line 29 of file CMS_lumi.h.

float cmsTextSize = 0.75

Definition at line 28 of file CMS_lumi.h.

Referenced by CMS_lumi().

bool drawLogo = false

Definition at line 42 of file CMS_lumi.h.

Referenced by CMS_lumi().

float extraOverCmsTextSize = 0.76

Definition at line 36 of file CMS_lumi.h.

Referenced by CMS_lumi().

TString extraText = "Preliminary"

Definition at line 21 of file CMS_lumi.h.

Referenced by CMS_lumi(), and PlotTanBetaLimit().

float extraTextFont = 52

Definition at line 22 of file CMS_lumi.h.

Referenced by CMS_lumi().

TString lumi_13TeV = "2.3 fb^{-1}"

Definition at line 38 of file CMS_lumi.h.

Referenced by CMS_lumi(), and PlotTanBetaLimit().

TString lumi_7TeV = "5.1 fb^{-1}"

Definition at line 40 of file CMS_lumi.h.

Referenced by CMS_lumi().

TString lumi_8TeV = "19.7 fb^{-1}"

Definition at line 39 of file CMS_lumi.h.

Referenced by CMS_lumi().

float lumiTextOffset = 0.2

Definition at line 27 of file CMS_lumi.h.

Referenced by CMS_lumi().

float lumiTextSize = 0.6

Definition at line 26 of file CMS_lumi.h.

Referenced by CMS_lumi().

float relExtraDY = 1.2

Definition at line 33 of file CMS_lumi.h.

Referenced by CMS_lumi().

float relPosX = 0.045

Definition at line 31 of file CMS_lumi.h.

Referenced by CMS_lumi().

float relPosY = 0.035

Definition at line 32 of file CMS_lumi.h.

Referenced by CMS_lumi().

bool writeExtraText = true

Definition at line 20 of file CMS_lumi.h.

Referenced by CMS_lumi(), and PlotTanBetaLimit().