Changeset 6890 for trunk/MagicSoft


Ignore:
Timestamp:
03/29/05 09:56:16 (20 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
2 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/ganymed.cc

    r6888 r6890  
    4949    gLog << "   -b                        Batch mode (no graphical output to screen)" << endl<<endl;
    5050    gLog << " Operation Mode:" << endl;
    51     gLog << "   --wobble                  Wobble Mode" << endl << endl;
     51    gLog << "   --wobble                  Force wobble mode (overwrites dataset)" << endl;
     52    gLog << "   --no-wobble               Force normal mode (overwrites dataset)" << endl << endl;
    5253    gLog << " Options:" << endl;
    5354    gLog.Usage();
     
    112113    kDebugEnv = arg.GetIntAndRemove("--debug-env=", kDebugEnv);
    113114
    114     const Bool_t  kQuit         = arg.HasOnlyAndRemove("-q");
    115     const Bool_t  kBatch        = arg.HasOnlyAndRemove("-b");
    116     const Bool_t  kOverwrite    = arg.HasOnlyAndRemove("-f");
    117     //const Bool_t  kForceExec  = arg.HasOnlyAndRemove("-ff");
    118 
    119     const Bool_t  kModeWobble   = arg.HasOnlyAndRemove("--wobble");
    120 
    121     const Int_t   kNumAnalysis  = arg.GetIntAndRemove("--n=", -1);
    122     const TString kOutpath      = arg.GetStringAndRemove("--out=",  ".");
    123     const TString kOutfile      = arg.GetStringAndRemove("--outf=",  "");
    124     const Bool_t  kWriteSummary = arg.HasOnlyAndRemove("--sum");
    125     const TString kNameSummary  = arg.GetStringAndRemove("--sum=");
    126     const Bool_t  kWriteResult  = arg.HasOnlyAndRemove("--res");
    127     const TString kNameResult   = arg.GetStringAndRemove("--res=");
     115    const Bool_t  kQuit          = arg.HasOnlyAndRemove("-q");
     116    const Bool_t  kBatch         = arg.HasOnlyAndRemove("-b");
     117    const Bool_t  kOverwrite     = arg.HasOnlyAndRemove("-f");
     118    //const Bool_t  kForceExec   = arg.HasOnlyAndRemove("-ff");
     119
     120    const Bool_t  kWobbleModeOn  = arg.HasOnlyAndRemove("--wobble");
     121    const Bool_t  kWobbleModeOff = arg.HasOnlyAndRemove("--no-wobble");
     122
     123    const Int_t   kNumAnalysis   = arg.GetIntAndRemove("--n=", -1);
     124    const TString kOutpath       = arg.GetStringAndRemove("--out=",  ".");
     125    const TString kOutfile       = arg.GetStringAndRemove("--outf=",  "");
     126    const Bool_t  kWriteSummary  = arg.HasOnlyAndRemove("--sum");
     127    const TString kNameSummary   = arg.GetStringAndRemove("--sum=");
     128    const Bool_t  kWriteResult   = arg.HasOnlyAndRemove("--res");
     129    const TString kNameResult    = arg.GetStringAndRemove("--res=");
     130
     131    if (kWobbleModeOn && kWobbleModeOff)
     132    {
     133        gLog << err << "ERROR - Wobble mode options are exclusive." << endl;
     134        Usage();
     135        return 2;
     136    }
    128137
    129138    if (arg.GetNumOptions()>0)
     
    194203        return 1;
    195204    }
     205
     206    Bool_t iswobble = seq.IsWobbleMode();
     207    if (kWobbleModeOn)
     208        iswobble = kTRUE;
     209    if (kWobbleModeOff)
     210        iswobble = kFALSE;
    196211
    197212    //
     
    219234    job.SetNameResultFile(kNameResult);
    220235    job.EnableWriteOnly(kWriteOnly);
    221     job.EnableWobbleMode(kModeWobble);
     236    job.EnableWobbleMode(iswobble);
    222237    if (kWriteSummary) // Don't change flag set in SetNameSummaryFile
    223238        job.EnableStorageOfSummary();
  • trunk/MagicSoft/Mars/mbase/MEvtLoop.cc

    r6513 r6890  
    263263
    264264    return kTRUE;
     265}
     266
     267// --------------------------------------------------------------------------
     268//
     269// Return the memory currently used by this process (VmSize)
     270// which contains shared memory, data memory and private memory.
     271//
     272UInt_t MEvtLoop::GetMemoryUsage()
     273{
     274    const TString path = Form("/proc/%d/status", gSystem->GetPid());
     275    if (gSystem->AccessPathName(path, kFileExists))
     276        return 0;
     277
     278    return TEnv(path).GetValue("VmSize", 0);
    265279}
    266280
     
    400414        return kFALSE;
    401415
     416    const UInt_t mem0 = GetMemoryUsage();
     417
    402418    //
    403419    //   loop over all events and process all tasks for
     
    514530    if (numcnts>0)
    515531        *fLog << " --> " << numcnts/clock.RealTime() << " Events/s";
     532
     533
     534    const UInt_t mem1 = GetMemoryUsage();
     535    if (mem1>mem0)
     536        *fLog << endl << "Mem  - Loss: " << mem1-mem0 << "kB" << endl;
    516537
    517538    *fLog << endl << endl;
  • trunk/MagicSoft/Mars/mbase/MEvtLoop.h

    r5911 r6890  
    4040
    4141    Bool_t ProcessGuiEvents(Int_t num);
     42    static UInt_t GetMemoryUsage();
    4243
    4344public:
  • trunk/MagicSoft/Mars/mbase/MStatusDisplay.cc

    r6591 r6890  
    6464
    6565#include <TH1.h>                  // TH1::AddDirectory
     66#include <TEnv.h>                 // TEnv
    6667#include <TLine.h>                // TLine
    6768#include <TText.h>                // TText
     
    239240    MGPopupMenu *sizemenu = new MGPopupMenu(gClient->GetRoot());
    240241    sizemenu->AddEntry("Fit to 640x&480",   kSize640);
     242    sizemenu->AddEntry("Fit to 768x&576",   kSize768);
    241243    sizemenu->AddEntry("Fit to 800x&600",   kSize800);
    242244    sizemenu->AddEntry("Fit to 960x7&20",   kSize960);
    243245    sizemenu->AddEntry("Fit to 1024x&768",  kSize1024);
     246    sizemenu->AddEntry("Fit to 1152x&864",  kSize1152);
    244247    sizemenu->AddEntry("Fit to 1280x&1024", kSize1280);
     248    sizemenu->AddEntry("Fit to 1400x1050",  kSize1400);
     249    sizemenu->AddEntry("Fit to 1600x1200",  kSize1600);
    245250    sizemenu->Associate(this);
    246251
     
    524529    //       a = (-1+-sqrt(1+4))/2 = sqrt(5)/2-1/2 = 0.618
    525530    //
    526     Int_t p[2] = {38, 62};
    527 
    528     fStatusBar->SetParts(p, 2);
     531    Int_t p[] = {38-2, 62-8, 10};
     532
     533    fStatusBar->SetParts(p, 3);
    529534
    530535    TGLayoutHints *layb = new TGLayoutHints(kLHintsNormal|kLHintsExpandX, 5, 4, 0, 3);
     
    539544// Change the text in the status line 1
    540545//
    541 void MStatusDisplay::SetStatusLine1(const char *txt)
     546void MStatusDisplay::SetStatusLine(const char *txt, Int_t i)
    542547{
    543548    if (gROOT->IsBatch())
    544549        return;
    545     fStatusBar->SetText(txt, 0);
     550    fStatusBar->SetText(txt, i);
    546551
    547552    // FIXME: This is a workaround, because TApplication::Run is not
     
    555560// --------------------------------------------------------------------------
    556561//
    557 // Change the text in the status line 2
    558 //
    559 void MStatusDisplay::SetStatusLine2(const char *txt)
    560 {
    561     if (gROOT->IsBatch())
    562         return;
    563 
    564     fStatusBar->SetText(txt, 1);
    565 
    566     // FIXME: This is a workaround, because TApplication::Run is not
    567     //        thread safe against ProcessEvents. We assume, that if
    568     //        we are not in the Main-Thread ProcessEvents() is
    569     //        called by the TApplication Event Loop...
    570     if (!TThread::Self()/*gApplication->InheritsFrom(TRint::Class())*/)
    571         gClient->ProcessEventsFor(fStatusBar);
    572 }
    573 
    574 // --------------------------------------------------------------------------
    575 //
    576562// Display information about the name of a container
    577563//
     
    643629    // set the smallest and biggest size of the Main frame
    644630    // and move it to its appearance position
    645     SetWMSizeHints(570, 480, 1280, 980, 1, 1);
     631    SetWMSizeHints(570, 480, 2048, 1536, 1, 1);
    646632    MoveResize(rand()%100+570, rand()%100+480, 570, 480);
    647633
     
    12641250        return kTRUE;
    12651251
    1266     case kSize640:
     1252    case kSize640: 
    12671253        Resize(570, 480);
    12681254        return kTRUE;
    1269     case kSize800:
     1255    case kSize768: 
     1256        Resize(700, 576);
     1257        return kTRUE;
     1258    case kSize800: 
    12701259        Resize(740, 600);
    12711260        return kTRUE;
    1272     case kSize960:
     1261    case kSize960: 
    12731262        Resize(880, 700);
    12741263        return kTRUE;
    1275     case kSize1024:
     1264    case kSize1024: 
    12761265        Resize(980, 768);
    12771266        return kTRUE;
    1278     case kSize1280:
     1267    case kSize1152:
     1268        Resize(1080, 864);
     1269    case kSize1280:
    12791270        Resize(1280, 980);
     1271        return kTRUE;
     1272    case kSize1400:
     1273        Resize(1350, 1050);
     1274        return kTRUE;
     1275    case kSize1600:
     1276        Resize(1550, 1400);
    12801277        return kTRUE;
    12811278
     
    15271524void MStatusDisplay::CloseWindow()
    15281525{
    1529     Close();
     1526    if (Close())
     1527        delete this;
    15301528}
    15311529
     
    15521550// --------------------------------------------------------------------------
    15531551//
     1552// Update the memory display in the status bar
     1553//
     1554void MStatusDisplay::UpdateMemory() const
     1555{
     1556    const TString path = MString::Form("/proc/%d/status", gSystem->GetPid());
     1557    if (gSystem->AccessPathName(path, kFileExists))
     1558        return;
     1559
     1560    TEnv env(path);
     1561    const UInt_t kb = env.GetValue("VmSize", 0);
     1562    if (kb==0)
     1563        return;
     1564
     1565    char type = 'k';
     1566    Float_t val = kb;
     1567
     1568    if (val>999)
     1569    {
     1570        type = 'M';
     1571        val /= 1024;
     1572    }
     1573    if (val>999)
     1574    {
     1575        type = 'G';
     1576        val /= 1024;
     1577    }
     1578    const TString txt = MString::Form("%.1f%c", val, type);
     1579    fStatusBar->SetText(txt, 2);
     1580}
     1581
     1582// --------------------------------------------------------------------------
     1583//
    15541584// Updates the canvas (if existing) in the currenly displayed Tab.
    15551585// The update intervall is controlled by StartUpdate and StopUpdate
     
    15591589    if (gROOT->IsBatch())
    15601590        return kTRUE;
     1591
     1592    UpdateMemory();
    15611593
    15621594    const Int_t c = fTab->GetCurrent();
     
    24802512    {
    24812513        if (Close())
    2482         delete this;
     2514            delete this;
    24832515//        Close();
    24842516        return kTRUE;
  • trunk/MagicSoft/Mars/mbase/MStatusDisplay.h

    r5912 r6890  
    4646        kTabSaveAsC, kTabPrint, kTabNext, kTabPrevious, kTabRemove,
    4747        // kSize
    48         kSize640, kSize800, kSize960, kSize1024, kSize1280,
     48        kSize640, kSize768, kSize800, kSize960, kSize1024, kSize1152,
     49        kSize1280, kSize1400, kSize1600,
    4950        // kLog
    5051        kLogCopy, kLogClear, kLogSelect, kLogFind, kLogSave, kLogAppend,
     
    117118    Bool_t HandleTimer(TTimer *timer=NULL);
    118119    void UpdateTab(TGCompositeFrame *f);
     120    void UpdateMemory() const;
    119121
    120122    void DrawClonePad(TCanvas &newc, TCanvas &oldc) const;
     
    127129
    128130    void RemoveTab(int i);
     131    void SetStatusLine(const char *txt, Int_t idx);
    129132
    130133    TRootEmbeddedCanvas *GetEmbeddedCanvas(TGCompositeFrame *cf) const;
     
    143146     TGProgressBar *GetBar() const { return (TGProgressBar*)fBar; }
    144147
    145      void SetStatusLine1(const char *txt);
    146      void SetStatusLine2(const char *txt);
     148     void SetStatusLine1(const char *txt) { SetStatusLine(txt, 0); }
     149     void SetStatusLine2(const char *txt) { SetStatusLine(txt, 1); }
    147150     void SetStatusLine2(const MParContainer &cont);
    148151
  • trunk/MagicSoft/Mars/mhbase/MH.cc

    r5994 r6890  
    664664    Double_t min = FLT_MAX;
    665665
    666     const TAxis &axex = *((TH1&)h).GetXaxis();
    667     const TAxis &axey = *((TH1&)h).GetYaxis();
    668     const TAxis &axez = *((TH1&)h).GetZaxis();
    669 
    670     for (int iz=1; iz<=axez.GetNbins(); iz++)
    671         for (int iy=1; iy<=axey.GetNbins(); iy++)
    672             for (int ix=1; ix<=axex.GetNbins(); ix++)
     666    const Int_t nx = h.GetXaxis()->GetNbins();
     667    const Int_t ny = h.GetYaxis()->GetNbins();
     668    const Int_t nz = h.GetZaxis()->GetNbins();
     669
     670    for (int iz=1; iz<=nz; iz++)
     671        for (int iy=1; iy<=ny; iy++)
     672            for (int ix=1; ix<=nx; ix++)
    673673            {
    674674                const Double_t v = h.GetBinContent(h.GetBin(ix, iy, iz));
  • trunk/MagicSoft/Mars/mhbase/MHMatrix.cc

    r5832 r6890  
    143143Int_t MHMatrix::AddColumn(const char *rule)
    144144{
    145     if (fM.IsValid())
     145    if (IsValid(fM))
    146146    {
    147147        *fLog << warn << "Warning - matrix is already in use. Can't add a new column... skipped." << endl;
     
    173173void MHMatrix::AddColumns(MDataArray *matrix)
    174174{
    175     if (fM.IsValid())
     175    if (IsValid(fM))
    176176    {
    177177        *fLog << warn << "Warning - matrix is already in use. Can't add new columns... skipped." << endl;
     
    224224        return;
    225225
    226     if (!fM.IsValid())
     226    if (!IsValid(fM))
    227227    {
    228228        fM.ResizeTo(1, fData->GetNumEntries());
     
    525525Double_t MHMatrix::CalcDist(const TVector &evt, Int_t num)
    526526{
    527     if (!fM2.IsValid())
    528     {
    529         if (!fM.IsValid())
     527    if (!IsValid(fM2))
     528    {
     529        if (!IsValid(fM))
    530530        {
    531531            *fLog << err << "MHMatrix::CalcDist - ERROR: fM not valid." << endl;
     
    803803                              Int_t nmaxevts, TMatrix *rest)
    804804{
    805     if (!fM.IsValid())
     805    if (!IsValid(fM))
    806806    {
    807807        *fLog << err << dbginf << "Matrix not initialized" << endl;
     
    10011001Bool_t MHMatrix::DefRefMatrix(Int_t nmaxevts, TMatrix *rest)
    10021002{
    1003     if (!fM.IsValid())
     1003    if (!IsValid(fM))
    10041004    {
    10051005        *fLog << err << dbginf << "Matrix not initialized" << endl;
     
    11131113Int_t MHMatrix::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
    11141114{
    1115     if (fM.IsValid())
     1115    if (IsValid(fM))
    11161116    {
    11171117        *fLog << err << "ERROR - matrix is already in use. Can't add a new column from TEnv... skipped." << endl;
  • trunk/MagicSoft/Mars/mhbase/MHMatrix.h

    r5832 r6890  
    4444
    4545    void AddRow();
     46    Bool_t IsValid(const TMatrix &m) const
     47    {
     48        return m.GetNrows()>0 && m.IsValid();
     49    }
    4650
    4751    Bool_t SetupFill(const MParList *pList);
     
    7377    const TMatrix &GetM() const { return fM; }
    7478
    75     Bool_t IsValid() const { return fM.IsValid(); }
     79    Bool_t IsValid() const { return IsValid(fM); }
    7680    Int_t  GetNumRows() const { return fM.GetNrows(); }
    7781
  • trunk/MagicSoft/Mars/mhflux/FluxLinkDef.h

    r6883 r6890  
    1010#pragma link C++ class MHEnergyEst+;
    1111#pragma link C++ class MHFalseSource+;
     12#pragma link C++ class MHEnergyEst+;
    1213#pragma link C++ class MHEffectiveOnTime+;
    1314
  • trunk/MagicSoft/Mars/mhflux/MHAlpha.cc

    r6874 r6890  
    138138    MBinning binsa, binse, binst;
    139139    binsa.SetEdges(18, 0, 90);
    140     binse.SetEdgesLog(25, 10, 100000);
     140    binse.SetEdgesLog(15, 10, 100000);
    141141    binst.SetEdgesCos(50, 0, 60);
    142142    binse.Apply(fHEnergy);
     
    467467
    468468        alpha  = hil->GetAlpha();
     469
    469470        if (fHillas)
    470471            size = fHillas->GetSize();
     
    472473        theta  = fPointPos ? fPointPos->GetZd()   : 0;
    473474    }
     475
     476    //if (size>0)
     477    //    alpha /= (2.4 + 1.13*(log10((energy-14)/0.37)-5)*(log10((energy-14)/0.37)-5))/15;
    474478
    475479    // enhance histogram if necessary
     
    563567            }
    564568        }
     569        else
     570            hon->SetMinimum(0);
    565571        FitEnergyBins();
    566572        FitThetaBins();
     
    748754    Int_t n = fHAlpha.GetNbinsY();
    749755    Int_t nc = (Int_t)(TMath::Sqrt((Float_t)n-1)+1);
    750     c->Divide(nc, nc, 0, 0);
     756    c->Divide(nc, nc, 1e-10, 1e-10);
    751757
    752758    // Do not store the 'final' result in fFit
  • trunk/MagicSoft/Mars/mhflux/MHEnergyEst.cc

    r6283 r6890  
    147147
    148148    fChisq = 0;
     149    fHEnergy.Reset();
     150    fHImpact.Reset();
     151    fHResolution.Reset();
    149152
    150153    return kTRUE;
     
    159162    const Double_t eest  = fEnergy->GetEnergy();
    160163    const Double_t etru  = fMatrix ? GetVal(0) : fMcEvt->GetEnergy();
     164    const Double_t imp   = fMatrix ? GetVal(1) : fMcEvt->GetImpact()/100;
    161165    const Double_t theta = fMatrix ? GetVal(2) : fMcEvt->GetTelescopeTheta()*TMath::RadToDeg();
    162     const Double_t imp   = fMatrix ? GetVal(1) : fMcEvt->GetImpact()/100;
    163166    const Double_t res   = (eest-etru)/etru;
    164167
    165168    fHEnergy.Fill(eest, etru, theta, w);
    166     fHResolution.Fill(eest, etru, res, w);
    167     fHImpact.Fill(imp, res, w);
    168 
    169     fChisq += res*res;
     169    fHResolution.Fill(eest, etru, TMath::Abs(res), w);
     170    fHImpact.Fill(imp, TMath::Abs(res), w);
     171
     172    fChisq += TMath::Abs(res);//*res;
     173    fBias  += res;
    170174
    171175    return kTRUE;
     
    175179{
    176180    fChisq /= GetNumExecutions();
    177 
    178     fResult->SetVal(fChisq);
    179 
    180     *fLog << all << "Mean Energy Resoltuion: " << Form("%.1f%%", TMath::Sqrt(fChisq)*100) << endl;
     181    fBias  /= GetNumExecutions();
     182
     183    Double_t res = fChisq; //TMath::Sqrt(fChisq - fBias*fBias);
     184
     185    fResult->SetVal(TMath::IsNaN(res)?0:res);/// GetNumExecutions());
     186
     187    *fLog << all << "Mean Energy Resoltuion: " << Form("%.1f%%", fResult->GetVal()*100) << endl;
     188    *fLog << all << "Energy Bias at:         " << Form("%.1f%%", fBias*100) << endl;
    181189
    182190    return kTRUE;
     
    223231        {
    224232            pad->GetPad(1)->GetPad(2)->cd(1);
    225             /*h =*/ fHImpact.ProjectionX("Impact", -1, 9999, "e");
    226 
    227             pad->GetPad(1)->GetPad(2)->cd(2);
    228             if ((hx=(TH1D*)gPad->FindObject("EnergyEst_z")))
     233            if ((hx=(TH1D*)gPad->FindObject("EnergyEst_ez")))
    229234            {
    230                 TH1D *h2 = (TH1D*)fHEnergy.Project3D("dum_z");
     235                TH1D *h2 = (TH1D*)fHEnergy.Project3D("dum_ez");
    231236                hx->Reset();
    232237                hx->Add(h2);
    233238                delete h2;
    234239            }
     240
     241            //pad->GetPad(1)->GetPad(2)->cd(2);
     242            ///*h =*/ fHImpact.ProjectionX("Impact", -1, 9999, "e");
    235243        }
    236244    }
     
    273281
    274282    TH1D *hx = 0;
    275     if ((hx=(TH1D*)gPad->FindObject("Prof")))
     283    if ((hx=(TH1D*)gPad->FindObject(Form("Prof%s", h.GetName()))))
    276284    {
    277         hx = hyx->ProfileX("Prof", -1, 9999, "s");
     285        hx = hyx->ProfileX(Form("Prof%s", h.GetName()), -1, 9999, "s");
    278286
    279287        if (logy && hx->GetMaximum()>0)
     
    287295    gPad->SetLogx();
    288296
    289     gROOT->GetListOfCleanups()->Add(gPad); // WHY?
     297    //gROOT->GetListOfCleanups()->Add(gPad); // WHY?
    290298
    291299    TH2D *h2 = (TH2D*)h.Project3D(how);
    292     TH1D *h1 = h2->ProfileX("Prof", -1, 9999, "s");
    293 
    294     h1->SetDirectory(NULL);
    295     //h1->SetBit(kCanDelete);
    296     h1->SetLineWidth(2);
    297     h1->SetLineColor(kRed); // PROBLEM!
    298     h1->SetStats(kFALSE);
    299 
    300300    h2->SetDirectory(NULL);
    301301    h2->SetBit(kCanDelete);
    302302    h2->SetFillColor(kBlue);
    303303
    304     h1->Draw("E3");
    305     h2->Draw("boxsame");
     304    TH1D *h1 = h2->ProfileX(Form("Prof%s", h.GetName()), -1, 9999, "s");
     305    h1->SetDirectory(NULL);
     306    h1->SetBit(kCanDelete);
     307    h1->SetLineWidth(2);
     308    h1->SetLineColor(kRed);
     309    h1->SetFillStyle(4000);
     310    h1->SetStats(kFALSE);
     311
     312 
     313    //h1->Draw("E3");
     314    h2->Draw();
    306315    h1->Draw("Chistsame");
    307316
     
    323332
    324333    pad->SetBorderMode(0);
    325     pad->Divide(2, 1, 0, 0);
     334    pad->Divide(2, 1, 1e-10, 1e-10);
    326335
    327336    TH1 *h;
     
    330339    gPad->SetBorderMode(0);
    331340
    332     gPad->Divide(1, 2, 0, 0);
     341    gPad->Divide(1, 2, 1e-10, 1e-10);
    333342
    334343    TVirtualPad *pad2 = gPad;
     
    365374
    366375    TVirtualPad *pad3 = gPad;
    367     pad3->Divide(2, 1, 0, 0);
     376    pad3->Divide(2, 1, 1e-10, 1e-10);
    368377    pad3->cd(1);
    369     gPad->SetBorderMode(0);
     378    gPad->SetBorderMode(0);/*
    370379    h = fHImpact.ProjectionX("Impact", -1, 9999, "e");
    371380    h->SetBit(TH1::kNoStats);
     
    374383    h->SetXTitle("Impact [m]");
    375384    h->SetBit(kCanDelete);
    376     h->Draw();
    377 
    378     pad3->cd(2);
    379     gPad->SetBorderMode(0);
     385    h->Draw();*/
    380386    h = fHEnergy.Project3D("ez");
    381387    h->SetTitle("Distribution of Theta");
     
    386392    h->Draw();
    387393
     394    pad3->cd(2);
     395    gPad->SetBorderMode(0);
     396
    388397    pad->cd(2);
    389398    gPad->SetBorderMode(0);
    390399
    391     gPad->Divide(1, 3, 0, 0);
     400    gPad->Divide(1, 3, 1e-10, 1e-10);
    392401    pad2 = gPad;
    393402
  • trunk/MagicSoft/Mars/mhflux/MHEnergyEst.h

    r6283 r6890  
    3535
    3636    Double_t fChisq;
     37    Double_t fBias;
    3738
    3839    TH1 *MakePlot(TH3 &h, const char *how);
  • trunk/MagicSoft/Mars/mhflux/MHFalseSource.cc

    r6364 r6890  
    410410
    411411    // Get projection for range
    412     TH2D *p = (TH2D*)src.Project3D("yx_off");
     412    TH2D *p = (TH2D*)src.Project3D("yx_off_NULL");
    413413
    414414    // Reset range
    415415    axe.SetRange(0,9999);
    416416
     417//#if ROOT_VERSION_CODE < ROOT_VERSION(4,02,00)
    417418    // Move contents from projection to h2
    418419    h2->Reset();
     
    422423    // Delete p
    423424    delete p;
     425/*#else
     426    p->Scale(all->GetMaximum());
     427    p->Divide(all);
     428#endif*/
    424429
    425430    // Set Minimum as minimum value Greater Than 0
     
    442447
    443448    // Get projection for range
    444     TH2D *p = (TH2D*)src.Project3D("yx_on");
     449    TH2D *p = (TH2D*)src.Project3D("yx_on_NULL");
    445450
    446451    // Reset range
    447452    axe.SetRange(0,9999);
    448453
     454//#if ROOT_VERSION_CODE < ROOT_VERSION(4,02,00)
    449455    // Move contents from projection to h3
    450456    h3->Reset();
     
    454460    // Delete p
    455461    delete p;
     462/*#else
     463    p->Scale(all->GetMaximum());
     464    p->Divide(all);
     465#endif*/
    456466
    457467    // Set Minimum as minimum value Greater Than 0
     
    469479
    470480    // Get projection for range
    471     TH2D *p = (TH2D*)fHist.Project3D(Form("yx_%d", gRandom->Uniform(999999)));
    472     p->SetDirectory(0);
     481#if ROOT_VERSION_CODE < ROOT_VERSION(4,02,00)
     482    TH2D *p = (TH2D*)fHist.Project3D("yx_all");
    473483
    474484    // Move contents from projection to h3
     
    476486    h3->Add(p);
    477487    delete p;
     488#else
     489    fHist.Project3D("yx_all");
     490#endif
    478491
    479492    // Set Minimum as minimum value Greater Than 0
     
    518531    TH2D* h5;
    519532
    520     /*
    521      fHistProjAll  = Form("All_%p",  this);
    522      fHistProjOn   = Form("On_%p",   this);
    523      fHistProjOff  = Form("Off_%p",  this);
    524      fHistProjDiff = Form("Diff_%p", this);
    525      fHistProjAll  = Form("All_%p",  this);
    526      */
    527 
    528533    // Update projection of all-events
    529534    padsave->GetPad(2)->cd(3);
     
    559564        const Int_t nx = h4->GetXaxis()->GetNbins();
    560565        const Int_t ny = h4->GetYaxis()->GetNbins();
    561         //const Int_t nr = nx*nx + ny*ny;
    562566
    563567        Int_t maxx=nx/2;
     
    566570        Int_t max = h4->GetBin(nx, ny);
    567571
     572        h4->SetEntries(0);
    568573        for (int ix=1; ix<=nx; ix++)
    569574            for (int iy=1; iy<=ny; iy++)
     
    651656    AppendPad("");
    652657
    653     pad->Divide(1, 2, 0, 0.03);
     658    pad->Divide(1, 2, 1e-10, 0.03);
    654659
    655660//    TObject *catalog = GetCatalog();
     
    10481053    gStyle->SetPalette(1, 0);
    10491054
    1050     c->Divide(3,2, 0, 0);
     1055    c->Divide(3,2, 1e-10, 1e-10);
    10511056    c->cd(1);
    10521057    gPad->SetBorderMode(0);
  • trunk/MagicSoft/Mars/mhist/MHHadronness.cc

    r5401 r6890  
    7373#include "MBinning.h"
    7474#include "MHMatrix.h"
    75 #include "MHadronness.h"
     75#include "MParameters.h"
    7676
    7777#include "MLog.h"
     
    163163    }
    164164
    165     fHadronness = (MHadronness*)plist->FindObject("MHadronness");
     165    fHadronness = (MParameterD*)plist->FindObject("MHadronness");
    166166
    167167    fGhness->Reset();
     
    207207    }
    208208
    209     const MHadronness &had = par ? *(MHadronness*)par : *fHadronness;
    210 
    211     const Double_t h = had.GetHadronness();
     209    const MParameterD &had = par ? *(MParameterD*)par : *fHadronness;
     210
     211    const Double_t h = had.GetVal();
    212212
    213213    if (TMath::IsNaN(h))
  • trunk/MagicSoft/Mars/mhist/MHHadronness.h

    r2296 r6890  
    1010class MParList;
    1111class MMcEvt;
    12 class MHadronness;
     12class MParameterD;
    1313class MHMatrix;
    1414
     
    1616{
    1717private:
    18     const MMcEvt *fMcEvt;           //!
    19     const MHadronness *fHadronness; //!
    20     MHMatrix *fMatrix;        //!
     18    const MMcEvt      *fMcEvt;      //!
     19    const MParameterD *fHadronness; //!
     20    MHMatrix *fMatrix;              //!
    2121    Int_t fMap;                     //!
    2222
  • trunk/MagicSoft/Mars/mimage/ImageLinkDef.h

    r6869 r6890  
    2424#pragma link C++ class MHNewImagePar+;
    2525#pragma link C++ class MHNewImagePar2+;
     26#pragma link C++ class MHVsSize+;
    2627#pragma link C++ class MStereoPar+;
    2728#pragma link C++ class MStereoCalc+;
  • trunk/MagicSoft/Mars/mimage/MHHillas.cc

    r6454 r6890  
    325325    fSize->Draw(same?"same":"");
    326326
    327     if (!same)
     327    //if (!same)
    328328    {
    329329        pad->cd(4);
    330330        gPad->SetBorderMode(0);
    331331        gPad->SetPad(0.51, 0.01, 0.99, 0.65);
    332         SetColors();
    333         fCenter->Draw("colz");
     332        if (same)
     333        {
     334            /*
     335            TH1 *h = dynamic_cast<TH1*>(gPad->FindObject("Center"));
     336            if (h)
     337            {
     338                h->SetDrawOption("");
     339                h->SetMarkerColor(kBlack);
     340            }*/
     341            fCenter->SetMarkerColor(kGreen);
     342            fCenter->Draw("same");
     343        }
     344        else
     345        {
     346            //SetColors();
     347            fCenter->Draw(/*"colz"*/);
     348        }
    334349        if (fGeomCam)
    335350        {
  • trunk/MagicSoft/Mars/mimage/Makefile

    r6869 r6890  
    4242           MHNewImagePar.cc \
    4343           MHNewImagePar2.cc \
     44           MHVsSize.cc \
    4445           MStereoPar.cc \
    4546           MStereoCalc.cc
Note: See TracChangeset for help on using the changeset viewer.