File indexing completed on 2025-04-19 09:09:56
0001 #ifndef ATOOLS_Phys_Particle_List_H
0002 #define ATOOLS_Phys_Particle_List_H
0003
0004 #include "ATOOLS/Phys/Particle.H"
0005 #include <deque>
0006 #include <iostream>
0007
0008 namespace ATOOLS {
0009
0010 class Poincare;
0011
0012 class Particle_List: public std::deque<Particle*> {
0013 private:
0014
0015 class Destructor {
0016 private:
0017
0018 Particle_List *p_list;
0019
0020 public:
0021
0022
0023 Destructor(): p_list(NULL) {}
0024 Destructor(Particle_List *const list): p_list(list) {}
0025
0026
0027 inline ~Destructor() { if (p_list!=NULL) p_list->Clear(); }
0028
0029 };
0030
0031 Destructor m_destructor;
0032
0033 public:
0034
0035
0036 Particle_List();
0037 Particle_List(const bool destruct);
0038
0039
0040 void Clear();
0041
0042 void Boost(Poincare *const boost) const;
0043 void BoostBack(Poincare *const boost) const;
0044
0045 void Rotate(Poincare *const rot) const;
0046 void RotateBack(Poincare *const rot) const;
0047
0048 void Flip() const;
0049
0050 };
0051
0052 std::ostream &operator<<(std::ostream &str,const Particle_List &list);
0053
0054 }
0055
0056 #endif