- Table of contents
- LArIAT Packages
LArIAT Packages¶
This page contains a list of all packages in the LArIAT offline repository as well as information for how to add a new package. Please add documentation for the package each time a new module is committed.
JobConfigurations¶
This package contains the .fcl files to configure standard jobs for LArIAT.
Adding A New Package¶
In Your Development Area¶
Your development area is the "develop" release you created for LArIATSoft if you used the function provided on the Setting up the Offline Software page. To add a new package, you simply create a directory in the srcs/lariatsoft directory of that release. You then need to add a CMakeLists.txt file to that directory. An example file is found in source:/lariatsoft/Calibration/CMakeLists.txt and is reproduced here. Note that comments are indicated with a "#".
# This is an example file where a module .so file is being created and any fhicl files will be installed into the fcl directory of the build product. # simple_plugin is the keyword for the build tool to know that it is creating either a service or module library # You need a separate simple_plugin call for each module or service in the package simple_plugin(CalWireT1034 "module" # creating the module library for CalWireT1034 Filters # Filters is a LArSoft library that we have to link in RecoBase # RecoBase is a LArSoft library that we have to link in ${ART_FRAMEWORK_CORE} # The next several lines are to link in necessary ART libraries ${ART_FRAMEWORK_PRINCIPAL} ${ART_FRAMEWORK_SERVICES_REGISTRY} ${ART_FRAMEWORK_SERVICES_OPTIONAL} ${ART_FRAMEWORK_SERVICES_OPTIONAL_TFILESERVICE_SERVICE} ${ART_PERSISTENCY_COMMON} ${ART_PERSISTENCY_PROVENANCE} ${ART_UTILITIES} ${MF_MESSAGELOGGER} # The next two lines are to link in necessary MessageFacility libraries ${MF_UTILITIES} ${FHICLCPP} # Link in the FHICL interface ${CETLIB} # Link in the cetlib interfaces ${ROOT_GEOM} # The next several lines link in necessary ROOT libraries ${ROOT_XMLIO} ${ROOT_GDML} ${ROOT_BASIC_LIB_LIST} BASENAME_ONLY # This flag tells the build system to make the library only contain the module or service name, not the full path to the source file ) install_headers() # This line says to install the headers in the appropriate install directory install_fhicl() # This line says to install the .fcl files in the appropriate install directory install_source() # This line says to install the source code in the appropriate install directory
You then need to edit the CMakeLists.txt file in the top level lariatsoft directory to contain a line like
add_subdirectory(<MyPackage>)
where you replace <MyPackage> with the name of your package.
Adding The Package to the Repository¶
Once your package compiles, add it to the repository. From the top level lariatsoft directory in your srcs area do
$ git status $ git add <MyPackage> $ git commit -m'adding new package <MyPackage> to do xxx to the repository' $ git push origin develop
Note, you may have to do "git add" for the top level CMakeLists.txt file too as you changed that.