00001 00002 #ifndef __SICLUSTERALG_H 00003 #define __SICLUSTERALG_H 1 00004 00005 #include <vector> 00006 #include "geometry/Point.h" 00007 #include "GlastEvent/Hits/SiLayers.h" 00008 #include "TkrRecon/SiClusters.h" 00009 #include "TkrRecon/ITkrGeometrySvc.h" 00010 #include "TkrRecon/ITkrBadStripsSvc.h" 00011 00012 #include "GlastEvent/Digi/TkrDigi.h" 00013 00014 #include "GaudiKernel/Algorithm.h" 00015 00016 //---------------------------------------------- 00017 // 00018 // SiClustersAlg 00019 // 00020 // Algorithm Data constructor of SiClusterAlg 00021 //---------------------------------------------- 00022 // J.A Hernando, Santa Cruz 02/29/00 00023 //---------------------------------------------- 00024 //########################################################## 00025 class SiClustersAlg : public Algorithm 00026 //########################################################## 00027 { 00028 public: 00030 SiClustersAlg(const std::string& name, ISvcLocator* pSvcLocator); 00031 virtual ~SiClustersAlg() {} 00033 StatusCode initialize(); 00035 StatusCode execute(); 00037 StatusCode finalize(); 00038 00039 protected: 00040 00041 StatusCode retrieve(); 00042 00043 Point position(int ilayer, SiCluster::view v, double strip, int tower = 0); 00044 00045 bool isGapBetween(const int lowHit, const int highHit); 00046 00047 bool isGoodCluster( const int lowHit, const int highHit, const int nBad); 00048 00049 int tagGood(const int strip); 00050 int tagBad(const int strip); 00051 int untag(const int strip); 00052 00053 00054 private: 00055 00056 ITkrGeometrySvc* pTkrGeo; 00057 ITkrBadStripsSvc* pBadStrips; 00058 00059 TkrDigiCol* m_TkrDigis; 00060 SiClusters* m_SiClusters; 00061 }; 00062 00063 #endif
1.2.3 written by Dimitri van Heesch,
© 1997-2000