ROOT logo
//*-- AUTHOR : Ilse Koenig
//*-- Created : 17/01/2005
// Modified by M.Golubeva 01.11.2006

//_HADES_CLASS_DESCRIPTION 
/////////////////////////////////////////////////////////////
//
//  HWallRaw
//
//  Class for the raw data of the Forward Wall
//
/////////////////////////////////////////////////////////////

//_HADES_CLASS_DESCRIPTION 
/////////////////////////////////////////////////////////////////////////////
//
// HHodoRaw
//
// Unpacked raw data of the Pion Hodoscopes
//
// The class accepts up to 4 hits per channel.
// The addresses of the fibers can be accessed via the inline functions
//     void setModule(const Int_t)
//     void setFiber(const Int_t)
//     void setAddress(const Int_t module,const Int_t fiber)
//     Int_t getModule(void) const
//     Int_t getFiber(void) const
//     void getAddress(Int_t& module,Int_t& fiber)
// and the number of hits with the inline function
//     Int_t getNHits(void) const
// The inline function clear() sets the data members to the following values:
//      nHits=0;
//      cell=time1=width1=time2=width2=time3=width3=time4=width4=-200;
//
/////////////////////////////////////////////////////////////////////////////

#include "hwallraw.h"

ClassImp(HWallRaw)
  Float_t HWallRaw::getTime(const Int_t n) const
{
  // Returns the time of the nth hit (1<=n<=4)
  switch (n) {
    case 1: return time1;
    case 2: return time2;
    case 3: return time3;
    case 4: return time4;
    default:
      Error("getTime()","hit number: %i out of range [1,4]",n);
      return -1;
  }
}

Float_t HWallRaw::getWidth(const Int_t n) const
{
  // Returns the width of the nth hit (1<=n<=4)
  switch (n) {
    case 1: return width1;
    case 2: return width2;
    case 3: return width3;
    case 4: return width4;
    default:
      Error("getWidth()","hit number: %i out of range [1,4]",n);
      return -1;
  }
}

void HWallRaw::getTimeAndWidth(const Int_t n, Float_t& time, Float_t& width )
{
  // Returns the time and width of the nth hit (1<=n<=4)
  switch (n) {
    case 1:
      time=time1;
      width=width1;
      return;
    case 2:
      time=time2;
      width=width2;
      return;
    case 3:
      time=time3;
      width=width3;
      return;
    case 4:
      time=time4;
      width=width4;
      return;
    default:
      Error("getTime()","hit number: %i out of range [1,4]",n);
      time=width=-500;
      return;
   }
}

Bool_t HWallRaw::fill(const Float_t time,const Float_t width)
{
  // Stores the given time and width in the next data element time* and width*
  // and sets the multiplicity.
  // Return kFALSE if 4 hits are already stored.
  switch (nHits) {
    case 0:
      time1 = time;
      width1 = width;
      nHits++;
      break;
    case 1:
      time2 = time;
      width2 = width;
      nHits++;
      break;
    case 2:
      time3 = time;
      width3 = width;
      nHits++;
      break;
    case 3:
      time4 = time;
      width4 = width;
      nHits++;
      break;
    default:
      if( nHits>=4) nHits++;// continue counting Hits ...
      return kFALSE;
  }
  return kTRUE;
}

Bool_t HWallRaw::fill_lead(const Float_t time)
{
  // Stores the given time in the next data element time*
  // and sets the multiplicity.
  // Return kFALSE if 4 hits are already stored.
  switch (nHits) {
    case 0:
      time1 = time;
      nHits++;
      break;
    case 1:
      time2 = time;
      nHits++;
      break;
    case 2:
      time3 = time;
      nHits++;
      break;
    case 3:
      time4 = time;
      nHits++;
      break;
    default:
      if( nHits>=4) nHits++;// continue counting Hits ...
      return kFALSE;
  }
  return kTRUE;
}

