Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:37:41

0001 #ifndef GEMRecHit_GEMSegmentAlgorithmBase_h
0002 #define GEMRecHit_GEMSegmentAlgorithmBase_h
0003 
0004 /** \class GEMSegmentAlgo derived from CSC
0005  * An abstract base class for algorithmic classes used to
0006  * build segments in one ensemble of GEM detector 
0007  *
0008  * Implementation notes: <BR>
0009  * For example, GEMSegmentAlgorithm inherits from this class,
0010  *
0011  * \author Piet Verwilligen
0012  *
0013  */
0014 
0015 #include "DataFormats/GEMRecHit/interface/GEMRecHitCollection.h"
0016 #include "DataFormats/GEMRecHit/interface/GEMSegment.h"
0017 #include "Geometry/GEMGeometry/interface/GEMSuperChamber.h"
0018 #include "Geometry/GEMGeometry/interface/GEMEtaPartition.h"
0019 #include "FWCore/Framework/interface/Frameworkfwd.h"
0020 #include <map>
0021 #include <vector>
0022 
0023 class GEMSegmentAlgorithmBase {
0024 public:
0025   typedef std::pair<const GEMSuperChamber*, std::map<uint32_t, const GEMEtaPartition*> > GEMEnsemble;
0026 
0027   /// Constructor
0028   explicit GEMSegmentAlgorithmBase(const edm::ParameterSet&) {}
0029   /// Destructor
0030   virtual ~GEMSegmentAlgorithmBase() {}
0031 
0032   /** Run the algorithm = build the segments in this chamber
0033     */
0034   virtual std::vector<GEMSegment> run(const GEMEnsemble& ensemble, const std::vector<const GEMRecHit*>& rechits) = 0;
0035 
0036 private:
0037 };
0038 
0039 #endif