Coder Social home page Coder Social logo

lccontent's Introduction

PandoraPFA

Build Status

Metadata package to bring together and build multiple Pandora libraries

PandoraPFA is distributed under the GPLv3 License

License

License and Copyright

Copyright (C), PandoraPFA Authors

PandoraPFA is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

lccontent's People

Contributors

andresailer avatar andychappell avatar bonoxu avatar gaede avatar lgray avatar pandorapfa avatar rete avatar stevengreen1 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lccontent's Issues

Create LCContent/EventWritingAlgorithm

#16 (comment)

Testing is a bit involved if you've not done it before. What you need to do (or Steve might have time to take a look; we haven't talked about this in detail yet) is implement a LC-specific version of the SDK-provided EventWriting and EventReading algorithms (could inherit most functionality). You'd then need to register your factory objects with the EventWriter/EventReader instance.

To test, you'd then run a LC job, with an EventWriting algorithm instance running as e.g. the first (might as well, for clarity) algorithm. You can then reproduce the same reconstruction input, then output, using the LCReco entry point application (see LCReco on GitHub), running a standard PandoraSettings file, but with an instance of the EventReading algorithm first up.

#16 (comment)

There's some examples (a little bit involved) of how we have done this for the LArTPC use case, linked below. The idea is that you just need to register the factories with the pandora:: FileWriter and pandora::FileWriter, then proceed as before.

https://github.com/PandoraPFA/LArContent/blob/master/larpandoracontent/LArPersistency/EventWritingAlgorithm.cc#L113
https://github.com/PandoraPFA/LArContent/blob/master/larpandoracontent/LArPersistency/EventReadingAlgorithm.cc#L140

When writing or reading e.g. a Track, the existing derived binary and xml implementations will pass control to the registered factory to do their "extra" bit of writing/reading before working with the standard object properties described in the SDK.

https://github.com/PandoraPFA/PandoraSDK/blob/master/src/Persistency/BinaryFileWriter.cc#L274
https://github.com/PandoraPFA/PandoraSDK/blob/master/src/Persistency/XmlFileWriter.cc#L283

https://github.com/PandoraPFA/PandoraSDK/blob/master/src/Persistency/BinaryFileReader.cc#L650
https://github.com/PandoraPFA/PandoraSDK/blob/master/src/Persistency/XmlFileReader.cc#L617

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.