Ignore:
Timestamp:
07/31/02 18:03:51 (22 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mhist/MHHillas.cc

    r1441 r1463  
    5959//
    6060MHHillas::MHHillas(const char *name, const char *title)
    61     : fMm2Deg(1), fUseMmScale(kFALSE)
     61    : fMm2Deg(1), fUseMmScale(kTRUE)
    6262{
    6363    //
     
    6767    fTitle = title ? title : "Source independent image parameters";
    6868
    69     fLength = new TH1F("Length", "Length of Ellipse", 100, 0, 300);
     69    fLength = new TH1F("Length", "Length of Ellipse",               100,   0, 296.7);
     70    fWidth  = new TH1F("Width",  "Width of Ellipse",                100,   0, 296.7);
     71    fDistC  = new TH1F("DistC",  "Distance from center of camera",  100,   0, 445);
     72    fDelta  = new TH1F("Delta",  "Angle (Main axis - x-axis)",      101, -90,  90);
     73
    7074    fLength->SetDirectory(NULL);
     75    fWidth->SetDirectory(NULL);
     76    fDistC->SetDirectory(NULL);
     77    fDelta->SetDirectory(NULL);
     78
    7179    fLength->SetXTitle("Length [mm]");
     80    fWidth->SetXTitle("Width [mm]");
     81    fDistC->SetXTitle("Distance [mm]");
     82    fDelta->SetXTitle("Delta [\\circ]");
     83
    7284    fLength->SetYTitle("Counts");
    73 
    74     fWidth  = new TH1F("Width",  "Width of Ellipse",  100, 0, 300);
    75     fWidth->SetDirectory(NULL);
    76     fWidth->SetXTitle("Width [mm]");
    7785    fWidth->SetYTitle("Counts");
    78 
    79     fDistC  = new TH1F("DistC",  "Distance from center of camera",  100, 0, 600);
    80     fDistC->SetDirectory(NULL);
    81     fDistC->SetXTitle("Distance [mm]");
    8286    fDistC->SetYTitle("Counts");
    83 
    84     fDelta  = new TH1F("Delta",  "Angle (Main axis - x-axis)", 100, -90, 90);
    85     fDelta->SetDirectory(NULL);
    86     fDelta->SetXTitle("Delta [\\circ]");
    8787    fDelta->SetYTitle("Counts");
    8888
     
    101101    MH::SetBinning(fSize, &bins);
    102102
    103     fCenter = new TH2F("Center", "Center of Ellipse", 60, -600, 600, 60, -600, 600);
     103    fCenter = new TH2F("Center", "Center of Ellipse", 51, -445, 445, 51, -445, 445);
    104104    fCenter->SetDirectory(NULL);
    105105    fCenter->SetXTitle("x [mm]");
     
    136136Bool_t MHHillas::SetupFill(const MParList *plist)
    137137{
    138     const MBinning *binsw = (MBinning*)plist->FindObject("BinningWidth");
    139     const MBinning *binsl = (MBinning*)plist->FindObject("BinningLength");
    140     const MBinning *binsd = (MBinning*)plist->FindObject("BinningDist");
    141     const MBinning *binsc = (MBinning*)plist->FindObject("BinningCamera");
    142 
    143     if (!binsw || !binsl || !binsd || !binsc)
    144     {
    145         *fLog << err << dbginf << "At least one MBinning not found... aborting." << endl;
    146         return kFALSE;
    147     }
    148 
    149     SetBinning(fWidth,  binsw);
    150     SetBinning(fLength, binsl);
    151     SetBinning(fDistC,  binsd);
    152     SetBinning(fCenter, binsc, binsc);
    153 
    154138    const MGeomCam *geom = (MGeomCam*)plist->FindObject("MGeomCam");
    155139    if (!geom)
    156     {
    157140        *fLog << warn << dbginf << "No Camera Geometry available. Using mm-scale for histograms." << endl;
    158         return kTRUE;
    159     }
    160 
    161     fMm2Deg     = geom->GetConvMm2Deg();
    162     fUseMmScale = kFALSE;
    163 
    164     fLength->SetXTitle("Length [\\circ]");
    165     fWidth->SetXTitle("Width [\\circ]");
    166     fDistC->SetXTitle("Distance [\\circ]");
    167     fCenter->SetXTitle("x [\\circ]");
    168     fCenter->SetYTitle("y [\\circ]");
     141    else
     142    {
     143        fMm2Deg = geom->GetConvMm2Deg();
     144        SetMmScale(kFALSE);
     145    }
     146
     147    ApplyBinning(*plist, "Width",  fWidth);
     148    ApplyBinning(*plist, "Length", fLength);
     149    ApplyBinning(*plist, "Dist",   fDistC);
     150    ApplyBinning(*plist, "Camera", fCenter);
     151    ApplyBinning(*plist, "Delta",  fDelta);
     152    ApplyBinning(*plist, "Size",   fSize);
    169153
    170154    return kTRUE;
     
    208192    }
    209193
    210     if (fUseMmScale)
    211     {
    212         MH::ScaleAxis(fLength, 1./fMm2Deg);
    213         MH::ScaleAxis(fWidth,  1./fMm2Deg);
    214         MH::ScaleAxis(fDistC,  1./fMm2Deg);
    215         MH::ScaleAxis(fCenter, 1./fMm2Deg, 1./fMm2Deg);
    216 
     194    const Double_t scale = mmscale ? 1./fMm2Deg : fMm2Deg;
     195    MH::ScaleAxis(fLength, scale);
     196    MH::ScaleAxis(fWidth,  scale);
     197    MH::ScaleAxis(fDistC,  scale);
     198    MH::ScaleAxis(fCenter, scale, scale);
     199
     200    if (mmscale)
     201    {
    217202        fLength->SetXTitle("Length [mm]");
    218203        fWidth->SetXTitle("Width [mm]");
     204        fDistC->SetXTitle("Distance [mm]");
    219205        fCenter->SetXTitle("x [mm]");
    220206        fCenter->SetYTitle("y [mm]");
     
    222208    else
    223209    {
    224         MH::ScaleAxis(fLength, fMm2Deg);
    225         MH::ScaleAxis(fWidth,  fMm2Deg);
    226         MH::ScaleAxis(fDistC,  fMm2Deg);
    227         MH::ScaleAxis(fCenter, fMm2Deg, fMm2Deg);
    228 
    229210        fLength->SetXTitle("Length [\\circ]");
    230211        fWidth->SetXTitle("Width [\\circ]");
     
    247228
    248229    const Double_t d = sqrt(h.GetMeanX()*h.GetMeanX() + h.GetMeanY()*h.GetMeanY());
    249 
    250     if (fUseMmScale)
    251     {
    252         fLength->Fill(h.GetLength());
    253         fWidth ->Fill(h.GetWidth());
    254         fDistC ->Fill(d);
    255         fCenter->Fill(h.GetMeanX(), h.GetMeanY());
    256     }
    257     else
    258     {
    259         fLength->Fill(fMm2Deg*h.GetLength());
    260         fWidth ->Fill(fMm2Deg*h.GetWidth());
    261         fDistC ->Fill(fMm2Deg*d);
    262         fCenter->Fill(fMm2Deg*h.GetMeanX(), fMm2Deg*h.GetMeanY());
    263     }
    264 
    265     fDelta->Fill(kRad2Deg*h.GetDelta());
    266     fSize->Fill(h.GetSize());
     230    const Double_t scale = fUseMmScale ? 1 : fMm2Deg;
     231
     232    fLength->Fill(scale*h.GetLength());
     233    fWidth ->Fill(scale*h.GetWidth());
     234    fDistC ->Fill(scale*d);
     235    fCenter->Fill(scale*h.GetMeanX(), scale*h.GetMeanY());
     236    fDelta ->Fill(kRad2Deg*h.GetDelta());
     237    fSize  ->Fill(h.GetSize());
    267238
    268239    return kTRUE;
     
    275246void MHHillas::SetColors() const
    276247{
     248    // FIXME: This must be redone each time the canvas is repainted....
    277249    gStyle->SetPalette(51, NULL);
    278250    Int_t c[50];
     
    292264TObject *MHHillas::DrawClone(Option_t *opt) const
    293265{
    294     TCanvas *c = MakeDefCanvas("Hillas", fTitle, 700, 750);
     266    TCanvas *c = MakeDefCanvas("Hillas", fTitle, 720, 810);
    295267    c->Divide(2,3);
    296268
     
    332304{
    333305    if (!gPad)
    334         MakeDefCanvas("Hillas", fTitle, 700, 750);
     306        MakeDefCanvas("Hillas", fTitle, 720, 810);
    335307
    336308    gPad->Divide(2,3);
Note: See TracChangeset for help on using the changeset viewer.