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

beamtime/gsi-aug12/prod/go4/RPC/TRpcEvent.cxx (r4864/r3742)

Go to the documentation of this file.
00001 /* Generated by Together */
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 Double_t Rpc_Hit::PositionCalculation( Double_t dTimeConv )
00020 {
00021    return (dTimeRight - dTimeLeft)*dTimeConv/1000.0;
00022 }
00023 
00024 void Rpc_Cluster::Clear()
00025 {
00026    fHits.clear();
00027    dX = 0.0;
00028    dY = 0.0;
00029    dMeanTime = 0.0;
00030 }
00031 void Rpc_Cluster::PositionCalculation(
00032       Double_t dMiddleStrip, UInt_t uOrientation,
00033       Double_t dStripWidth,  Double_t dTimeConv,
00034       UInt_t uUseGravityCenter )
00035 {
00036    Double_t dTotSum  = 0.0;
00037    Double_t dMeanTot = 0.0;
00038    if( 0 == fHits.size() )
00039       return;
00040 
00041    if( 1 == uOrientation )
00042    {
00043       dX = 0.0;
00044       dY = 0.0;
00045       dMeanTime = 0;
00046       dMeanStrip= 0;
00047       for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00048       {
00049          if( 1 == uUseGravityCenter )
00050             dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted
00051             else dMeanTot = 1;                                             // Not Weighted
00052          // Along strips axis: Strip Index + 0.5 to sit in the middle of the strip!
00053          dX        += (Double_t)(fHits[uHit].iStrip + 0.5)*dMeanTot;
00054          dY        += ( (fHits[uHit].dTimeRight) - (fHits[uHit].dTimeLeft) )*dMeanTot;
00055          dMeanTime += ( (fHits[uHit].dTimeRight) + (fHits[uHit].dTimeLeft) )/2.0;
00056          dTotSum   += dMeanTot;
00057          dMeanStrip += (Double_t)(fHits[uHit].iStrip)*dMeanTot;
00058       } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00059       dX  = (dX/dTotSum)*dStripWidth -dMiddleStrip;
00060       dY *= dTimeConv/(1000.0*dTotSum);
00061       dMeanTime  /= fHits.size();
00062       dMeanStrip /= dTotSum;
00063 
00064       // Depending on rotation from horizontal strips:
00065       // => Should be put as option
00066       // Upward
00067       //dX *= -1.0;
00068       // Downward
00069       //dY *= -1.0;
00070    } // if( 1 == uOrientation )
00071       else
00072       {
00073          dX = 0.0;
00074          dY = 0.0;
00075          dMeanTime = 0;
00076          dMeanStrip= 0;
00077          for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00078          {
00079             if( 1 == uUseGravityCenter )
00080                dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted
00081                else dMeanTot = 1;                                             // Not Weighted
00082             dX      += ( (fHits[uHit].dTimeRight) - (fHits[uHit].dTimeLeft) )*dMeanTot;
00083             // Along strips axis: Strip Index + 0.5 to sit in the middle of the strip!
00084             dY      += (Double_t)(fHits[uHit].iStrip + 0.5)*dMeanTot;
00085             dMeanTime += ( (fHits[uHit].dTimeRight) + (fHits[uHit].dTimeLeft) )/2.0;
00086             dTotSum += dMeanTot;
00087             dMeanStrip += (Double_t)(fHits[uHit].iStrip)*dMeanTot;
00088          } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00089          dX *= dTimeConv/(1000.0*dTotSum);
00090          dY  = (dY/dTotSum)*dStripWidth -dMiddleStrip;
00091 //         dY *= -1.0;
00092          dMeanTime /= fHits.size();
00093          dMeanStrip /= dTotSum;
00094       } // else of if( 1 == uOrientation )
00095 }
00096 
00097 TRpcEvent::TRpcEvent(const char* name, Short_t id) :
00098    TGo4EventElement(name,name,id)
00099 {
00100    cout << "**** TRpcEvent: Create instance " << name <<" with composite id "<<id<< endl;
00101 }
00102 TRpcEvent::TRpcEvent() :
00103    TGo4EventElement()
00104 {
00105 }
00106 
00107 TRpcEvent::~TRpcEvent()
00108 {
00109 }
00110 
00111 void  TRpcEvent::Clear(Option_t *t)
00112 {
00113   // all members should be cleared.
00114    fClusters.clear();
00115    SetValid(kFALSE);
00116 }
00117 

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