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

beamtime/gsi-aug12/prod/go4/PADRPC/TPadRpcEvent.cxx (r4864/r3684)

Go to the documentation of this file.
00001 /* Generated by Together */
00002 
00003 #include "TPadRpcEvent.h"
00004 #include "TGo4Version.h"
00005 #if __GO4BUILDVERSION__ > 40502
00006    #include "go4iostream.h"
00007 #else
00008    #include "Riostream.h"
00009 #endif
00010 
00011 void PadRpc_Hit::Clear()
00012 {
00013    iPadIndexX = -1 ;
00014    iPadIndexY = -1 ;
00015    dTime      = -1 ;
00016    dTot       = -1 ;
00017 }
00018 
00019 void PadRpc_Cluster::Clear()
00020 {
00021    fHits.clear();
00022    dX = 0.0;
00023    dY = 0.0;
00024    dMeanTime = 0.0;
00025    dMeanPadX = 0.0;
00026    dMeanPadY = 0.0;
00027 }
00028 void PadRpc_Cluster::PositionCalculation(
00029       Double_t dMiddlePadX, Double_t dMiddlePadY,
00030       UInt_t uOrientation,
00031       Double_t dPadSizeX,  Double_t dPadSizeY )
00032 {
00033    Double_t dTotSum  = 0.0;
00034    Double_t dMeanTot = 0.0;
00035    if( 0 == fHits.size() )
00036       return;
00037 
00038    if( 1 == uOrientation )
00039    {
00040       dX = 0.0;
00041       dY = 0.0;
00042       dMeanTime = 0;
00043       dMeanPadX = 0;
00044       dMeanPadY = 0;
00045       for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00046       {
00047          //dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted
00048          dMeanTot = 1;                                                  // Not Weighted
00049          // Along Pad axis: Strip Index + 0.5 to sit in the middle of the Pad!
00050          dX        += (Double_t)(fHits[uHit].iPadIndexY + 0.5)*dMeanTot;
00051          dY        += (Double_t)(fHits[uHit].iPadIndexX + 0.5)*dMeanTot;
00052          dMeanTime += fHits[uHit].dTime ;
00053          dTotSum   += dMeanTot;
00054          dMeanPadX += (Double_t)(fHits[uHit].iPadIndexX)*dMeanTot;
00055          dMeanPadY += (Double_t)(fHits[uHit].iPadIndexY)*dMeanTot;
00056       } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00057       dX = (dX/dTotSum)*dPadSizeY -dMiddlePadY;
00058       dY = (dY/dTotSum)*dPadSizeX -dMiddlePadX;
00059       dMeanTime  /= fHits.size();
00060       dMeanPadX /= dTotSum;
00061       dMeanPadY /= dTotSum;
00062    } // if( 1 == uOrientation )
00063       else
00064       {
00065          dX = 0.0;
00066          dY = 0.0;
00067          dMeanTime = 0;
00068          dMeanPadX = 0;
00069          dMeanPadY = 0;
00070          for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00071          {
00072             //dMeanTot = (fHits[uHit].dTotLeft ) + (fHits[uHit].dTotRight ); // Weighted
00073             dMeanTot = 1;                                                  // Not Weighted
00074             // Along Pad axis: Strip Index + 0.5 to sit in the middle of the Pad!
00075             dX        += (Double_t)(fHits[uHit].iPadIndexX + 0.5)*dMeanTot;
00076             dY        += (Double_t)(fHits[uHit].iPadIndexY + 0.5)*dMeanTot;
00077             dMeanTime += fHits[uHit].dTime ;
00078             dTotSum   += dMeanTot;
00079             dMeanPadX += (Double_t)(fHits[uHit].iPadIndexX)*dMeanTot;
00080             dMeanPadY += (Double_t)(fHits[uHit].iPadIndexY)*dMeanTot;
00081          } // for( UInt_t uHit = 0; uHit < fHits.size(); uHit++)
00082          dX = (dX/dTotSum)*dPadSizeX -dMiddlePadX;
00083          dY = (dY/dTotSum)*dPadSizeY -dMiddlePadY;
00084          dMeanTime /= fHits.size();
00085          dMeanPadX /= dTotSum;
00086          dMeanPadY /= dTotSum;
00087       } // else of if( 1 == uOrientation )
00088 }
00089 
00090 TPadRpcEvent::TPadRpcEvent(const char* name, Short_t id) :
00091    TGo4EventElement(name,name,id)
00092 {
00093    cout << "**** TPadRpcEvent: Create instance " << name <<" with composite id "<<id<< endl;
00094 }
00095 TPadRpcEvent::TPadRpcEvent() :
00096    TGo4EventElement()
00097 {
00098 }
00099 
00100 TPadRpcEvent::~TPadRpcEvent()
00101 {
00102 }
00103 
00104 void  TPadRpcEvent::Clear(Option_t *t)
00105 {
00106   // all members should be cleared.
00107    fClusters.clear();
00108    SetValid(kFALSE);
00109 }
00110 

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