00001 #ifndef TRPCEVENT_H 00002 #define TRPCEVENT_H 00003 00004 #include "TGo4EventElement.h" 00005 00006 /* 00007 * Put all definitions here and use them in processor, 00008 * since they are necessary for data structure of event 00009 */ 00010 00011 class Rpc_Hit: public TObject { 00012 public: 00013 Int_t iStrip; 00014 Double_t dTimeLeft; // in ps 00015 Double_t dTotLeft; // in ps 00016 Double_t dTimeRight; // in ps 00017 Double_t dTotRight; // in ps 00018 00019 Rpc_Hit() : TObject() { Clear(); }; 00020 00021 void Clear(void); 00022 00023 /* 00024 // copy constructor, used by vector to copy content 00025 Rpc_Hit(const Rpc_Hit& src) : 00026 iStrip(src.iStrip), 00027 dTimeLeft(src.dTimeLeft), dTotLeft(src.dTotLeft), 00028 dTimeRight(src.dTimeRight), dTotRight(src.dTotRight) {} 00029 */ 00030 00031 ClassDef(Rpc_Hit, 1) 00032 }; 00033 00034 class Rpc_Cluster: public TObject { 00035 public: 00036 std::vector<Rpc_Hit> fHits; 00037 Double_t dX; 00038 Double_t dY; 00039 Double_t dMeanTime; 00040 Double_t dMeanStrip; 00041 00042 Rpc_Cluster() : TObject() { Clear(); }; 00043 00044 void Clear(void); 00045 00046 void PositionCalculation( Double_t dMiddleStrip, UInt_t uOrientation, 00047 Double_t dStripWidth, Double_t dTimeConv ); 00048 00049 ClassDef(Rpc_Cluster, 1) 00050 }; 00051 00052 class Rpc_Event: public TObject { 00053 public: 00054 00055 // Maybe to be transformed into a TObjArray or TCloneArray 00056 std::vector<Rpc_Cluster> fClusters; 00057 UInt_t fuEventNumber; 00058 00059 Rpc_Event() : TObject() { Clear(); }; 00060 00061 void Clear(void); 00062 00063 ClassDef(Rpc_Event, 1) 00064 }; 00065 00066 class TRpcEvent : public TGo4EventElement { 00067 public: 00068 00069 00070 TRpcEvent(); 00071 TRpcEvent(const char* name, Short_t id=0); 00072 virtual ~TRpcEvent(); 00073 00075 virtual void Clear(Option_t *t=""); 00076 00077 // Maybe to be transformed into a TObjArray or TCloneArray 00078 std::vector<Rpc_Event> fEvents; 00079 00080 ClassDef(TRpcEvent,1) 00081 }; 00082 #endif //TRPCEVENT_H 00083 00084 00085