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

beamtime/gsi-aug12/get4v10/go4/RPC/TRpcEvent.cxx (r4864/r3846)

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 
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          //dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted
00045          dMeanTot = 1;                                                  // Not Weighted
00046          // Along strips axis: Strip Index + 0.5 to sit in the middle of the strip!
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       } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00053       dX  = (dX/dTotSum)*dStripWidth -dMiddleStrip;
00054       dY *= dTimeConv/(1000.0*dTotSum);
00055       dMeanTime  /= fHits.size();
00056       dMeanStrip /= dTotSum;
00057 
00058       // Depending on rotation from horizontal strips:
00059       // => Should be put as option
00060       // Upward
00061       //dX *= -1.0;
00062       // Downward
00063       //dY *= -1.0;
00064    } // if( 1 == uOrientation )
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             //dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted
00074             dMeanTot = 1;                                                  // Not Weighted
00075             dX      += ( (fHits[uHit].dTimeRight) - (fHits[uHit].dTimeLeft) )*dMeanTot;
00076             // Along strips axis: Strip Index + 0.5 to sit in the middle of the strip!
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          } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00082          dX *= dTimeConv/(1000.0*dTotSum);
00083          dY  = (dY/dTotSum)*dStripWidth -dMiddleStrip;
00084 //         dY *= -1.0;
00085          dMeanTime /= fHits.size();
00086          dMeanStrip /= dTotSum;
00087       } // else of if( 1 == uOrientation )
00088 }
00089 
00090 /* Real Event */
00091 void  Rpc_Event::Clear()
00092 {
00093   // all members should be cleared.
00094    fClusters.clear();
00095    fuEventNumber = 0;
00096 }
00097 
00098 /* GO4 ~ LMD ~ MBS event */
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   // all members should be cleared.
00117    fEvents.clear();
00118    SetValid(kFALSE);
00119 }
00120 

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