![]() |
|
|||
File indexing completed on 2023-03-17 11:19:05
0001 #ifndef CSCRecHitD_CSCRecHitDBuilder_h 0002 #define CSCRecHitD_CSCRecHitDBuilder_h 0003 0004 /** \class CSCRecHitDBuilder 0005 * 0006 * Algorithm to build 2-D RecHit from wire and strip digis 0007 * in endcap muon CSCs by implementing a 'build' function 0008 * required by CSCRecHitDProducer. 0009 * 0010 * The builder goes through many stages before building 2-D hits: 0011 * 1) It finds wire clusters and form wire hits which it stores in CSCWireHit. 0012 * 2) From these wire hits, it builds pseudo-wire segments to clean up 0013 * the wire hit collection from noisy hits. Only the hits falling on 0014 * the segment or far away from existing segments are retained. 0015 * 1) It then finds strip cluster and hits which it stores in CSCStripHit. 0016 * 2) Similary to the wire hits, segments are build using the strip hits. 0017 * Because of the trapezoidal geometry of the strips, all strip hits falling 0018 * close to the pseudo-strip segments are retained. 0019 * 0020 * \author Stoyan Stoynev - NU 0021 * 0022 */ 0023 0024 #include <DataFormats/CSCRecHit/interface/CSCRecHit2DCollection.h> 0025 #include <DataFormats/CSCDigi/interface/CSCStripDigiCollection.h> 0026 #include <DataFormats/CSCDigi/interface/CSCWireDigiCollection.h> 0027 0028 #include <FWCore/ParameterSet/interface/ParameterSet.h> 0029 0030 class CSCLayer; 0031 class CSCGeometry; 0032 class CSCDetId; 0033 class CSCHitFromStripOnly; 0034 class CSCHitFromWireOnly; 0035 class CSCMake2DRecHit; 0036 class CSCRecoConditions; 0037 0038 class CSCRecHitDBuilder { 0039 public: 0040 /** Configure the algorithm via ctor. 0041 * Receives ParameterSet percolated down from EDProducer 0042 * which owns this Builder. 0043 */ 0044 explicit CSCRecHitDBuilder(const edm::ParameterSet& ps); 0045 0046 ~CSCRecHitDBuilder(); 0047 0048 /** Find digis in each CSCLayer, build strip and wire proto-hits in 0049 * each layer from which pseudo-segments are build to select hits. 0050 * Then, strip/wire hits are combined to form 2-D hits, whereas 0051 * remaining "good" strip and wire only hits are also stored 0052 * into output collection. 0053 * 0054 */ 0055 0056 void build(const CSCStripDigiCollection* stripds, const CSCWireDigiCollection* wireds, CSCRecHit2DCollection& oc); 0057 0058 /** 0059 * Cache pointer to geometry so it can be passed downstream 0060 */ 0061 void setGeometry(const CSCGeometry* geom) { geom_ = geom; } 0062 0063 /** 0064 * Pass conditions downstream 0065 */ 0066 void setConditions(CSCRecoConditions* reco); 0067 0068 const CSCLayer* getLayer(const CSCDetId& detId); 0069 0070 private: 0071 bool useCalib; 0072 int stripWireDeltaT; 0073 bool makePseudo2DHits; 0074 0075 /** 0076 * The Program first constructs proto wire/strip hits which 0077 * it stores in a special collection. Proto strip/wire segments 0078 * are then build from these hits and allow to clean up up the list of hits. 0079 */ 0080 CSCHitFromStripOnly* hitsFromStripOnly_; 0081 CSCHitFromWireOnly* hitsFromWireOnly_; 0082 0083 CSCMake2DRecHit* make2DHits_; 0084 0085 /* 0086 * Cache geometry for current event 0087 */ 0088 const CSCGeometry* geom_; 0089 /* 0090 * Cache conditions data for current event - cannot be const because we need to update bad channels words 0091 */ 0092 CSCRecoConditions* recoConditions_; 0093 }; 0094 0095 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |