Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-03-05 03:16:36

0001 #ifndef L1Trigger_L1TGEM_ME0StubBuilder_H
0002 #define L1Trigger_L1TGEM_ME0StubBuilder_H
0003 
0004 /** \class ME0StubBuilder derived by GEMSegmentBuilder
0005  * Algorithm to build ME0Stub's from GEMPadDigi collection
0006  * by implementing a 'build' function required by ME0StubProducer.
0007  *
0008  * Implementation notes: <BR>
0009  * Configured via the Producer's ParameterSet. <BR>
0010  * Presume this might become an abstract base class one day. <BR>
0011  *
0012  * \author Woohyeon Heo
0013  *
0014 */
0015 #include <cstdint>
0016 
0017 #include "DataFormats/GEMDigi/interface/GEMPadDigiCollection.h"
0018 #include "L1Trigger/L1TGEM/interface/ME0StubPrimitive.h"
0019 #include "DataFormats/GEMDigi/interface/ME0StubCollection.h"
0020 #include "Geometry/GEMGeometry/interface/GEMGeometry.h"
0021 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0022 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0023 
0024 class ME0StubAlgorithmBase;
0025 
0026 class ME0StubBuilder {
0027 public:
0028   explicit ME0StubBuilder(const edm::ParameterSet&);
0029   ~ME0StubBuilder();
0030 
0031   void build(const GEMPadDigiCollection* padDigis, ME0StubCollection& oc);
0032 
0033   static void fillDescription(edm::ParameterSetDescription& descriptions);
0034 
0035 private:
0036   bool skipCentroids_;
0037   std::vector<int32_t> layerThresholdPatternId_;
0038   std::vector<int32_t> layerThresholdEta_;
0039   int32_t maxSpan_;
0040   int32_t width_;
0041   bool deghostPre_;
0042   bool deghostPost_;
0043   int32_t groupWidth_;
0044   int32_t ghostWidth_;
0045   bool xPartitionEnabled_;
0046   bool enableNonPointing_;
0047   int32_t crossPartitionSegmentWidth_;
0048   int32_t numOutputs_;
0049   bool checkIds_;
0050   int32_t edgeDistance_;
0051   int32_t numOr_;
0052   double mseThreshold_;
0053 };
0054 
0055 #endif