ROOT logo
#include "TString.h"
#include "hrpcdigipar.h"
#include "hpario.h"
#include "hdetpario.h"
#include "hparamlist.h"
using namespace std;

//*-- Author   : Pablo Cabanelas
//*-- Created  : 08/06/2010
//*-- Modified : 10/11/2012 A.Mangiarotti Added parameters for the
//*-- Modified : new digitizer: fS1_time, fS2_time, fS3_time,
//*-- Modified : fQmean1, fQmean2, fQwid, fQwid1, fQwid2, fEff1
//*-- Modified : fEff2, fEff3 and fMode. Costume streamer added to
//*-- Modified : initialise all the new parameters to zero if the
//*-- Modified : old container is read. The same behaviour is
//*-- Modified : defined for condition style.
//
//_HADES_CLASS_DESCRIPTION
/////////////////////////////////////////////////////////////////////////
//
//  HRpcDigiPar:
//  Container for the RPC digitization parameters
//
//  (Condition Style)
//
/////////////////////////////////////////////////////////////////////////

ClassImp(HRpcDigiPar)

// constructor
HRpcDigiPar::HRpcDigiPar(const char* name,const char* title,
		const char* context) : HParCond(name,title,context) {
	clear();
}

// clears the container
void HRpcDigiPar::clear() {
	fVprop    = 0.;
	fS_x      = 0.;
	fS0_time  = 0.;
	fS1_time  = 0.;
	fS2_time  = 0.;
	fS3_time  = 0.;
	fT_off    = 0.;
	fQmean0   = 0.;
	fQmean1   = 0.;
	fQmean2   = 0.;
	fQwid0    = 0.;
	fQwid1    = 0.;
	fQwid2    = 0.;
	fEff0     = 0.;
	fEff1     = 0.;
	fEff2     = 0.;
	fEff3     = 0.;
	fEff4     = 0.;
	fEff5     = 0.;
	fTime2Tdc = 0.;
	fPedestal = 0.;
	fQtoW0    = 0.;
	fQtoW1    = 0.;
	fQtoW2    = 0.;
	fQtoW3    = 0.;
	fGap      = 0.;
        fMode     = 0;
	status=kFALSE;
	resetInputVersions();
}

// puts all parameters to the parameter list, which is used by the io
void HRpcDigiPar::putParams(HParamList* l) {
	if (!l) return;
	l->add("fVprop"   ,fVprop);
	l->add("fS_x"     ,fS_x);
	l->add("fS_time"  ,fS0_time);
	l->add("fS1_time" ,fS1_time);
	l->add("fS2_time" ,fS2_time);
	l->add("fS3_time" ,fS3_time);
	l->add("fT_off"   ,fT_off);
	l->add("fQmean"   ,fQmean0);
	l->add("fQmean1"  ,fQmean1);
	l->add("fQmean2"  ,fQmean2);
	l->add("fQwid"    ,fQwid0);
	l->add("fQwid1"   ,fQwid1);
	l->add("fQwid2"   ,fQwid2);
	l->add("fEff"     ,fEff0);
	l->add("fEff1"    ,fEff1);
	l->add("fEff2"    ,fEff2);
	l->add("fEff3"    ,fEff3);
	l->add("fEff4"    ,fEff4);
	l->add("fEff5"    ,fEff5);
	l->add("fTime2Tdc",fTime2Tdc);
	l->add("fPedestal",fPedestal);
	l->add("fQtoW0"   ,fQtoW0);
	l->add("fQtoW1"   ,fQtoW1);
	l->add("fQtoW2"   ,fQtoW2);
	l->add("fQtoW3"   ,fQtoW3);
	l->add("fGap"     ,fGap);
	l->add("fMode"    ,fMode);
}

