ROOT logo
//*--- Author: Vladimir Pechenov
//*--- Modified: Vladimir Pechenov 05/02/2005

using namespace std;
#include "hmdcwirefit.h"
#include <iostream>
#include <iomanip>

#include "TBuffer.h"

//_HADES_CLASS_DESCRIPTION 
//////////////////////////////////////////////////////////////////////////////
//
// HMdcWireFit
//
// Container class keeps one wire fit information for debuging and tuning.
//
// void clear()
//        Default setting of the data members.
//
// void setAddress(Char_t s,Char_t m,Char_t l,Short_t c)
// void setSec(Char_t s)
// void setMod(Char_t m)
// void setLayer(Char_t l)
// void setCell(Short_t c)
//                Set wire address.
// void setTimeNum(Char_t t)
//                Set drift time index (t=1 for time1 in HMdcCal1 and
//                                      t=2 for time2 in HMdcCal1).
// void setTdcTime(Float_t v)
//                Set measured time minus time of wire offset.
// void setDriftTime(Float_t v)
//                Set calculated drift time.
// void setFullTime(Float_t v)
//                Set calculated drift time + time offset.
// void setDev(Float_t v)
//                Set deviation (full time minus tdc time).
// void setWeight(Float_t v)
//                Set wire weight in fit.
// void setMinDist(Float_t v)
//                Set minimal distance from track to wire.
// void setAlpha(Float_t v)
//                Set impact angle of track in cell system.
// void setIsInCell(Bool_t v)
//                v=kFALSE if track don't cross cell.
// void setTdcTimeErr(Float_t v)
//                Set error of drift time.
//
// void getAddress(Int_t& s,Int_t& m,Int_t& l,Int_t& c)
// Char_t  getSec(void)
// Char_t  getMod(void)
// Char_t  getLayer(void)
// Short_t getCell(void)
//                Get wire address.
// Char_t  getTimeNum(void)
//               Get drift time index (return 1 for time1 in HMdcCal1,
//                                     return 2 for time2 in HMdcCal1).
// Float_t getTdcTime(void)
//                Get measured time minus time of wire offset.
// Float_t getDriftTime(void)
//                Get calculated drift time.
// Float_t getFullTime(void)
//                Get calculated drift time + time offset.
// Float_t getTimeOffset
//                Get time offset ( =getFullTime()-getDriftTime())
// Float_t getDev(void)
//                Get deviation (full time minus tdc time).
// Float_t getWeight(void)
//                Get wire weight in fit.
// Float_t getMinDist(void)
//                Get minimal distance from track to wire.
// Float_t getAlpha(void)
//                Get impact angle of track in cell system.
// Bool_t  getIsInCell(void)
//                Return kTRUE if track cross cell,
//                retrn kFALSE if track don't cross cell.
// Float_t getTdcTimeErr(void)
//                Get error of drift time.
// Float_t getChi2(void)
//                Get chi2 ( =getDev()/getTdcTimeErr() )
//
// Bool_t isGeant()
//                Return kFALSE
// void print()
//                Print container
//
//////////////////////////////////////////////////////////////////////////////


ClassImp(HMdcWireFit)

void HMdcWireFit::print() {
  // Print this container
  printf("S%iM%iL%i C%3i T%i:",sec+1,mod+1,layer+1,cell+1,timeNum);
  printf(" %5.2fmm %5.1fdeg. tof=%5.1f",minDist,alpha,fullTime-driftTime);
  printf("%c drTm=%5.1f fTm=%5.1f",(isInCell) ? ' ':'O',driftTime,fullTime);
  printf(" TDC=%5.1f dev=%6.1f WT=%g\n",getTdcTime(),dev,weight);
}

