/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/GeneratorModule/GeneratorModule-00-01-05/GeneratorModule/Gen_HEPEVT.h

Go to the documentation of this file.
00001 #ifndef GENERATORMODULES_GEN_HEPEVT_H
00002 # define GENERATORMODULES_GEN_HEPEVT_H
00003 
00004 #include <vector>
00005 #include <map>
00006 
00007 #include "CLIDSvc/CLASS_DEF.h"
00008 // #include "StoreGate/tools/ClassID_traits.h"
00009 #include "CLHEP/Vector/LorentzVector.h"
00010 
00011 class Gen_HEPEVT
00012 {
00013 public:
00014     Gen_HEPEVT (void);
00015 
00016     // Get Methods
00017     int         nevhep          (void)          const;
00018     int         nhep            (void)          const;
00019     int         isthep          (int ihep);
00020     int         idhep           (int ihep);
00021     int         first_parent    (int ihep);
00022     int         last_parent     (int ihep);
00023     int         first_child     (int ihep);
00024     int         last_child      (int ihep);
00025     double      px              (int ihep);
00026     double      py              (int ihep);
00027     double      pz              (int ihep);
00028     double      e               (int ihep);
00029     double      m               (int ihep);
00030     double      x               (int ihep);
00031     double      y               (int ihep);
00032     double      z               (int ihep);
00033     double      t               (int ihep);
00034 
00035     
00036     // Set Methods
00037     void        nevhep          (int value);
00038     void        nhep            (int value);
00039     void        isthep          (int& ihep, int value);
00040     void        idhep           (int& ihep, int value);
00041     void        mothers         (int& ihep, int value1, int value2);
00042     void        daughters       (int& ihep, int value1, int value2);
00043     void        momentum        (int& ihep, double px, double py,
00044                                  double pz, double e, double m );
00045     void        position        (int& ihep, double x, double y,
00046                                  double z, double t);
00047 private:
00048 
00049 /**********************************************************/
00050 /*           D E S C R I P T I O N :                      */
00051 /*--------------------------------------------------------*/
00052 /* NEVHEP          - event number (or some special meaning*/
00053 /*                    (see documentation for details)     */
00054 /* NHEP            - actual number of entries in current  */
00055 /*                    event.                              */
00056 /* ISTHEP[IHEP]    - status code for IHEP'th entry - see  */
00057 /*                    documentation for details           */
00058 /* IDHEP [IHEP]    - IHEP'th particle identifier according*/
00059 /*                    to PDG.                             */
00060 /* JMOHEP[IHEP][0] - pointer to position of 1st mother    */
00061 /* JMOHEP[IHEP][1] - pointer to position of 2nd mother    */
00062 /* JDAHEP[IHEP][0] - pointer to position of 1st daughter  */
00063 /* JDAHEP[IHEP][1] - pointer to position of 2nd daughter  */
00064 /* PHEP  [IHEP][0] - X momentum [Gev/c]                   */
00065 /* PHEP  [IHEP][1] - Y momentum [Gev/c]                   */
00066 /* PHEP  [IHEP][2] - Z momentum [Gev/c]                   */
00067 /* PHEP  [IHEP][3] - Energy [Gev]                         */
00068 /* PHEP  [IHEP][4] - Mass[Gev/c^2]                        */
00069 /* VHEP  [IHEP][0] - X vertex [mm]                        */
00070 /* VHEP  [IHEP][1] - Y vertex [mm]                        */
00071 /* VHEP  [IHEP][2] - Z vertex [mm]                        */
00072 /* VHEP  [IHEP][3] - production time [mm/c]               */
00073 /*========================================================*/
00074 
00075     int                                 m_NEVHEP;
00076     int                                 m_NHEP;
00077     std::map<int, int>                  m_ISTHEP;
00078     std::map<int, int>                  m_IDHEP;
00079     std::map<int, std::pair<int, int> > m_JMOHEP;
00080     std::map<int, std::pair<int, int> > m_JDAHEP;
00081     std::map<int, double >              m_PHEP0;
00082     std::map<int, double >              m_PHEP1;
00083     std::map<int, double >              m_PHEP2;
00084     std::map<int, double >              m_PHEP3;
00085     std::map<int, double >              m_PHEP4;
00086     std::map<int, double >              m_VHEP0;
00087     std::map<int, double >              m_VHEP1;
00088     std::map<int, double >              m_VHEP2;
00089     std::map<int, double >              m_VHEP3;
00090 };
00091 
00092 inline
00093 Gen_HEPEVT::Gen_HEPEVT (void)
00094     :   m_NEVHEP        (0),
00095         m_NHEP          (0)
00096 {}
00097 
00098 //
00099 // Get Methods
00100 //
00101 inline int
00102 Gen_HEPEVT::nevhep      (void)          const
00103 { return m_NEVHEP; }
00104 
00105 inline int
00106 Gen_HEPEVT::nhep        (void)          const
00107 { return m_NHEP; }
00108 
00109 inline int
00110 Gen_HEPEVT::isthep      (int ihep)
00111 { return m_ISTHEP[ihep]; }
00112 
00113 inline int
00114 Gen_HEPEVT::idhep       (int ihep)
00115 { return m_IDHEP[ihep]; }         
00116                                   
00117 inline int                        
00118 Gen_HEPEVT::first_parent (int ihep)
00119 { return m_JMOHEP[ihep].first; }  
00120                                   
00121 inline int                        
00122 Gen_HEPEVT::last_parent (int ihep)
00123 { return m_JMOHEP[ihep].second; } 
00124                                   
00125 inline int                        
00126 Gen_HEPEVT::first_child (int ihep)
00127 { return m_JDAHEP[ihep].first; }  
00128                                   
00129 inline int                        
00130 Gen_HEPEVT::last_child  (int ihep)
00131 { return m_JDAHEP[ihep].second; } 
00132                                   
00133 inline double                     
00134 Gen_HEPEVT::px          (int ihep)
00135 { return m_PHEP0[ihep]; }         
00136                                   
00137 inline double                     
00138 Gen_HEPEVT::py          (int ihep)
00139 { return m_PHEP1[ihep]; }         
00140                                   
00141 inline double                     
00142 Gen_HEPEVT::pz          (int ihep)
00143 { return m_PHEP2[ihep]; }         
00144                                   
00145 inline double                     
00146 Gen_HEPEVT::e           (int ihep)
00147 { return m_PHEP3[ihep]; }         
00148                                   
00149 inline double                     
00150 Gen_HEPEVT::m           (int ihep)
00151 { return m_PHEP4[ihep]; }         
00152                                   
00153 inline double                     
00154 Gen_HEPEVT::x           (int ihep)
00155 { return m_VHEP0[ihep]; }         
00156                                   
00157 inline double                     
00158 Gen_HEPEVT::y           (int ihep)
00159 { return m_VHEP1[ihep]; }         
00160                                   
00161 inline double                     
00162 Gen_HEPEVT::z           (int ihep)
00163 { return m_VHEP2[ihep]; }         
00164                                   
00165 inline double                     
00166 Gen_HEPEVT::t           (int ihep)
00167 { return m_VHEP3[ihep]; }
00168 
00169 //
00170 // Set Methods
00171 //
00172 inline void
00173 Gen_HEPEVT::nevhep      (int value)
00174 { m_NEVHEP = value; }
00175 
00176 inline void
00177 Gen_HEPEVT::nhep        (int value)
00178 { m_NHEP = value; }
00179 
00180 inline void
00181 Gen_HEPEVT::isthep      (int& ihep, int value)
00182 { m_ISTHEP[ihep] = value; }
00183 
00184 inline void
00185 Gen_HEPEVT::idhep       (int& ihep, int value)
00186 { m_IDHEP[ihep] = value; }
00187 
00188 inline void
00189 Gen_HEPEVT::mothers     (int& ihep, int value1, int value2)
00190 { m_JMOHEP[ihep] = std::make_pair(value1, value2); }
00191 
00192 inline void
00193 Gen_HEPEVT::daughters   (int& ihep, int value1, int value2)
00194 { m_JDAHEP[ihep] = std::make_pair(value1, value2); }
00195 
00196 inline void
00197 Gen_HEPEVT::momentum    (int& ihep, double px, double py,
00198                          double pz, double e, double m )
00199 {
00200     m_PHEP0[ihep] = px;
00201     m_PHEP1[ihep] = py;
00202     m_PHEP2[ihep] = pz;
00203     m_PHEP3[ihep] = e;
00204     m_PHEP4[ihep] = m;
00205 }
00206 
00207 inline void
00208 Gen_HEPEVT::position    (int& ihep, double x, double y,
00209                          double z, double t)
00210 {
00211     m_VHEP0[ihep] = x;
00212     m_VHEP1[ihep] = y;
00213     m_VHEP2[ihep] = z;
00214     m_VHEP3[ihep] = t;
00215 }
00216 
00217 CLASS_DEF( Gen_HEPEVT, 2221, 1)
00218 
00219 #endif // GENERATORMODULES_GEN_HEPEVT_H

Generated on Tue Nov 29 23:12:39 2016 for BOSS_7.0.2 by  doxygen 1.4.7