File indexing completed on 2024-04-06 12:06:57
0001 #ifndef CSCDQM_StripClusterFinder_h
0002 #define CSCDQM_StripClusterFinder_h
0003
0004 #include "CSCDQM_StripCluster.h"
0005
0006 #include <vector>
0007 #include <iostream>
0008 #include <string>
0009 #include <csignal>
0010 #include <map>
0011 #include <string>
0012 #include <iomanip>
0013 #include <set>
0014 #include <sstream>
0015 #include <cstdint>
0016
0017 namespace cscdqm {
0018
0019
0020
0021
0022
0023 class StripClusterFinder {
0024 public:
0025 StripClusterFinder(int l, int s, int cf, int st, bool ME11 = false);
0026 void DoAction(int layerId, float* cathodes);
0027 void printClusters(void);
0028 std::vector<StripClusterFitData> thePulseHeightMap;
0029
0030 public:
0031 class Sort {
0032 public:
0033 bool operator()(const StripClusterFitData& a, const StripClusterFitData& b) const;
0034 };
0035 std::vector<StripCluster> MEStripClusters;
0036 ClusterLocalMax localMaxTMP;
0037 std::vector<StripCluster> getClusters() { return MEStripClusters; }
0038
0039 private:
0040 struct C1 {
0041 uint32_t IC1MIN, IC1MAX, JC1MIN, JC1MAX;
0042 };
0043 struct C2 {
0044 uint32_t IC2MIN, IC2MAX, JC2MIN, JC2MAX;
0045 };
0046 int LayerNmb, TimeSliceNmb, StripNmb;
0047 void SearchMax(int32_t layerId);
0048 void SearchBorders(void);
0049 void Match(void);
0050 bool FindAndMatch(void);
0051 void KillCluster(uint32_t ic1, uint32_t ic2, C1 const&, C2 const&);
0052 void RefindMax(void);
0053 bool is7DCFEBs;
0054 bool isME11;
0055 };
0056
0057 }
0058
0059 #endif