diff --git a/External/AtlasPOOL/cmt/requirements b/External/AtlasPOOL/cmt/requirements new file mode 100755 index 0000000000000000000000000000000000000000..d58ca22afe527f2da2d6f24597c686567430c135 --- /dev/null +++ b/External/AtlasPOOL/cmt/requirements @@ -0,0 +1,25 @@ +package AtlasPOOL + +author Alexander Undrus <undrus@bnl.gov> +author RD Schaffer <R.D.Schaffer@cern.ch> +author Marcin.Nowak@cern.ch + +path_remove LD_LIBRARY_PATH "/AtlasRAL/" +#--------------------------------------------------------------------------- + +use ExternalPolicy ExternalPolicy-* External +use mysql v* LCG_Interfaces -no_auto_imports + +use POOLCore POOLCore-* Database/APR +use CollectionBase CollectionBase-* Database/APR +use CollectionUtilities CollectionUtilities-* Database/APR +use StorageSvc StorageSvc-* Database/APR +use PersistencySvc PersistencySvc-* Database/APR + +apply_pattern declare_runtime files="AtlasRootHacks.h" + +set POOLDB_ROOTDEFS "$(AtlasPOOL_cmtpath)/InstallArea/share/AtlasRootHacks.h;" + + +private +macro install_command 'cp -R -H' diff --git a/External/AtlasPOOL/doc/how-to.txt b/External/AtlasPOOL/doc/how-to.txt new file mode 100755 index 0000000000000000000000000000000000000000..f14a60f3b6dfa4780b1ad96f93b73740ddc375a2 --- /dev/null +++ b/External/AtlasPOOL/doc/how-to.txt @@ -0,0 +1,65 @@ + + 2 July 2003 RDS + +This is a brief how-to which explains how to generate the pool +converters for a data package. (See the corresponding how-to in the +AtlasSEAL package) + +We take as an example the EventInfo package. The basic procedure is to +use the cmt pattern "poocnv" to generate the converters for a package +with data objects. This creates a component library which with the +converters in it. + +Note that a corresponding pattern, lcgdict, which today is in the +AtlasSEAL package, is used to generate the LCG dictionary loader. This +is described in the how-to of the AtlasSEAL package. + +The procedure: + +1) Look at EventInfo's req file (below the poolcnv pattern is + commented out): + +package EventInfo + +author P Calafiura <pcalafiura@lbl.gov> +author RD Schaffer <R.D.Schaffer@cern.ch> + +use AtlasPolicy AtlasPolicy-01-* +use CLIDSvc CLIDSvc-* Control + +# The following uses are to get the lcgdict and poolcnv patterns, resply. +# They are "hidden" behind "private" and "no_auto_imports" to keep +# clients of EventInfo from seeing excess dependenciesprivate +use AtlasSEAL AtlasSEAL-00-* External -no_auto_imports +use AtlasPOOL AtlasPOOL-00-* External -no_auto_imports +public + +# Normal lib for the data classes +library EventInfo EventID.cxx EventType.cxx EventInfo.cxx PileUpEventInfo.cxx +apply_pattern installed_library + +# Pattern to build the dict lib. User should create a single header +# file: <package>Dict.h which includes all other .h files. See EventInfoDict +apply_pattern lcgdict dict=EventInfo headerfiles="../EventInfo/EventInfoDict.h" + +# Pattern to generate pool converters for the two data object classes: +# (Currently commented out) +#apply_pattern poolcnv files="-s=../EventInfo EventInfo.h PileUpEventInfo.h" + +# A selection file must be created by hand. This file lists the +# classes to be added to the dictionary, and which fields are +# transient +private +macro_append lcgdict_options " --select=../EventInfo/selection.xml " + + +2) Follow the instructions for creating the dictionary in the how-to + in the AtlasSEAL package. + +3) Uncomment the "apply_pattern poolcnv" and add in the .h files for + each to the data object ONLY. I.e. not for all .h's, just the ones + with a CLID/CLASS_DEF macro. + +4) Build the package and follow the instructions on running pool + + diff --git a/External/AtlasPOOL/share/AtlasRootHacks.h b/External/AtlasPOOL/share/AtlasRootHacks.h new file mode 100755 index 0000000000000000000000000000000000000000..4be4a089d05ddd699c87a655e732f7aa5d30e4bc --- /dev/null +++ b/External/AtlasPOOL/share/AtlasRootHacks.h @@ -0,0 +1,29 @@ +#include "CLHEP/Matrix/DiagMatrix.h" +#include "CLHEP/Matrix/GenMatrix.h" +#include "CLHEP/Matrix/Matrix.h" +#include "CLHEP/Matrix/Pile.h" +#include "CLHEP/Matrix/SymMatrix.h" +#include "CLHEP/Matrix/Vector.h" +#include "CLHEP/Vector/EulerAngles.h" +#include "CLHEP/Vector/LorentzRotation.h" +#include "CLHEP/Vector/Rotation.h" +#include "CLHEP/Vector/TwoVector.h" + +typedef CLHEP::Hep2Vector Hep2Vector; +typedef CLHEP::Hep3Vector Hep3Vector; +typedef CLHEP::HepRotation HepRotation; +typedef CLHEP::HepLorentzRotation HepLorentzRotation; +typedef CLHEP::HepEulerAngles HepEulerAngles; +typedef CLHEP::HepVector HepVector; +typedef CLHEP::HepMatrix HepMatrix; +typedef CLHEP::HepSymMatrix HepSymMatrix; +typedef CLHEP::HepGenMatrix HepGenMatrix; +typedef CLHEP::HepPile HepPile; +typedef CLHEP::HepDiagMatrix HepDiagMatrix; + +typedef HepGeom::Vector3D<double> HepVector3D; +typedef HepGeom::Point3D<double> HepPoint3D; +typedef HepGeom::Transform3D HepTransform3D; +typedef CLHEP::HepLorentzVector HepLorentzVector; + +typedef HepGeom::BasicVector3D<double> BasicVector3D;