DTGeometryBuilderFromCondDB

Macros

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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
#ifndef DTGEOMETRYBUILDERFROMCONDDB_H
#define DTGEOMETRYBUILDERFROMCONDDB_H

/** \class DTGeometryBuilderFromCondDB
 *
 * Description:
 *  
 *  detailed description
 *
 * \author : Stefano Lacaprara - INFN LNL <stefano.lacaprara@pd.infn.it>
 *
 * Modification:
 *
 */

/* Base Class Headers */

/* Collaborating Class Declarations */
class RecoIdealGeometry;
class DTGeometry;
class DTChamber;
class DTSuperLayer;
class DTLayer;
class DetId;
#include "DataFormats/GeometrySurface/interface/Plane.h"
#include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h"

/* C++ Headers */
#include <memory>
#include <vector>

namespace dtGeometryBuilder {
  RectangularPlaneBounds* getRecPlaneBounds(const std::vector<double>::const_iterator& shapeStart);
}

/* ====================================================================== */

/* Class DTGeometryBuilderFromCondDB Interface */

class DTGeometryBuilderFromCondDB {
public:
  /* Constructor */
  DTGeometryBuilderFromCondDB();

  /* Destructor */
  virtual ~DTGeometryBuilderFromCondDB();

  /* Operations */
  void build(const std::shared_ptr<DTGeometry>& theGeometry, const RecoIdealGeometry& rig);

private:
  DTChamber* buildChamber(const DetId& id, const RecoIdealGeometry& rig, size_t idt) const;

  DTSuperLayer* buildSuperLayer(DTChamber* chamber, const DetId& id, const RecoIdealGeometry& rig, size_t idt) const;

  DTLayer* buildLayer(DTSuperLayer* sl, const DetId& id, const RecoIdealGeometry& rig, size_t idt) const;

  typedef ReferenceCountingPointer<Plane> RCPPlane;

  RCPPlane plane(const std::vector<double>::const_iterator tranStart,
                 const std::vector<double>::const_iterator rotStart,
                 Bounds* bounds) const;

protected:
};
#endif  // DTGEOMETRYBUILDERFROMCONDDB_H