// gets all parameters from the parameter list, which is used by the io
Bool_t HRpcDigiPar::getParams(HParamList* l) {
	if (!l) return kFALSE;
	if (!(l->fill("fVprop"   ,&fVprop)))    return kFALSE;
	if (!(l->fill("fS_x"     ,&fS_x)))      return kFALSE;
	if (!(l->fill("fS_time"  ,&fS0_time)))  return kFALSE;
	if (!(l->fill("fS1_time" ,&fS1_time)))  {Info("getParams","old database without S1_time"); fS1_time=0.;}
	if (!(l->fill("fS2_time" ,&fS2_time)))  {Info("getParams", "old database without S2_time"); fS2_time=0.;}
	if (!(l->fill("fS3_time" ,&fS3_time)))  {Info("getParams", "old database without S3_time"); fS3_time=0.;}
	if (!(l->fill("fT_off"   ,&fT_off)))    return kFALSE;
	if (!(l->fill("fQmean"   ,&fQmean0)))   return kFALSE;
	if (!(l->fill("fQmean1"  ,&fQmean1)))   {Info("getParams", "old database without Qmean1"); fQmean1=0.;}
	if (!(l->fill("fQmean2"  ,&fQmean2)))   {Info("getParams", "old database without Qmean2"); fQmean2=0.;}
	if (!(l->fill("fQwid"    ,&fQwid0)))    {Info("getParams", "old database without Qwid1"); fQwid0=0.;}
	if (!(l->fill("fQwid1"   ,&fQwid1)))    {Info("getParams", "old database without Qwid2"); fQwid1=0.;}
	if (!(l->fill("fQwid2"   ,&fQwid2)))    {Info("getParams", "old database without Qwid3"); fQwid2=0.;}
	if (!(l->fill("fEff"     ,&fEff0)))     return kFALSE;
	if (!(l->fill("fEff1"    ,&fEff1)))     {Info("getParams", "old database without Eff1"); fEff1=0.;}
	if (!(l->fill("fEff2"    ,&fEff2)))     {Info("getParams", "old database without Eff2"); fEff2=0.;}
	if (!(l->fill("fEff3"    ,&fEff3)))     {Info("getParams", "old database without Eff3"); fEff3=0.;}
	if (!(l->fill("fEff4"    ,&fEff4)))     {Info("getParams", "old database without Eff3"); fEff4=0.;}
	if (!(l->fill("fEff5"    ,&fEff5)))     {Info("getParams", "old database without Eff3"); fEff5=0.;}
	if (!(l->fill("fTime2Tdc",&fTime2Tdc))) return kFALSE;
	if (!(l->fill("fPedestal",&fPedestal))) return kFALSE;
	if (!(l->fill("fQtoW0"   ,&fQtoW0)))    return kFALSE;
	if (!(l->fill("fQtoW1"   ,&fQtoW1)))    return kFALSE;
	if (!(l->fill("fQtoW2"   ,&fQtoW2)))    return kFALSE;
	if (!(l->fill("fQtoW3"   ,&fQtoW3)))    return kFALSE;
	if (!(l->fill("fGap"     ,&fGap)))      return kFALSE;
	if (!(l->fill("fMode"    ,&fMode)))     {Info("getParams", "old database without fMode"); fMode=0;}
	return kTRUE;
}

