Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:14:27

0001 #ifndef DTGEOMETRYBUILDERFROMCONDDB_H
0002 #define DTGEOMETRYBUILDERFROMCONDDB_H
0003 
0004 /** \class DTGeometryBuilderFromCondDB
0005  *
0006  * Description:
0007  *  
0008  *  detailed description
0009  *
0010  * \author : Stefano Lacaprara - INFN LNL <stefano.lacaprara@pd.infn.it>
0011  *
0012  * Modification:
0013  *
0014  */
0015 
0016 /* Base Class Headers */
0017 
0018 /* Collaborating Class Declarations */
0019 class RecoIdealGeometry;
0020 class DTGeometry;
0021 class DTChamber;
0022 class DTSuperLayer;
0023 class DTLayer;
0024 class DetId;
0025 #include "DataFormats/GeometrySurface/interface/Plane.h"
0026 #include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h"
0027 
0028 /* C++ Headers */
0029 #include <memory>
0030 #include <vector>
0031 
0032 namespace dtGeometryBuilder {
0033   RectangularPlaneBounds* getRecPlaneBounds(const std::vector<double>::const_iterator& shapeStart);
0034 }
0035 
0036 /* ====================================================================== */
0037 
0038 /* Class DTGeometryBuilderFromCondDB Interface */
0039 
0040 class DTGeometryBuilderFromCondDB {
0041 public:
0042   /* Constructor */
0043   DTGeometryBuilderFromCondDB();
0044 
0045   /* Destructor */
0046   virtual ~DTGeometryBuilderFromCondDB();
0047 
0048   /* Operations */
0049   void build(const std::shared_ptr<DTGeometry>& theGeometry, const RecoIdealGeometry& rig);
0050 
0051 private:
0052   DTChamber* buildChamber(const DetId& id, const RecoIdealGeometry& rig, size_t idt) const;
0053 
0054   DTSuperLayer* buildSuperLayer(DTChamber* chamber, const DetId& id, const RecoIdealGeometry& rig, size_t idt) const;
0055 
0056   DTLayer* buildLayer(DTSuperLayer* sl, const DetId& id, const RecoIdealGeometry& rig, size_t idt) const;
0057 
0058   typedef ReferenceCountingPointer<Plane> RCPPlane;
0059 
0060   RCPPlane plane(const std::vector<double>::const_iterator tranStart,
0061                  const std::vector<double>::const_iterator rotStart,
0062                  Bounds* bounds) const;
0063 
0064 protected:
0065 };
0066 #endif  // DTGEOMETRYBUILDERFROMCONDDB_H