Changeset 2636 for trunk/MagicSoft/Mars


Ignore:
Timestamp:
12/11/03 11:48:32 (21 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r2632 r2636  
    44
    55                                                 -*-*- END OF LINE -*-*-
     6 2003/12/11: Thomas Bretz
     7
     8   * mbase/MTime.[h,cc]:
     9     - small change to GetString
     10     - added ReadBinary
     11     
     12   * mraw/MRawCrateData.[h,c], mraw/MRawFileRead.[h,cc],
     13     mraw/MRawRunHeader.[h,cc], mraw/MRawSocketRead.cc:
     14     - adapted to new DAQ file format Version 2
     15     - changed ClassDef version accordingly
     16
     17
     18
    619 2003/12/10: Thomas Bretz
    720
     
    3043     - replaced non working ReadLine by ReadToDelim (reason unknown!)
    3144     - added SetHasNoHeader and kHasNoHeader
     45
     46   * macros/readcurrents.C:
     47     - fixed accordingly
     48
     49   * macros/sumcurrents.C:
     50     - fixed accordingly
    3251
    3352
  • trunk/MagicSoft/Mars/mbase/MTime.cc

    r2619 r2636  
    239239    GetTime(h, m, s, ms);
    240240
    241     return TString(Form("%2d/%02d/%02d %d:%02d:%02d.%03d", y, mon, d, h, m, s, ms));
     241    return TString(Form("%2d/%02d/%02d %02d:%02d:%02d.%03d", y, mon, d, h, m, s, ms));
    242242}
    243243
     
    273273    *fLog << GetString() << Form(" (+%dns)", fNanoSec) << endl;
    274274}
     275
     276istream &MTime::ReadBinary(istream &fin)
     277{
     278    UShort_t y;
     279    Byte_t mon, d, h, m, s;
     280
     281    fin.read((char*)&y,   2);
     282    fin.read((char*)&mon, 1);
     283    fin.read((char*)&d,   1);
     284    fin.read((char*)&h,   1);
     285    fin.read((char*)&m,   1);
     286    fin.read((char*)&s,   1); // Total=7
     287
     288    Set(y, mon, d, h, m, s, 0);
     289
     290    return fin;
     291}
  • trunk/MagicSoft/Mars/mbase/MTime.h

    r2617 r2636  
    1212#ifndef MARS_MParContainer
    1313#include "MParContainer.h"
     14#endif
     15
     16#ifndef _CPP_IOSFWD
     17#include <iosfwd>
    1418#endif
    1519
     
    9599    UInt_t Sec() const   { Byte_t h, m, s; GetTime(h,m,s); return s; }
    96100
     101    istream &ReadBinary(istream &fin);
     102
    97103    operator double() const   //[s]
    98104    {
  • trunk/MagicSoft/Mars/mraw/MRawCrateArray.cc

    r2607 r2636  
    122122    return &fArray;
    123123}
    124 
  • trunk/MagicSoft/Mars/mraw/MRawCrateData.cc

    r2173 r2636  
    4545using namespace std;
    4646
    47 MRawCrateData::MRawCrateData() : fDAQCrateNumber(0), fFADCEvtNumber(0), fFADCClockTick(0)
     47MRawCrateData::MRawCrateData() : fDAQCrateNumber(0), fFADCEvtNumber(0), fFADCClockTick(0), fABFlags(0)
    4848{
    4949}
     
    5454//  like specified in a TDAS note
    5555//
    56 void MRawCrateData::ReadEvt(istream& fin)
     56void MRawCrateData::ReadEvt(istream& fin, UShort_t ver)
    5757{
    5858    fin.read((char*)&fDAQCrateNumber, 2);
    5959    fin.read((char*)&fFADCEvtNumber,  4);
    6060    fin.read((char*)&fFADCClockTick,  4);
     61    if (ver>1)
     62        fin.read((char*)&fABFlags, 1);
    6163}
    6264
     
    6870{
    6971    *fLog << all;
    70     *fLog << "Crate Number " << fDAQCrateNumber << ":  ";
    71     *fLog << "FADCEventNr=" << fFADCEvtNumber << "  ";
    72     *fLog << "FADCClockTick=" << fFADCClockTick << " (20MHz)" << endl;
     72    *fLog << "Crate Number " << dec << fDAQCrateNumber << ":  ";
     73    *fLog << "FADCEventNr   = " << fFADCEvtNumber << "  ";
     74    *fLog << "FADCClockTick = " << fFADCClockTick << " (20MHz)" << endl;
     75    *fLog << "ABFlags       = " << hex << fABFlags << " (20MHz)" << endl;
    7376}
  • trunk/MagicSoft/Mars/mraw/MRawCrateData.h

    r2173 r2636  
    1616    UInt_t   fFADCEvtNumber;   // event number from the fadc
    1717    UInt_t   fFADCClockTick;   // clock tick from the fadc (20MHz)
     18    Byte_t   fABFlags;         // flag describing in which two-slice block the trigger was raised
    1819
    1920public:
     
    2627    void Print(Option_t *t=NULL) const;
    2728
    28     void ReadEvt(istream& fin);
     29    void ReadEvt(istream& fin, UShort_t ver);
    2930
    30     ClassDef(MRawCrateData, 1) //Container to store the Raw CRATE DATA
     31    ClassDef(MRawCrateData, 2) //Container to store the Raw CRATE DATA
    3132};
    3233
  • trunk/MagicSoft/Mars/mraw/MRawFileRead.cc

    r2632 r2636  
    218218
    219219    //
     220    //  Get file format version
     221    //
     222    const UShort_t ver = fRawRunHeader->GetFormatVersion();
     223
     224    //
    220225    // read the CRATE DATA (see specification) from file
    221226    //
    222227    for (int i=0; i<nc; i++)
    223228    {
    224         fRawCrateArray->GetEntry(i)->ReadEvt(*fIn);
     229        fRawCrateArray->GetEntry(i)->ReadEvt(*fIn, ver);
    225230        if (!*fIn)
    226231            return kFALSE;
     
    246251
    247252        // Create an artificial time stamp!
    248         UInt_t m     = (Byte_t)fmod(t/60e6, 60);
     253        UInt_t m = (Byte_t)fmod(t/60e6, 60);
    249254        //const Byte_t h     = (Byte_t)(t/3600e6);
    250255        m += fRawRunHeader->GetRunNumber()*10;
    251256        m %= 360; // 6h
    252257
    253         fRawEvtTime->Set(fRawRunHeader->GetDateYear(),
    254                          fRawRunHeader->GetDateMonth(),
    255                          fRawRunHeader->GetDateDay(),
     258        fRawEvtTime->Set(fRawRunHeader->GetRunStart().Year(),
     259                         fRawRunHeader->GetRunStart().Month(),
     260                         fRawRunHeader->GetRunStart().Day(),
    256261                         m/60, m%60, s, ms, ns);
    257262    }
  • trunk/MagicSoft/Mars/mraw/MRawFileRead.h

    r2207 r2636  
    3333    Int_t PostProcess();
    3434
    35 
    3635public:
    3736    MRawFileRead(const char *filename, const char *name=NULL, const char *title=NULL);
  • trunk/MagicSoft/Mars/mraw/MRawRunHeader.cc

    r2386 r2636  
    2929// Root storage container for the RUN HEADER information
    3030//
     31//
     32//
     33//  Version 2:
     34//  ----------
     35//   - removed fMJD, fYear, fMonth, fDay
     36//   - added fRunStart
     37//   - added fRunStop
     38//
     39//  Version 1:
     40//  ----------
     41//   - first implementation
     42//
    3143////////////////////////////////////////////////////////////////////////////
    3244
     
    6577    fSourceEpochChar[0]=0;
    6678    fSourceEpochDate=0;
    67     fMJD=0;
    68     fDateYear=0;
    69     fDateMonth=0;
    70     fDateDay=0;
    7179    fNumCrates=0;
    7280    fNumPixInCrate=0;
     
    113121
    114122    fin.read((char*)&fFormatVersion,    2);     // Total=4
     123    if (fFormatVersion>2)
     124        *fLog << warn << "WARNING - Format version V" << fFormatVersion << " unknown!" << endl;
     125
    115126    fin.read((char*)&fSoftVersion,      2);     // Total=6
    116127    fin.read((char*)&fRunType,          2);     // Total=8
     
    122133    fin.read((char*)&fSourceEpochChar,  2);     // Total=56
    123134    fin.read((char*)&fSourceEpochDate,  2);     // Total=58
    124     fin.read((char*)&fMJD,              4);     // Total=62
    125     fin.read((char*)&fDateYear,         2);     // Total=64
    126     fin.read((char*)&fDateMonth,        2);     // Total=66
    127     fin.read((char*)&fDateDay,          2);     // Total=68
     135    if (fFormatVersion<2)
     136    {
     137        UShort_t y, m, d;
     138        fin.read((char*)dummy, 4); // Former fMJD[4],
     139        fin.read((char*)&y,    2); // Former fDateYear[2]
     140        fin.read((char*)&m,    2); // Former fDateMonth[2]
     141        fin.read((char*)&d,    2); // Former fDateDay[2]
     142        fRunStart.Set(y, m, d, 0, 0, 0, 0);
     143    }
    128144    fin.read((char*)&fNumCrates,        2);     // Total=70
    129145    fin.read((char*)&fNumPixInCrate,    2);     // Total=72
     
    131147    fin.read((char*)&fNumSamplesHiGain, 2);     // Total=76
    132148    fin.read((char*)&fNumEvents,        4);     // Total=80
    133 
     149    if (fFormatVersion>1)
     150    {
     151        fRunStart.ReadBinary(fin);
     152        fRunStop.ReadBinary(fin);
     153    }
    134154
    135155    //
     
    175195        *fLog << "Monte Carlo Data";
    176196        break;
     197    default:
     198        *fLog << "<unknown>";
     199        break;
    177200    }
    178201    *fLog << ")" << endl;
     
    180203    *fLog << "Source:      '" << fSourceName << "' " << "  ";
    181204    *fLog << fSourceEpochChar << dec << fSourceEpochDate << endl;
    182     *fLog << "Date:         " << setprecision(1) << setiosflags(ios::fixed) << fMJD << " (MJD)  " << fDateYear << "/" << fDateMonth << "/" << fDateDay << endl;
     205    *fLog << "Run Start:    " << fRunStart << endl;
     206    *fLog << "Run Stop:     " << fRunStop << endl;
    183207    *fLog << "Crates:       " << fNumCrates << " x " << fNumPixInCrate << " Pixel/Crate = " << fNumCrates*fNumPixInCrate << " Pixel/Evt" << endl;
    184208    *fLog << "Samples:      " << fNumSamplesLoGain << "/" << fNumSamplesHiGain << " (lo/hi) = " << (fNumSamplesLoGain+fNumSamplesHiGain) * fNumCrates * fNumPixInCrate /1024 << "kB/Evt" << endl;
  • trunk/MagicSoft/Mars/mraw/MRawRunHeader.h

    r2521 r2636  
    77///////////////////////////////////////////////////////////////////////
    88
    9 #ifndef MARS_MParContainer
    10 #include "MParContainer.h"
     9#ifndef MARS_MTime
     10#include "MTime.h"
    1111#endif
    12 
    13 // gcc 3.2
    14 //class ifstream;
    15 #include <iosfwd>
    1612
    1713class TBuffer;
     
    4541    Char_t    fProjectName[22];
    4642    Char_t    fSourceName[12];
    47     //Float_t   fSourceRA;
    48     //Float_t   fSourceDEC;
    4943    Char_t    fSourceEpochChar[2];
    5044    UShort_t  fSourceEpochDate;
    51     Float_t   fMJD;
    52     UShort_t  fDateYear;
    53     UShort_t  fDateMonth;
    54     UShort_t  fDateDay;
    5545    UShort_t  fNumCrates;
    5646    UShort_t  fNumPixInCrate;
     
    5848    UShort_t  fNumSamplesHiGain;
    5949    UInt_t    fNumEvents;
     50    MTime     fRunStart;
     51    MTime     fRunStop;
    6052    MArrayS  *fPixAssignment;
    6153
     
    6456    ~MRawRunHeader();
    6557
    66     void SetMagicNumber(UShort_t a)  { fMagicNumber=a; }
    67     void SetFormatVersion(UShort_t a){ fFormatVersion=a; }
    68     void SetSoftVersion(UShort_t a)  { fSoftVersion=a; }
    69     void SetRunType(UShort_t a)      { fRunType=a; }
    70     void SetRunNumber(UInt_t a)      { fRunNumber=a; }
    71     void SetNumEvents(UInt_t a)      { fNumEvents=a; }
     58    // This is to be used in the MC chain only!
     59    void SetMagicNumber(UShort_t a)       { fMagicNumber=a; }
     60    void SetFormatVersion(UShort_t a)     { fFormatVersion=a; }
     61    void SetSoftVersion(UShort_t a)       { fSoftVersion=a; }
     62    void SetRunType(UShort_t a)           { fRunType=a; }
     63    void SetRunNumber(UInt_t a)           { fRunNumber=a; }
     64    void SetNumEvents(UInt_t a)           { fNumEvents=a; }
    7265    void SetNumSamples(UShort_t low, UShort_t high)
    7366    {
     
    7568        fNumSamplesHiGain=high;
    7669    }
    77     void SetNumCrates(UShort_t a)    {fNumCrates=a; }
    78     void SetNumPixInCrate(UShort_t a){fNumPixInCrate=a; }
    79     void SetMJD(Float_t a)  {fMJD=a; }
     70    void SetNumCrates(UShort_t a)         { fNumCrates=a; }
     71    void SetNumPixInCrate(UShort_t a)     { fNumPixInCrate=a; }
    8072
     73    // This is to get the numbers...
    8174    UShort_t GetMagicNumber() const       { return fMagicNumber; }
    82     UShort_t GetFormatversion() const     { return fFormatVersion; }
     75    UShort_t GetFormatVersion() const     { return fFormatVersion; }
    8376    UShort_t GetSoftVersion() const       { return fSoftVersion; }
    8477    UShort_t GetRunType() const           { return fRunType; }
     
    8679    const Char_t  *GetProjectName() const { return fProjectName; }
    8780    const Char_t  *GetSourceName() const  { return fSourceName; }
    88     //Float_t  GetSourceRa() const         { return fSourceRA; }
    89     //Float_t  GetSourceDec() const        { return fSourceDEC; }
    9081    const Char_t  *GetSourceEpocheChar() const { return fSourceEpochChar; }
    9182    UShort_t GetSourceEpocheDate() const  { return fSourceEpochDate; }
    92     Float_t  GetMJD() const               { return fMJD; }
    93     UShort_t GetDateYear() const          { return fDateYear; }
    94     Byte_t   GetDateMonth() const         { return fDateMonth; }
    95     Byte_t   GetDateDay() const           { return fDateDay; }
    9683    UShort_t GetNumCrates() const         { return fNumCrates; }
    9784    UShort_t GetNumPixInCrate() const     { return fNumPixInCrate; }
     
    9986    UShort_t GetNumSamplesHiGain() const  { return fNumSamplesHiGain; }
    10087    UInt_t   GetNumEvents() const         { return fNumEvents; }
     88    const MTime &GetRunStart() const      { return fRunStart; }
     89    const MTime &GetRunEnd() const        { return fRunStop; }
    10190    UShort_t GetPixAssignment(UShort_t i) const;
    10291    UShort_t GetNumConnectedPixels() const;
     
    114103    void ReadEvt(istream& fin);
    115104
    116     ClassDef(MRawRunHeader, 1)  // storage container for general info
     105    ClassDef(MRawRunHeader, 2)  // storage container for general info
    117106};
    118107#endif
  • trunk/MagicSoft/Mars/mraw/MRawSocketRead.cc

    r2563 r2636  
    303303
    304304    //
     305    //  Get file format version
     306    //
     307    const UShort_t ver = fRawRunHeader->GetFormatVersion();
     308
     309    //
    305310    // read the CRATE DATA (see specification) from file
    306311    //
    307312    for (int i=0; i<nc; i++)
    308313    {
    309         fRawCrateArray->GetEntry(i)->ReadEvt(*fIn);
     314        fRawCrateArray->GetEntry(i)->ReadEvt(*fIn, ver);
    310315        if (!*fIn)
    311316            return kFALSE;
  • trunk/MagicSoft/Mars/mraw/Makefile

    r2386 r2636  
    2323#
    2424INCLUDES = -I. -I../mbase -I../mgui -I../mgeom -I../MBase
     25# mgui (MCamEvent), mgeom(MGeomCam)
    2526
    2627#------------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.