Changeset 7342


Ignore:
Timestamp:
09/06/05 11:58:35 (19 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
14 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r7341 r7342  
    1818
    1919                                                 -*-*- END OF LINE -*-*-
     20 2005/09/06 Thomas Bretz
     21
     22   * Makefile.conf.general:
     23     - added libASImage
     24
     25   * mgeom/MGeomCam.[h,cc]:
     26     - clone the whole container in any case not only if it is
     27       different from MGeomCam
     28     - unified the non-default and default constructor
     29
     30   * mgeom/MGeomPix.[h,cc]:
     31     - initialize neighbors with empty values in constructor
     32     - added some more default arguments
     33
     34   * mhist/MHCamera.[h,cc]:
     35     - implemented new Draw-options "nopal", "abscontent"
     36     - implemented more accurate handling of transparency
     37     - new flags kNoScale and kNoUnused
     38     - changed private stuff to protected
     39
     40   * mtools/Makefile, mtools/ToolsLinkDef.h:
     41     - added new "tool" MagicJam
     42
     43   * mtools/MagicJam.[h,cc]:
     44     - added
     45
     46   * mtools/jam/*.jam:
     47     - games for Magic Jam
     48
     49
     50
    2051 2005/08/29 Daniela Dorner
    2152
  • trunk/MagicSoft/Mars/Makefile.conf.general

    r7294 r7342  
    44
    55ROOTVER    =  `root-config --version`
    6 ROOTLIBS   =  `root-config --libs` -lMinuit -lHistPainter -lThread
    7 ROOTGLIBS  =  `root-config --glibs` -lMinuit -lHistPainter -lThread
     6ROOTLIBS   =  `root-config --libs` -lASImage -lMinuit -lHistPainter -lThread
     7ROOTGLIBS  =  `root-config --glibs` -lASImage -lMinuit -lHistPainter -lThread
    88ROOTCFLAGS =  `root-config --cflags`
    99
  • trunk/MagicSoft/Mars/NEWS

    r7301 r7342  
    55   * general: added new tutorial macro macros/tutorials/threshold.C:
    66     how to calculate the threshold
     7
     8   * general: added a new game. Start it from the interpreter with
     9        MagicJam j;
    710
    811
  • trunk/MagicSoft/Mars/mgeom/MGeomCam.cc

    r7297 r7342  
    6868//
    6969// Default Constructor
    70 //
     70/*
    7171MGeomCam::MGeomCam()
    72     : fNumPixels(0), fCamDist(0), fConvMm2Deg(0), /*fPixels(1000),*/ fMaxRadius(1), fMinRadius(1)
     72    : fNumPixels(0), fCamDist(0), fConvMm2Deg(0), fMaxRadius(1), fMinRadius(1)
    7373{
    7474    fName  = "MGeomCam";
    7575    fTitle = "Storage container for a camera geometry";
    7676}
    77 
     77*/
    7878// --------------------------------------------------------------------------
    7979//
     
    313313TObject *MGeomCam::Clone(const char *newname) const
    314314{
    315     if (IsA()==MGeomCam::Class())
     315    //if (IsA()==MGeomCam::Class())
    316316    {
    317317        MGeomCam *cam = new MGeomCam(fNumPixels, fCamDist);
  • trunk/MagicSoft/Mars/mgeom/MGeomCam.h

    r7298 r7342  
    4343
    4444public:
    45     MGeomCam();
    46     MGeomCam(UInt_t npix, Float_t dist, const char *name=NULL, const char *title=NULL);
     45    //MGeomCam();
     46    MGeomCam(UInt_t npix=0, Float_t dist=1, const char *name=NULL, const char *title=NULL);
    4747
    4848    virtual TObject *Clone(const char *newname=NULL) const;
  • trunk/MagicSoft/Mars/mgeom/MGeomPix.cc

    r4826 r7342  
    7676    //  default constructor
    7777    Set(x, y, r, s, a);
     78    SetNeighbors();
    7879}
    7980
  • trunk/MagicSoft/Mars/mgeom/MGeomPix.h

    r7297 r7342  
    3232
    3333public:
    34     MGeomPix(Float_t x=0, Float_t y=0, Float_t d=0, UInt_t s=0, UInt_t aidx=0);
     34    MGeomPix(Float_t x=0, Float_t y=0, Float_t d=1, UInt_t s=0, UInt_t aidx=0);
    3535
    3636    void Copy(TObject &obj) const
     
    5050    void Print(Option_t *opt=NULL) const;
    5151
    52     void Set(Float_t x, Float_t y, Float_t d, UInt_t s=0, UInt_t aidx=0) { fX=x; fY=y; fD=d; fA=d*d*gsTan60/2; fSector=s; fAidx=aidx; }
     52    void Set(Float_t x, Float_t y, Float_t d=1, UInt_t s=0, UInt_t aidx=0) { fX=x; fY=y; fD=d; fA=d*d*gsTan60/2; fSector=s; fAidx=aidx; }
    5353
    5454    void SetNeighbors(Short_t i0=-1, Short_t i1=-1, Short_t i2=-1,
  • trunk/MagicSoft/Mars/mhist/MHCamera.cc

    r7169 r7342  
    9393void MHCamera::Init()
    9494{
     95    Sumw2();
     96
    9597    UseCurrentStyle();
    9698
     
    164166    //Rebuild();
    165167
    166     Sumw2(); // necessary?
    167 
    168168    if (fGeomCam)
    169169        delete fGeomCam;
     
    893893    for (Int_t i=0; i<fNcells-2; i++)
    894894    {
    895         hex.SetFillStyle(issame ? 0 : 1001);
     895        hex.SetFillStyle(issame || (IsTransparent() && !IsUsed(i)) ? 0 : 1001);
    896896
    897897        if (!issame)
     
    912912
    913913        Float_t x = pix.GetX()*conv/(fAbberation+1);
    914 
    915914        Float_t y = pix.GetY()*conv/(fAbberation+1);
    916915        Float_t d = pix.GetD()*conv;
    917916
    918917        if (!isbox)
    919             hex.PaintHexagon(x, y, d);
     918            if (IsUsed(i) || !TestBit(kNoUnused))
     919                hex.PaintHexagon(x, y, d);
    920920        else
    921921            if (IsUsed(i) && !TMath::IsNaN(fArray[i+1]))
     
    985985        opt.ReplaceAll("pixelindex", "");
    986986        opt.ReplaceAll("sectorindex", "");
     987        opt.ReplaceAll("abscontent", "");
    987988        opt.ReplaceAll("content", "");
    988989        opt.ReplaceAll("proj", "");
     
    990991        opt.ReplaceAll("pal1", "");
    991992        opt.ReplaceAll("pal2", "");
     993        opt.ReplaceAll("nopal", "");
    992994        TH1D::Paint(opt);
    993995        return;
     
    10271029    }
    10281030
    1029     const Bool_t pal1 = opt.Contains("pal1");
    1030     const Bool_t pal2 = opt.Contains("pal2");
    1031 
    1032     if (!pal1 && !pal2)
     1031    const Bool_t pal1  = opt.Contains("pal1");
     1032    const Bool_t pal2  = opt.Contains("pal2");
     1033    const Bool_t nopal = opt.Contains("nopal");
     1034
     1035    if (!pal1 && !pal2 && !nopal)
    10331036        SetPrettyPalette();
    10341037
     
    10461049
    10471050    if (opt.Contains("pixelindex"))
     1051    {
    10481052        PaintIndices(0);
     1053        return;
     1054    }
    10491055    if (opt.Contains("sectorindex"))
     1056    {
    10501057        PaintIndices(1);
     1058        return;
     1059    }
     1060    if (opt.Contains("abscontent"))
     1061    {
     1062        PaintIndices(3);
     1063        return;
     1064    }
    10511065    if (opt.Contains("content"))
     1066    {
    10521067        PaintIndices(2);
     1068        return;
     1069    }
     1070    if (opt.Contains("pixelentries"))
     1071    {
     1072        PaintIndices(4);
     1073        return;
     1074    }
    10531075}
    10541076
     
    11981220        case 0: num += i; break;
    11991221        case 1: num += h.GetSector(); break;
    1200         case 2: num += (Int_t)((fArray[i+1]-min)/(max-min)); break;
     1222        case 2: num += TMath::Nint((fArray[i+1]-min)/(max-min)); break;
     1223        case 3: num += TMath::Nint(fArray[i+1]); break;
     1224        case 4: num += fBinEntries[i+1]; break;
    12011225        }
    12021226
     
    15571581    {
    15581582        fArray[i+1]=0;
     1583        fBinEntries[i]=0;
    15591584        ResetUsed(i);
    15601585    }
     1586
    15611587    fArray[0]         = 0;
    15621588    fArray[fNcells-1] = 0;
     
    16231649    const Float_t range = fGeomCam->GetMaxRadius()*1.05;
    16241650
    1625     TArrow arr;
    1626     arr.PaintArrow(-range*.9, -range*.9, -range*.6, -range*.9, 0.025);
    1627     arr.PaintArrow(-range*.9, -range*.9, -range*.9, -range*.6, 0.025);
    1628 
    1629     TString text;
    1630     text += (int)(range*.3);
    1631     text += "mm";
    1632 
    1633     TText newtxt2;
    1634     newtxt2.SetTextSize(0.04);
    1635     newtxt2.PaintText(-range*.85, -range*.85, text);
    1636 
    1637     text = "";
    1638     text += Form("%.2f", (float)((int)(range*.3*fGeomCam->GetConvMm2Deg()*10))/10);
    1639     text += "\\circ";
    1640     text = text.Strip(TString::kLeading);
    1641 
    1642     TLatex latex;
    1643     latex.PaintLatex(-range*.85, -range*.75, 0, 0.04, text);
    1644 
    1645     if (TestBit(kNoLegend))
    1646         return;
    1647 
    1648     TPaveStats *stats = GetStatisticBox();
    1649 
    1650     const Float_t hndc   = 0.92 - (stats ? stats->GetY1NDC() : 1);
    1651     const Float_t H      = (0.75-hndc)*range;
    1652     const Float_t offset = hndc*range;
    1653 
    1654     const Float_t h = 2./kItemsLegend;
    1655     const Float_t w = range/sqrt((float)(fNcells-2));
    1656 
    1657     TBox newbox;
    1658     TText newtxt;
    1659     newtxt.SetTextSize(0.03);
    1660     newtxt.SetTextAlign(12);
     1651    if (!TestBit(kNoScale))
     1652    {
     1653        TArrow arr;
     1654        arr.PaintArrow(-range*.9, -range*.9, -range*.6, -range*.9, 0.025);
     1655        arr.PaintArrow(-range*.9, -range*.9, -range*.9, -range*.6, 0.025);
     1656
     1657        TString text;
     1658        text += (int)(range*.3);
     1659        text += "mm";
     1660
     1661        TText newtxt2;
     1662        newtxt2.SetTextSize(0.04);
     1663        newtxt2.PaintText(-range*.85, -range*.85, text);
     1664
     1665        text = "";
     1666        text += Form("%.2f", (float)((int)(range*.3*fGeomCam->GetConvMm2Deg()*10))/10);
     1667        text += "\\circ";
     1668        text = text.Strip(TString::kLeading);
     1669
     1670        TLatex latex;
     1671        latex.PaintLatex(-range*.85, -range*.75, 0, 0.04, text);
     1672    }
     1673
     1674    if (!TestBit(kNoLegend))
     1675    {
     1676        TPaveStats *stats = GetStatisticBox();
     1677
     1678        const Float_t hndc   = 0.92 - (stats ? stats->GetY1NDC() : 1);
     1679        const Float_t H      = (0.75-hndc)*range;
     1680        const Float_t offset = hndc*range;
     1681
     1682        const Float_t h = 2./kItemsLegend;
     1683        const Float_t w = range/sqrt((float)(fNcells-2));
     1684
     1685        TBox newbox;
     1686        TText newtxt;
     1687        newtxt.SetTextSize(0.03);
     1688        newtxt.SetTextAlign(12);
    16611689#if ROOT_VERSION_CODE > ROOT_VERSION(3,01,06)
    1662     newtxt.SetBit(/*kNoContextMenu|*/kCannotPick);
    1663     newbox.SetBit(/*kNoContextMenu|*/kCannotPick);
     1690        newtxt.SetBit(/*kNoContextMenu|*/kCannotPick);
     1691        newbox.SetBit(/*kNoContextMenu|*/kCannotPick);
    16641692#endif
    16651693
    1666     const Float_t step   = (islog && min>0 ? log10(max/min) : max-min) / kItemsLegend;
    1667     const Int_t   firsts = step*3 < 1e-8 ? 8 : (Int_t)floor(log10(step*3));
    1668     const TString opt    = Form("%%.%if", firsts>0 ? 0 : TMath::Abs(firsts));
    1669 
    1670     for (Int_t i=0; i<kItemsLegend+1; i+=3)
    1671     {
    1672         Float_t val;
    1673         if (islog && min>0)
    1674             val = pow(10, step*i) * min;
    1675         else
    1676             val = min + step*i;
    1677 
    1678         //const bool dispexp = max-min>1.5 && fabs(val)>0.1 && fabs(val)<1e6;
    1679         newtxt.PaintText(range+1.5*w, H*(i*h-1)-offset, Form(opt, val));
    1680     }
    1681 
    1682     for (Int_t i=0; i<kItemsLegend; i++)
    1683     {
    1684         newbox.SetFillColor(gStyle->GetColorPalette(i));
    1685         newbox.PaintBox(range, H*(i*h-1)-offset, range+w, H*((i+1)*h-1)-offset);
     1694        const Float_t step   = (islog && min>0 ? log10(max/min) : max-min) / kItemsLegend;
     1695        const Int_t   firsts = step*3 < 1e-8 ? 8 : (Int_t)floor(log10(step*3));
     1696        const TString opt    = Form("%%.%if", firsts>0 ? 0 : TMath::Abs(firsts));
     1697
     1698        for (Int_t i=0; i<kItemsLegend+1; i+=3)
     1699        {
     1700            Float_t val;
     1701            if (islog && min>0)
     1702                val = pow(10, step*i) * min;
     1703            else
     1704                val = min + step*i;
     1705
     1706            //const bool dispexp = max-min>1.5 && fabs(val)>0.1 && fabs(val)<1e6;
     1707            newtxt.PaintText(range+1.5*w, H*(i*h-1)-offset, Form(opt, val));
     1708        }
     1709
     1710        for (Int_t i=0; i<kItemsLegend; i++)
     1711        {
     1712            newbox.SetFillColor(gStyle->GetColorPalette(i));
     1713            newbox.PaintBox(range, H*(i*h-1)-offset, range+w, H*((i+1)*h-1)-offset);
     1714        }
    16861715    }
    16871716}
     
    18811910UInt_t MHCamera::GetNumPixels() const
    18821911{
    1883     return fGeomCam->GetNumPixels();
     1912    return fGeomCam ? fGeomCam->GetNumPixels() : 0;
    18841913}
    18851914
  • trunk/MagicSoft/Mars/mhist/MHCamera.h

    r7297 r7342  
    3939        kProfile            = BIT(18), // FIXME: When changing change max/min!
    4040        kFreezed            = BIT(19),
    41         kNoLegend           = BIT(20)/*,
     41        kNoLegend           = BIT(20),
     42        kNoScale            = BIT(21),
     43        kNoUnused           = BIT(22)/*,
    4244        kSqrtVariance       = BIT(21),
    4345        kSinglePixelProfile = BIT(22)*/
    4446    };
    45 private:
     47protected:
    4648    MGeomCam      *fGeomCam;     // pointer to camera geometry (y-axis)
    4749    TArrayC        fUsed;        // array containing flags
  • trunk/MagicSoft/Mars/mtools/Makefile

    r3927 r7342  
    2020#
    2121INCLUDES = -I. -I../mbase -I../mgui -I../mgeom -I../mdata -I../mhbase \
    22            -I../mfileio -I../mfbase -I../manalysis
     22           -I../mfileio -I../mfbase -I../manalysis -I../mhist
    2323
    2424#manalysis: MChisqEval (MParameters)
     
    3434           MagicSnake.cc \
    3535           MagicShow.cc \
     36           MagicJam.cc \
    3637           MagicDomino.cc \
    3738           MagicCivilization.cc \
  • trunk/MagicSoft/Mars/mtools/ToolsLinkDef.h

    r3022 r7342  
    1818#pragma link C++ class MagicSnake+;
    1919#pragma link C++ class MagicShow+;
     20#pragma link C++ class MagicJamAbc+;
     21#pragma link C++ class MagicJam+;
     22#pragma link C++ class MagicJamEditor+;
    2023#pragma link C++ class MagicDomino+;
    2124#pragma link C++ class MagicCivilization+;
Note: See TracChangeset for help on using the changeset viewer.