• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

beamtime/tof-tdctest/go4/RPC/Rpc_Event.cxx (r4864/r4744)

Go to the documentation of this file.
00001 
00002 #include "Rpc_Event.h"
00003 
00004 #ifdef WITHGO4ROC
00005    #include "TGo4Version.h"
00006    #if __GO4BUILDVERSION__ > 40502
00007       #include "go4iostream.h"
00008    #else
00009       #include "Riostream.h"
00010    #endif
00011 #endif // WITHGO4ROC
00012 
00013 
00014 void Rpc_Hit::Clear()
00015 {
00016    iStrip     = -1 ;
00017    dTimeLeft  = -1 ;
00018    dTotLeft   = -1 ;
00019    dTimeRight = -1 ;
00020    dTotRight  = -1 ;
00021    fbMultiEdge = kFALSE;
00022 }
00023 Double_t Rpc_Hit::PositionCalculation( Double_t dTimeConv )
00024 {
00025    return (dTimeRight - dTimeLeft)*dTimeConv/1000.0;
00026 }
00027 
00028 void Rpc_Cluster::Clear()
00029 {
00030    fHits.clear();
00031    dX = 0.0;
00032    dY = 0.0;
00033    dMeanTime = 0.0;
00034 }
00035 void Rpc_Cluster::PositionCalculation(
00036       Double_t dMiddleStrip, UInt_t uOrientation,
00037       Double_t dStripWidth,  Double_t dTimeConv,
00038       UInt_t uUseGravityCenter  )
00039 {
00040    Double_t dTotSum  = 0.0;
00041    Double_t dMeanTot = 0.0;
00042    if( 0 == fHits.size() )
00043       return;
00044 
00045    if( 1 == uOrientation )
00046    {
00047       dX = 0.0;
00048       dY = 0.0;
00049       dMeanTime = 0;
00050       dMeanStrip= 0;
00051       for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00052       {
00053          if( 1 == uUseGravityCenter )
00054             dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted
00055             else dMeanTot = 1;                                             // Not Weighted
00056          // Along strips axis: Strip Index + 0.5 to sit in the middle of the strip!
00057          dX         += (Double_t)(fHits[uHit].iStrip + 0.5)*dMeanTot;
00058          dY         += ( (fHits[uHit].dTimeRight) - (fHits[uHit].dTimeLeft) )*dMeanTot;
00059          dMeanTime  += ( (fHits[uHit].dTimeRight) + (fHits[uHit].dTimeLeft) )*dMeanTot/2.0;
00060          dTotSum    += dMeanTot;
00061          dMeanStrip += (Double_t)(fHits[uHit].iStrip)*dMeanTot;
00062       } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00063       dX  = (dX/dTotSum)*dStripWidth -dMiddleStrip;
00064       dY *= dTimeConv/(1000.0*dTotSum);
00065       dMeanTime  /= dTotSum;
00066       dMeanStrip /= dTotSum;
00067    } // if( 1 == uOrientation )
00068       else
00069       {
00070          dX = 0.0;
00071          dY = 0.0;
00072          dMeanTime = 0;
00073          dMeanStrip= 0;
00074          for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00075          {
00076             if( 1 == uUseGravityCenter )
00077                dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted
00078                else dMeanTot = 1;                                             // Not Weighted
00079             dX         += ( (fHits[uHit].dTimeRight) - (fHits[uHit].dTimeLeft) )*dMeanTot;
00080             // Along strips axis: Strip Index + 0.5 to sit in the middle of the strip!
00081             dY         += (Double_t)(fHits[uHit].iStrip + 0.5)*dMeanTot;
00082             dMeanTime  += ( (fHits[uHit].dTimeRight) + (fHits[uHit].dTimeLeft) )*dMeanTot/2.0;
00083             dTotSum    += dMeanTot;
00084             dMeanStrip += (Double_t)(fHits[uHit].iStrip)*dMeanTot;
00085          } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00086          dX *= dTimeConv/(1000.0*dTotSum);
00087          dY  = (dY/dTotSum)*dStripWidth -dMiddleStrip;
00088          dMeanTime  /= dTotSum;
00089          dMeanStrip /= dTotSum;
00090       } // else of if( 1 == uOrientation )
00091 }
00092 
00093 /* Real Event */
00094 void  Rpc_Event::Clear()
00095 {
00096   // all members should be cleared.
00097    fClusters.clear();
00098    fuEventNumber = 0;
00099    fbMultiEdgesPresent = kFALSE;
00100 }

Generated on Tue Dec 10 2013 04:52:21 for ROCsoft by  doxygen 1.7.1