Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:35:51

0001 #ifndef DTRecHit_DTChamberRecSegment2D_h
0002 #define DTRecHit_DTChamberRecSegment2D_h
0003 
0004 /** \class DTChamberRecSegment2D
0005  *
0006  * A 2D segment for the DT system for Phi projection.
0007  * It's an intermediate data class between the normal DTSLRecSegment2D class and
0008  * the DTRecSegment4D. The difference wrt DTSLRecSegment2D is that the segments it
0009  * represents is build with the two phi SL. So this segment DOES not belong to
0010  * the SL (as DTSLRecSegment2D), but to the chamber (via a DTRecSegment4D).
0011  * A DTRecSegment4D has one of these objects, and so can access the full
0012  * information of the two projections.
0013  *
0014  * \author Stefano Lacaprara - INFN Legnaro <stefano.lacaprara@pd.infn.it>
0015  * \author Riccardo Bellan - INFN TO <riccardo.bellan@cern.ch>
0016  *
0017  */
0018 
0019 /* Base Class Headers */
0020 #include "DataFormats/DTRecHit/interface/DTRecSegment2D.h"
0021 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
0022 
0023 /* Collaborating Class Declarations */
0024 
0025 /* C++ Headers */
0026 
0027 /* ====================================================================== */
0028 
0029 /* Class DTChamberRecSegment2D Interface */
0030 
0031 class DTChamberRecSegment2D : public DTRecSegment2D {
0032 public:
0033   /// empty c'tor
0034   DTChamberRecSegment2D() {}
0035 
0036   /// c'tor from hits
0037   DTChamberRecSegment2D(DTChamberId id, const std::vector<DTRecHit1D> &hits);
0038 
0039   /// complete constructor
0040   DTChamberRecSegment2D(DTChamberId id,
0041                         LocalPoint &position,
0042                         LocalVector &direction,
0043                         AlgebraicSymMatrix &covMatrix,
0044                         double chi2,
0045                         std::vector<DTRecHit1D> &hits1D);
0046 
0047   /// Destructor
0048   ~DTChamberRecSegment2D() override {}
0049 
0050   /* Operations */
0051 
0052   /// The clone method needed by the clone policy
0053   DTChamberRecSegment2D *clone() const override;
0054 
0055   /// The id of the chamber on which reside the segment
0056   DTChamberId chamberId() const;
0057 
0058 private:
0059   // in DTSegmentCand, setPosition and setDirection can be used
0060   friend class DTSegmentCand;
0061   friend class DTSegmentUpdator;
0062   void setChamberId(DTChamberId chId) { setId(chId); }
0063 
0064 protected:
0065 };
0066 #endif  // DTRecHit_DTChamberRecSegment2D_h