Bool_t HWallRaw::fill_trail(const Float_t time)
{
  // Calculates the time between trailing and LAST(!) leading hit.
  // No other check if its really the right one,
  // i am depending on the TDC to deliver the right order
  // Return kFALSE if no leading yet or more than 4 Hits
  switch (nHits) {
    case 0:
      // no Leading
      return kFALSE;
    case 1:
      if(width1>=0) return kFALSE;// already a trailing filled in
      width1 = time-time1;
      break;
    case 2:
      if(width2>=0) return kFALSE;
      width2 = time-time2;
      break;
    case 3:
      if(width3>=0) return kFALSE;
      width3 = time-time3;
      break;
    case 4:
      if(width4>=0) return kFALSE;
      width4 = time-time4;
      break;
    default:
      return kFALSE;
  }
  return kTRUE;
}

 hwallraw.cc:1
 hwallraw.cc:2
 hwallraw.cc:3
 hwallraw.cc:4
 hwallraw.cc:5
 hwallraw.cc:6
 hwallraw.cc:7
 hwallraw.cc:8
 hwallraw.cc:9
 hwallraw.cc:10
 hwallraw.cc:11
 hwallraw.cc:12
 hwallraw.cc:13
 hwallraw.cc:14
 hwallraw.cc:15
 hwallraw.cc:16
 hwallraw.cc:17
 hwallraw.cc:18
 hwallraw.cc:19
 hwallraw.cc:20
 hwallraw.cc:21
 hwallraw.cc:22
 hwallraw.cc:23
 hwallraw.cc:24
 hwallraw.cc:25
 hwallraw.cc:26
 hwallraw.cc:27
 hwallraw.cc:28
 hwallraw.cc:29
 hwallraw.cc:30
 hwallraw.cc:31
 hwallraw.cc:32
 hwallraw.cc:33
 hwallraw.cc:34
 hwallraw.cc:35
 hwallraw.cc:36
 hwallraw.cc:37
 hwallraw.cc:38
 hwallraw.cc:39
 hwallraw.cc:40
 hwallraw.cc:41
 hwallraw.cc:42
 hwallraw.cc:43
 hwallraw.cc:44
 hwallraw.cc:45
 hwallraw.cc:46
 hwallraw.cc:47
 hwallraw.cc:48
 hwallraw.cc:49
 hwallraw.cc:50
 hwallraw.cc:51
 hwallraw.cc:52
 hwallraw.cc:53
 hwallraw.cc:54
 hwallraw.cc:55
 hwallraw.cc:56
 hwallraw.cc:57
 hwallraw.cc:58
 hwallraw.cc:59
 hwallraw.cc:60
 hwallraw.cc:61
 hwallraw.cc:62
 hwallraw.cc:63
 hwallraw.cc:64
 hwallraw.cc:65
 hwallraw.cc:66
 hwallraw.cc:67
 hwallraw.cc:68
 hwallraw.cc:69
 hwallraw.cc:70
 hwallraw.cc:71
 hwallraw.cc:72
 hwallraw.cc:73
 hwallraw.cc:74
 hwallraw.cc:75
 hwallraw.cc:76
 hwallraw.cc:77
 hwallraw.cc:78
 hwallraw.cc:79
 hwallraw.cc:80
 hwallraw.cc:81
 hwallraw.cc:82
 hwallraw.cc:83
 hwallraw.cc:84
 hwallraw.cc:85
 hwallraw.cc:86
 hwallraw.cc:87
 hwallraw.cc:88
 hwallraw.cc:89
 hwallraw.cc:90
 hwallraw.cc:91
 hwallraw.cc:92
 hwallraw.cc:93
 hwallraw.cc:94
 hwallraw.cc:95
 hwallraw.cc:96
 hwallraw.cc:97
 hwallraw.cc:98
 hwallraw.cc:99
 hwallraw.cc:100
 hwallraw.cc:101
 hwallraw.cc:102
 hwallraw.cc:103
 hwallraw.cc:104
 hwallraw.cc:105
 hwallraw.cc:106
 hwallraw.cc:107
 hwallraw.cc:108
 hwallraw.cc:109
 hwallraw.cc:110
 hwallraw.cc:111
 hwallraw.cc:112
 hwallraw.cc:113
 hwallraw.cc:114
 hwallraw.cc:115
 hwallraw.cc:116
 hwallraw.cc:117
 hwallraw.cc:118
 hwallraw.cc:119
 hwallraw.cc:120
 hwallraw.cc:121
 hwallraw.cc:122
 hwallraw.cc:123
 hwallraw.cc:124
 hwallraw.cc:125
 hwallraw.cc:126
 hwallraw.cc:127
 hwallraw.cc:128
 hwallraw.cc:129
 hwallraw.cc:130
 hwallraw.cc:131
 hwallraw.cc:132
 hwallraw.cc:133
 hwallraw.cc:134
 hwallraw.cc:135
 hwallraw.cc:136
 hwallraw.cc:137
 hwallraw.cc:138
 hwallraw.cc:139
 hwallraw.cc:140
 hwallraw.cc:141
 hwallraw.cc:142
 hwallraw.cc:143
 hwallraw.cc:144
 hwallraw.cc:145
 hwallraw.cc:146
 hwallraw.cc:147
 hwallraw.cc:148
 hwallraw.cc:149
 hwallraw.cc:150
 hwallraw.cc:151
 hwallraw.cc:152
 hwallraw.cc:153
 hwallraw.cc:154
 hwallraw.cc:155
 hwallraw.cc:156
 hwallraw.cc:157
 hwallraw.cc:158
 hwallraw.cc:159
 hwallraw.cc:160
 hwallraw.cc:161
 hwallraw.cc:162
 hwallraw.cc:163
 hwallraw.cc:164
 hwallraw.cc:165
 hwallraw.cc:166
 hwallraw.cc:167
 hwallraw.cc:168
 hwallraw.cc:169
 hwallraw.cc:170
 hwallraw.cc:171
 hwallraw.cc:172
 hwallraw.cc:173
 hwallraw.cc:174
 hwallraw.cc:175
 hwallraw.cc:176
 hwallraw.cc:177
 hwallraw.cc:178
 hwallraw.cc:179
 hwallraw.cc:180
 hwallraw.cc:181
 hwallraw.cc:182
 hwallraw.cc:183
 hwallraw.cc:184
 hwallraw.cc:185
 hwallraw.cc:186
 hwallraw.cc:187
 hwallraw.cc:188