| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

SimHeaderCnv.h

Go to the documentation of this file.
00001 
00010 #ifndef SIMHEADERCNV_H
00011 #define SIMHEADERCNV_H
00012 
00013 #include "RootIOSvc/RootIOTypedCnv.h"
00014 #include "PerSimEvent/PerSimHeader.h"
00015 #include "Event/SimHeader.h"
00016 
00017 #include "PerSimEvent/PerSimHitCollection.h"
00018 #include "Event/SimHitCollection.h"
00019 
00020 #include "PerSimEvent/PerSimParticleHistory.h"
00021 #include "Event/SimParticleHistory.h"
00022 
00023 #include "Event/SimTrack.h"
00024 
00025 
00026 #include <vector>
00027 #include <map>
00028 
00029 class SimHeaderCnv : public RootIOTypedCnv<PerSimHeader,
00030                                            DayaBay::SimHeader>
00031 {
00032 public:
00033     static const CLID& classID() {
00034         return DayaBay::CLID_SimHeader;
00035     }
00036 
00037     SimHeaderCnv(ISvcLocator* svc);
00038     virtual ~SimHeaderCnv();
00039 
00040 
00043     StatusCode PerToTran(const PerSimHeader& tobj,
00044                          DayaBay::SimHeader& dobj);
00045 
00048     StatusCode TranToPer(const DayaBay::SimHeader& dobj,
00049                          PerSimHeader& tobj);
00050 
00051     StatusCode fillRepRefs(IOpaqueAddress* addr, DataObject* dobj);
00052     StatusCode fillObjRefs(IOpaqueAddress* addr, DataObject* dobj);
00053 
00054 private:
00055 
00056     // Convert Particle History
00057     DayaBay::SimParticleHistory* convert(std::vector<DayaBay::SimTrack*>& timap,
00058                                          DayaBay::SimHeader& sh,
00059                                          const PerSimParticleHistory& pph);
00060 
00061     PerSimParticleHistory* convert(std::map<const DayaBay::SimTrack*,int>& trackMap,
00062                                    const DayaBay::SimParticleHistory& ph);
00063 
00064     // Convert Hits
00065     DayaBay::SimHitCollection* convert(std::vector<DayaBay::SimTrack*>& timap,
00066                                        const PerSimHitCollection& phc);
00067 
00068     PerSimHitCollection* convert(std::map<const DayaBay::SimTrack*,int>& trackMap,
00069                                  const DayaBay::SimHitCollection& hc);
00070 
00071     // Convert statistics
00072     DayaBay::SimUnobservableStatisticsHeader* convert(const PerSimUnobservableStatistics& pstat);
00073     PerSimUnobservableStatistics* convert(const DayaBay::SimUnobservableStatisticsHeader& stat);
00074 
00075 
00076     // Add any relationships in SimHeader that needs to follow fillTran()
00077     void relate(DayaBay::SimHeader& sh);
00078 
00079     // Set maximum number of warnings of "No particle history to save"
00080     int m_maxNoPHtoS , m_NoPHtoSmsgs ;
00081     
00082     // Set NUWA_PRUNESIMHITS env. var. cause the converter to not save sim hit collections
00083     bool m_pruneSimHits;
00084 };
00085 
00086 #endif  // SIMHEADERCNV_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:35:44 2011 for PerSimEvent by doxygen 1.4.7