Changeset 8136 for trunk/MagicSoft


Ignore:
Timestamp:
10/19/06 21:39:08 (18 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r8135 r8136  
    5555   * datacenter/macros/plotoptical.C:
    5656     - added
     57
     58   * mhalpha/MHAlpha.[h,cc]:
     59     - added the DrawNicePlot feature
    5760
    5861
  • trunk/MagicSoft/Mars/NEWS

    r8135 r8136  
    88     websites.
    99
    10    - database: Order by is now working also on printtable.php and when
     10   - database: Order-by is now working also on printtable.php and when
    1111     group-by is chosen.
    1212
     
    3333     over all possible set of weights. This also gives correct numbers
    3434     for the lo-gains which were totally wrong before.
     35
     36   - ganymed: To get a nice Theta-Sq plot (instead of the all-information
     37     debug plot displayed as a standard plot) use the context menu
     38     somewhere between the two upper plots, click on "DrawNicePlot"
     39     and enjoy the result. (It is the same context menu which contains
     40     the "DrawAll" option)
     41     PLEASE ALWAYS USE THIS PLOT FOR ANY KIND OF PRESENTATION!
    3542
    3643
  • trunk/MagicSoft/Mars/mhflux/MHAlpha.cc

    r8016 r8136  
    885885}
    886886
     887void MHAlpha::DrawNicePlot(Bool_t newc, const char *title)
     888{
     889    if (!newc && !fDisplay)
     890        return;
     891
     892    if (!fOffData)
     893        return;
     894
     895    // Open and setup canvas/pad
     896    TCanvas &c = newc ? *new TCanvas : fDisplay->AddTab("ThetsSq");
     897
     898    c.SetBorderMode(0);
     899    c.SetFrameBorderMode(0);
     900    c.SetFillColor(kWhite);
     901
     902    c.SetLeftMargin(0.12);
     903    c.SetRightMargin(0.01);
     904    c.SetBottomMargin(0.16);
     905    c.SetTopMargin(0.18);
     906
     907    c.SetGridy();
     908
     909    gStyle->SetOptStat(0);
     910
     911    // Get on-data
     912    TH1D *hon = (TH1D*)fHist.ProjectionZ("Proj", -1, 9999, -1, 9999, "E");
     913    hon->SetDirectory(NULL);
     914    hon->SetBit(kCanDelete);
     915    hon->SetMarkerSize(0);
     916    hon->SetLineWidth(2);
     917    hon->SetLineColor(kBlack);
     918    hon->SetMarkerColor(kBlack);
     919
     920    // Get off-data
     921    TH1D *hoff = 0;
     922    if (fOffData)
     923    {
     924        hoff = (TH1D*)fOffData->ProjectionZ("ProjOff", -1, 9999, -1, 9999, "E");
     925        hoff->SetDirectory(NULL);
     926        hoff->SetBit(kCanDelete);
     927        hoff->SetFillColor(17);
     928        hoff->SetMarkerSize(0);
     929        hoff->SetLineColor(kBlack);
     930        hoff->SetMarkerColor(kBlack);
     931    }
     932
     933    // Setup plot which is drawn first
     934    TH1D *h = hoff ? hoff : hon;
     935    h->GetXaxis()->SetLabelSize(0.06);
     936    h->GetXaxis()->SetTitleSize(0.06);
     937    h->GetXaxis()->SetTitleOffset(0.95);
     938    h->GetYaxis()->SetLabelSize(0.06);
     939    h->GetYaxis()->SetTitleSize(0.06);
     940    h->GetYaxis()->CenterTitle();
     941    h->SetYTitle("Counts");
     942    h->SetTitleSize(0.07);
     943    h->SetTitle("");
     944
     945    const Double_t imax = fFit.GetSignalIntegralMax();
     946    if (imax<1)
     947        h->GetXaxis()->SetRangeUser(0, 0.6*0.6);
     948
     949    // scale off-data
     950    fFit.Scale(*hoff, *hon);
     951
     952    hon->SetMinimum(0);
     953    hoff->SetMinimum(0);
     954
     955    // draw data
     956    if (hoff)
     957    {
     958        hoff->SetMaximum(TMath::Max(hon->GetMaximum(),hoff->GetMaximum())*1.1);
     959        hoff->Draw("bar");
     960        hon->Draw("same");
     961    }
     962    else
     963    {
     964        hon->SetMaximum();
     965        hon->Draw();
     966    }
     967
     968    // draw a preliminary tag
     969    TLatex text;
     970    text.SetTextColor(kWhite);
     971    text.SetBit(TLatex::kTextNDC);
     972    text.SetTextSize(0.07);
     973    text.SetTextAngle(2.5);
     974    text.DrawLatex(0.45, 0.2, "preliminary");
     975    //enum { kTextNDC = BIT(14) };
     976
     977    // draw line showing cut
     978    TLine line;
     979    line.SetLineColor(14);
     980    line.SetLineStyle(7);
     981    line.DrawLine(imax, 0, imax, h->GetMaximum());
     982
     983    // Add a title above the plot
     984    TPaveText *pave=new TPaveText(0.12, 0.83, 0.99, 0.975, "blNDC");
     985    pave->SetBorderSize(1);
     986    pave->SetLabel(title);
     987
     988    char txt[1000];
     989    TText *ptxt;
     990    sprintf(txt, " ");
     991    ptxt = pave->AddText(txt);
     992    ptxt->SetTextAlign(23);
     993
     994    sprintf(txt, "Significance %.1f\\sigma,  off-scale %.2f  (\\omega=%.2f\\circ)",
     995            fFit.GetSignificance(), fFit.GetScaleFactor(), fFit.GetGausSigma());
     996    ptxt = pave->AddText(txt);
     997    ptxt->SetTextAlign(23);
     998
     999    sprintf(txt, "%.1f excess events,  %.1f background events",
     1000            fFit.GetEventsExcess(), fFit.GetEventsBackground());
     1001    ptxt = pave->AddText(txt);
     1002    ptxt->SetTextAlign(23);
     1003    pave->SetBit(kCanDelete);
     1004    pave->Draw();
     1005}
    8871006
    8881007Bool_t MHAlpha::Finalize()
  • trunk/MagicSoft/Mars/mhflux/MHAlpha.h

    r7778 r8136  
    132132    void ForceUsingSize(Bool_t b=kTRUE) { fForceUsingSize=b; }
    133133
     134    void DrawNicePlot(const char *title="MAGIC Telescope observation") { DrawNicePlot(kTRUE, title); } //*MENU*
     135    void DrawNicePlot(Bool_t newc, const char *title=0);
    134136    void DrawAll() { DrawAll(kTRUE); } //*MENU*
    135137    void DrawAll(Bool_t newc);
Note: See TracChangeset for help on using the changeset viewer.