Ignore:
Timestamp:
11/20/02 12:18:01 (22 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

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

    r1303 r1652  
    1616!
    1717!
    18 !   Author(s): Thomas Bretz  12/2000 <mailto:tbretz@uni-sw.gwdg.de>
     18!   Author(s): Thomas Bretz  12/2000 <mailto:tbretz@astro.uni-wuerzburg.de>
    1919!   Author(s): Harald Kornmayer 1/2001
    2020!
    21 !   Copyright: MAGIC Software Development, 2000-2001
     21!   Copyright: MAGIC Software Development, 2000-2002
    2222!
    2323!
     
    2828// MHFadcPix
    2929//
    30 // This container stores a hostogram to display an Fadc Spekrtum.
     30// This container stores a histogram to display an Fadc Spektrum.
    3131// The spektrum of all the values measured by the Fadcs.
    3232//
    3333///////////////////////////////////////////////////////////////////////
    34 
    3534#include "MHFadcPix.h"
    3635
    37 #include <TH1.h>
    3836#include <TPad.h>
    3937
    4038#include "MH.h"
     39#include "MBinning.h"
     40
     41#include "MRawEvtData.h"
     42#include "MRawEvtPixelIter.h"
    4143
    4244ClassImp(MHFadcPix);
     
    4648// Creates the histograms for lo and hi gain of one pixel
    4749//
    48 MHFadcPix::MHFadcPix(UInt_t pixid) : fPixId(pixid)
     50MHFadcPix::MHFadcPix(UInt_t pixid, Type_t t)
     51    : fPixId(pixid), fType(t)
    4952{
    50     fHistHi =  new TH1F(pixid ? Form("HiGain%03d", pixid) : "HiGain",
    51                         pixid ? Form("Hi Gain Pixel #%d", pixid) : "Hi Gain Samples",
    52                         256, -.5, 255.5);
     53    fHistHi.SetName(pixid ? Form("HiGain%03d", pixid) : "HiGain");
     54    fHistHi.SetTitle(pixid ? Form("Hi Gain Pixel #%d", pixid) : "Hi Gain Samples");
     55    fHistHi.SetDirectory(NULL);
    5356
    54     fHistHi->SetDirectory(NULL);
    55     fHistHi->SetXTitle("Signal/FADC Units");
    56     fHistHi->SetYTitle("Count");
     57    fHistLo.SetName(pixid ? Form("LoGain%03d", pixid) : "LoGain");
     58    fHistLo.SetTitle(pixid ? Form("Lo Gain Pixel #%d", pixid) : "Lo Gain Samples");
     59    fHistLo.SetDirectory(NULL);
    5760
    58     fHistLo = new TH1F(pixid ? Form("LoGain%03d", pixid) : "LoGain",
    59                        pixid ? Form("Lo Gain Pixel #%d", pixid) : "Lo Gain Samples",
    60                        256, -.5, 255.5);
     61    if (fType==kValue)
     62    {
     63        fHistHi.SetXTitle("Signal/FADC Units");
     64        fHistLo.SetXTitle("Signal/FADC Units");
     65        fHistHi.SetYTitle("Count");
     66        fHistLo.SetYTitle("Count");
    6167
    62     fHistLo->SetDirectory(NULL);
    63     fHistLo->SetXTitle("Signal/FADC Units");
    64     fHistLo->SetYTitle("Count");
     68        MBinning bins;
     69        bins.SetEdges(255, -.5, 255.5);
     70
     71        bins.Apply(fHistHi);
     72        bins.Apply(fHistLo);
     73    }
     74    else
     75    {
     76        fHistHi.SetXTitle("Time/FADC Slices");
     77        fHistLo.SetXTitle("Time/FADC Slices");
     78        fHistLo.SetYTitle("Sum Signal/FADC Units");
     79        fHistHi.SetYTitle("Sum Signal/FADC Units");
     80    }
    6581}
    6682
    67 // --------------------------------------------------------------------------
    68 MHFadcPix::~MHFadcPix()
     83void MHFadcPix::Init(Byte_t nhi, Byte_t nlo)
    6984{
    70     delete fHistHi;
    71     delete fHistLo;
     85    MBinning bins;
     86
     87    bins.SetEdges(nhi, -.5, -.5+nhi);
     88    bins.Apply(fHistHi);
     89
     90    bins.SetEdges(nlo, -.5, -.5+nlo);
     91    bins.Apply(fHistLo);
    7292}
    7393
    74 // --------------------------------------------------------------------------
    75 void MHFadcPix::FillHi(Byte_t i)
     94Bool_t MHFadcPix::Fill(const MRawEvtData &evt)
    7695{
    77     fHistHi->Fill(i);
    78 }
     96    MRawEvtPixelIter pixel((MRawEvtData*)&evt);
    7997
    80 // --------------------------------------------------------------------------
    81 void MHFadcPix::FillLo(Byte_t i)
    82 {
    83     fHistLo->Fill(i);
     98    if (!pixel.Jump(fPixId))
     99        return kTRUE;
     100
     101    const Int_t nhisamples = evt.GetNumHiGainSamples();
     102
     103    if (fType==kValue)
     104        for (Int_t i=0; i<nhisamples; i++)
     105            fHistHi.Fill(pixel.GetHiGainSamples()[i]);
     106    else
     107        for (Int_t i=0; i<nhisamples; i++)
     108            fHistHi.Fill(i, pixel.GetHiGainSamples()[i]);
     109
     110    if (!pixel.HasLoGain())
     111        return kTRUE;
     112
     113    const Int_t nlosamples = evt.GetNumLoGainSamples();
     114
     115    if (fType==kValue)
     116        for (Int_t i=0; i<nlosamples; i++)
     117            fHistLo.Fill(pixel.GetLoGainSamples()[i]);
     118    else
     119        for (Int_t i=0; i<nlosamples; i++)
     120            fHistLo.Fill(i, pixel.GetLoGainSamples()[i]);
     121
     122    return kTRUE;
    84123}
    85124
     
    87126void MHFadcPix::DrawHi()
    88127{
    89     fHistHi->Draw();
     128    fHistHi.Draw();
    90129}
    91130
     
    93132void MHFadcPix::DrawLo()
    94133{
    95     fHistLo->Draw();
     134    fHistLo.Draw();
    96135}
    97136
     
    105144    MHFadcPix &pix = *(MHFadcPix*)TObject::Clone();
    106145
    107     pix.fHistHi->SetDirectory(NULL);
    108     pix.fHistLo->SetDirectory(NULL);
     146    pix.fHistHi.SetDirectory(NULL);
     147    pix.fHistLo.SetDirectory(NULL);
    109148
    110149    return &pix;
     
    116155    if (!gPad)
    117156    {
    118         const char *name  = StrDup(fPixId ? Form("Pixel #%d", fPixId) : "Pixel");
     157        const char *name = StrDup(fPixId ? Form("Pixel #%d", fPixId) : "Pixel");
    119158        MH::MakeDefCanvas(name, fPixId ? Form("%s FADC Samples", name) : "FADC Samples");
    120159        delete [] name;
     
    124163
    125164    gPad->cd(1);
    126     fHistHi->Draw();
     165    fHistHi.Draw();
    127166
    128167    gPad->cd(2);
    129     fHistLo->Draw();
     168    fHistLo.Draw();
    130169}
Note: See TracChangeset for help on using the changeset viewer.