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

beamtime/cosy-jan12/go4/STS/TSTSClusterizer.h (r4864/r3090)

Go to the documentation of this file.
00001 #ifndef TSTSCLUSTERIZER_H
00002 #define TSTSCLUSTERIZER_H
00003 
00004 #include <vector>
00005 #include <deque>
00006 #include "Rtypes.h"
00007 #include "TSTSCluster.h"
00008 #include "TSTSTopology.h"
00009 
00010 class TSTSClusterizer {
00011 protected:
00012         Long64_t                                fTimeTolerance;  // [ns] if delta time < or = fkTimeTolerance then ==> same cluster
00013         Int_t                                   fSpaceTolerance; // [strips], if delta channel < or = fkSpaceTolerance ==> same cluster
00014         Long64_t                                fTimeWindow;     // [ns]
00015 
00016         static const Long64_t   kDefTimeTolerance = 50;
00017         static const Int_t              kDefSpaceTolerance = 1;
00018         static const Long64_t   kDefTimeWindow = 5000;
00019         Int_t                                   fDetector;
00020         Int_t                                   fSide;
00021         std::deque<TSTSDigi>    fDigis;
00022         Long64_t                fLatestDigiTime;
00023         void                    CheckTimeWindowSufficient( const TSTSDigi & newDigi );
00024         void                    CheckTimeWindowGtTimeTol();
00025         Bool_t                                  Match( const TSTSDigi & digi1, const TSTSDigi & digi2 ) const;
00026         Bool_t                                  Match( const TSTSCluster & cluster, const TSTSDigi & digi ) const;
00027         void                    MoveDigiToCluster( TSTSCluster & cluster, const std::deque<TSTSDigi>::iterator & itDigi );
00028         void                    InsertDigiSorted( TSTSDigi const & digi );
00029         Bool_t                  IsDigiBufferFilled( Bool_t noTrigger ) const;
00030         void                    PrintBuffer() const;
00031 
00032 public:
00033         TSTSClusterizer( Int_t det = 0, Int_t side = 0 );
00034         virtual ~TSTSClusterizer();
00035         void                                    FeedDigi( TSTSDigi const & digi );
00036         Bool_t                  FetchCluster( Bool_t noTriggers, TSTSCluster & cluster ); //  When noTrigger is kFALSE, has to be called only when all Digis are fed!
00037         Int_t                                   GetDetector() const { return fDetector; }
00038         Int_t                                   GetSide() const { return fSide; }
00039         void                                    SetDetector( Int_t det ) { fDetector = det; }
00040         void                                    SetSide( Int_t side ) { fSide = side; }
00041         void                                    SetTimeTolerance( Long64_t timeTolerance );
00042         void                                    SetSpaceTolerance( Int_t spaceTolerance ) { fSpaceTolerance = spaceTolerance; }
00043         void                    SetTimeWindow( Long64_t timeWindow );
00044         Long64_t                GetTimeWindow() const { return fTimeWindow; }
00045         UInt_t                  GetBufferSize() const {return fDigis.size();}
00046         ClassDef( TSTSClusterizer, 1 )
00047 };
00048 
00049 
00050 
00051 #endif // #ifndef TSTSCLUSTERIZER_H
00052 

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