source: JEM-EUSO/esaf_cc_at_lal/packages/common/root/src/EHeader.cc @ 114

Last change on this file since 114 was 114, checked in by moretto, 11 years ago

actual version of ESAF at CCin2p3

File size: 3.3 KB
Line 
1// $Id: EHeader.cc 2648 2006-03-31 16:04:00Z thea $
2// Author: M.Pallavicini
3
4/*****************************************************************************
5 * ESAF: Euso Simulation and Analysis Framework                              *
6 *                                                                           *
7 *  Id: EHeader                                                              *
8 *  Package: SimuEvent                                                       *
9 *  Coordinator: Alessandro.Thea                                             *
10 *                                                                           *
11 *****************************************************************************/
12
13//______________________________________________________________________________
14//
15//  EHeader
16// 
17
18#include "EHeader.hh"
19#include <TClass.h>
20
21ClassImp(EHeader)
22
23//______________________________________________________________________________
24void EHeader::Streamer(TBuffer &R__b)
25{
26   // Stream an object of class EHeader.
27
28   UInt_t R__s, R__c;
29   if (R__b.IsReading()) {
30       Version_t R__v = R__b.ReadVersion(&R__s, &R__c); 
31       if (R__v == 1) { 
32           TObject::Streamer(R__b);
33           R__b >> fNum;
34           R__b >> fRun;
35           fRunName.Streamer(R__b);
36           R__b >> fRandom;
37           R__b.CheckByteCount(R__s, R__c, EHeader::IsA());
38           // old runs, only successes
39           fStatus = kOK;
40           // no mesg
41           fStatusMsg = "";
42       } else if ( R__v == 2 ) {
43           Int_t dummyEStatus;
44           R__b >> dummyEStatus;
45           R__b >> fNum;
46           R__b >> fRun;
47           fRunName.Streamer(R__b);
48           R__b >> fRandom;
49           R__b >> fStatus;
50           fStatusMsg.Streamer(R__b);
51           R__b.CheckByteCount(R__s, R__c, EHeader::IsA());
52       } else {
53           EHeader::Class()->ReadBuffer(R__b, this, R__v, R__s, R__c);
54       }
55   } else {
56       EHeader::Class()->WriteBuffer(R__b, this);
57   }
58
59}
60
61//_____________________________________________________________________________
62EHeader::EHeader() : fNum(-1), fRun(-1), fRandom(0), fStatus(kOK) {
63    //
64    // Constructor
65    //
66
67}
68
69//_____________________________________________________________________________
70EHeader::EHeader(const EHeader& other) : TObject(other) {
71    //
72    // Copy ctor
73    //
74
75   other.Copy( *this );
76}
77
78//_____________________________________________________________________________
79EHeader::~EHeader() {
80    //
81    // Destructor
82    //
83
84    Clear();
85}
86
87//_____________________________________________________________________________
88void EHeader::Copy( TObject& other ) const {
89    //
90    // Copy
91    //
92
93    TObject::Copy(other);
94
95    EHeader& h = (EHeader&)other;
96    h.fNum = fNum;
97    h.fRun = fRun;
98    h.SetRandom(fRandom); 
99    h.fStatus = fStatus;
100    h.fStatusMsg = fStatusMsg;
101}
102
103
104//_____________________________________________________________________________
105void EHeader::Clear( Option_t * ) {
106    //
107    // Clear object
108    //
109
110    fNum = -1;
111    fRun = -1;
112
113    SafeDelete(fRandom);
114
115    fStatus = kOK; 
116    fStatusMsg="";
117}
118
119//______________________________________________________________________________
120void EHeader::SetRandom( const TRandom* rndm ) { 
121    //
122    // Set random number generator
123    //
124
125    if ( fRandom ) delete fRandom;
126
127    fRandom = (TRandom*)rndm->Clone();
128}
Note: See TracBrowser for help on using the repository browser.