ROOT logo
//*-- Author : Anar Rustamov 
//*-- Last modified : 10/08/2005 by Ilse Koenig

// In case of experiments where there exists no start hit and the TOF of the
// particles has to be recalculated, the tof variable(getTof()) of all classes derived from
// HBaseTrack will be overwritten by a reconstructor which recalculates the tof.
// To mark those objects as changed one can ask with getFlag(). The result should be
// 1 or 2 depending on the method which has been used and 0 if it has not been changed.
// Anyhow the original tof can be retrieved direct from the HMdcTofHit referenced by
// tofindex (getTofHitInd()). The flag itself is decoded in the tofindex, but will be
// hidden from the user by the getTofHitInd() function.
//

#include "hbasetrack.h"
#include <iostream>

#include "TBuffer.h"

ClassImp(HBaseTrack)
using namespace std;

HBaseTrack::HBaseTrack() 
{
  tofHitInd=tofClustInd=showerHitInd=rpcClustInd=-1;
  tof=-1.;
  beta=-1.;
  mass2=-1.;
  metaEloss=-1.;
  polarity=-100;
  p=-1.;
  cov.Clear();
  tarDist=-1000.;
  tofdist=-1;
  qIOMatch=-1.;
}

HBaseTrack::HBaseTrack(HBaseTrack &track):TObject(track)
{
  z=track.z;
  r=track.r;
  theta=track.theta;
  phi=track.phi;
  tofHitInd=track.tofHitInd;
  tofClustInd=track.tofClustInd;
  showerHitInd=track.showerHitInd;
  rpcClustInd=track.rpcClustInd;
  p=track.p;
  beta=track.beta;
  mass2=track.mass2;
  tof=track.tof;
  polarity=track.polarity;
  cov=track.cov;
  sector=track.sector;
  metaEloss=track.metaEloss;
  cov.setCov(track.cov);
  tarDist=track.getTarDist();
  tofdist=track.getTofDist();
  qIOMatch=track.getIOMatch();
}

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

   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 >> z;
      R__b >> r;
      R__b >> theta;
      R__b >> phi;
      R__b >> tofHitInd;
      if( R__v > 1) R__b >> tofClustInd;
      R__b >> showerHitInd;
      if( R__v > 1) R__b >> rpcClustInd;
      R__b >> p;
      R__b >> beta;
      R__b >> mass2;
      R__b >> tof;
      R__b >> polarity;
      R__b >> sector;
      cov.Streamer(R__b);
      R__b >> metaEloss;
      R__b >> tarDist;
      R__b >> tofdist;
      R__b >> qIOMatch;
      R__b.CheckByteCount(R__s, R__c, HBaseTrack::IsA());
   } else {
      R__c = R__b.WriteVersion(HBaseTrack::IsA(), kTRUE);
      TObject::Streamer(R__b);
      R__b << z;
      R__b << r;
      R__b << theta;
      R__b << phi;
      R__b << tofHitInd;
      R__b << tofClustInd;
      R__b << showerHitInd;
      R__b << rpcClustInd;
      R__b << p;
      R__b << beta;
      R__b << mass2;
      R__b << tof;
      R__b << polarity;
      R__b << sector;
      cov.Streamer(R__b);
      R__b << metaEloss;
      R__b << tarDist;
      R__b << tofdist;
      R__b << qIOMatch;
      R__b.SetByteCount(R__c, kTRUE);
   }
}
 hbasetrack.cc:1
 hbasetrack.cc:2
 hbasetrack.cc:3
 hbasetrack.cc:4
 hbasetrack.cc:5
 hbasetrack.cc:6
 hbasetrack.cc:7
 hbasetrack.cc:8
 hbasetrack.cc:9
 hbasetrack.cc:10
 hbasetrack.cc:11
 hbasetrack.cc:12
 hbasetrack.cc:13
 hbasetrack.cc:14
 hbasetrack.cc:15
 hbasetrack.cc:16
 hbasetrack.cc:17
 hbasetrack.cc:18
 hbasetrack.cc:19
 hbasetrack.cc:20
 hbasetrack.cc:21
 hbasetrack.cc:22
 hbasetrack.cc:23
 hbasetrack.cc:24
 hbasetrack.cc:25
 hbasetrack.cc:26
 hbasetrack.cc:27
 hbasetrack.cc:28
 hbasetrack.cc:29
 hbasetrack.cc:30
 hbasetrack.cc:31
 hbasetrack.cc:32
 hbasetrack.cc:33
 hbasetrack.cc:34
 hbasetrack.cc:35
 hbasetrack.cc:36
 hbasetrack.cc:37
 hbasetrack.cc:38
 hbasetrack.cc:39
 hbasetrack.cc:40
 hbasetrack.cc:41
 hbasetrack.cc:42
 hbasetrack.cc:43
 hbasetrack.cc:44
 hbasetrack.cc:45
 hbasetrack.cc:46
 hbasetrack.cc:47
 hbasetrack.cc:48
 hbasetrack.cc:49
 hbasetrack.cc:50
 hbasetrack.cc:51
 hbasetrack.cc:52
 hbasetrack.cc:53
 hbasetrack.cc:54
 hbasetrack.cc:55
 hbasetrack.cc:56
 hbasetrack.cc:57
 hbasetrack.cc:58
 hbasetrack.cc:59
 hbasetrack.cc:60
 hbasetrack.cc:61
 hbasetrack.cc:62
 hbasetrack.cc:63
 hbasetrack.cc:64
 hbasetrack.cc:65
 hbasetrack.cc:66
 hbasetrack.cc:67
 hbasetrack.cc:68
 hbasetrack.cc:69
 hbasetrack.cc:70
 hbasetrack.cc:71
 hbasetrack.cc:72
 hbasetrack.cc:73
 hbasetrack.cc:74
 hbasetrack.cc:75
 hbasetrack.cc:76
 hbasetrack.cc:77
 hbasetrack.cc:78
 hbasetrack.cc:79
 hbasetrack.cc:80
 hbasetrack.cc:81
 hbasetrack.cc:82
 hbasetrack.cc:83
 hbasetrack.cc:84
 hbasetrack.cc:85
 hbasetrack.cc:86
 hbasetrack.cc:87
 hbasetrack.cc:88
 hbasetrack.cc:89
 hbasetrack.cc:90
 hbasetrack.cc:91
 hbasetrack.cc:92
 hbasetrack.cc:93
 hbasetrack.cc:94
 hbasetrack.cc:95
 hbasetrack.cc:96
 hbasetrack.cc:97
 hbasetrack.cc:98
 hbasetrack.cc:99
 hbasetrack.cc:100
 hbasetrack.cc:101
 hbasetrack.cc:102
 hbasetrack.cc:103
 hbasetrack.cc:104
 hbasetrack.cc:105
 hbasetrack.cc:106
 hbasetrack.cc:107
 hbasetrack.cc:108
 hbasetrack.cc:109
 hbasetrack.cc:110
 hbasetrack.cc:111
 hbasetrack.cc:112
 hbasetrack.cc:113