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 | |
---|
21 | ClassImp(EHeader) |
---|
22 | |
---|
23 | //______________________________________________________________________________ |
---|
24 | void 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 | //_____________________________________________________________________________ |
---|
62 | EHeader::EHeader() : fNum(-1), fRun(-1), fRandom(0), fStatus(kOK) { |
---|
63 | // |
---|
64 | // Constructor |
---|
65 | // |
---|
66 | |
---|
67 | } |
---|
68 | |
---|
69 | //_____________________________________________________________________________ |
---|
70 | EHeader::EHeader(const EHeader& other) : TObject(other) { |
---|
71 | // |
---|
72 | // Copy ctor |
---|
73 | // |
---|
74 | |
---|
75 | other.Copy( *this ); |
---|
76 | } |
---|
77 | |
---|
78 | //_____________________________________________________________________________ |
---|
79 | EHeader::~EHeader() { |
---|
80 | // |
---|
81 | // Destructor |
---|
82 | // |
---|
83 | |
---|
84 | Clear(); |
---|
85 | } |
---|
86 | |
---|
87 | //_____________________________________________________________________________ |
---|
88 | void 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 | //_____________________________________________________________________________ |
---|
105 | void 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 | //______________________________________________________________________________ |
---|
120 | void 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 | } |
---|