2 #include "gearimpl/GearMgrImpl.h"
3 #include "gearimpl/GearParametersImpl.h"
4 #include "gear/CalorimeterParameters.h"
5 #include "gear/ZPlanarParameters.h"
6 #include "gear/SiPlanesParameters.h"
7 #include "gear/TrackerPlanesParameters.h"
9 #include "gear/GearPointProperties.h"
10 #include "gear/GearDistanceProperties.h"
11 #include "gear/BField.h"
12 #include "gear/TPCParameters.h"
13 #include "gearimpl/TPCParametersImpl.h"
14 #include "gearimpl/CalorimeterParametersImpl.h"
15 #include "gearimpl/ZPlanarParametersImpl.h"
16 #include "gearimpl/FTDParametersImpl.h"
17 #include "gearimpl/SiPlanesParametersImpl.h"
18 #include "gearimpl/TrackerPlanesParametersImpl.h"
20 #include "gearimpl/ConstantBField.h"
21 #include "gearimpl/SimpleMaterialImpl.h"
28 GearMgrImpl::GearMgrImpl() :
30 _ecalBarrelParameters(0) ,
31 _ecalEndcapParameters(0) ,
32 _ecalPlugParameters(0) ,
33 _yokeBarrelParameters(0) ,
34 _yokeEndcapParameters(0) ,
35 _yokePlugParameters(0) ,
36 _hcalBarrelParameters(0) ,
37 _hcalEndcapParameters(0) ,
38 _hcalRingParameters(0) ,
41 _beamcalParameters(0) ,
46 _trackerplanesParameters(0) ,
47 _siplanesParameters(0) ,
49 _distanceProperties(0) ,
53 _surfaceStore =
new MeasurementSurfaceStore();
124 if( _tpcParameters )
delete _tpcParameters ;
125 if( _ecalBarrelParameters )
delete _ecalBarrelParameters ;
126 if( _ecalEndcapParameters )
delete _ecalEndcapParameters ;
127 if( _ecalPlugParameters )
delete _ecalPlugParameters ;
129 delete _yokeBarrelParameters ;
130 delete _yokeEndcapParameters ;
131 delete _yokePlugParameters ;
132 if( _hcalBarrelParameters )
delete _hcalBarrelParameters ;
133 if( _hcalEndcapParameters )
delete _hcalEndcapParameters ;
134 if( _hcalRingParameters )
delete _hcalRingParameters ;
135 if( _lcalParameters )
delete _lcalParameters;
136 if( _lhcalParameters )
delete _lhcalParameters;
137 if( _beamcalParameters )
delete _beamcalParameters;
138 if( _vxdParameters )
delete _vxdParameters ;
139 if( _sitParameters )
delete _sitParameters ;
140 if( _setParameters )
delete _setParameters ;
141 if( _ftdParameters )
delete _ftdParameters ;
142 if( _trackerplanesParameters )
delete _trackerplanesParameters ;
143 if( _siplanesParameters )
delete _siplanesParameters ;
144 if( _pointProperties )
delete _pointProperties ;
145 if( _distanceProperties )
delete _distanceProperties ;
146 if( _bField )
delete _bField ;
148 for( ParameterMap::iterator it = _map.begin() ; it != _map.end() ; ++ it ) {
152 for(MatMap::iterator it = _matMap.begin(), end = _matMap.end() ; it != end ; ++it ){
156 delete _surfaceStore ; _surfaceStore = 0 ;
173 if( _detectorName.size() == 0 )
174 throw UnknownParameterException(
"No DetectorName set ") ;
177 return _detectorName ;
185 ParameterMap::const_iterator it = _map.find( key ) ;
186 if( it == _map.end() || it->second == 0 )
188 return * it->second ;
195 if( _tpcParameters == 0 )
196 throw UnknownParameterException(
"No TPCParameters set ") ;
198 return *_tpcParameters ;
206 throw UnknownParameterException(
"No BField set ") ;
215 if( _ecalBarrelParameters == 0 )
216 throw UnknownParameterException(
"No EcalBarrelParameters set ") ;
218 return *_ecalBarrelParameters ;
224 if( _ecalEndcapParameters == 0 )
225 throw UnknownParameterException(
"No EcalEndcapParameters set ") ;
227 return *_ecalEndcapParameters ;
234 if( _ecalPlugParameters == 0 )
235 throw UnknownParameterException(
"No EcalPlugParameters set ") ;
237 return *_ecalPlugParameters ;
244 if( _yokeBarrelParameters == 0 )
245 throw UnknownParameterException(
"No YokeBarrelParameters set ") ;
247 return *_yokeBarrelParameters ;
253 if( _yokeEndcapParameters == 0 )
254 throw UnknownParameterException(
"No YokeEndcapParameters set ") ;
256 return *_yokeEndcapParameters ;
263 if( _yokePlugParameters == 0 )
264 throw UnknownParameterException(
"No YokePlugParameters set ") ;
266 return *_yokePlugParameters ;
275 if( _hcalBarrelParameters == 0 )
276 throw UnknownParameterException(
"No HcalBarrelParameters set ") ;
278 return *_hcalBarrelParameters ;
284 if( _hcalEndcapParameters == 0 )
285 throw UnknownParameterException(
"No HcalEndcapParameters set ") ;
287 return *_hcalEndcapParameters ;
294 if( _hcalRingParameters == 0 )
295 throw UnknownParameterException(
"No HcalRingParameters set ") ;
297 return *_hcalRingParameters ;
305 if( _lcalParameters == 0 )
306 throw UnknownParameterException(
"No LcalParameters set ") ;
308 return *_lcalParameters ;
315 if( _lhcalParameters == 0 )
316 throw UnknownParameterException(
"No LHcalParameters set ") ;
318 return *_lhcalParameters ;
325 if( _beamcalParameters == 0 )
326 throw UnknownParameterException(
"No BeamCalParameters set ") ;
328 return *_beamcalParameters ;
335 if( _vxdParameters == 0 )
336 throw UnknownParameterException(
"No VXDParameters set ") ;
338 return *_vxdParameters ;
345 if( _ftdParameters == 0 )
346 throw UnknownParameterException(
"No FTDParameters set ") ;
348 return *_ftdParameters ;
355 if( _sitParameters == 0 )
356 throw UnknownParameterException(
"No SITParameters set ") ;
358 return *_sitParameters ;
364 if( _setParameters == 0 )
365 throw UnknownParameterException(
"No SETParameters set ") ;
367 return *_setParameters ;
374 if( _trackerplanesParameters == 0 )
375 throw UnknownParameterException(
"No TrackerPlanesParameters set ") ;
377 return *_trackerplanesParameters ;
384 if( _siplanesParameters == 0 )
385 throw UnknownParameterException(
"No SiPlanesParameters set ") ;
387 return *_siplanesParameters ;
394 if( _pointProperties == 0 )
397 return *_pointProperties ;
405 if( _distanceProperties == 0 )
408 return *_distanceProperties ;
414 if( parameters == 0 )
417 ParameterMap::iterator it = _map.find( key ) ;
419 if( it != _map.end() ) {
422 it->second = parameters ;
426 _map[ key ] = parameters ;
436 delete _tpcParameters ;
438 _tpcParameters = tpcParameters ;
448 _ecalBarrelParameters = ecalBarrelParameters ;
452 _ecalEndcapParameters = ecalEndcapParameters ;
457 _ecalPlugParameters = ecalPlugParameters ;
462 _yokeBarrelParameters = yokeBarrelParameters ;
466 _yokeEndcapParameters = yokeEndcapParameters ;
471 _yokePlugParameters = yokePlugParameters ;
477 _hcalBarrelParameters = hcalBarrelParameters ;
482 _hcalEndcapParameters = hcalEndcapParameters ;
487 _hcalRingParameters = hcalRingParameters ;
498 std::cout <<
"WARNING GearMgrImpl::setLcalParameters: added "
499 " missing parameter beam_crossing_angle 0.0 ! " << std::endl ;
508 _lcalParameters = lcalParameters ;
519 std::cout <<
"WARNING GearMgrImpl::setLHcalParameters: added "
520 " missing parameter beam_crossing_angle 0.0 ! " << std::endl ;
529 _lhcalParameters = lhcalParameters ;
536 beamcalParameters->
getDoubleVal(
"beam_crossing_angle") ;
540 std::cout <<
"WARNING GearMgrImpl::setBeamCalParameters: added "
541 " missing parameter beam_crossing_angle 0.0 ! " << std::endl ;
550 _beamcalParameters = beamcalParameters ;
555 _vxdParameters = vxdParameters ;
560 _ftdParameters = ftdParameters ;
565 _sitParameters = sitParameters ;
570 _setParameters = setParameters ;
575 _trackerplanesParameters = trackerplanesParameters ;
580 _siplanesParameters = siplanesParameters ;
585 _pointProperties = pointProperties ;
590 _distanceProperties = distanceProperties ;
596 _keys.reserve( _map.size() ) ;
598 for( ParameterMap::const_iterator it = _map.begin() ; it != _map.end() ; ++it ){
599 _keys.push_back( it->first ) ;
607 _matNames.reserve( _matMap.size() ) ;
609 for( MatMap::const_iterator it = _matMap.begin() ; it != _matMap.end() ; ++it ){
610 _matNames.push_back( it->first ) ;
620 MatMap::const_iterator it = _matMap.find( name ) ;
622 if( it == _matMap.end() ){
624 std::stringstream mess ;
625 mess <<
" GearMgrImpl::getSimpleMaterial - unknown material with name " << name <<
" ! " ;
637 MatMap::iterator it = _matMap.find( material->getName() ) ;
639 if( it!= _matMap.end() ){
641 std::stringstream mess ;
642 mess <<
" GearMgrImpl::registerSimpleMaterial - material with name " << material->getName() <<
" already registered ! " ;
647 _matMap[ material->getName() ] = material ;
virtual void setPointProperties(GearPointProperties *pointProperties)
Set the point properties object.
virtual void setHcalRingParameters(CalorimeterParameters *hcalRingParameters)
Set the HcalRingParameters.
Implementation of GearParameters - a set off parameters that can be used to describe the geometrical ...
virtual const std::vector< std::string > & getGearParameterKeys() const
Keys of all GearParameters.
Geometry properties of a vertex detector needed for reconstruction code.
Abstract interface for a class that returns the (material) properties along a given distance between ...
virtual const TPCParameters & getTPCParameters() const
Get the TPCParameters.
virtual void setYokeBarrelParameters(CalorimeterParameters *yokeBarrelParameters)
Set the YokeBarrelParameters.
Proposal for an abstract interface that defines the geometry properties of a TPC like detector needed...
virtual void setHcalEndcapParameters(CalorimeterParameters *hcalEndcapParameters)
Set the HcalEndcapParameters.
virtual void setSITParameters(ZPlanarParameters *sitParameters)
Set the SITParameters.
virtual void setYokePlugParameters(CalorimeterParameters *yokePlugParameters)
Set the YokePlugParameters.
Base exception class for GEAR - all other exceptions extend this.
Abstract interface for a simple material description tjhat hold s the following properties: A...
virtual const CalorimeterParameters & getHcalEndcapParameters() const
Get the Hcal endcap parameters.
virtual const ZPlanarParameters & getVXDParameters() const
Get the VXD parameters.
virtual const BField & getBField() const
Get the BField.
virtual const std::vector< std::string > & getMaterialNames() const
Names of registered materials.
Proposal for an abstract interface that defines geometry properties of a typical sampling calorimeter...
virtual const CalorimeterParameters & getYokePlugParameters() const
Get the Yoke plug parameters.
virtual void setLHcalParameters(CalorimeterParameters *lhcalParameters)
Set the LHcalParameters.
virtual const TrackerPlanesParameters & getTrackerPlanesParameters() const
Get the TrackerPlanes parameters.
virtual const CalorimeterParameters & getBeamCalParameters() const
Get the BeamCal parameters.
virtual void setEcalBarrelParameters(CalorimeterParameters *ecalBarrelParameters)
Set the EcalBarrelParameters.
virtual void setSiPlanesParameters(SiPlanesParameters *siplanesParameters)
Set the SiPlanesParameters.
virtual const GearPointProperties & getPointProperties() const
Get the point properties object.
virtual void setLcalParameters(CalorimeterParameters *lcalParameters)
Set the LcalParameters.
virtual void setEcalPlugParameters(CalorimeterParameters *ecalPlugParameters)
Set the EcalPlugParameters.
virtual void registerSimpleMaterial(const SimpleMaterial *material)
Register the SimpleMaterial with SimpleMaterial::getName() - throws Exception if a material of the gi...
virtual const std::string & getDetectorName() const
The unique detector name - typically the model name used in the simulation program.
virtual void setVXDParameters(ZPlanarParameters *vxdParameters)
Set the VXDParameters.
void cleanup()
function to copy all internal variables, incl.
NotImplementedException used for features that are not implemented.
virtual const FTDParameters & getFTDParameters() const
Get the FTD parameters.
virtual const CalorimeterParameters & getEcalPlugParameters() const
Get the Ecal plug parameters.
virtual const GearDistanceProperties & getDistanceProperties() const
Get the distance properties object.
Abstract interface for a set of parameters that can be used to describe the geometrical properties of...
virtual const CalorimeterParameters & getHcalBarrelParameters() const
Get the Hcal barrel parameters.
UnknownParameterException call Processor::end().
virtual const CalorimeterParameters & getHcalRingParameters() const
Get the Hcal ring parameters.
virtual void setGearParameters(const std::string &key, GearParameters *parameters)
Set the GearParameters for the given key - overwrites any existing entries.
virtual const CalorimeterParameters & getLHcalParameters() const
Get the LHcal parameters.
virtual const CalorimeterParameters & getEcalEndcapParameters() const
Get the Ecal endcap parameters.
virtual const SiPlanesParameters & getSiPlanesParameters() const
Get the SiPlanes parameters.
virtual const CalorimeterParameters & getLcalParameters() const
Get the Lcal parameters.
virtual const ZPlanarParameters & getSITParameters() const
Get the SIT parameters.
virtual void setHcalBarrelParameters(CalorimeterParameters *hcalBarrelParameters)
Set the HcalBarrelParameters.
virtual const GearParameters & getGearParameters(const std::string &key) const
Get named parameters for key.
Geometry properties of a FTD detector needed for reconstruction code.
virtual void setSETParameters(ZPlanarParameters *setParameters)
Set the SETParameters.
virtual void setTPCParameters(TPCParameters *tpcParameters)
Set the TPCParameters.
virtual void setEcalEndcapParameters(CalorimeterParameters *ecalEndcapParameters)
Set the EcalEndcapParameters.
virtual void setTrackerPlanesParameters(TrackerPlanesParameters *trackerplanesParameters)
Set the TrackerPlanesParameters.
virtual void setYokeEndcapParameters(CalorimeterParameters *yokeEndcapParameters)
Set the YokeEndcapParameters.
virtual void setFTDParameters(FTDParameters *ftdParameters)
Set the FTDParameters.
virtual const ZPlanarParameters & getSETParameters() const
Get the SET parameters.
virtual const SimpleMaterial & getSimpleMaterial(const std::string name) const
Return the SimpleMaterial for the given name throws UnknownParameterException if no material is unkno...
virtual void setDistanceProperties(GearDistanceProperties *distanceProperties)
Set the distance properties object.
virtual void setBeamCalParameters(CalorimeterParameters *beamcalParameters)
Set the BeamCalParameters.
Geometry properties of a pixel beam telescope needed for reconstruction code.
virtual const CalorimeterParameters & getYokeBarrelParameters() const
Get the Yoke barrel parameters.
Geometry properties of a pixel beam telescope needed for reconstruction code.
virtual void setBField(BField *bField)
Set the b field object.
virtual const CalorimeterParameters & getEcalBarrelParameters() const
Get the Ecal barrel parameters.
virtual ~GearMgrImpl()
Destructor.
virtual const CalorimeterParameters & getYokeEndcapParameters() const
Get the Yoke endcap parameters.
Abstract interface for a class that returns the (material) properties of a given point in in world co...
virtual void setDoubleVal(const std::string &key, double val)
Double value for key.
virtual double getDoubleVal(const std::string &key) const =0
Double value for key.