Back to home page

Project CMSSW displayed by LXR

 
 

    


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  * @class StripClusterFinder
0021  * @brief Object used to find Strip Clusters
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 }  // namespace cscdqm
0058 
0059 #endif