Changeset 2265 for trunk


Ignore:
Timestamp:
07/06/03 21:02:56 (21 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r2264 r2265  
    3030   * macros/pixsatrate.C:
    3131     - added
     32
     33   * Makefile.conf.general:
     34     - added -lHistPainter
     35     
     36   * NEWS:
     37     - updated
     38     
     39   * macros/pixsatrate.C:
     40     - added Saturation rate of lo gains
     41     
     42   * macros/sumevents.C, macros/sumeventserr.C,
     43     macros/sumpedestalrms.C, macros/sumpedestals.C:
     44     - fixed axis titles
     45     - use new SetOptStat
     46     
     47   * manalysis/MCerPhotAnal2.[h,cc]:
     48     - count and print number of skipped events
     49     
     50   * meventdisp/MGCamDisplay.cc:
     51     - fixed a 'division by zero'
     52     
     53   * mhist/MHCamEvent.cc, mhist/MHTriggerLvl0.cc:
     54     - take name from MHCamEvent if fNameEvt not available
     55     
     56   * mhist/MHCamera.[h,cc]:
     57     - use THistPainter to Draw title and statistics box
     58     - added fOptStat
     59     - added GetMean
     60     - added GetRMS
     61     - some modification for a better layout
     62     
     63   * mraw/MRawEvtHeader.cc:
     64     - calculate time from clock ticks
    3265
    3366
  • trunk/MagicSoft/Mars/Makefile.conf.general

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

    r2176 r2265  
    7878
    7979   - logarithmic scale in camera
     80
     81   - added class to iterate through directory contents (MDirIter)
    8082
    8183
  • trunk/MagicSoft/Mars/macros/pixsatrate.C

    r2264 r2265  
    7676    tlist.AddToList(&read);
    7777
    78     MHTriggerLvl0 trigmap(254, "Saturation", "Saturation");
    79     trigmap.SetType(1);
     78    MHTriggerLvl0 trighi(254, "SaturationHi", "Saturation Rate of Hi Gains");
     79    MHTriggerLvl0 triglo(254, "SaturationLo", "Saturation Rate of Lo Gains");
     80    trighi.SetType(1);
     81    triglo.SetType(2);
    8082
    81     MFillH fillh(trigmap, "MRawEvtData");
    82     plist.AddToList(&trigmap);
    83     tlist.AddToList(&fillh);
     83    MFillH fillhi(&trighi, "MRawEvtData");
     84    MFillH filllo(&triglo, "MRawEvtData");
     85    tlist.AddToList(&fillhi);
     86    tlist.AddToList(&filllo);
    8487
    8588    MEvtLoop evtloop;
  • trunk/MagicSoft/Mars/macros/sumevents.C

    r2244 r2265  
    8686    disp3->SetCamContent(*disp0, 2);
    8787
    88     disp2->SetStats(kFALSE);
    89     disp3->SetStats(kFALSE);
     88    disp1->SetYTitle("S [au]");
     89    disp2->SetYTitle("\\sigma_{S} [au]");
     90    disp3->SetYTitle("\\sigma_{S} [%]");
    9091
    91     disp1->SetYTitle("a.u.");
    92     disp2->SetYTitle("err");
    93     disp3->SetYTitle("rel.err [%]");
     92    disp1->SetOptStat(1111);
     93    disp2->SetOptStat(1101);
     94    disp3->SetOptStat(1101);
     95
     96    c->cd(1);
     97    disp1->Draw("hist");
     98
     99    c->cd(2);
     100    gPad->SetLogy();
     101    disp2->Draw("hist");
     102
     103    c->cd(3);
     104    gPad->SetLogy();
     105    disp3->Draw("hist");
    94106
    95107    c->cd(4);
     
    114126    disp3->Draw();
    115127
    116     c->cd(1);
    117     disp1->Draw("hist");
    118 
    119     c->cd(2);
    120     gPad->SetLogy();
    121     disp2->Draw("hist");
    122 
    123     c->cd(3);
    124     gPad->SetLogy();
    125     disp3->Draw("hist");
    126 
    127128    c->SaveAs(fname(0, fname.Last('.')+1) + "ps");
    128129    //c->SaveAs(fname(0, fname.Last('.')+1) + "root");
     
    138139{
    139140    MDirIter Next;
    140     Next.AddDirectory(dirname, "raw*.root", -1);
     141    Next.AddDirectory(dirname, "*1947*.root", -1);
    141142
    142143    TString fname;
  • trunk/MagicSoft/Mars/macros/sumeventserr.C

    r2252 r2265  
    4848    read.DisableAutoScheme();
    4949
    50     MPedestalSum  ncalc;
     50    //MPedestalSum  ncalc;
    5151    //MCerPhotCalc  ncalc;
    5252    //MCerPhotAnal  ncalc;
    53     //MCerPhotAnal2 ncalc;
     53    MCerPhotAnal2 ncalc;
    5454
    5555    tlist.AddToList(&read);
     
    8989    disp3->SetCamContent(*disp0, 2);
    9090
    91     disp2->SetStats(kFALSE);
    92     disp3->SetStats(kFALSE);
     91    disp1->SetYTitle("S_{err} [au]");
     92    disp2->SetYTitle("\\sigma_{S_{err}} [au]");
     93    disp3->SetYTitle("\\sigma_{S_{err}} [%]");
    9394
    94     disp1->SetYTitle("a.u.");
    95     disp2->SetYTitle("err");
    96     disp3->SetYTitle("rel.err [%]");
     95    disp1->SetOptStat(1111);
     96    disp2->SetOptStat(1101);
     97    disp3->SetOptStat(1101);
    9798
    9899    c->cd(4);
     
    138139//  This macro shows how to fill and display a histogram using Mars
    139140//
    140 void sumevents(const char *dirname=".")
     141void sumeventserr(const char *dirname=".")
    141142{
    142143    MDirIter Next;
    143     Next.AddDirectory(dirname, "*ped*.root", -1);
     144    Next.AddDirectory(dirname, "*1947*.root", -1);
    144145
    145146    TString fname;
  • trunk/MagicSoft/Mars/macros/sumpedestalrms.C

    r2252 r2265  
    9090    disp3->SetCamContent(*disp0, 2);
    9191
    92     disp2->SetStats(kFALSE);
    93     disp3->SetStats(kFALSE);
     92    disp1->SetYTitle("P_{rms} [au]");
     93    disp2->SetYTitle("\\sigma_{P_{rms}} [au]");
     94    disp3->SetYTitle("\\sigma_{P_{rms}} [%]");
    9495
    95     disp1->SetXTitle("a.u.");
    96     disp2->SetXTitle("err");
    97     disp3->SetXTitle("rel.err [%]");
     96    disp1->SetOptStat(1111);
     97    disp2->SetOptStat(1101);
     98    disp3->SetOptStat(1101);
    9899
     100    c->cd(1);
     101    disp1->Draw("hist");
     102
     103    c->cd(2);
     104    disp2->Draw("hist");
     105
     106    c->cd(3);
     107    disp3->Draw("hist");
     108 
    99109    c->cd(4);
    100110    gPad->SetBorderMode(0);
     
    118128    disp3->Draw();
    119129
    120     c->cd(1);
    121     disp1->Draw("hist");
    122 
    123     c->cd(2);
    124     disp2->Draw("hist");
    125 
    126     c->cd(3);
    127     disp3->Draw("hist");
    128 
    129130    c->SaveAs(fname(0, fname.Last('.')+1) + "ps");
    130131    //c->SaveAs(fname(0, fname.Last('.')+1) + "root");
     
    140141{
    141142    MDirIter Next;
    142     Next.AddDirectory(dirname, "raw*.root", -1);
     143    Next.AddDirectory(dirname, "*1947*.root", -1);
    143144
    144145    TString fname;
  • trunk/MagicSoft/Mars/macros/sumpedestals.C

    r2244 r2265  
    8686    disp3->SetCamContent(*disp0, 2);
    8787
    88     disp2->SetStats(kFALSE);
    89     disp3->SetStats(kFALSE);
     88    disp1->SetYTitle("P [au]");
     89    disp2->SetYTitle("\\sigma_{P} [au]");
     90    disp3->SetYTitle("\\sigma_{P} [%]");
    9091
    91     disp1->SetXTitle("a.u.");
    92     disp2->SetXTitle("err");
    93     disp3->SetXTitle("rel.err [%]");
     92    disp1->SetOptStat(1111);
     93    disp2->SetOptStat(1101);
     94    disp3->SetOptStat(1101);
     95
     96    c->cd(1);
     97    disp1->Draw("hist");
     98
     99    c->cd(2);
     100    disp2->Draw("hist");
     101
     102    c->cd(3);
     103    disp3->Draw("hist");
    94104
    95105    c->cd(4);
     
    114124    disp3->Draw();
    115125
    116     c->cd(1);
    117     disp1->Draw("hist");
    118 
    119     c->cd(2);
    120     disp2->Draw("hist");
    121 
    122     c->cd(3);
    123     disp3->Draw("hist");
    124 
    125126    c->SaveAs(fname(0, fname.Last('.')+1) + "ps");
    126127    //c->SaveAs(fname(0, fname.Last('.')+1) + "root");
     
    136137{
    137138    MDirIter Next;
    138     Next.AddDirectory(dirname, "raw*.root", -1);
     139    Next.AddDirectory(dirname, "*1947*.root", -1);
    139140
    140141    TString fname;
  • trunk/MagicSoft/Mars/manalysis/MCerPhotAnal2.cc

    r2259 r2265  
    8686Int_t MCerPhotAnal2::PreProcess(MParList *pList)
    8787{
     88    fSkip = 0;
     89
    8890    fRunHeader = (MRawRunHeader*)pList->FindObject("MRawRunHeader");
    8991    if (!fRunHeader)
     
    149151            if (ptr[i]==255)
    150152                sat++;
     153
    151154            //if (sat>1)
    152155            //    continue;
     
    184187            {
    185188                if (ptr[i]>250)
     189                {
     190                    fSkip++;
    186191                    return kCONTINUE;
     192                }
    187193                if (i<max-fBefore || i>max+fAfter)
    188194                {
     
    237243}
    238244
     245Int_t MCerPhotAnal2::PostProcess()
     246{
     247    if (GetNumExecutions()==0 || fSkip==0)
     248        return kTRUE;
     249
     250    *fLog << inf << endl;
     251    *fLog << GetDescriptor() << " execution statistics:" << endl;
     252    *fLog << dec << setfill(' ');
     253    *fLog << " " << setw(7) << fSkip << " (" << setw(3) << (int)(fSkip*100/GetNumExecutions()) << "%) Evts skipped due to: lo gain saturated." << endl;
     254
     255    return kTRUE;
     256}
  • trunk/MagicSoft/Mars/manalysis/MCerPhotAnal2.h

    r2251 r2265  
    2222class MCerPhotAnal2 : public MTask
    2323{
     24private:
    2425    MPedestalCam  *fPedestals;  // Pedestals of all pixels in the camera
    2526    MRawEvtData   *fRawEvt;     // raw event data (time slices)
     
    3031    Byte_t fAfter;
    3132
    32 public:
    33     MCerPhotAnal2(Byte_t b=2, Byte_t a=5, const char *name=NULL, const char *title=NULL);
     33    Int_t fSkip;                //!
    3434
    3535    Int_t PreProcess(MParList *pList);
    3636    Int_t Process();
     37    Int_t PostProcess();
     38
     39public:
     40    MCerPhotAnal2(Byte_t b=2, Byte_t a=5, const char *name=NULL, const char *title=NULL);
    3741
    3842    ClassDef(MCerPhotAnal2, 0)   // Task to calculate cerenkov photons from raw data
  • trunk/MagicSoft/Mars/meventdisp/MGCamDisplay.cc

    r2237 r2265  
    259259            continue;
    260260        MPedestalPix &ppix = (*ped)[i];
    261         if (ppix.GetPedestalRms()<0)
     261        if (ppix.GetPedestalRms()<=0)
    262262            continue;
    263263        val[i] = pix->GetNumPhotons()/ppix.GetPedestalRms();
  • trunk/MagicSoft/Mars/mhist/MHCamEvent.cc

    r2244 r2265  
    9999    if (fSum)
    100100        delete (fSum);
    101     fSum = new MHCamera(*cam, fNameEvt+";avg", fTitle);
     101
     102    const TString name = fNameEvt.IsNull() ? fName : fNameEvt;
     103
     104    fSum = new MHCamera(*cam, name+";avg", fTitle);
    102105    fSum->SetYTitle("a.u.");
    103106
  • trunk/MagicSoft/Mars/mhist/MHCamera.cc

    r2264 r2265  
    4747#include <TRandom.h>
    4848#include <TPaveText.h>
     49#include <TPaveStats.h>
    4950#include <TClonesArray.h>
     51#include <THistPainter.h>
     52
     53#include "MLog.h"
     54#include "MLogManip.h"
    5055
    5156#include "MH.h"
     
    7681//  Default Constructor. To be used by the root system ONLY.
    7782//
    78 MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fColors(kItemsLegend)
     83MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fColors(kItemsLegend), fOptStat(-1)
    7984{
    8085    SetDirectory(NULL);
     
    215220   fTsumwx2 += z*x*x;
    216221   return bin;
     222}
     223
     224Stat_t MHCamera::GetMean(Int_t axis) const
     225{
     226    Stat_t mean = 0;
     227    for (int i=1; i<fNcells-1; i++)
     228        mean += fArray[i];
     229
     230    return mean/(fNcells-2);
     231}
     232
     233Stat_t MHCamera::GetRMS(Int_t axis) const
     234{
     235    const Int_t n = fNcells-2;
     236
     237    Stat_t sum = 0;
     238    Stat_t sq  = 0;
     239    for (int i=1; i<n+1; i++)
     240    {
     241        sum += fArray[i];
     242        sq  += fArray[i]*fArray[i];
     243    }
     244
     245    sum /= n;
     246    sq  /= n;
     247
     248    return sqrt(sq-sum*sum);
    217249}
    218250
     
    314346void MHCamera::SetRange()
    315347{
    316     const Float_t range = fGeomCam->GetMaxRadius();
     348    const Float_t range = fGeomCam->GetMaxRadius()*1.05;
    317349
    318350    //
     
    373405    {
    374406        if (IsUsed(i) && iscol)
     407        {
     408            if (TMath::IsNaN(fArray[i+1]))
     409                gLog << warn << "MHCamera::Update: " << GetName() << " <" << GetTitle() << "> - Pixel Index #" << i << " contents is NaN (Not a Number)..." << endl;
     410
    375411            hex.SetFillColor(GetColor(fArray[i+1], min, max, islog));
     412        }
    376413        else
    377414            hex.SetFillColor(10);
     
    381418            hex.PaintHexagon(pix.GetX(), pix.GetY(), pix.GetD());
    382419        else
    383             if (IsUsed(i))
     420            if (IsUsed(i) && !TMath::IsNaN(fArray[i+1]))
    384421            {
    385422                Float_t size = pix.GetD()*(fArray[i+1]-min)/(max-min);
     
    413450void MHCamera::PaintAxisTitle()
    414451{
    415     Float_t fRange = fGeomCam->GetMaxRadius();
    416 
    417     TLatex *ptitle = new TLatex(1.2*fRange, .97*fRange, GetYaxis()->GetTitle());
    418 
    419     ptitle->SetTextSize(0.03);
    420     ptitle->SetTextAlign(33);
     452    const Float_t range = fGeomCam->GetMaxRadius()*1.05;
     453    const Float_t w = (1 + 1.5/sqrt((float)(fNcells-2)))*range;
     454
     455    TLatex *ptitle = new TLatex(w, -.90*range, GetYaxis()->GetTitle());
     456
     457    ptitle->SetTextSize(0.05);
     458    ptitle->SetTextAlign(21);
    421459
    422460    // box with the histogram title
     
    430468// ------------------------------------------------------------------------
    431469//
    432 // Paint the histogram title
    433 //
    434 void MHCamera::PaintTitle()
    435 {
    436 //    *-*-*-*-*-*-*-*-*-*Draw the histogram title*-*-*-*-*-*-*-*-*-*-*-*-*
    437 //                       ========================
    438    //if (Hoption.Same) return;
    439 #if ROOT_VERSION_CODE > ROOT_VERSION(3,05,00)
    440     if (TestBit(kNoTitle))
    441         return;
    442 #endif
    443 
    444     const Int_t nt = strlen(GetTitle());
    445 
    446     TPaveText *title = (TPaveText*)gPad->FindObject("title");
    447     if (nt == 0 || gStyle->GetOptTitle() <= 0)
    448     {
    449         if (title)
    450             delete title;
    451         return;
    452     }
    453 
    454     Double_t ht = gStyle->GetTitleH();
    455     Double_t wt = gStyle->GetTitleW();
    456 
    457     if (ht <= 0)
    458         ht = 0.05;
    459     if (wt <= 0)
    460     {
    461         TLatex l;
    462         l.SetTextSize(ht);
    463         l.SetTitle(GetTitle());
    464         Double_t wndc = l.GetXsize()/(gPad->GetX2() - gPad->GetX1());
    465         wt = TMath::Min(0.7, 0.02+wndc);
    466     }
    467     if (title)
    468     {
    469         TText *t0 = (TText*)title->GetLine(0);
    470         if (t0)
    471         {
    472             if (!strcmp(t0->GetTitle(), GetTitle()))
    473                 return;
    474 
    475             t0->SetTitle(GetTitle());
    476             if (wt > 0)
    477                 title->SetX2NDC(title->GetX1NDC()+wt);
    478         }
    479         return;
    480     }
    481 
    482     TPaveText *ptitle = new TPaveText(
    483                                       gStyle->GetTitleX(),
    484                                       gStyle->GetTitleY()-ht,
    485                                       gStyle->GetTitleX()+wt,
    486                                       gStyle->GetTitleY(),"blNDC");
    487 
    488     // box with the histogram title
    489 #if ROOT_VERSION_CODE > ROOT_VERSION(3,05,01)
    490     ptitle->SetFillColor(gStyle->GetTitleFillColor());
    491     ptitle->SetTextFont(gStyle->GetTitleFont(""));
    492     if (gStyle->GetTitleFont("")%10 > 2)
    493         ptitle->SetTextSize(gStyle->GetTitleFontSize());
    494 #endif
    495     ptitle->SetFillStyle(gStyle->GetTitleStyle());
    496     ptitle->SetName("title");
    497     ptitle->SetBorderSize(gStyle->GetTitleBorderSize());
    498     ptitle->SetTextColor(gStyle->GetTitleTextColor());
    499     ptitle->AddText(GetTitle());
    500     ptitle->SetBit(kCanDelete);
    501     ptitle->Draw();
    502     ptitle->Paint();
    503 }
    504 
    505 // ------------------------------------------------------------------------
    506 //
    507470// Paints the camera.
    508471//
     
    515478    {
    516479        opt.ReplaceAll("hist", "");
    517 
    518480        Int_t mode = gStyle->GetOptStat();
    519481        TVirtualPad *save = gPad;
    520482        gPad=NULL;
    521         gStyle->SetOptStat(1000011);
     483        gStyle->SetOptStat(fOptStat<0 ? mode : fOptStat);
    522484        gPad=save;
    523485        TH1D::Paint(o);
     
    534496    Bool_t iscol = isbox ? !opt.Contains("nocol") : 1;
    535497
     498    THistPainter paint;
     499    if (!TestBit(TH1::kNoStats))
     500    {
     501        paint.SetHistogram(this);
     502        paint.PaintStat(fOptStat<0?gStyle->GetOptStat():fOptStat, NULL);
     503    }
     504
    536505    // Update Contents of the pixels and paint legend
    537506    Update(gPad->GetLogy(), isbox, iscol);
    538507
    539508    // Paint primitives (pixels, color legend, photons, ...)
    540     PaintTitle();
     509    paint.PaintTitle();
    541510    PaintAxisTitle();
    542511}
     
    619588        const MGeomPix &h = (*fGeomCam)[i];
    620589        TText *nt = txt.DrawText(h.GetX(), h.GetY(), num);
    621         nt->SetTextSize(0.3*h.GetD()/fGeomCam->GetMaxRadius());
     590        nt->SetTextSize(0.3*h.GetD()/fGeomCam->GetMaxRadius()/1.05);
    622591    }
    623592}
     
    642611        const MGeomPix &h = (*fGeomCam)[i];
    643612        TText *nt = txt.DrawText(h.GetX(), h.GetY(), num);
    644         nt->SetTextSize(0.3*h.GetD()/fGeomCam->GetMaxRadius());
     613        nt->SetTextSize(0.3*h.GetD()/fGeomCam->GetMaxRadius()/1.05);
    645614    }
    646615}
     
    848817{
    849818    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     }
     819        return 10;
    854820
    855821    //
     
    877843}
    878844
     845TPaveStats *MHCamera::GetStats()
     846{
     847    TObject *obj = 0;
     848
     849    TIter Next(fFunctions);
     850    while ((obj = Next()))
     851        if (obj->InheritsFrom(TPaveStats::Class()))
     852            return static_cast<TPaveStats*>(obj);
     853
     854    return NULL;
     855}
     856
    879857// ------------------------------------------------------------------------
    880858//
     
    883861void MHCamera::UpdateLegend(Float_t min, Float_t max, Bool_t islog)
    884862{
    885     const Float_t range = fGeomCam->GetMaxRadius();
    886 
    887     const Float_t H = 0.9*range;
     863    TPaveStats *stats = GetStats();
     864
     865    const Float_t hndc   = 0.92 - (stats ? stats->GetY1NDC() : 1);
     866    const Float_t range  = fGeomCam->GetMaxRadius()*1.05;
     867    const Float_t H      = (0.75-hndc)*range;
     868    const Float_t offset = hndc*range;
     869
    888870    const Float_t h = 2./kItemsLegend;
    889     const Float_t offset = 0.04*range;
    890 
    891871    const Float_t w = range/sqrt((float)(fNcells-2));
    892872
    893873    TBox newbox;
    894874    TText newtxt;
    895     newtxt.SetTextSize(0.025);
     875    newtxt.SetTextSize(0.03);
    896876    newtxt.SetTextAlign(12);
    897877#if ROOT_VERSION_CODE > ROOT_VERSION(3,01,06)
  • trunk/MagicSoft/Mars/mhist/MHCamera.h

    r2251 r2265  
    1717#include <TH1.h>
    1818#endif
     19
     20class TPaveStats;
    1921
    2022class MGeomCam;
     
    3335    TList         *fNotify;      //!
    3436
     37    Int_t          fOptStat;
     38
    3539    //TGStatusBar   *fStatusBar;
    3640
     
    4145    void  SetRange();
    4246
     47    TPaveStats *GetStats();
     48
    4349    Int_t GetPixelIndex(Int_t px, Int_t py) const;
    4450
    45     void PaintTitle();
    4651    void PaintAxisTitle();
    4752
     
    130135
    131136    void  SetAutoScale(); // *MENU*
     137    void  SetOptStat(Int_t os=-1); // *MENU*
    132138
    133139    void  SetPix(const Int_t pixnum, const Int_t color, Float_t min, Float_t max);      // New function added by M.Lopez in 31-01-03
    134140
    135141    void  AddNotify(const MCamEvent &event) { fNotify->Add((TObject*)(&event)); }
     142
     143    Stat_t GetMean(Int_t axis) const;
     144    Stat_t GetRMS(Int_t axis) const;
    136145
    137146    //void SetStatusBar(TGStatusBar *bar) { fStatusBar = bar; }
     
    141150
    142151inline void MHCamera::SetAutoScale() { fMinimum = fMaximum = -1111; }
     152inline void MHCamera::SetOptStat(Int_t os) { fOptStat = os; }
    143153
    144154#endif
  • trunk/MagicSoft/Mars/mhist/MHTriggerLvl0.cc

    r2229 r2265  
    104104    if (fSum)
    105105        delete (fSum);
    106     fSum = new MHCamera(*cam, fNameEvt+";avg", fTitle);
     106
     107    const TString name = fNameEvt.IsNull() ? fName : fNameEvt;
     108
     109    fSum = new MHCamera(*cam, name+";avg", fTitle);
    107110    fSum->SetYTitle("%");
    108111
  • trunk/MagicSoft/Mars/mraw/MRawEvtHeader.cc

    r2173 r2265  
    245245    // store the time of the event in the corresponding container
    246246    //
     247    const Double_t mhz = 9.375;                          // [1e6 ticks/s]
     248    const Double_t t   = (Double_t)fAbsTime[0]/mhz*1e-3; // [ns]
     249    const Double_t ns  = (UShort_t)fmod(t, 1e9);
     250    const Double_t s   = (Byte_t)fmod(t/1e9, 60);
     251    const Double_t m   = (Byte_t)fmod(t/60e9, 60);
     252    const Double_t h   = (Byte_t)(t/3600e9);
     253
     254    fTime->SetTime(h, m, s, ns);
    247255    fTime->SetTime(fAbsTime[0], fAbsTime[1]);
    248256
Note: See TracChangeset for help on using the changeset viewer.