Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#ifndef MuonSegment_H
#define MuonSegment_H
#include "DataFormats/Common/interface/AssociationVector.h"
#include "DataFormats/Common/interface/AssociationMap.h"
#include "DataFormats/GeometryVector/interface/GlobalPoint.h"
#include <vector>

#include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
#include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h"

namespace susybsm {

  class MuonSegment {
  public:
    MuonSegment() {}
    //bool isDT()  const { return DT;}
    //bool isCSC() const { return CSC;}

    //void setDT(const bool type) {DT = type;}
    //void setCSC(const bool type) {CSC = type;}

    void setDTSegmentRef(const DTRecSegment4DRef segment) { DTSegmentRef_ = segment; }
    void setCSCSegmentRef(const CSCSegmentRef segment) { CSCSegmentRef_ = segment; }

    void setGP(const GlobalPoint point) { gp = point; }

    GlobalPoint getGP() const { return gp; }

    DTRecSegment4DRef getDTSegmentRef() const { return DTSegmentRef_; }
    CSCSegmentRef getCSCSegmentRef() const { return CSCSegmentRef_; }

  private:
    GlobalPoint gp;

    DTRecSegment4DRef DTSegmentRef_;
    CSCSegmentRef CSCSegmentRef_;
  };

  typedef std::vector<MuonSegment> MuonSegmentCollection;
  typedef edm::Ref<MuonSegmentCollection> MuonSegmentRef;
  typedef edm::RefProd<MuonSegmentCollection> MuonSegmentRefProd;
  typedef edm::RefVector<MuonSegmentCollection> MuonSegmentRefVector;
}  // namespace susybsm

#endif