Changeset 4714 for trunk/MagicSoft/Mars


Ignore:
Timestamp:
08/23/04 15:42:56 (20 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r4710 r4714  
    9191   * mmain/MEventDisplay.cc:
    9292     - added display of island index
     93     - changed to support files with calibrated data, too
    9394
    9495   * mhvstime/MHVsTime.[h,cc]:
     
    138139   * mpointing/MSrcPosCam.h:
    139140     - made StreamPrimitive public
     141
     142   * msignal/MArrivalTime.h:
     143     - removed operator()
    140144
    141145
  • trunk/MagicSoft/Mars/mmain/MEventDisplay.cc

    r4702 r4714  
    3333//
    3434#include <TFile.h>               // TFile
     35#include <TTree.h>               // TTree
    3536#include <TList.h>               // TList::Add
    3637#include <TStyle.h>              // gStyle->SetOptStat
     
    5152//
    5253#include "MGList.h"              // MGList
     54
     55#include "MLog.h"
     56#include "MLogManip.h"
    5357
    5458#include "MParList.h"            // MParList::AddToList
     
    9397#include "MMcTriggerLvl2.h"        // MMcTriggerLvl2
    9498
     99using namespace std;
     100
    95101ClassImp(MEventDisplay);
    96102
     
    135141}
    136142
     143Int_t MEventDisplay::GetFileType(const char *tree, const char *fname) const
     144{
     145    TFile f(fname, "READ");
     146    TTree *t = (TTree*)f.Get(tree);
     147    if (!t)
     148        return -1;
     149
     150    if (t->FindBranch("MCerPhotEvt."))
     151        return 1;
     152
     153    if (t->FindBranch("MRawEvtData."))
     154        return 2;
     155
     156    return -2;
     157}
     158
    137159// --------------------------------------------------------------------------
    138160//
     
    148170    MBadPixelsCam *badpix = new MBadPixelsCam;
    149171
    150     TFile file(pname, "READ");
    151     if (!file.IsZombie())
    152         pcam = new MPedPhotCam;
    153     if (pcam)
     172    const Int_t type = GetFileType(tname, fname);
     173    switch (type)
    154174    {
    155         if (pcam->Read()<=0)
     175    case  1: gLog << all << "Calibrated Data File detected..." << endl; break;
     176    case  2: gLog << all << "Raw Data File detected..." << endl; break;
     177    case -2: gLog << err << "File type unknown... abort." << endl; return;
     178    case -1: gLog << err << "Tree " << tname << " not found... abort." << endl; return;
     179    }
     180
     181    if (type==2)
     182    {
     183        TFile file(pname, "READ");
     184        if (!file.IsZombie())
     185            pcam = new MPedPhotCam;
     186        if (pcam)
    156187        {
    157             delete pcam;
    158             pcam = NULL;
     188            if (pcam->Read()<=0)
     189            {
     190                delete pcam;
     191                pcam = NULL;
     192            }
     193
     194            if (file.FindKey("MBadPixelsCam"))
     195            {
     196                MBadPixelsCam bad;
     197                if (bad.Read()>0)
     198                    badpix->Merge(bad);
     199            }
    159200        }
    160 
    161         if (file.FindKey("MBadPixelsCam"))
     201        file.Close();
     202        file.Open(cname, "READ");
     203        if (!file.IsZombie())
     204            ccam = new MCalibrationChargeCam;
     205        if (ccam)
    162206        {
    163             MBadPixelsCam bad;
    164             if (bad.Read()>0)
    165                 badpix->Merge(bad);
     207            if (ccam->Read()<=0)
     208            {
     209                delete ccam;
     210                ccam = NULL;
     211            }
     212
     213            if (file.FindKey("MBadPixelsCam"))
     214            {
     215                MBadPixelsCam bad;
     216                if (bad.Read()>0)
     217                    badpix->Merge(bad);
     218            }
    166219        }
     220        file.Close();
    167221    }
    168     file.Close();
    169     file.Open(cname, "READ");
    170     if (!file.IsZombie())
    171         ccam = new MCalibrationChargeCam;
    172     if (ccam)
    173     {
    174         if (ccam->Read()<=0)
    175         {
    176             delete ccam;
    177             ccam = NULL;
    178         }
    179 
    180         if (file.FindKey("MBadPixelsCam"))
    181         {
    182             MBadPixelsCam bad;
    183             if (bad.Read()>0)
    184                 badpix->Merge(bad);
    185         }
    186     }
    187     file.Close();
    188222
    189223    //
     
    265299
    266300    // If no pedestal or no calibration file is availble
    267     if (!pcam || !ccam)
     301    if (type==2)
    268302    {
    269         MFilter *f1=new MFDataMember("MRawRunHeader.fRunType", '>', 255.5);
    270         MFilter *f2=new MFDataMember("MRawRunHeader.fRunType", '<', 255.5);
    271         f1->SetName("MFMonteCarlo");
    272         f2->SetName("MFRealData");
    273 
    274         MMcPedestalCopy   *pcopy = new MMcPedestalCopy;
    275         MMcPedestalNSBAdd *pdnsb = new MMcPedestalNSBAdd;
    276 
    277         MExtractSignal* extra = new MExtractSignal();
    278         extra->SetRange(0, 14, 0, 14);
    279         extra->SetSaturationLimit(240);
    280 
    281         MMcCalibrationUpdate* mcupd = new MMcCalibrationUpdate;
    282         mcupd->SetOuterPixelsGainScaling(kFALSE);
    283 
    284         MCalibrate* mccal = new MCalibrate;
    285         mccal->SetCalibrationMode(MCalibrate::kFfactor);
    286 
    287         // MC
    288         extra->SetFilter(f1);
    289         mcupd->SetFilter(f1);
    290         mccal->SetFilter(f1);
    291         trcal->SetFilter(f1);
    292         //fill09->SetFilter(f1);
    293 
    294         // Data
    295         nanal->SetFilter(f2);
    296 
    297         // TaskList
    298         tlist->AddToList(f1);
    299         tlist->AddToList(f2);
    300         tlist->AddToList(pcopy);
    301         tlist->AddToList(pdnsb);
    302 
    303         tlist->AddToList(extra);
    304         tlist->AddToList(mcupd);
    305         tlist->AddToList(mccal);
    306 
    307  
    308         tlist->AddToList(nanal);
    309     }
    310     else
    311     {
    312         MCalibrate* calib = new MCalibrate;
    313         tlist->AddToList(calib);
     303        if (!pcam || !ccam)
     304        {
     305            MFilter *f1=new MFDataMember("MRawRunHeader.fRunType", '>', 255.5);
     306            MFilter *f2=new MFDataMember("MRawRunHeader.fRunType", '<', 255.5);
     307            f1->SetName("MFMonteCarlo");
     308            f2->SetName("MFRealData");
     309
     310            MMcPedestalCopy   *pcopy = new MMcPedestalCopy;
     311            MMcPedestalNSBAdd *pdnsb = new MMcPedestalNSBAdd;
     312
     313            MExtractSignal* extra = new MExtractSignal();
     314            extra->SetRange(0, 14, 0, 14);
     315            extra->SetSaturationLimit(240);
     316
     317            MMcCalibrationUpdate* mcupd = new MMcCalibrationUpdate;
     318            mcupd->SetOuterPixelsGainScaling(kFALSE);
     319
     320            MCalibrate* mccal = new MCalibrate;
     321            mccal->SetCalibrationMode(MCalibrate::kFfactor);
     322
     323            // MC
     324            extra->SetFilter(f1);
     325            mcupd->SetFilter(f1);
     326            mccal->SetFilter(f1);
     327            trcal->SetFilter(f1);
     328            //fill09->SetFilter(f1);
     329
     330            // Data
     331            nanal->SetFilter(f2);
     332
     333            // TaskList
     334            tlist->AddToList(f1);
     335            tlist->AddToList(f2);
     336            tlist->AddToList(pcopy);
     337            tlist->AddToList(pdnsb);
     338
     339            tlist->AddToList(extra);
     340            tlist->AddToList(mcupd);
     341            tlist->AddToList(mccal);
     342
     343
     344            tlist->AddToList(nanal);
     345        }
     346        else
     347        {
     348            MCalibrate* calib = new MCalibrate;
     349            tlist->AddToList(calib);
     350        }
    314351    }
    315352
     
    326363    tlist->AddToList(fill10);
    327364
    328     if (!pcam || !ccam)
     365    if ((!pcam || !ccam) && type==2)
    329366    {
    330367        MArrivalTimeCalc  *tcalc = new MArrivalTimeCalc;
     
    337374        tlist->AddToList(trcal);
    338375        tlist->AddToList(fill09);
     376    }
     377
     378    if (type==1)
     379    {
     380        MFillH *fill08 = new MFillH(evt08, "MArrivalTime", "MFillH8");
     381        tlist->AddToList(fill08);
    339382    }
    340383
  • trunk/MagicSoft/Mars/mmain/MEventDisplay.h

    r3503 r4714  
    4444    void ReadinEvent(Int_t dir=0);
    4545
     46    Int_t GetFileType(const char *tree, const char *fname) const;
     47
    4648    Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
    4749
  • trunk/MagicSoft/Mars/msignal/MArrivalTime.h

    r4577 r4714  
    4141
    4242    Double_t operator[](int i) { return fData[i]; }
    43     Double_t operator()(int i) { return fDataErr[i]; }   
     43
     44    // Do not do such things! It is highly dangerous to use two very similar operators
     45    // to do completely different things! People won't recognize it...
     46    //Double_t operator()(int i) { return fDataErr[i]; }
    4447
    4548    Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const;
    4649    void DrawPixelContent(Int_t num) const;
    4750
    48      ClassDef(MArrivalTime, 0)    // class for an event containing the arrival times
     51     ClassDef(MArrivalTime, 1)    // class for an event containing the arrival times
    4952};
    5053
Note: See TracChangeset for help on using the changeset viewer.