Ignore:
Timestamp:
08/06/07 15:44:16 (17 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mimage
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mimage/MHHillasExt.cc

    r8256 r8657  
    1818!   Author(s): Thomas Bretz, 2001 <mailto:tbretz@astro.uni-wuerzburg.de>
    1919!
    20 !   Copyright: MAGIC Software Development, 2000-2004
     20!   Copyright: MAGIC Software Development, 2000-2007
    2121!
    2222!
     
    2828//
    2929// This class contains histograms for every Hillas parameter
     30//
     31// Class Version 2:
     32// ----------------
     33//  - fHMaxDist
     34//  + fHSlopeL
    3035//
    3136/////////////////////////////////////////////////////////////////////////////
     
    3439#include <math.h>
    3540
    36 #include <TH1.h>
    3741#include <TPad.h>
    3842#include <TLegend.h>
     
    4751
    4852#include "MBinning.h"
     53
     54#include "MHillas.h"
    4955#include "MHillasExt.h"
    5056#include "MHillasSrc.h"
     
    5965//
    6066MHHillasExt::MHHillasExt(const char *name, const char *title)
    61     : fMm2Deg(1), fUseMmScale(kTRUE), fHilName("MHillasExt")
     67    : fHillas(0), fHillasExt(0), fMm2Deg(1),
     68    fUseMmScale(kTRUE), fHilName("MHillasExt")
    6269{
    6370    //
     
    7582    fHM3Long.UseCurrentStyle();
    7683    fHM3Trans.UseCurrentStyle();
    77     fHMaxDist.UseCurrentStyle();
     84    fHSlopeL.UseCurrentStyle();
    7885
    7986    fHAsym.SetName("Asymmetry");
    8087    fHM3Long.SetName("M3l");
    8188    fHM3Trans.SetName("M3t");
    82     fHMaxDist.SetName("MaxDist");
     89    fHSlopeL.SetName("SlopeL");
    8390
    8491    fHAsym.SetTitle("Asymmetry");
    8592    fHM3Long.SetTitle("3^{rd} Moment Longitudinal");
    8693    fHM3Trans.SetTitle("3^{rd} Moment Transverse");
    87     fHMaxDist.SetTitle("Distance of max distant pixel");
     94    fHSlopeL.SetTitle("Longitudinal time-slope vs. Dist");
    8895
    8996    fHAsym.SetXTitle("Asym [mm]");
    9097    fHM3Long.SetXTitle("3^{rd} M_{l} [mm]");
    9198    fHM3Trans.SetXTitle("3^{rd} M_{t} [mm]");
    92     fHMaxDist.SetXTitle("D_{max} [mm]");
     99    fHSlopeL.SetXTitle("D [mm]");
    93100
    94101    fHAsym.SetYTitle("Counts");
    95102    fHM3Long.SetYTitle("Counts");
    96103    fHM3Trans.SetYTitle("Counts");
    97     fHMaxDist.SetYTitle("Counts");
     104    fHSlopeL.SetYTitle("S_{l} [ns/mm]");
    98105
    99106    fHAsym.SetFillStyle(4000);
    100107    fHM3Long.SetFillStyle(4000);
    101108    fHM3Trans.SetFillStyle(4000);
    102     fHMaxDist.SetFillStyle(4000);
     109    //fHSlopeL.SetFillStyle(4000);
    103110
    104111    fHAsym.SetDirectory(NULL);
    105112    fHM3Long.SetDirectory(NULL);
    106113    fHM3Trans.SetDirectory(NULL);
    107     fHMaxDist.SetDirectory(NULL);
     114    fHSlopeL.SetDirectory(NULL);
    108115
    109116    fHM3Trans.SetLineColor(kBlue);
    110117
    111     MBinning bins;
    112 
    113     bins.SetEdges(51, -326, 326);
    114     bins.Apply(fHM3Long);
    115     bins.Apply(fHM3Trans);
    116 
    117     bins.SetEdges(51, -593, 593);
    118     bins.Apply(fHAsym);
    119 
    120     bins.SetEdges(100, 0, 593);
    121     bins.Apply(fHMaxDist);
     118    MBinning binsx, binsy;
     119
     120    binsx.SetEdges(51, -326, 326);
     121    binsx.Apply(fHM3Long);
     122    binsx.Apply(fHM3Trans);
     123
     124    binsx.SetEdges(51, -593, 593);
     125    binsx.Apply(fHAsym);
     126
     127    binsx.SetEdges(100,     0,  445);
     128    binsy.SetEdges(100, -0.04, 0.04);
     129    MH::SetBinning(&fHSlopeL, &binsx, &binsy);
    122130}
    123131
     
    141149    }
    142150
     151    fHillas = (MHillas*)plist->FindObject("MHillas");
     152    if (!fHillas)
     153    {
     154        *fLog << err << "MHillas not found in parameter list... aborting." << endl;
     155        return kFALSE;
     156    }
     157
    143158    const MGeomCam *geom = (MGeomCam*)plist->FindObject("MGeomCam");
    144159    if (!geom)
     
    150165    }
    151166
    152     ApplyBinning(*plist, "Asym",    &fHAsym);
    153     ApplyBinning(*plist, "M3Long",  &fHM3Long);
     167    ApplyBinning(*plist, "Asym", &fHAsym);
     168    ApplyBinning(*plist, "M3Long", &fHM3Long);
    154169    ApplyBinning(*plist, "M3Trans", &fHM3Trans);
    155     ApplyBinning(*plist, "MaxDist", &fHMaxDist);
     170    ApplyBinning(*plist, "Dist", "Slope", &fHSlopeL);
    156171
    157172    return kTRUE;
     
    168183
    169184    const Double_t scale = TMath::Sign(fUseMmScale?1:fMm2Deg, (src ? src->GetCosDeltaAlpha() : 1));
     185    const Double_t dist  = src ? src->GetDist() : fHillas->GetDist0();
    170186
    171187    fHAsym.Fill(scale*fHillasExt->GetAsym(), w);
    172188    fHM3Long.Fill(scale*fHillasExt->GetM3Long(), w);
    173189    fHM3Trans.Fill(scale*fHillasExt->GetM3Trans(), w);
    174     fHMaxDist.Fill(TMath::Abs(scale*fHillasExt->GetMaxDist()), w);
     190    fHSlopeL.Fill(scale*dist, fHillasExt->GetSlopeLong()/scale, w);
    175191
    176192    return kTRUE;
     
    197213    MH::ScaleAxis(&fHM3Long,  scale);
    198214    MH::ScaleAxis(&fHM3Trans, scale);
    199     MH::ScaleAxis(&fHMaxDist, scale);
     215    MH::ScaleAxis(&fHSlopeL,  scale, 1./scale);
    200216
    201217    if (mmscale)
     
    204220        fHM3Long.SetXTitle("3^{rd} M_{l} [mm]");
    205221        fHM3Trans.SetXTitle("3^{rd} M_{t} [mm]");
    206         fHMaxDist.SetXTitle("D_{max} [mm]");
     222        fHSlopeL.SetXTitle("D [mm]");
     223        fHSlopeL.SetYTitle("S_{l} [ns/mm]");
    207224    }
    208225    else
     
    211228        fHM3Long.SetXTitle("3^{rd} M_{l} [\\circ]");
    212229        fHM3Trans.SetXTitle("3^{rd} M_{t} [\\circ]");
    213         fHMaxDist.SetXTitle("D_{max} [\\circ]");
     230        fHSlopeL.SetXTitle("D [\\circ]");
     231        fHSlopeL.SetYTitle("S_{l} [ns/\\circ]");
    214232    }
    215233
     
    262280        fHM3Long.SetName("M3lSame");
    263281        fHM3Trans.SetName("M3tSame");
    264         fHMaxDist.SetName("MaxDistSame");
     282        fHSlopeL.SetName("SlopeLSame");
    265283
    266284        fHAsym.SetDirectory(0);
    267285        fHM3Long.SetDirectory(0);
    268286        fHM3Trans.SetDirectory(0);
    269         fHMaxDist.SetDirectory(0);
     287        fHSlopeL.SetDirectory(0);
    270288
    271289        fHM3Long.SetLineColor(kMagenta);
    272290        fHM3Trans.SetLineColor(kCyan);
    273291        fHAsym.SetLineColor(kBlue);
    274         fHMaxDist.SetLineColor(kBlue);
     292        fHSlopeL.SetMarkerColor(kBlue);
    275293    }
    276294
     
    288306    pad->cd(2);
    289307    gPad->SetBorderMode(0);
    290     RemoveFromPad("MaxDistSame");
    291     fHMaxDist.Draw(same?"same":"");
     308    //RemoveFromPad("SlopeLSame");
     309    //fHSlopeL.Draw(same?"same":"");
     310    if (same)
     311    {
     312        TH2 *h=dynamic_cast<TH2*>(gPad->FindObject("SlopeL"));
     313        if (h)
     314        {
     315            // This causes crashes in THistPainter::PaintTable
     316            // if the z-axis is not kept. No idea why...
     317            h->SetDrawOption("z");
     318            h->SetMarkerColor(kBlack);
     319        }
     320
     321        RemoveFromPad("SlopeLSame");
     322        fHSlopeL.SetMarkerColor(kGreen);
     323        fHSlopeL.Draw("same");
     324    }
     325    else
     326        fHSlopeL.Draw("colz");
    292327
    293328    delete pad->GetPad(4);
     
    302337    if (name.Contains("M3T", TString::kIgnoreCase))
    303338        return const_cast<TH1F*>(&fHM3Trans);
    304     if (name.Contains("MaxDist", TString::kIgnoreCase))
    305         return const_cast<TH1F*>(&fHMaxDist);
     339    if (name.Contains("SlopeL", TString::kIgnoreCase))
     340        return const_cast<TH2F*>(&fHSlopeL);
    306341
    307342    return NULL;
  • trunk/MagicSoft/Mars/mimage/MHHillasExt.h

    r6977 r8657  
    22#define MARS_MHHillasExt
    33
    4 #ifndef ROOT_TH1
    5 #include <TH1.h>
     4#ifndef ROOT_TH2
     5#include <TH2.h>
    66#endif
    77#ifndef MARS_MH
     
    99#endif
    1010
     11class MHillas;
    1112class MHillasExt;
    1213
     
    1415{
    1516private:
     17    MHillas    *fHillas;    //! Pointer to the MHillas container
    1618    MHillasExt *fHillasExt; //! Pointer to the MHillasExt container
    1719
     
    1921    TH1F fHM3Long;  // [mm]    3rd moment (e-weighted) along major axis
    2022    TH1F fHM3Trans; // [mm]    3rd moment (e-weighted) along minor axis
    21     TH1F fHMaxDist; // [mm]    Distance between shower center maximum distant pixel
     23    TH2F fHSlopeL;  //
    2224
    2325    Float_t fMm2Deg;
     
    4648    void Draw(Option_t *opt=NULL);
    4749
    48     ClassDef(MHHillasExt, 1) // Container which holds histograms for the extended hillas parameters
     50    ClassDef(MHHillasExt, 2) // Container which holds histograms for the extended hillas parameters
    4951};
    5052
Note: See TracChangeset for help on using the changeset viewer.