StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFttClusterMaker.h
1 /***************************************************************************
2  * StFttClusterMaker.h
3  * Author: Daniel Brandenburg Feb, 2022
4  ***************************************************************************/
5 #ifndef STFTTCLUSTERMAKER_H
6 #define STFTTCLUSTERMAKER_H
7 #include "StMaker.h"
8 #include <vector>
9 #include <map>
10 
11 
12 
13 class StFttDb;
14 class StEvent;
15 class StFttCollection;
16 class StFttRawHit;
17 class StFttCluster;
18 
19 class StFttClusterMaker: public StMaker {
20 
21 public:
22  StFttClusterMaker( const char* name = "stgcCluster" );
23 
25 
26 
27  int Init();
28  int InitRun( int );
29  int FinishRun( int );
30  int Finish();
31  int Make();
32 
33 private:
34  void ApplyHardwareMap();
35  std::vector<StFttCluster*> FindClusters( std::vector<StFttRawHit * > );
36  StFttRawHit * FindMaxAdc( std::vector<StFttRawHit *>, size_t &pos );
37 
38  void InjectTestData();
39  void SearchClusterEdges( std::vector< StFttRawHit * > hits,
40  size_t start, // start index at MaxADC
41  size_t &left, size_t &right);
42  void CalculateClusterInfo( StFttCluster * clu );
43 
44  // selection of raw hits for cluster building
45  float GetThresholdFor( StFttRawHit * hit ) { return 0.0;}
46  bool PassTimeCut( StFttRawHit * hit );
47 
48  StEvent* mEvent;
49  StFttCollection* mFttCollection;
50  int mRunYear;
51  bool mDebug;
52  StFttDb* mFttDb;
53 
54 
55  ClassDef( StFttClusterMaker, 1 )
56 };
57 
58 #endif // STFTTCLUSTERMAKER_H