00001 #ifndef StEvtHddr_h
00002 #define StEvtHddr_h
00003 #include <TDatime.h>
00004 #include "TDataSet.h"
00005 struct EvtHddr_st;
00006
00007 class StEvtHddr : public TDataSet
00008 {
00009 public:
00010 StEvtHddr(TDataSet *parent=0);
00011 StEvtHddr(const StEvtHddr &hddr, const char *name=0);
00012 ~StEvtHddr(){};
00013 StEvtHddr &operator=(const StEvtHddr &hddr);
00014 virtual TObject *Clone(const char *name=0) const {return new StEvtHddr(*this,name);}
00015 virtual TObject *Clone() {return ((const StEvtHddr*)this)->Clone();};
00016
00017
00018 Int_t GetRunNumber() const {return mRunNumber;};
00019 Int_t GetOldRunNumber() const {return mOldRunNumber;};
00020 const Char_t *GetEventType() const {return (const Char_t*)mEventType;};
00021 UInt_t GetTriggerMask() const {return mTriggerMask;};
00022 UInt_t GetInputTriggerMask() const {return mInputTriggerMask;};
00023 Float_t GetCenterOfMassEnergy() const {return mCenterOfMassEnergy;};
00024 UInt_t GetBunchCrossingNumber(int i) const {return mBunchCrossingNumber[i];};
00025 Int_t GetAEast() const {return mAEast;};
00026 Int_t GetZEast() const {return mZEast;};
00027 Int_t GetAWest() const {return mAWest;};
00028 Int_t GetZWest() const {return mZWest;};
00029 Float_t GetLuminosity() const {return mLuminosity;};
00030 Float_t GetBImpact() const {return mBImpact;};
00031 Float_t GetPhiImpact() const {return mPhImpact;};
00032 Float_t GetPhImpact() const {return GetPhiImpact();};
00033 UInt_t GetUTime() const ;
00034 Int_t GetDate() const {return mEventTime.GetDate();};
00035 Int_t GetTime() const {return mEventTime.GetTime();};
00036 const TDatime &GetDateTime() const {return mEventTime;};
00037 const TDatime &GetProdDateTime() const {return mProdTime;};
00038 Int_t GetIventNumber() const {return mIventNumber;};
00039 Int_t GetEventSize() const {return mEventSize;};
00040 Int_t GetEventNumber() const {return mEventNumber;};
00041 Int_t GetGenerType() const {return mGenerType;};
00042 Int_t IsNewRun() const {return (mRunNumber!=mOldRunNumber);};
00043 void FillTag(EvtHddr_st *tag);
00044
00045
00046 void SetRunNumber(int run) {mOldRunNumber=mRunNumber;mRunNumber=run;};
00047 void SetEventType(const Char_t *type){mEventType=type;};
00048 void SetTriggerMask(UInt_t tm) {mTriggerMask=tm;};
00049 void SetInputTriggerMask(UInt_t tm) {mInputTriggerMask=tm;};
00050 void SetBunchCrossingNumber(UInt_t bcn0,UInt_t bcn1)
00051 {mBunchCrossingNumber[0]=bcn0;mBunchCrossingNumber[1]=bcn1;}
00052 void SetCenterOfMassEnergy(float e) {mCenterOfMassEnergy=e;};
00053 void SetBImpact (float b) {mBImpact=b;};
00054 void SetPhiImpact(float p) {mPhImpact=p;};
00055 void SetPhImpact (float p) {SetPhiImpact(p);};
00056 void SetAEast(int a) {mAEast=a;};
00057 void SetZEast(int z) {mZEast=z;};
00058 void SetAWest(int a) {mAWest=a;};
00059 void SetZWest(int z) {mZWest=z;};
00060 void SetLuminosity(float lu) {mLuminosity=lu;};
00061 void SetDateTime(int iDate,int iTime){mEventTime.Set(iDate,iTime);};
00062 void SetDateTime(TDatime dt) {mEventTime=dt;};
00063 void SetGMTime(UInt_t ut);
00064 void SetProdDateTime(UInt_t ut=0);
00065 void SetIventNumber(int iv) {mIventNumber=iv;};
00066 void SetEventSize(int is) {mEventSize=is;};
00067 void SetEventNumber(int ev) {mEventNumber=ev;};
00068 void SetGenerType(int g) {mGenerType=g;};
00069 void Print(Option_t* option="") const;
00070
00071
00072 protected:
00073 Int_t mRunNumber;
00074 Int_t mOldRunNumber;
00075 Int_t mId;
00076 UInt_t mInputTriggerMask;
00077 UInt_t mTriggerMask;
00078 Float_t mCenterOfMassEnergy;
00079 Int_t mAEast;
00080 Int_t mZEast;
00081 Int_t mAWest;
00082 Int_t mZWest;
00083 Float_t mLuminosity;
00084 Float_t mBeamPolarizationEast[3];
00085 Float_t mBeamPolarizationWest[3];
00086 Float_t mBImpact;
00087 Float_t mPhImpact;
00088 Int_t mGenerType;
00089 UInt_t mBunchCrossingNumber[2];
00090 Int_t mIventNumber;
00091 Int_t mEventSize;
00092 Int_t mEventNumber;
00093
00094 TDatime mEventTime;
00095 TDatime mProdTime;
00096 TString mEventType;
00097
00098 ClassDef(StEvtHddr,3)
00099 };
00100
00101
00102 inline StEvtHddr::StEvtHddr(const StEvtHddr &hddr,const char *name):TDataSet(name,"")
00103 { operator=(hddr); }
00104
00105
00106 struct EvtHddr_st
00107 {
00108 Int_t mRunNumber;
00109 Int_t mOldRunNumber;
00110 Int_t mId;
00111 UInt_t mInputTriggerMask;
00112 UInt_t mTriggerMask;
00113 Float_t mCenterOfMassEnergy;
00114 Int_t mAEast;
00115 Int_t mZEast;
00116 Int_t mAWest;
00117 Int_t mZWest;
00118 Float_t mLuminosity;
00119 Float_t mBeamPolarizationEast[3];
00120 Float_t mBeamPolarizationWest[3];
00121 Float_t mBImpact;
00122 Float_t mPhImpact;
00123 Int_t mGenerType;
00124 UInt_t mBunchCrossingNumber[2];
00125 Int_t mIventNumber;
00126 Int_t mEventSize;
00127 Int_t mEventNumber;
00128
00129
00130 Double_t mEventTime;
00131
00132 Double_t mProdTime;
00133
00134 char mEventType[16];
00135 };
00136 #endif
00137
00138 #if 0
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184 #endif