ROOT logo
#include "heventheader.h"

#include "TBuffer.h"

//*-- Author : Manuel Sanchez
//*-- Modified : 30/03/2000 by R. Holzmann
//*-- Modified : 24/03/98 by Manuel Sanchez
//*-- Copyright : GENP (Univ. Santiago de Compostela)

//**************************************************************************
//
// HEventHeader
// 
// This class contains the header information of an event (run number, etc.)
// See data members for more detailed information.
// 
//**************************************************************************

ClassImp(HEventHeader)

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

   if (R__b.IsReading()) {
      Version_t R__v = R__b.ReadVersion(); if (R__v) { }
      TObject::Streamer(R__b);
      R__b >> fEventSize;
      R__b >> fEventDecoding;
      R__b >> fId;
      R__b >> fEventSeqNumber;
      R__b >> fDate;
      R__b >> fTime;
      R__b >> fEventRunNumber;
      R__b >> fEventPad;

      if (R__v > 1) {
	R__b >> fTBit;
      } else {
	fTBit = 0;
      }

      if (R__v > 2) {
	fVertex.Streamer(R__b);
      }
      if (R__v > 7) {
	fVertexCluster.Streamer(R__b);
      }
      if (R__v > 8) {
	fVertexReco.Streamer(R__b);
      }

      if (R__v > 3) {
	R__b >> downscaling;
        R__b >> downscalingFlag;
        R__b >> triggerDecision;
      } else {
	downscaling = 0;
        downscalingFlag = 0;
        triggerDecision = 0;
      }

      if (R__v > 4) {
        R__b >> timeInSpill;
      } else {
        timeInSpill = 0;
      }

      if (R__v > 9) {
         R__b >> timeInSpillF;       
         R__b >> timeToLastTrigger;  
         R__b >> timeToLastAntiCoinc;
      } else {
         timeInSpillF = 0;     
         timeToLastTrigger = 0; 
         timeToLastAntiCoinc = 0;
      }

      if (R__v > 5) {
        R__b >> fVersion;
      } else {
        fVersion = 0;
      }

      if (R__v > 6) {
         R__b >> triggerDecisionEmu;
         R__b >> fErrorBit;
      } else {
         triggerDecisionEmu = 0;
         fErrorBit = 0;
      }


   } else {
      R__b.WriteVersion(HEventHeader::IsA());
      TObject::Streamer(R__b);
      R__b << fEventSize;
      R__b << fEventDecoding;
      R__b << fId;
      R__b << fEventSeqNumber;
      R__b << fDate;
      R__b << fTime;
      R__b << fEventRunNumber;
      R__b << fEventPad;
      R__b << fTBit;
      fVertex.Streamer(R__b);
      fVertexCluster.Streamer(R__b);
      fVertexReco.Streamer(R__b);
      R__b << downscaling;
      R__b << downscalingFlag;
      R__b << triggerDecision;      
      R__b << timeInSpill;
      R__b << timeInSpillF;       
      R__b << timeToLastTrigger;  
      R__b << timeToLastAntiCoinc;
      R__b << fVersion;
      R__b << triggerDecisionEmu;
      R__b << fErrorBit;
   }
}


//**************************************************************************
//
// HVertex
//
// Holds the fitted 3-dim vertex position in the lab system.
//
//**************************************************************************

ClassImp(HVertex)

Int_t HVertex::getPileupClusterType(void) {
  // Return pile-up type (1 or 2);
  // 0 - pile-up was not found
  // No test for the pile-up signal.
  if( TestBit(BIT(14)) ) return 1;
  if( TestBit(BIT(15)) ) return 2;
  return 0;
}

Bool_t HVertex::isPileupCluster(Float_t cutType1,Float_t cutType2) {
  // Return kTRUE if pile-up signal path cut. 
  if(chi2 <= 0.) return kFALSE;
  if( TestBit(BIT(14)) ) return chi2 >= cutType1;
  if( TestBit(BIT(15)) ) return chi2 >= cutType2;
  return kFALSE;
}

Int_t HVertex::getPileupClusterTarget(void) {
  // Return pile-up target segment; -1 - start detector
  if(getPileupClusterType() == 0) return -10; 
  Int_t ampI = (chi2+0.001)*100;
  return (ampI%50) - 1;
}

Float_t HVertex::getPileupClusterSignal(void) {
  // Return pile-up signal
  if(getPileupClusterType() == 0) return 0.; 
  Int_t ampI = (chi2+0.001)*100;
  ampI -= ampI%50;
  return ampI*0.01;
}

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

   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);
      pos.Streamer(R__b);
      R__b >> iterations;
      R__b >> chi2;

      if (R__v > 1)
	{
	   R__b >> sumOfWeights;
	}
      else
	 {
	    sumOfWeights = -1.;
	 }
      R__b.CheckByteCount(R__s, R__c, HVertex::IsA());
   } else {
      R__c = R__b.WriteVersion(HVertex::IsA(), kTRUE);
      TObject::Streamer(R__b);
      pos.Streamer(R__b);
      R__b << iterations;
      R__b << chi2;
      R__b << sumOfWeights;
      R__b.SetByteCount(R__c, kTRUE);
   }
}

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