This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
limits:brazilianplotexample [2016/09/22 22:15] – iwn | limits:brazilianplotexample [2017/09/18 15:19] (current) – iwn | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | {{ limits: | ||
+ | |||
+ | To be used with [[plots: | ||
+ | |||
<file python BrazilianPlots.py> | <file python BrazilianPlots.py> | ||
Line 32: | Line 36: | ||
" | " | ||
#" | #" | ||
- | " | + | " |
#" | #" | ||
] | ] | ||
Line 80: | Line 84: | ||
# PLOT upper limits | # PLOT upper limits | ||
def plotUpperLimits(labels, | def plotUpperLimits(labels, | ||
- | # see CMA plot guidelines: https:// | + | # see CMS plot guidelines: https:// |
| | ||
N = len(labels) | N = len(labels) | ||
Line 102: | Line 106: | ||
T = 0.08*H | T = 0.08*H | ||
B = 0.12*H | B = 0.12*H | ||
- | L = 0.12*W*scaleleftmargin | + | L = 0.12*W |
- | R = 0.04*W*scalerightmargin | + | R = 0.04*W |
c = TCanvas(" | c = TCanvas(" | ||
c.SetFillColor(0) | c.SetFillColor(0) | ||
Line 200: | Line 204: | ||
main() | main() | ||
| | ||
- | </ | ||
- | |||
- | |||
- | |||
- | <file python CMS_lumi.py> | ||
- | import ROOT as rt | ||
- | |||
- | # CMS_lumi | ||
- | # | ||
- | # | ||
- | # | ||
- | # | ||
- | |||
- | cmsText | ||
- | cmsTextFont | ||
- | |||
- | writeExtraText = True | ||
- | extraText | ||
- | extraTextFont = 52 | ||
- | |||
- | lumiTextSize | ||
- | lumiTextOffset | ||
- | |||
- | cmsTextSize | ||
- | cmsTextOffset | ||
- | |||
- | relPosX | ||
- | relPosY | ||
- | relExtraDY = 1.2 | ||
- | |||
- | extraOverCmsTextSize | ||
- | |||
- | lumi_13TeV = "40.2 fb^{-1}" | ||
- | lumi_8TeV | ||
- | lumi_7TeV | ||
- | lumi_sqrtS = "" | ||
- | |||
- | drawLogo | ||
- | |||
- | def CMS_lumi(pad, | ||
- | outOfFrame | ||
- | if(iPosX/ | ||
- | |||
- | alignY_=3 | ||
- | alignX_=2 | ||
- | if( iPosX/10==0 ): alignX_=1 | ||
- | if( iPosX==0 | ||
- | if( iPosX/10==1 ): alignX_=1 | ||
- | if( iPosX/10==2 ): alignX_=2 | ||
- | if( iPosX/10==3 ): alignX_=3 | ||
- | align_ = 10*alignX_ + alignY_ | ||
- | |||
- | H = pad.GetWh() | ||
- | W = pad.GetWw() | ||
- | l = pad.GetLeftMargin() | ||
- | t = pad.GetTopMargin() | ||
- | r = pad.GetRightMargin() | ||
- | b = pad.GetBottomMargin() | ||
- | e = 0.025 | ||
- | |||
- | pad.cd() | ||
- | |||
- | lumiText = "" | ||
- | if( iPeriod==1 ): | ||
- | lumiText += lumi_7TeV | ||
- | lumiText += " (7 TeV)" | ||
- | elif ( iPeriod==2 ): | ||
- | lumiText += lumi_8TeV | ||
- | lumiText += " (8 TeV)" | ||
- | |||
- | elif( iPeriod==3 ): | ||
- | lumiText = lumi_8TeV | ||
- | lumiText += " (8 TeV)" | ||
- | lumiText += " + " | ||
- | lumiText += lumi_7TeV | ||
- | lumiText += " (7 TeV)" | ||
- | elif ( iPeriod==4 ): | ||
- | lumiText += lumi_13TeV | ||
- | lumiText += " (13 TeV)" | ||
- | elif ( iPeriod==7 ): | ||
- | if( outOfFrame ):lumiText += "# | ||
- | lumiText += lumi_13TeV | ||
- | lumiText += " (13 TeV)" | ||
- | lumiText += " + " | ||
- | lumiText += lumi_8TeV | ||
- | lumiText += " (8 TeV)" | ||
- | lumiText += " + " | ||
- | lumiText += lumi_7TeV | ||
- | lumiText += " (7 TeV)" | ||
- | if( outOfFrame): | ||
- | elif ( iPeriod==12 ): | ||
- | lumiText += "8 TeV" | ||
- | elif ( iPeriod==0 ): | ||
- | lumiText += lumi_sqrtS | ||
- | | ||
- | print lumiText | ||
- | |||
- | latex = rt.TLatex() | ||
- | latex.SetNDC() | ||
- | latex.SetTextAngle(0) | ||
- | latex.SetTextColor(rt.kBlack) | ||
- | | ||
- | extraTextSize = extraOverCmsTextSize*cmsTextSize | ||
- | | ||
- | latex.SetTextFont(42) | ||
- | latex.SetTextAlign(31) | ||
- | latex.SetTextSize(lumiTextSize*t) | ||
- | |||
- | latex.DrawLatex(1-r, | ||
- | |||
- | if( outOfFrame ): | ||
- | latex.SetTextFont(cmsTextFont) | ||
- | latex.SetTextAlign(11) | ||
- | latex.SetTextSize(cmsTextSize*t) | ||
- | latex.DrawLatex(l, | ||
- | | ||
- | pad.cd() | ||
- | |||
- | posX_ = 0 | ||
- | if( iPosX%10< | ||
- | posX_ = l + relPosX*(1-l-r) | ||
- | elif( iPosX%10==2 ): | ||
- | posX_ = l + 0.5*(1-l-r) | ||
- | elif( iPosX%10==3 ): | ||
- | posX_ = 1-r - relPosX*(1-l-r) | ||
- | |||
- | posY_ = 1-t - relPosY*(1-t-b) | ||
- | |||
- | if( not outOfFrame ): | ||
- | if( drawLogo ): | ||
- | posX_ = l + 0.045*(1-l-r)*W/ | ||
- | posY_ = 1-t - 0.045*(1-t-b) | ||
- | xl_0 = posX_ | ||
- | yl_0 = posY_ - 0.15 | ||
- | xl_1 = posX_ + 0.15*H/W | ||
- | yl_1 = posY_ | ||
- | CMS_logo = rt.TASImage(" | ||
- | pad_logo = rt.TPad(" | ||
- | pad_logo.Draw() | ||
- | pad_logo.cd() | ||
- | CMS_logo.Draw(" | ||
- | pad_logo.Modified() | ||
- | pad.cd() | ||
- | else: | ||
- | latex.SetTextFont(cmsTextFont) | ||
- | latex.SetTextSize(cmsTextSize*t) | ||
- | latex.SetTextAlign(align_) | ||
- | latex.DrawLatex(posX_, | ||
- | if( writeExtraText ) : | ||
- | latex.SetTextFont(extraTextFont) | ||
- | latex.SetTextAlign(align_) | ||
- | latex.SetTextSize(extraTextSize*t) | ||
- | latex.DrawLatex(posX_, | ||
- | elif( writeExtraText ): | ||
- | if( iPosX==0): | ||
- | posX_ = l + relPosX*(1-l-r) | ||
- | posY_ = | ||
- | |||
- | latex.SetTextFont(extraTextFont) | ||
- | latex.SetTextSize(extraTextSize*t) | ||
- | latex.SetTextAlign(align_) | ||
- | latex.DrawLatex(posX_, | ||
- | |||
- | pad.Update() | ||
- | </ | ||
- | |||
- | |||
- | |||
- | <file python CMS_lumi.py> | ||
- | import ROOT as rt | ||
- | |||
- | def tdrGrid( gridOn): | ||
- | tdrStyle.SetPadGridX(gridOn) | ||
- | tdrStyle.SetPadGridY(gridOn) | ||
- | |||
- | # | ||
- | def fixOverlay(): | ||
- | |||
- | def setTDRStyle(): | ||
- | tdrStyle = rt.TStyle(" | ||
- | |||
- | #for the canvas: | ||
- | tdrStyle.SetCanvasBorderMode(0) | ||
- | tdrStyle.SetCanvasColor(rt.kWhite) | ||
- | tdrStyle.SetCanvasDefH(600) #Height of canvas | ||
- | tdrStyle.SetCanvasDefW(600) #Width of canvas | ||
- | tdrStyle.SetCanvasDefX(0) | ||
- | tdrStyle.SetCanvasDefY(0) | ||
- | |||
- | |||
- | tdrStyle.SetPadBorderMode(0) | ||
- | # | ||
- | tdrStyle.SetPadColor(rt.kWhite) | ||
- | tdrStyle.SetPadGridX(False) | ||
- | tdrStyle.SetPadGridY(False) | ||
- | tdrStyle.SetGridColor(0) | ||
- | tdrStyle.SetGridStyle(3) | ||
- | tdrStyle.SetGridWidth(1) | ||
- | |||
- | #For the frame: | ||
- | tdrStyle.SetFrameBorderMode(0) | ||
- | tdrStyle.SetFrameBorderSize(1) | ||
- | tdrStyle.SetFrameFillColor(0) | ||
- | tdrStyle.SetFrameFillStyle(0) | ||
- | tdrStyle.SetFrameLineColor(1) | ||
- | tdrStyle.SetFrameLineStyle(1) | ||
- | tdrStyle.SetFrameLineWidth(1) | ||
- | | ||
- | #For the histo: | ||
- | # | ||
- | # | ||
- | tdrStyle.SetHistLineColor(1) | ||
- | tdrStyle.SetHistLineStyle(0) | ||
- | tdrStyle.SetHistLineWidth(1) | ||
- | # | ||
- | # | ||
- | |||
- | tdrStyle.SetEndErrorSize(2) | ||
- | # | ||
- | # | ||
- | | ||
- | tdrStyle.SetMarkerStyle(20) | ||
- | | ||
- | #For the fit/ | ||
- | tdrStyle.SetOptFit(1) | ||
- | tdrStyle.SetFitFormat(" | ||
- | tdrStyle.SetFuncColor(2) | ||
- | tdrStyle.SetFuncStyle(1) | ||
- | tdrStyle.SetFuncWidth(1) | ||
- | |||
- | #For the date: | ||
- | tdrStyle.SetOptDate(0) | ||
- | # tdrStyle.SetDateX(Float_t x = 0.01) | ||
- | # tdrStyle.SetDateY(Float_t y = 0.01) | ||
- | |||
- | # For the statistics box: | ||
- | tdrStyle.SetOptFile(0) | ||
- | tdrStyle.SetOptStat(0) # To display the mean and RMS: | ||
- | tdrStyle.SetStatColor(rt.kWhite) | ||
- | tdrStyle.SetStatFont(42) | ||
- | tdrStyle.SetStatFontSize(0.025) | ||
- | tdrStyle.SetStatTextColor(1) | ||
- | tdrStyle.SetStatFormat(" | ||
- | tdrStyle.SetStatBorderSize(1) | ||
- | tdrStyle.SetStatH(0.1) | ||
- | tdrStyle.SetStatW(0.15) | ||
- | # tdrStyle.SetStatStyle(Style_t style = 1001) | ||
- | # tdrStyle.SetStatX(Float_t x = 0) | ||
- | # tdrStyle.SetStatY(Float_t y = 0) | ||
- | |||
- | # Margins: | ||
- | tdrStyle.SetPadTopMargin(0.05) | ||
- | tdrStyle.SetPadBottomMargin(0.13) | ||
- | tdrStyle.SetPadLeftMargin(0.16) | ||
- | tdrStyle.SetPadRightMargin(0.02) | ||
- | |||
- | # For the Global title: | ||
- | |||
- | tdrStyle.SetOptTitle(0) | ||
- | tdrStyle.SetTitleFont(42) | ||
- | tdrStyle.SetTitleColor(1) | ||
- | tdrStyle.SetTitleTextColor(1) | ||
- | tdrStyle.SetTitleFillColor(10) | ||
- | tdrStyle.SetTitleFontSize(0.05) | ||
- | # tdrStyle.SetTitleH(0) # Set the height of the title box | ||
- | # tdrStyle.SetTitleW(0) # Set the width of the title box | ||
- | # tdrStyle.SetTitleX(0) # Set the position of the title box | ||
- | # tdrStyle.SetTitleY(0.985) # Set the position of the title box | ||
- | # tdrStyle.SetTitleStyle(Style_t style = 1001) | ||
- | # tdrStyle.SetTitleBorderSize(2) | ||
- | |||
- | # For the axis titles: | ||
- | |||
- | tdrStyle.SetTitleColor(1, | ||
- | tdrStyle.SetTitleFont(42, | ||
- | tdrStyle.SetTitleSize(0.06, | ||
- | # tdrStyle.SetTitleXSize(Float_t size = 0.02) # Another way to set the size? | ||
- | # tdrStyle.SetTitleYSize(Float_t size = 0.02) | ||
- | tdrStyle.SetTitleXOffset(0.9) | ||
- | tdrStyle.SetTitleYOffset(1.25) | ||
- | # tdrStyle.SetTitleOffset(1.1, | ||
- | |||
- | # For the axis labels: | ||
- | |||
- | tdrStyle.SetLabelColor(1, | ||
- | tdrStyle.SetLabelFont(42, | ||
- | tdrStyle.SetLabelOffset(0.007, | ||
- | tdrStyle.SetLabelSize(0.05, | ||
- | |||
- | # For the axis: | ||
- | |||
- | tdrStyle.SetAxisColor(1, | ||
- | tdrStyle.SetStripDecimals(True) | ||
- | tdrStyle.SetTickLength(0.03, | ||
- | tdrStyle.SetNdivisions(510, | ||
- | tdrStyle.SetPadTickX(1) | ||
- | tdrStyle.SetPadTickY(1) | ||
- | |||
- | # Change for log plots: | ||
- | tdrStyle.SetOptLogx(0) | ||
- | tdrStyle.SetOptLogy(0) | ||
- | tdrStyle.SetOptLogz(0) | ||
- | |||
- | # Postscript options: | ||
- | tdrStyle.SetPaperSize(20., | ||
- | # tdrStyle.SetLineScalePS(Float_t scale = 3) | ||
- | # tdrStyle.SetLineStyleString(Int_t i, const char* text) | ||
- | # tdrStyle.SetHeaderPS(const char* header) | ||
- | # tdrStyle.SetTitlePS(const char* pstitle) | ||
- | |||
- | # tdrStyle.SetBarOffset(Float_t baroff = 0.5) | ||
- | # tdrStyle.SetBarWidth(Float_t barwidth = 0.5) | ||
- | # tdrStyle.SetPaintTextFormat(const char* format = " | ||
- | # tdrStyle.SetPalette(Int_t ncolors = 0, Int_t* colors = 0) | ||
- | # tdrStyle.SetTimeOffset(Double_t toffset) | ||
- | # tdrStyle.SetHistMinimumZero(kTRUE) | ||
- | |||
- | tdrStyle.SetHatchesLineWidth(5) | ||
- | tdrStyle.SetHatchesSpacing(0.05) | ||
- | |||
- | tdrStyle.cd() | ||
</ | </ |