Ignore:
Timestamp:
02/13/04 16:04:33 (21 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/macros/readMagic.C

    r2624 r3141  
    4646}
    4747
     48MHCamera display[4];
     49
     50TCanvas   *c;
     51MParList  *fParList;
     52MTaskList *fTaskList;
     53
     54Int_t PreProcess(MParList *plist)
     55{
     56    fParList = plist;
     57    fTaskList = (MTaskList*)plist->FindObject("MTaskList");
     58
     59    MGeomCam *geomcam = (MGeomCam*)plist->FindObject("MGeomCam");
     60
     61    c = new TCanvas("Events", "Real Events", 600, 600);
     62    c->SetBorderMode(0);
     63    c->Divide(2,2);
     64    for (int i=0; i<4; i++)
     65    {
     66        display[i].SetGeometry(*geomcam);
     67        c->cd(i+1);
     68        display[i].Draw();
     69        gPad->cd(1);
     70        plist->FindObject("MHillas")->Draw();
     71    }
     72    return kTRUE;
     73}
     74
     75Int_t Process()
     76{
     77    MReadMarsFile *read = (MReadMarsFile*)fTaskList->FindObject("MRead");
     78    MClone *clone = (MClone*)fTaskList->FindObject("MClone");
     79    MImgCleanStd *clean = (MImgCleanStd*)fTaskList->FindObject("MImgCleanStd");
     80    MGeomCam *geom = (MGeomCam*)fParList->FindObject("MGeomCam");
     81
     82    cout << "Event #" << read->GetNumEntry() << ":" << endl;
     83
     84    display[0].SetCamContent(*(MCerPhotEvt*)clone->GetClone());
     85    display[1].SetCamContent(*(MCerPhotEvt*)fParList->FindObject("MCerPhotEvt"));
     86    display[2].SetCamContent(*(MCameraData*)fParList->FindObject("MCameraData"));
     87    display[3].SetCamContent(*(MCameraData*)fParList->FindObject("MCameraData"));
     88
     89    TArrayF lvl(2);
     90    lvl[0] = clean->GetCleanLvl2();
     91    lvl[1] = clean->GetCleanLvl1();
     92    display[3].SetLevels(lvl);
     93
     94    for (int i=1; i<=4; i++)
     95    {
     96        c->GetPad(i)->GetPad(1)->Modified();
     97        c->GetPad(i)->GetPad(1)->Update();
     98    }
     99
     100    ((MHillas*)fParList->FindObject("MHillas"))->Print(*geom);
     101    ((MHillasExt*)fParList->FindObject("MHillasExt"))->Print(*geom);
     102    fParList->FindObject("MNewImagePar")->Print();
     103
     104    return HandleInput();
     105}
     106
     107Int_t PostProcess()
     108{
     109    delete c;
     110}
     111
    48112void readMagic(const char *fname="../Proton*.root")
    49 {
    50     MParList plist;
     113{               
     114    MParList  plist;
     115    MTaskList tlist;
    51116
    52     MHillas       hillas;
    53     MHillasExt    hillasext;
    54     MNewImagePar  newimgpar;
    55     MTaskList     tlist;
    56 
    57     plist.AddToList(&hillas);
    58     plist.AddToList(&hillasext);
    59     plist.AddToList(&newimgpar);
    60117    plist.AddToList(&tlist);
    61118
     
    71128    MMcPedestalCopy   pcopy;
    72129    MMcPedestalNSBAdd pnsb;
    73     MCerPhotCalc      ncalc;
     130    MCerPhotAnal2     ncalc;
    74131    MBlindPixelCalc   blind;
    75132    blind.SetUseInterpolation();
     
    77134    MImgCleanStd      clean;
    78135    MHillasCalc       hcalc;
     136    MTaskInteractive  mytask;
     137
     138    mytask.SetPreProcess(PreProcess);
     139    mytask.SetProcess(Process);
    79140
    80141    tlist.AddToList(&read);
     
    89150    tlist.AddToList(&clean);
    90151    tlist.AddToList(&hcalc);
     152    tlist.AddToList(&mytask);
    91153
    92154    MEvtLoop evtloop;
    93155    evtloop.SetParList(&plist);
    94156
    95     if (!evtloop.PreProcess())
     157    if (!evtloop.Eventloop())
    96158        return;
    97159
    98     MGeomCam *geomcam = (MGeomCam*)plist->FindObject("MGeomCam");
    99 
    100     MHCamera display[4];
    101     TCanvas c("Events", "Real Events", 600, 600);
    102     c.SetBorderMode(0);
    103     c.Divide(2,2);
    104     for (int i=0; i<4; i++)
    105     {
    106         display[i].SetGeometry(*geomcam);
    107         c.cd(i+1);
    108         display[i].Draw();
    109         gPad->cd(1);
    110         hillas.Draw();
    111     }
    112 
    113     // Use this if you don't want the event to be autoscaled
    114     //display.SetMinimum(0);
    115     //display.SetMaximum(100);
    116 
    117     while (tlist.Process())
    118     {
    119         cout << "Event #" << read.GetNumEntry() ":" << endl;
    120 
    121         display[0].SetCamContent(*(MCerPhotEvt*)clone.GetClone());
    122         display[1].SetCamContent(*(MCerPhotEvt*)plist.FindObject("MCerPhotEvt"));
    123         display[2].SetCamContent(*(MCamEvent*)plist.FindObject("MCameraData"));
    124         display[3].SetCamContent(*(MCamEvent*)plist.FindObject("MCameraData"));
    125         TArrayF lvl(2);
    126         lvl[0] = clean.GetCleanLvl2();
    127         lvl[1] = clean.GetCleanLvl1();
    128         display[3].SetLevels(lvl);
    129 
    130         for (int i=1; i<=4; i++)
    131         {
    132             c.GetPad(i)->GetPad(1)->Modified();
    133             c.GetPad(i)->GetPad(1)->Update();
    134         }
    135 
    136         hillas.Print(*geomcam);
    137         hillasext.Print(*geomcam);
    138         newimgpar.Print();
    139 
    140         if (!HandleInput())
    141             break;
    142     }
    143 
    144     evtloop.PostProcess();
     160    tlist.PrintStatistics();
    145161}
    146162
Note: See TracChangeset for help on using the changeset viewer.