// Stream an object of class HRpcDigiPar.
void HRpcDigiPar::Streamer(TBuffer &R__b)
{
   UInt_t R__s, R__c;
   if (R__b.IsReading()) {
      Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { }
      HParCond::Streamer(R__b);
      R__b >> fVprop;
      R__b >> fS_x;
      R__b >> fS0_time;
      if(R__v>1) {
        R__b >> fS1_time;
	R__b >> fS2_time;
	R__b >> fS3_time;
      } else {
        fS1_time=0.;
	fS2_time=0.;
	fS3_time=0.;
      }
      R__b >> fT_off;
      R__b >> fQmean0;
      if(R__v>1) {
        R__b >> fQmean1;
	R__b >> fQmean2;
        R__b >> fQwid0;
        R__b >> fQwid1;
	R__b >> fQwid2;
      } else {
        fQmean1=0.;
	fQmean2=0.;
        fQwid0=0.;
        fQwid1=0.;
	fQwid2=0.;
      }
      R__b >> fEff0;
      if(R__v>1) {
        R__b >> fEff1;
	R__b >> fEff2;
	R__b >> fEff3;
      } else {
        fEff1=0.;
	fEff2=0.;
	fEff3=0.;
      }
      if(R__v>2) {
        R__b >> fEff4;
	R__b >> fEff5;
      } else {
        fEff4=0.;
	fEff5=0.;
      }
      R__b >> fTime2Tdc;
      R__b >> fPedestal;
      R__b >> fQtoW0;
      R__b >> fQtoW1;
      R__b >> fQtoW2;
      R__b >> fQtoW3;
      R__b >> fGap;
      if(R__v>1) {
        R__b >> fMode;
      } else {
        fMode=0;
      }
      R__b.CheckByteCount(R__s, R__c, HRpcDigiPar::IsA());
   } else {
      R__c = R__b.WriteVersion(HRpcDigiPar::IsA(), kTRUE);
      HParCond::Streamer(R__b);
      R__b << fVprop;
      R__b << fS_x;
      R__b << fS0_time;
      R__b << fS1_time;
      R__b << fS2_time;
      R__b << fS3_time;
      R__b << fT_off;
      R__b << fQmean0;
      R__b << fQmean1;
      R__b << fQmean2;
      R__b << fQwid0;
      R__b << fQwid1;
      R__b << fQwid2;
      R__b << fEff0;
      R__b << fEff1;
      R__b << fEff2;
      R__b << fEff3;
      R__b << fEff4;
      R__b << fEff5;
      R__b << fTime2Tdc;
      R__b << fPedestal;
      R__b << fQtoW0;
      R__b << fQtoW1;
      R__b << fQtoW2;
      R__b << fQtoW3;
      R__b << fGap;
      R__b << fMode;
      R__b.SetByteCount(R__c, kTRUE);
   }
}
 hrpcdigipar.cc:1
 hrpcdigipar.cc:2
 hrpcdigipar.cc:3
 hrpcdigipar.cc:4
 hrpcdigipar.cc:5
 hrpcdigipar.cc:6
 hrpcdigipar.cc:7
 hrpcdigipar.cc:8
 hrpcdigipar.cc:9
 hrpcdigipar.cc:10
 hrpcdigipar.cc:11
 hrpcdigipar.cc:12
 hrpcdigipar.cc:13
 hrpcdigipar.cc:14
 hrpcdigipar.cc:15
 hrpcdigipar.cc:16
 hrpcdigipar.cc:17
 hrpcdigipar.cc:18
 hrpcdigipar.cc:19
 hrpcdigipar.cc:20
 hrpcdigipar.cc:21
 hrpcdigipar.cc:22
 hrpcdigipar.cc:23
 hrpcdigipar.cc:24
 hrpcdigipar.cc:25
 hrpcdigipar.cc:26
 hrpcdigipar.cc:27
 hrpcdigipar.cc:28
 hrpcdigipar.cc:29
 hrpcdigipar.cc:30
 hrpcdigipar.cc:31
 hrpcdigipar.cc:32
 hrpcdigipar.cc:33
 hrpcdigipar.cc:34
 hrpcdigipar.cc:35
 hrpcdigipar.cc:36
 hrpcdigipar.cc:37
 hrpcdigipar.cc:38
 hrpcdigipar.cc:39
 hrpcdigipar.cc:40
 hrpcdigipar.cc:41
 hrpcdigipar.cc:42
 hrpcdigipar.cc:43
 hrpcdigipar.cc:44
 hrpcdigipar.cc:45
 hrpcdigipar.cc:46
 hrpcdigipar.cc:47
 hrpcdigipar.cc:48
 hrpcdigipar.cc:49
 hrpcdigipar.cc:50
 hrpcdigipar.cc:51
 hrpcdigipar.cc:52
 hrpcdigipar.cc:53
 hrpcdigipar.cc:54
 hrpcdigipar.cc:55
 hrpcdigipar.cc:56
 hrpcdigipar.cc:57
 hrpcdigipar.cc:58
 hrpcdigipar.cc:59
 hrpcdigipar.cc:60
 hrpcdigipar.cc:61
 hrpcdigipar.cc:62
 hrpcdigipar.cc:63
 hrpcdigipar.cc:64
 hrpcdigipar.cc:65
 hrpcdigipar.cc:66
 hrpcdigipar.cc:67
 hrpcdigipar.cc:68
 hrpcdigipar.cc:69
 hrpcdigipar.cc:70
 hrpcdigipar.cc:71
 hrpcdigipar.cc:72
 hrpcdigipar.cc:73
 hrpcdigipar.cc:74
 hrpcdigipar.cc:75
 hrpcdigipar.cc:76
 hrpcdigipar.cc:77
 hrpcdigipar.cc:78
 hrpcdigipar.cc:79
 hrpcdigipar.cc:80
 hrpcdigipar.cc:81
 hrpcdigipar.cc:82
 hrpcdigipar.cc:83
 hrpcdigipar.cc:84
 hrpcdigipar.cc:85
 hrpcdigipar.cc:86
 hrpcdigipar.cc:87
 hrpcdigipar.cc:88
 hrpcdigipar.cc:89
 hrpcdigipar.cc:90
 hrpcdigipar.cc:91
 hrpcdigipar.cc:92
 hrpcdigipar.cc:93
 hrpcdigipar.cc:94
 hrpcdigipar.cc:95
 hrpcdigipar.cc:96
 hrpcdigipar.cc:97
 hrpcdigipar.cc:98
 hrpcdigipar.cc:99
 hrpcdigipar.cc:100
 hrpcdigipar.cc:101
 hrpcdigipar.cc:102
 hrpcdigipar.cc:103
 hrpcdigipar.cc:104
 hrpcdigipar.cc:105
 hrpcdigipar.cc:106
 hrpcdigipar.cc:107
 hrpcdigipar.cc:108
 hrpcdigipar.cc:109
 hrpcdigipar.cc:110
 hrpcdigipar.cc:111
 hrpcdigipar.cc:112
 hrpcdigipar.cc:113
 hrpcdigipar.cc:114
 hrpcdigipar.cc:115
 hrpcdigipar.cc:116
 hrpcdigipar.cc:117
 hrpcdigipar.cc:118
 hrpcdigipar.cc:119
 hrpcdigipar.cc:120
 hrpcdigipar.cc:121
 hrpcdigipar.cc:122
 hrpcdigipar.cc:123
 hrpcdigipar.cc:124
 hrpcdigipar.cc:125
 hrpcdigipar.cc:126
 hrpcdigipar.cc:127
 hrpcdigipar.cc:128
 hrpcdigipar.cc:129
 hrpcdigipar.cc:130
 hrpcdigipar.cc:131
 hrpcdigipar.cc:132
 hrpcdigipar.cc:133
 hrpcdigipar.cc:134
 hrpcdigipar.cc:135
 hrpcdigipar.cc:136
 hrpcdigipar.cc:137
 hrpcdigipar.cc:138
 hrpcdigipar.cc:139
 hrpcdigipar.cc:140
 hrpcdigipar.cc:141
 hrpcdigipar.cc:142
 hrpcdigipar.cc:143
 hrpcdigipar.cc:144
 hrpcdigipar.cc:145
 hrpcdigipar.cc:146
 hrpcdigipar.cc:147
 hrpcdigipar.cc:148
 hrpcdigipar.cc:149
 hrpcdigipar.cc:150
 hrpcdigipar.cc:151
 hrpcdigipar.cc:152
 hrpcdigipar.cc:153
 hrpcdigipar.cc:154
 hrpcdigipar.cc:155
 hrpcdigipar.cc:156
 hrpcdigipar.cc:157
 hrpcdigipar.cc:158
 hrpcdigipar.cc:159
 hrpcdigipar.cc:160
 hrpcdigipar.cc:161
 hrpcdigipar.cc:162
 hrpcdigipar.cc:163
 hrpcdigipar.cc:164
 hrpcdigipar.cc:165
 hrpcdigipar.cc:166
 hrpcdigipar.cc:167
 hrpcdigipar.cc:168
 hrpcdigipar.cc:169
 hrpcdigipar.cc:170
 hrpcdigipar.cc:171
 hrpcdigipar.cc:172
 hrpcdigipar.cc:173
 hrpcdigipar.cc:174
 hrpcdigipar.cc:175
 hrpcdigipar.cc:176
 hrpcdigipar.cc:177
 hrpcdigipar.cc:178
 hrpcdigipar.cc:179
 hrpcdigipar.cc:180
 hrpcdigipar.cc:181
 hrpcdigipar.cc:182
 hrpcdigipar.cc:183
 hrpcdigipar.cc:184
 hrpcdigipar.cc:185
 hrpcdigipar.cc:186
 hrpcdigipar.cc:187
 hrpcdigipar.cc:188
 hrpcdigipar.cc:189
 hrpcdigipar.cc:190
 hrpcdigipar.cc:191
 hrpcdigipar.cc:192
 hrpcdigipar.cc:193
 hrpcdigipar.cc:194
 hrpcdigipar.cc:195
 hrpcdigipar.cc:196
 hrpcdigipar.cc:197
 hrpcdigipar.cc:198
 hrpcdigipar.cc:199
 hrpcdigipar.cc:200
 hrpcdigipar.cc:201
 hrpcdigipar.cc:202
 hrpcdigipar.cc:203
 hrpcdigipar.cc:204
 hrpcdigipar.cc:205
 hrpcdigipar.cc:206
 hrpcdigipar.cc:207
 hrpcdigipar.cc:208
 hrpcdigipar.cc:209
 hrpcdigipar.cc:210
 hrpcdigipar.cc:211
 hrpcdigipar.cc:212
 hrpcdigipar.cc:213
 hrpcdigipar.cc:214
 hrpcdigipar.cc:215
 hrpcdigipar.cc:216
 hrpcdigipar.cc:217
 hrpcdigipar.cc:218
 hrpcdigipar.cc:219
 hrpcdigipar.cc:220
 hrpcdigipar.cc:221
 hrpcdigipar.cc:222
 hrpcdigipar.cc:223
 hrpcdigipar.cc:224
 hrpcdigipar.cc:225
 hrpcdigipar.cc:226
 hrpcdigipar.cc:227
 hrpcdigipar.cc:228
 hrpcdigipar.cc:229
 hrpcdigipar.cc:230