void HMdcWireFit::Streamer(TBuffer &R__b)
{
   // Stream an object of class HMdcWireFit.

   UInt_t R__s, R__c;
   if (R__b.IsReading()) {
      Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { }
      TObject::Streamer(R__b);
      R__b >> sec;
      R__b >> mod;
      R__b >> layer;
      R__b >> cell;
      R__b >> timeNum;
      R__b >> tdcTimeCal1;
      R__b >> tdcTime;
      R__b >> dev;
      R__b >> weight;
      R__b >> driftTime;
      R__b >> fullTime;
      R__b >> minDist;
      R__b >> alpha;
      R__b >> isInCell;
      R__b >> tdcTimeErr;
      R__b >> isUsedInFit;
      if(R__v > 1) {
        R__b >> tot;
        R__b >> cellPath;
      } else {
        tot      = 0.;
        cellPath = -1.;
      }
      R__b.CheckByteCount(R__s, R__c, HMdcWireFit::IsA());
   } else {
      R__c = R__b.WriteVersion(HMdcWireFit::IsA(), kTRUE);
      TObject::Streamer(R__b);
      R__b << sec;
      R__b << mod;
      R__b << layer;
      R__b << cell;
      R__b << timeNum;
      R__b << tdcTimeCal1;
      R__b << tdcTime;
      R__b << dev;
      R__b << weight;
      R__b << driftTime;
      R__b << fullTime;
      R__b << minDist;
      R__b << alpha;
      R__b << isInCell;
      R__b << tdcTimeErr;
      R__b << isUsedInFit;
      R__b << tot;
      R__b << cellPath;
      R__b.SetByteCount(R__c, kTRUE);
   }
}
 hmdcwirefit.cc:1
 hmdcwirefit.cc:2
 hmdcwirefit.cc:3
 hmdcwirefit.cc:4
 hmdcwirefit.cc:5
 hmdcwirefit.cc:6
 hmdcwirefit.cc:7
 hmdcwirefit.cc:8
 hmdcwirefit.cc:9
 hmdcwirefit.cc:10
 hmdcwirefit.cc:11
 hmdcwirefit.cc:12
 hmdcwirefit.cc:13
 hmdcwirefit.cc:14
 hmdcwirefit.cc:15
 hmdcwirefit.cc:16
 hmdcwirefit.cc:17
 hmdcwirefit.cc:18
 hmdcwirefit.cc:19
 hmdcwirefit.cc:20
 hmdcwirefit.cc:21
 hmdcwirefit.cc:22
 hmdcwirefit.cc:23
 hmdcwirefit.cc:24
 hmdcwirefit.cc:25
 hmdcwirefit.cc:26
 hmdcwirefit.cc:27
 hmdcwirefit.cc:28
 hmdcwirefit.cc:29
 hmdcwirefit.cc:30
 hmdcwirefit.cc:31
 hmdcwirefit.cc:32
 hmdcwirefit.cc:33
 hmdcwirefit.cc:34
 hmdcwirefit.cc:35
 hmdcwirefit.cc:36
 hmdcwirefit.cc:37
 hmdcwirefit.cc:38
 hmdcwirefit.cc:39
 hmdcwirefit.cc:40
 hmdcwirefit.cc:41
 hmdcwirefit.cc:42
 hmdcwirefit.cc:43
 hmdcwirefit.cc:44
 hmdcwirefit.cc:45
 hmdcwirefit.cc:46
 hmdcwirefit.cc:47
 hmdcwirefit.cc:48
 hmdcwirefit.cc:49
 hmdcwirefit.cc:50
 hmdcwirefit.cc:51
 hmdcwirefit.cc:52
 hmdcwirefit.cc:53
 hmdcwirefit.cc:54
 hmdcwirefit.cc:55
 hmdcwirefit.cc:56
 hmdcwirefit.cc:57
 hmdcwirefit.cc:58
 hmdcwirefit.cc:59
 hmdcwirefit.cc:60
 hmdcwirefit.cc:61
 hmdcwirefit.cc:62
 hmdcwirefit.cc:63
 hmdcwirefit.cc:64
 hmdcwirefit.cc:65
 hmdcwirefit.cc:66
 hmdcwirefit.cc:67
 hmdcwirefit.cc:68
 hmdcwirefit.cc:69
 hmdcwirefit.cc:70
 hmdcwirefit.cc:71
 hmdcwirefit.cc:72
 hmdcwirefit.cc:73
 hmdcwirefit.cc:74
 hmdcwirefit.cc:75
 hmdcwirefit.cc:76
 hmdcwirefit.cc:77
 hmdcwirefit.cc:78
 hmdcwirefit.cc:79
 hmdcwirefit.cc:80
 hmdcwirefit.cc:81
 hmdcwirefit.cc:82
 hmdcwirefit.cc:83
 hmdcwirefit.cc:84
 hmdcwirefit.cc:85
 hmdcwirefit.cc:86
 hmdcwirefit.cc:87
 hmdcwirefit.cc:88
 hmdcwirefit.cc:89
 hmdcwirefit.cc:90
 hmdcwirefit.cc:91
 hmdcwirefit.cc:92
 hmdcwirefit.cc:93
 hmdcwirefit.cc:94
 hmdcwirefit.cc:95
 hmdcwirefit.cc:96
 hmdcwirefit.cc:97
 hmdcwirefit.cc:98
 hmdcwirefit.cc:99
 hmdcwirefit.cc:100
 hmdcwirefit.cc:101
 hmdcwirefit.cc:102
 hmdcwirefit.cc:103
 hmdcwirefit.cc:104
 hmdcwirefit.cc:105
 hmdcwirefit.cc:106
 hmdcwirefit.cc:107
 hmdcwirefit.cc:108
 hmdcwirefit.cc:109
 hmdcwirefit.cc:110
 hmdcwirefit.cc:111
 hmdcwirefit.cc:112
 hmdcwirefit.cc:113
 hmdcwirefit.cc:114
 hmdcwirefit.cc:115
 hmdcwirefit.cc:116
 hmdcwirefit.cc:117
 hmdcwirefit.cc:118
 hmdcwirefit.cc:119
 hmdcwirefit.cc:120
 hmdcwirefit.cc:121
 hmdcwirefit.cc:122
 hmdcwirefit.cc:123
 hmdcwirefit.cc:124
 hmdcwirefit.cc:125
 hmdcwirefit.cc:126
 hmdcwirefit.cc:127
 hmdcwirefit.cc:128
 hmdcwirefit.cc:129
 hmdcwirefit.cc:130
 hmdcwirefit.cc:131
 hmdcwirefit.cc:132
 hmdcwirefit.cc:133
 hmdcwirefit.cc:134
 hmdcwirefit.cc:135
 hmdcwirefit.cc:136
 hmdcwirefit.cc:137
 hmdcwirefit.cc:138
 hmdcwirefit.cc:139
 hmdcwirefit.cc:140
 hmdcwirefit.cc:141
 hmdcwirefit.cc:142
 hmdcwirefit.cc:143
 hmdcwirefit.cc:144
 hmdcwirefit.cc:145
 hmdcwirefit.cc:146
 hmdcwirefit.cc:147
 hmdcwirefit.cc:148
 hmdcwirefit.cc:149
 hmdcwirefit.cc:150
 hmdcwirefit.cc:151
 hmdcwirefit.cc:152
 hmdcwirefit.cc:153
 hmdcwirefit.cc:154
 hmdcwirefit.cc:155