File indexing completed on 2023-03-17 11:19:08
0001 #ifndef CSCSegment_CSCSegAlgoShowering_h
0002 #define CSCSegment_CSCSegAlgoShowering_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include <DataFormats/CSCRecHit/interface/CSCRecHit2D.h>
0019 #include <DataFormats/CSCRecHit/interface/CSCSegment.h>
0020 #include <Geometry/CSCGeometry/interface/CSCChamber.h>
0021 #include <FWCore/ParameterSet/interface/ParameterSet.h>
0022 #include <vector>
0023
0024 class CSCSegFit;
0025
0026 class CSCSegAlgoShowering {
0027 public:
0028 typedef std::vector<const CSCRecHit2D*> ChamberHitContainer;
0029
0030
0031 explicit CSCSegAlgoShowering(const edm::ParameterSet& ps);
0032
0033
0034 virtual ~CSCSegAlgoShowering();
0035
0036 CSCSegment showerSeg(const CSCChamber* aChamber, const ChamberHitContainer& rechits);
0037
0038 private:
0039
0040 bool isHitNearSegment(const CSCRecHit2D* h) const;
0041 bool addHit(const CSCRecHit2D* hit, int layer);
0042 bool hasHitOnLayer(int layer) const;
0043 void compareProtoSegment(const CSCRecHit2D* h, int layer);
0044 void pruneFromResidual(void);
0045 void updateParameters(void);
0046
0047
0048 const std::string myName;
0049 const CSCChamber* theChamber;
0050
0051 ChamberHitContainer protoSegment;
0052
0053
0054 bool debug;
0055 int minHitsPerSegment;
0056 double dRPhiFineMax;
0057 double dPhiFineMax;
0058 float tanPhiMax;
0059 float tanThetaMax;
0060 float chi2Max;
0061 float maxRatioResidual;
0062
0063 float maxDTheta;
0064 float maxDPhi;
0065
0066 CSCSegFit* sfit_;
0067 };
0068 #endif