Generation of template code
There is a certain amount of boilerplate that one must get right to create a new producer(), analyzer(), and filter() module. It would be great if one had a command-line tool to generate this boiler plate code. Maybe something like:
artmod --filter --namespace=trk --name=GoodTracks --entries="beginJob reconfigure"
this would produce files called GoodTracks.h, GoodTracks.cxx GoodTracks_module.cc, and GoodTracks.fcl with the interfaces and boilerplate code correctly laid out.
#1 Updated by Rob Kutschke over 9 years ago
I am not sure of the answer to this question. Is this something that belongs in art? Will experiments want to do things differently enough that they want to customize it? Maybe the answer is to have a base example in art that experiments can either use directly from art or use as model for their customized version?
#2 Updated by Mark Messier over 9 years ago
I think this does belong in ART. A tool like this would make a big impact on the initial experience for new users of the ART framework and help them get to physics sooner. Also, I think tools like this that help people adhere to reasonable standards are a good thing for overall productivity in the long run.
#3 Updated by Rob Kutschke over 9 years ago
I completely agree with you. The case I am thinking of is this: on Mu2e part of the boilerplate is the $Id$ $Author$ and $Date$ fields from cvs. Other experiments may want different boilerplate. So let's anticipate this. Having a fully functional version in art is a good thing; can that implementation be done in such a way that experiments can customize it without having to copy it whole and tweak it? Or maybe copying whole is not so bad?
#4 Updated by Christopher Green about 9 years ago
- File artmod-uasge.txt artmod-uasge.txt added
- Category set to Infrastructure
- Status changed from New to Resolved
- Assignee set to Christopher Green
- Target version set to 0.06.00
The next release of art will contain a module skeleton generator, "artmod." See attached for text usage information.
Please let us know if you have any comments about the proposed behavior. Since it is standalone, we can provide it as a standalone exec for testing purposes if you wish.