Skip to content

Commit

Permalink
Prepare for concurrent IOVs, Fireworks & FastSimulation
Browse files Browse the repository at this point in the history
Change return type of produce functions from shared_ptr
to unique_ptr. Note that for the TGeo related classes
this moves them in the right direction, but because of
their dependence on TGeo they still will not work
with concurrent IOVs. More work would need to be done.
  • Loading branch information
wddgit committed Oct 17, 2018
1 parent 9b1f3a7 commit 44821f0
Show file tree
Hide file tree
Showing 8 changed files with 202 additions and 198 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@ FastSimGeometryESProducer::FastSimGeometryESProducer(const edm::ParameterSet & p

FastSimGeometryESProducer::~FastSimGeometryESProducer() {}

std::shared_ptr<fastsim::Geometry>
FastSimGeometryESProducer::produce(const GeometryRecord & iRecord){
_tracker = std::make_shared<fastsim::Geometry>(theTrackerMaterial);
return _tracker;
std::unique_ptr<fastsim::Geometry>
FastSimGeometryESProducer::produce(const GeometryRecord & iRecord){
return std::make_unique<fastsim::Geometry>(theTrackerMaterial);
}


DEFINE_FWK_EVENTSETUP_MODULE(FastSimGeometryESProducer);
DEFINE_FWK_EVENTSETUP_MODULE(FastSimGeometryESProducer);
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,8 @@ class FastSimGeometryESProducer: public edm::ESProducer{
public:
FastSimGeometryESProducer(const edm::ParameterSet & p);
~FastSimGeometryESProducer() override;
std::shared_ptr<fastsim::Geometry> produce(const GeometryRecord &);
std::unique_ptr<fastsim::Geometry> produce(const GeometryRecord &);
private:
std::shared_ptr<fastsim::Geometry> _tracker;
edm::ParameterSet theTrackerMaterial;
};

Expand Down
42 changes: 22 additions & 20 deletions Fireworks/Geometry/interface/FWRecoGeometryESProducer.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,43 +27,45 @@ class FWRecoGeometryESProducer : public edm::ESProducer
FWRecoGeometryESProducer( const edm::ParameterSet& );
~FWRecoGeometryESProducer( void ) override;

std::shared_ptr<FWRecoGeometry> produce( const FWRecoGeometryRecord& );
std::unique_ptr<FWRecoGeometry> produce( const FWRecoGeometryRecord& );

private:
FWRecoGeometryESProducer( const FWRecoGeometryESProducer& ) = delete;
const FWRecoGeometryESProducer& operator=( const FWRecoGeometryESProducer& ) = delete;

void addCSCGeometry( void );
void addDTGeometry( void );
void addRPCGeometry( void );
void addGEMGeometry( void );
void addME0Geometry( void );
void addPixelBarrelGeometry( void );
void addPixelForwardGeometry( void );
void addTIBGeometry( void );
void addTOBGeometry( void );
void addTIDGeometry( void );
void addTECGeometry( void );
void addCaloGeometry( void );
void addCSCGeometry( FWRecoGeometry& );
void addDTGeometry( FWRecoGeometry& );
void addRPCGeometry( FWRecoGeometry& );
void addGEMGeometry( FWRecoGeometry& );
void addME0Geometry( FWRecoGeometry& );
void addPixelBarrelGeometry( FWRecoGeometry& );
void addPixelForwardGeometry( FWRecoGeometry& );
void addTIBGeometry( FWRecoGeometry& );
void addTOBGeometry( FWRecoGeometry& );
void addTIDGeometry( FWRecoGeometry& );
void addTECGeometry( FWRecoGeometry& );
void addCaloGeometry( FWRecoGeometry& );

void addFTLGeometry( void );
void addFTLGeometry( FWRecoGeometry& );



void ADD_PIXEL_TOPOLOGY( unsigned int rawid, const GeomDet* detUnit );
void ADD_PIXEL_TOPOLOGY( unsigned int rawid, const GeomDet* detUnit, FWRecoGeometry& );


unsigned int insert_id( unsigned int id );
void fillPoints( unsigned int id, std::vector<GlobalPoint>::const_iterator begin, std::vector<GlobalPoint>::const_iterator end );
void fillShapeAndPlacement( unsigned int id, const GeomDet *det );
void writeTrackerParametersXML();
unsigned int insert_id( unsigned int id, FWRecoGeometry& );
void fillPoints( unsigned int id,
std::vector<GlobalPoint>::const_iterator begin,
std::vector<GlobalPoint>::const_iterator end,
FWRecoGeometry& );
void fillShapeAndPlacement( unsigned int id, const GeomDet *det, FWRecoGeometry& );
void writeTrackerParametersXML(FWRecoGeometry&);

edm::ESHandle<GlobalTrackingGeometry> m_geomRecord;
const CaloGeometry* m_caloGeom;
edm::ESHandle<FastTimeGeometry> m_ftlBarrelGeom,m_ftlEndcapGeom;
std::vector<edm::ESHandle<HGCalGeometry> > m_hgcalGeoms;
const TrackerGeometry* m_trackerGeom;
std::shared_ptr<FWRecoGeometry> m_fwGeometry;

unsigned int m_current;
bool m_tracker;
Expand Down
4 changes: 1 addition & 3 deletions Fireworks/Geometry/interface/FWTGeoRecoGeometryESProducer.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class FWTGeoRecoGeometryESProducer : public edm::ESProducer
FWTGeoRecoGeometryESProducer( const edm::ParameterSet& );
~FWTGeoRecoGeometryESProducer( void ) override;

std::shared_ptr<FWTGeoRecoGeometry> produce( const FWTGeoRecoGeometryRecord& );
std::unique_ptr<FWTGeoRecoGeometry> produce( const FWTGeoRecoGeometryRecord& );

private:
FWTGeoRecoGeometryESProducer( const FWTGeoRecoGeometryESProducer& );
Expand Down Expand Up @@ -81,8 +81,6 @@ class FWTGeoRecoGeometryESProducer : public edm::ESProducer
const TrackerGeometry* m_trackerGeom;
const TrackerTopology* m_trackerTopology;

std::shared_ptr<FWTGeoRecoGeometry> m_fwGeometry;

TGeoMedium* m_dummyMedium;

bool m_tracker;
Expand Down
2 changes: 1 addition & 1 deletion Fireworks/Geometry/interface/TGeoMgrFromDdd.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class TGeoMgrFromDdd : public edm::ESProducer
TGeoMgrFromDdd(const edm::ParameterSet&);
~TGeoMgrFromDdd() override;

typedef std::shared_ptr<TGeoManager> ReturnType;
using ReturnType = std::unique_ptr<TGeoManager>;

// ---------- const member functions ---------------------

Expand Down

0 comments on commit 44821f0

Please sign in to comment.