Ignore:
Timestamp:
05/09/05 10:15:41 (20 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mhist
Files:
4 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mhist/MHCamera.cc

    r6926 r7001  
    107107    TVirtualPad *save = gPad;
    108108    gPad = 0;
     109    /*
    109110#if ROOT_VERSION_CODE < ROOT_VERSION(3,01,06)
    110111    SetPalette(1, 0);
    111 #else
     112#endif
     113    */
     114/*
     115#if ROOT_VERSION_CODE < ROOT_VERSION(4,04,00)
    112116    SetPrettyPalette();
     117#elese
    113118    // WORAROUND - FIXME: Calling it many times becomes slower and slower
    114     //SetInvDeepBlueSeaPalette();
     119    SetInvDeepBlueSeaPalette();
    115120#endif
     121*/
    116122    gPad = save;
    117123}
     
    121127//  Default Constructor. To be used by the root system ONLY.
    122128//
    123 MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fColors(kItemsLegend), fAbberation(0)
     129MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fAbberation(0)
    124130{
    125131    Init();
     
    133139//
    134140MHCamera::MHCamera(const MGeomCam &geom, const char *name, const char *title)
    135 : fGeomCam(NULL), fColors(kItemsLegend), fAbberation(0)
     141: fGeomCam(NULL), fAbberation(0)
    136142{
    137143    //fGeomCam = (MGeomCam*)geom.Clone();
     
    463469//                 GeMinimum() ((val-min)/(max-min))
    464470//   'proj'        Display the y-projection of the histogram
     471//   'pal0'        Use Pretty palette
     472//   'pal1'        Use Deep Blue Sea palette
     473//   'pal2'        Use Inverse Depp Blue Sea palette
    465474//   'same'        Draw trandparent pixels on top of an existing pad. This
    466475//                 makes it possible to draw the camera image on top of an
     
    970979    {
    971980        opt.ReplaceAll("hist", "");
     981        opt.ReplaceAll("box", "");
     982        opt.ReplaceAll("pixelindex", "");
     983        opt.ReplaceAll("sectorindex", "");
     984        opt.ReplaceAll("content", "");
     985        opt.ReplaceAll("proj", "");
     986        opt.ReplaceAll("pal0", "");
     987        opt.ReplaceAll("pal1", "");
     988        opt.ReplaceAll("pal2", "");
    972989        TH1D::Paint(opt);
    973990        return;
     
    10071024    }
    10081025
     1026    const Bool_t pal1 = opt.Contains("pal1");
     1027    const Bool_t pal2 = opt.Contains("pal2");
     1028
     1029    if (!pal1 && !pal2)
     1030        SetPrettyPalette();
     1031
     1032    if (pal1)
     1033        SetDeepBlueSeaPalette();
     1034
     1035    if (pal2)
     1036        SetInvDeepBlueSeaPalette();
     1037
    10091038    // Update Contents of the pixels and paint legend
    10101039    Update(gPad->GetLogy(), hasbox, hascol, hassame);
     
    10211050}
    10221051
     1052void MHCamera::SetDrawOption(Option_t *option)
     1053{
     1054    // This is a workaround. For some reason MHCamera is
     1055    // stored in a TObjLink instead of a TObjOptLink
     1056    if (!option || !gPad)
     1057        return;
     1058
     1059    TListIter next(gPad->GetListOfPrimitives());
     1060    delete gPad->FindObject("Tframe");
     1061    TObject *obj;
     1062    while ((obj = next()))
     1063        if (obj == this && (TString)next.GetOption()!=(TString)option)
     1064        {
     1065            gPad->GetListOfPrimitives()->Remove(this);
     1066            gPad->GetListOfPrimitives()->AddFirst(this, option);
     1067            return;
     1068        }
     1069}
     1070
    10231071// ------------------------------------------------------------------------
    10241072//
     
    10531101    else
    10541102        gStyle->SetPalette(ncolors, colors);
    1055 
    1056     fColors.Set(kItemsLegend);
    1057     for (int i=0; i<kItemsLegend; i++)
    1058         fColors[i] = gStyle->GetColorPalette(i);
    10591103}
    10601104
     
    10681112void MHCamera::SetPrettyPalette()
    10691113{
    1070     if (!TString(GetDrawOption()).Contains("hist", TString::kIgnoreCase))
     1114    TString opt(GetDrawOption());
     1115
     1116    if (!opt.Contains("hist", TString::kIgnoreCase))
    10711117        SetPalette(1, 0);
     1118
     1119    opt.ReplaceAll("pal1", "");
     1120    opt.ReplaceAll("pal2", "");
     1121
     1122    SetDrawOption(opt);
    10721123}
    10731124
     
    10801131void MHCamera::SetDeepBlueSeaPalette()
    10811132{
    1082     if (!TString(GetDrawOption()).Contains("hist", TString::kIgnoreCase))
     1133    TString opt(GetDrawOption());
     1134
     1135    if (!opt.Contains("hist", TString::kIgnoreCase))
    10831136        SetPalette(51, 0);
     1137
     1138    opt.ReplaceAll("pal1", "");
     1139    opt.ReplaceAll("pal2", "");
     1140    opt += "pal1";
     1141
     1142    SetDrawOption(opt);
    10841143}
    10851144
     
    10921151void MHCamera::SetInvDeepBlueSeaPalette()
    10931152{
    1094     if (!TString(GetDrawOption()).Contains("hist", TString::kIgnoreCase))
     1153    TString opt(GetDrawOption());
     1154
     1155    if (!opt.Contains("hist", TString::kIgnoreCase))
    10951156        SetPalette(52, 0);
     1157
     1158    opt.ReplaceAll("pal1", "");
     1159    opt.ReplaceAll("pal2", "");
     1160    opt += "pal2";
     1161
     1162    SetDrawOption(opt);
    10961163}
    10971164
     
    15151582
    15161583    if (val >= max)
    1517         return fColors[maxcolidx];
     1584        return gStyle->GetColorPalette(maxcolidx);
    15181585
    15191586    if (val <= min)
    1520         return fColors[0];
     1587        return gStyle->GetColorPalette(0);
    15211588
    15221589    //
     
    15301597
    15311598    const Int_t colidx = (Int_t)(ratio*maxcolidx + .5);
    1532     return fColors[colidx];
     1599    return gStyle->GetColorPalette(colidx);
    15331600}
    15341601
     
    16121679    for (Int_t i=0; i<kItemsLegend; i++)
    16131680    {
    1614         newbox.SetFillColor(fColors[i]);
     1681        newbox.SetFillColor(gStyle->GetColorPalette(i));
    16151682        newbox.PaintBox(range, H*(i*h-1)-offset, range+w, H*((i+1)*h-1)-offset);
    16161683    }
  • trunk/MagicSoft/Mars/mhist/MHCamera.h

    r6855 r7001  
    4848    TArrayI        fBinEntries;  // number of entries per bin
    4949
    50     TArrayI        fColors;      //! Color conversion table
    5150    TList         *fNotify;      //!
    5251
     
    214213    char    *GetObjectInfo(Int_t px, Int_t py) const;
    215214    void     ExecuteEvent(Int_t event, Int_t px, Int_t py);
     215    void     SetDrawOption(Option_t *option); //*MENU*
    216216
    217217    void     SetPalette(Int_t ncolors, Int_t *colors);
     
    222222
    223223    void     SetAutoScale() { fMinimum = fMaximum = -1111; } // *MENU*
    224     void     DisplayAsHistogram() { SetDrawOption("histEP"); } // *MENU*
    225     void     DisplayAsCamera() { SetDrawOption(""); } // *MENU*
    226224
    227225    void     SetFreezed(Bool_t f=kTRUE) { f ? SetBit(kFreezed) : ResetBit(kFreezed); } // *TOGGLE* *GETTER=IsFreezed
Note: See TracChangeset for help on using the changeset viewer.