Changeset 2236


Ignore:
Timestamp:
06/26/03 16:21:57 (22 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r2234 r2236  
    11                                                 -*-*- END OF LINE -*-*-
     2
     3 2003/06/26: Thomas Bretz
     4
     5  * macros/CT1EgyEst.C:
     6    - converted from dos to unix type
     7
     8   * macros/rootlogon.C:
     9     - removed "-fno-rtti" from options for Aclic
     10     
     11   * mbase/MLog.h:
     12     - added a comment
     13     
     14   * mgeom/MGeomCam.[h,cc], mgeom/MGeomPix.[h,cc],
     15     mgeom/MGeomCamCT1.cc, mgeom/MGeomCamECO1000.cc,
     16     mgeom/MGeomCamECO1000HG.cc, mgeom/MGeomCamMagicHG.cc:
     17     - added support for sectors
     18   
     19   * megom/MGeomCamMagic.[h,cc]:
     20     - added sectors
     21     
     22   * mhist/MHCamera.[h,cc]:
     23     - convert Option_t in Paint to lower case
     24     - remove 'hist' if detected from Option_t
     25     - check for min==max
     26     - added DrawSectorIndices()
     27     - added TArrayC to AddCamContent
     28     - added TArrayC to SetCamContent
     29     - simplified DistancetoPrimitive
     30     
     31   * mraw/MRawEvtData.cc:
     32     - simplified Draw by converting option string to lower case
     33     
     34   * mraw/MRawEvtPixelIter.[h,cc]:
     35     - added GetNumMaxLoGainSample
     36
     37
    238
    339 2003/06/25: Thomas Bretz
  • trunk/MagicSoft/Mars/macros/rootlogon.C

    r2080 r2236  
    110110    if (TString("linux")==gSystem->GetBuildArch())
    111111    {
    112         TString options = " -O -pipe -Wall -Woverloaded-virtual -fno-rtti -fno-exceptions -fPIC ";
     112        TString options = " -O -pipe -Wall -Woverloaded-virtual -fno-exceptions -fPIC ";
    113113
    114114        TString s = "cd $BuildDir ; ";
  • trunk/MagicSoft/Mars/mbase/MLog.h

    r2173 r2236  
    167167    }
    168168
     169    // FIXME: Switch off colors when on....
    169170    void SetNullOutput(Bool_t n=kTRUE) { fIsNull = n; }
    170171
  • trunk/MagicSoft/Mars/mgeom/MGeomCam.cc

    r2234 r2236  
    9797// --------------------------------------------------------------------------
    9898//
     99// Calculate the highest sector index+1 of all pixels, please make sure
     100// the the sector numbers are continous.
     101//
     102void MGeomCam::CalcNumSectors()
     103{
     104    fNumSectors = 0;
     105
     106    for (UInt_t i=0; i<fNumPixels; i++)
     107    {
     108        const MGeomPix &pix = (*this)[i];
     109        const UInt_t s = pix.GetSector();
     110
     111        if (s>fNumSectors)
     112            fNumSectors = s;
     113    }
     114
     115    fNumSectors++;
     116}
     117
     118// --------------------------------------------------------------------------
     119//
    99120// Calculate the maximum radius of the camera. This is ment for GUI layout.
    100121//
  • trunk/MagicSoft/Mars/mgeom/MGeomCam.h

    r2209 r2236  
    2222    TObjArray fPixels;     // Array of singel pixels storing the geometry
    2323
     24    UInt_t    fNumSectors; // Number of sectors
     25
    2426protected:
    2527    void CalcMaxRadius();
     28    void CalcNumSectors();
    2629    void InitOuterRing();
    2730
     
    3235    virtual TObject *Clone(const char *newname=NULL) const;
    3336
    34     Float_t GetCameraDist() const      { return fCamDist; }
    35     Float_t GetConvMm2Deg() const      { return fConvMm2Deg; }
     37    Float_t GetCameraDist() const { return fCamDist; }
     38    Float_t GetConvMm2Deg() const { return fConvMm2Deg; }
    3639
    37     UInt_t  GetNumPixels() const       { return fNumPixels; }
    38     Float_t GetMaxRadius() const       { return fMaxRadius; }
     40    UInt_t  GetNumPixels() const  { return fNumPixels; }
     41    Float_t GetMaxRadius() const  { return fMaxRadius; }
     42    UInt_t  GetNumSectors() const { return fNumSectors; }
    3943    Float_t GetPixRatio(UInt_t i) const;
    4044
  • trunk/MagicSoft/Mars/mgeom/MGeomCamCT1.cc

    r2037 r2236  
    5656    CreateCam();
    5757    CreateNN();
     58    CalcNumSectors();
    5859    CalcMaxRadius();
    5960}
  • trunk/MagicSoft/Mars/mgeom/MGeomCamECO1000.cc

    r2195 r2236  
    5252    CreateCam();
    5353    CreateNN();
     54    CalcNumSectors();
    5455    CalcMaxRadius();
    5556}
  • trunk/MagicSoft/Mars/mgeom/MGeomCamECO1000HG.cc

    r2195 r2236  
    5656    CreateCam();
    5757    CreateNN();
     58    CalcNumSectors();
    5859    CalcMaxRadius();
    5960}
  • trunk/MagicSoft/Mars/mgeom/MGeomCamMagic.cc

    r2135 r2236  
    5353    CreateCam();
    5454    CreateNN();
     55    CalcNumSectors();
    5556    CalcMaxRadius();
    5657}
     
    221222        -034.641                                                                         // 576
    222223    };
    223 
     224/*
    224225    const Float_t dtemp[577] = {
    225226        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,  //   0
     
    296297        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,  // 568
    297298        60.00  };                                                // 576
     299*/
     300    const Byte_t sector[577] = {
     301        0, 1, 2, 3, 4, 5, 6, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
     302        1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 1,
     303        1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5,
     304        6, 6, 6, 6, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
     305        4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 1, 1, 1, 1,
     306        1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,
     307        4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1,
     308        1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
     309        4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 1, 1,
     310        1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
     311        3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5,
     312        6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
     313        2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
     314        4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,
     315        6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
     316        2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
     317        4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6,
     318        6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
     319        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
     320        3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5,
     321        5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1,
     322        1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4,
     323        4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1,
     324        1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4,
     325        4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6,
     326        1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
     327        3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5,
     328        5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1,
     329        2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4,
     330        4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6,
     331        6, 6, 6, 6, 6, 6, 6 };
    298332
    299333    //
    300334    //   fill the pixels list with this data
    301335    //
    302 
    303336    for (UInt_t i=0; i<GetNumPixels(); i++)
    304         (*this)[i].Set(xtemp[i], ytemp[i], dtemp[i]) ;
     337        (*this)[i].Set(xtemp[i], ytemp[i], i>396?60:30, sector[i]);
    305338}
    306339
  • trunk/MagicSoft/Mars/mgeom/MGeomCamMagicHG.cc

    r2187 r2236  
    5353    CreateCam();
    5454    CreateNN();
     55    CalcNumSectors();
    5556    CalcMaxRadius();
    5657}
     
    983984
    984985    for (UInt_t i=0; i<GetNumPixels(); i++)
    985         (*this)[i].Set(xtemp[i], ytemp[i], dtemp[i]) ;
     986        (*this)[i].Set(xtemp[i], ytemp[i], dtemp[i]);
    986987}
    987988
  • trunk/MagicSoft/Mars/mgeom/MGeomPix.cc

    r2178 r2236  
    5656// Initializes one pixel
    5757//
    58 MGeomPix::MGeomPix(Float_t x, Float_t y, Float_t r) : fX(x), fY(y), fD(r)
     58MGeomPix::MGeomPix(Float_t x, Float_t y, Float_t r, UInt_t s) : fX(x), fY(y), fD(r), fSector(s)
    5959{
    6060    //  default constructor
  • trunk/MagicSoft/Mars/mgeom/MGeomPix.h

    r2135 r2236  
    2525    Short_t fNeighbors[6]; // the IDs of the pixel next to it (we are assuming an hexagonal geometry)
    2626
     27    UInt_t fSector; // Number of sector the pixels corresponds to
     28
    2729public:
    28     MGeomPix(Float_t x=0, Float_t y=0, Float_t d=0);
     30    MGeomPix(Float_t x=0, Float_t y=0, Float_t d=0, UInt_t s=0);
    2931
    3032    void Print(Option_t *opt=NULL) const;
    3133
    32     void Set(Float_t x, Float_t y, Float_t d) { fX=x; fY=y; fD=d; }
     34    void Set(Float_t x, Float_t y, Float_t d, UInt_t s=0) { fX=x; fY=y; fD=d; fSector=s; }
    3335
    3436    void SetNeighbors(Short_t i0=-1, Short_t i1=-1, Short_t i2=-1,
     
    3638
    3739    void CheckOuterRing(const MGeomCam &cam);
    38 
    39     void SetX(Float_t x) { fX = x; }
    40     void SetY(Float_t y) { fY = y; }
    41     void SetD(Float_t d) { fD = d; }
     40    /*
     41     void SetX(Float_t x) { fX = x; }
     42     void SetY(Float_t y) { fY = y; }
     43     void SetD(Float_t d) { fD = d; }
     44     void SetSector(UInt_t s) { fSector = s; }
     45     */
    4246
    4347    Float_t GetX() const  { return fX; }
    4448    Float_t GetY() const  { return fY; }
    4549    Float_t GetD() const  { return fD; }
     50    UInt_t  GetSector() const { return fSector; }
    4651
    4752    Float_t GetA() const;
  • trunk/MagicSoft/Mars/mhist/MHCamera.cc

    r2231 r2236  
    364364    }
    365365
     366    if (min==max)
     367        max += 1;
     368
    366369    UpdateLegend(min, max, islog);
    367370
     
    506509void MHCamera::Paint(Option_t *o)
    507510{
    508     const TString opt(o);
    509 
    510     if (opt.Contains("hist", TString::kIgnoreCase))
    511     {
     511    TString opt(o);
     512    opt.ToLower();
     513
     514    if (opt.Contains("hist"))
     515    {
     516        opt.ReplaceAll("hist", "");
     517
    512518        Int_t mode = gStyle->GetOptStat();
    513519        TVirtualPad *save = gPad;
     
    525531    SetRange();
    526532
    527     Bool_t isbox = opt.Contains("box", TString::kIgnoreCase);
    528     Bool_t iscol = isbox ? !opt.Contains("nocol", TString::kIgnoreCase) : 1;
     533    Bool_t isbox = opt.Contains("box");
     534    Bool_t iscol = isbox ? !opt.Contains("nocol") : 1;
    529535
    530536    // Update Contents of the pixels and paint legend
     
    595601void MHCamera::DrawPixelIndices()
    596602{
     603    // FIXME: Is this correct?
    597604    for (int i=0; i<kItemsLegend; i++)
    598605        fColors[i] = 16;
     
    609616        TString num;
    610617        num += i;
     618
     619        const MGeomPix &h = (*fGeomCam)[i];
     620        TText *nt = txt.DrawText(h.GetX(), h.GetY(), num);
     621        nt->SetTextSize(0.3*h.GetD()/fGeomCam->GetMaxRadius());
     622    }
     623}
     624
     625void MHCamera::DrawSectorIndices()
     626{
     627    for (int i=0; i<kItemsLegend; i++)
     628        fColors[i] = 16;
     629
     630    if (!gPad)
     631        Draw();
     632
     633    TText txt;
     634    txt.SetTextFont(122);
     635    txt.SetTextAlign(22);   // centered/centered
     636
     637    for (Int_t i=0; i<fNcells-2; i++)
     638    {
     639        TString num;
     640        num += (*fGeomCam)[i].GetSector();
    611641
    612642        const MGeomPix &h = (*fGeomCam)[i];
     
    678708// Only 'used' pixels are added.
    679709//
    680 void MHCamera::AddCamContent(const TArrayD &event, Bool_t ispos)
     710void MHCamera::AddCamContent(const TArrayD &event, const TArrayC *used)
    681711{
    682712    if (event.GetSize()!=fNcells-2)
    683713        return;
    684714
     715    if (used && used->GetSize()!=fNcells-2)
     716        return;
     717
    685718    for (Int_t idx=0; idx<fNcells-2; idx++)
    686719    {
    687720        Fill(idx, const_cast<TArrayD&>(event)[idx]); // FIXME: Slow!
    688721
    689         if (!ispos || fArray[idx+1]>0)
     722        if (used && (*used)[idx])
    690723            SetUsed(idx);
    691724    }
     
    814847Int_t MHCamera::GetColor(Float_t val, Float_t min, Float_t max, Bool_t islog)
    815848{
     849    if (TMath::IsNaN(val)) // FIXME: gLog!
     850    {
     851        cout << "MHCamera::GetColor: " << GetName() << " <" << GetTitle() << "> - Color for val=NaN (Not a Number) requested... set val=min." << endl;
     852        val = min;
     853    }
     854
    816855    //
    817856    //   first treat the over- and under-flows
     
    833872    else
    834873        ratio = (val-min) / (max-min);
     874
    835875    const Int_t colidx = (Int_t)(ratio*maxcolidx + .5);
    836876    return fColors[colidx];
     
    930970        return TH1D::DistancetoPrimitive(px, py);
    931971
    932     Int_t dist = 999999;
    933 
    934972    for (Int_t i=0; i<fNcells-2; i++)
    935973    {
    936974        MHexagon hex((*fGeomCam)[i]);
    937         Int_t d = hex.DistancetoPrimitive(px, py);
    938 
    939         if (d<dist)
    940             dist=d;
    941     }
    942     return dist==0?0:999999;
     975        if (hex.DistancetoPrimitive(px, py)==0)
     976            return 0;
     977    }
     978    return 999999;
    943979}
    944980
  • trunk/MagicSoft/Mars/mhist/MHCamera.h

    r2229 r2236  
    9090    virtual void     AddCamContent(const MCamEvent &evt, Int_t type=0);
    9191    virtual void     AddCamContent(const MHCamera &evt, Int_t type=0);
    92     virtual void     AddCamContent(const TArrayD &arr, Bool_t ispos=kTRUE);
     92    virtual void     AddCamContent(const TArrayD &arr, const TArrayC *used=NULL);
    9393    virtual void     SetCamContent(const MCamEvent &evt, Int_t type=0) { Reset(); AddCamContent(evt, type); }
    94     virtual void     SetCamContent(const TArrayD &evt, Bool_t ispos=kTRUE) { Reset(); AddCamContent(evt, ispos); }
     94    virtual void     SetCamContent(const TArrayD &evt, const TArrayC *used=NULL) { Reset(); AddCamContent(evt, used); }
    9595    virtual void     SetCamContent(const MHCamera &d, Int_t type=0) { Reset(), AddCamContent(d, type); }
    9696    virtual void     CntCamContent(const MCamEvent &evt, Double_t threshold, Int_t type=0);
     
    111111
    112112    void  DrawPixelIndices();
     113    void  DrawSectorIndices();
    113114
    114115    void  PrintInfo() const { Print(""); } // *MENU*
  • trunk/MagicSoft/Mars/mraw/MRawEvtData.cc

    r2230 r2236  
    224224
    225225    TString str(opt);
     226    str.ToLower();
    226227
    227228    UInt_t id = 0;
    228229
    229     if (str.BeginsWith("GRAPH", TString::kIgnoreCase))
     230    if (str.BeginsWith("graph"))
    230231        if (str.Length()>5)
    231232            sscanf(&str[5], "%d", &id);
    232     if (str.BeginsWith("HIST", TString::kIgnoreCase))
     233    if (str.BeginsWith("hist"))
    233234        if (str.Length()>4)
    234235            sscanf(&str[4], "%d", &id);
     
    250251    name += pix.GetPixelId();
    251252
    252     Bool_t same = str.Contains("same", TString::kIgnoreCase);
    253 
    254     if (str.BeginsWith("GRAPH", TString::kIgnoreCase))
     253    Bool_t same = str.Contains("same");
     254
     255    if (str.BeginsWith("graph"))
    255256    {
    256257        *fLog << inf << "Drawing Graph: Pixel Idx #" << pix.GetPixelId();
     
    276277    }
    277278
    278     if (str.BeginsWith("HIST", TString::kIgnoreCase))
     279    if (str.BeginsWith("hist"))
    279280    {
    280281        // FIXME: Add Legend
  • trunk/MagicSoft/Mars/mraw/MRawEvtPixelIter.cc

    r2229 r2236  
    228228// --------------------------------------------------------------------------
    229229//
     230// Returns the index of the FADC slice the maximum signal in
     231//
     232Byte_t MRawEvtPixelIter::GetNumMaxLoGainSample() const
     233{
     234    Byte_t max  = 0;
     235    Byte_t maxi = 0;
     236
     237    for (int i=0; i<fNumLoGainSamples; i++)
     238        if (fLoGainPos[i]>max)
     239        {
     240            max = fLoGainPos[i];
     241            maxi = i;
     242        }
     243
     244    return maxi;
     245}
     246
     247// --------------------------------------------------------------------------
     248//
    230249// returns the sum of all lo gain fadc samples of the actual pixel.
    231250// if no lo gain information is available 0 is returned.
  • trunk/MagicSoft/Mars/mraw/MRawEvtPixelIter.h

    r2207 r2236  
    8282
    8383    Byte_t GetNumMaxHiGainSample() const;
     84    Byte_t GetNumMaxLoGainSample() const;
    8485
    8586    Bool_t HasLoGain() const
Note: See TracChangeset for help on using the changeset viewer.