Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:58

0001 #ifndef CSCRecHitD_CSCMake2DRecHit_h
0002 #define CSCRecHitD_CSCMake2DRecHit_h
0003 
0004 /** \class CSCMake2DRecHit
0005  *
0006  * The overlap between strip hits and wire hits is used to determined 2D RecHit.
0007  * For layers where only strip or wire hits are present, pseudo 2D hits are formed.
0008  *
0009  * \author: Dominique Fortin - UCR
0010  *
0011  */
0012 //---- Possible changes from Stoyan Stoynev - NU
0013 
0014 #include <RecoLocalMuon/CSCRecHitD/src/CSCWireHit.h>
0015 #include <RecoLocalMuon/CSCRecHitD/src/CSCStripHit.h>
0016 #include <RecoLocalMuon/CSCRecHitD/src/CSCRecoConditions.h>
0017 #include <RecoLocalMuon/CSCRecHitD/src/CSCFindPeakTime.h>
0018 
0019 #include <DataFormats/CSCRecHit/interface/CSCRecHit2D.h>
0020 
0021 #include <FWCore/ParameterSet/interface/ParameterSet.h>
0022 
0023 class CSCDetId;
0024 class CSCLayer;
0025 class CSCChamberSpecs;
0026 class CSCLayerGeometry;
0027 class CSCRecoConditions;
0028 class CSCXonStrip_MatchGatti;
0029 
0030 class CSCMake2DRecHit {
0031 public:
0032   explicit CSCMake2DRecHit(const edm::ParameterSet&);
0033 
0034   ~CSCMake2DRecHit();
0035 
0036   /// Make 2D hits when have both wire and strip hit available in same layer
0037   CSCRecHit2D hitFromStripAndWire(const CSCDetId& id,
0038                                   const CSCLayer* layer,
0039                                   const CSCWireHit& wHit,
0040                                   const CSCStripHit& sHit);
0041 
0042   /// Test if rechit is in fiducial volume
0043   bool isHitInFiducial(const CSCLayer* layer, const CSCRecHit2D& rh);
0044 
0045   /// Pass pointer to conditions data onwards
0046   void setConditions(const CSCRecoConditions* reco);
0047 
0048   // Determine wire time using tpeak as initial estimate
0049   float findWireBx(const std::vector<int>& timeBinsOn, float tpeak, const CSCDetId& id);
0050 
0051   const CSCLayer* layer_;
0052   const CSCLayerGeometry* layergeom_;
0053   const CSCChamberSpecs* specs_;
0054   CSCDetId id_;
0055 
0056 private:
0057   bool useCalib;
0058   bool useTimingCorrections;
0059   bool useGasGainCorrections;
0060   int stripWireDeltaTime;
0061   bool useGatti;
0062   float maxGattiChi2;
0063 
0064   CSCXonStrip_MatchGatti* xMatchGatti_;
0065 
0066   // Cache pointer to conditions for current event
0067   const CSCRecoConditions* recoConditions_;
0068 
0069   const std::unique_ptr<CSCFindPeakTime> peakTimeFinder_;
0070 };
0071 
0072 #endif