Go to the documentation of this file.00001
00002
00003 #include "TRpcEvent.h"
00004 #include "TGo4Version.h"
00005 #if __GO4BUILDVERSION__ > 40502
00006 #include "go4iostream.h"
00007 #else
00008 #include "Riostream.h"
00009 #endif
00010
00011 void Rpc_Hit::Clear()
00012 {
00013 iStrip = -1 ;
00014 dTimeLeft = -1 ;
00015 dTotLeft = -1 ;
00016 dTimeRight = -1 ;
00017 dTotRight = -1 ;
00018 }
00019
00020 void Rpc_Cluster::Clear()
00021 {
00022 fHits.clear();
00023 dX = 0.0;
00024 dY = 0.0;
00025 dMeanTime = 0.0;
00026 }
00027 void Rpc_Cluster::PositionCalculation(
00028 Double_t dMiddleStrip, UInt_t uOrientation,
00029 Double_t dStripWidth, Double_t dTimeConv )
00030 {
00031 Double_t dTotSum = 0.0;
00032 Double_t dMeanTot = 0.0;
00033 if( 0 == fHits.size() )
00034 return;
00035
00036 if( 1 == uOrientation )
00037 {
00038 dX = 0.0;
00039 dY = 0.0;
00040 dMeanTime = 0;
00041 dMeanStrip= 0;
00042 for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00043 {
00044
00045 dMeanTot = 1;
00046
00047 dX += (Double_t)(fHits[uHit].iStrip + 0.5)*dMeanTot;
00048 dY += ( (fHits[uHit].dTimeRight) - (fHits[uHit].dTimeLeft) )*dMeanTot;
00049 dMeanTime += ( (fHits[uHit].dTimeRight) + (fHits[uHit].dTimeLeft) )/2.0;
00050 dTotSum += dMeanTot;
00051 dMeanStrip += (Double_t)(fHits[uHit].iStrip)*dMeanTot;
00052 }
00053 dX = (dX/dTotSum)*dStripWidth -dMiddleStrip;
00054 dY *= dTimeConv/(1000.0*dTotSum);
00055 dMeanTime /= fHits.size();
00056 dMeanStrip /= dTotSum;
00057
00058
00059
00060
00061
00062
00063
00064 }
00065 else
00066 {
00067 dX = 0.0;
00068 dY = 0.0;
00069 dMeanTime = 0;
00070 dMeanStrip= 0;
00071 for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00072 {
00073
00074 dMeanTot = 1;
00075 dX += ( (fHits[uHit].dTimeRight) - (fHits[uHit].dTimeLeft) )*dMeanTot;
00076
00077 dY += (Double_t)(fHits[uHit].iStrip + 0.5)*dMeanTot;
00078 dMeanTime += ( (fHits[uHit].dTimeRight) + (fHits[uHit].dTimeLeft) )/2.0;
00079 dTotSum += dMeanTot;
00080 dMeanStrip += (Double_t)(fHits[uHit].iStrip)*dMeanTot;
00081 }
00082 dX *= dTimeConv/(1000.0*dTotSum);
00083 dY = (dY/dTotSum)*dStripWidth -dMiddleStrip;
00084
00085 dMeanTime /= fHits.size();
00086 dMeanStrip /= dTotSum;
00087 }
00088 }
00089
00090
00091 void Rpc_Event::Clear()
00092 {
00093
00094 fClusters.clear();
00095 fuEventNumber = 0;
00096 }
00097
00098
00099
00100 TRpcEvent::TRpcEvent(const char* name, Short_t id) :
00101 TGo4EventElement(name,name,id)
00102 {
00103 cout << "**** TRpcEvent: Create instance " << name <<" with composite id "<<id<< endl;
00104 }
00105 TRpcEvent::TRpcEvent() :
00106 TGo4EventElement()
00107 {
00108 }
00109
00110 TRpcEvent::~TRpcEvent()
00111 {
00112 }
00113
00114 void TRpcEvent::Clear(Option_t *t)
00115 {
00116
00117 fEvents.clear();
00118 SetValid(kFALSE);
00119 }
00120