UserTaskWrite.hpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef ANALYSISTREE_EXAMPLES_USERTASKWRITE_HPP_
  2. #define ANALYSISTREE_EXAMPLES_USERTASKWRITE_HPP_
  3. #include <Branch.hpp>
  4. #include <Detector.hpp>
  5. #include <Task.hpp>
  6. #include <TDatabasePDG.h>
  7. #include <TParticlePDG.h>
  8. class UserTaskWrite : public AnalysisTree::Task {
  9. public:
  10. UserTaskWrite() = default;
  11. ~UserTaskWrite() override;
  12. void Init() override;
  13. void Exec() override;
  14. void Finish() override {
  15. }
  16. private:
  17. // Input and output branches
  18. AnalysisTree::Branch reco_evt_;
  19. AnalysisTree::Branch new_reco_evt_;
  20. AnalysisTree::Branch mc_evt_;
  21. AnalysisTree::Branch particles_;
  22. AnalysisTree::Branch new_particles_;
  23. AnalysisTree::Branch tracks_;
  24. AnalysisTree::Branch new_tracks_;
  25. // Branch pointers for output branches - make sure to delete them in the destructor
  26. AnalysisTree::EventHeader* new_reco_evt_ptr_{nullptr};
  27. AnalysisTree::Particles* new_particles_ptr_{nullptr};
  28. AnalysisTree::Track* new_tracks_ptr_{nullptr};
  29. AnalysisTree::Matching* match_{nullptr};
  30. // Additional user functions
  31. bool IsCharged(Int_t pdg);
  32. float GetRapidityPDG(Float_t p, Float_t pz, Int_t pdg);
  33. float GetBCent(Float_t bimp);
  34. };
  35. #endif//ANALYSISTREE_EXAMPLES_USERTASKWRITE_HPP_