/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/EvtPreSelect/EventWriter/EventWriter-00-00-18/EventWriter/EventWriter.h

Go to the documentation of this file.
00001 #ifndef BESVISALG_H_
00002 #define BESVISALG_H_
00003 
00004 // something needed by Gaudi
00005 #include "GaudiKernel/Algorithm.h"
00006 #include "GaudiKernel/IDataProviderSvc.h"
00007 #include "GaudiKernel/IConversionSvc.h"
00008 #include "GaudiKernel/IDataManagerSvc.h"
00009 #include "GaudiKernel/IDataStoreAgent.h"
00010 #include "GaudiKernel/DataStoreItem.h"
00011 
00012 #include "NetDataWriter/NetDataWriter.h"
00013 // something needed by root
00014 #include "RootEventData/TRecTrackEvent.h"
00015 #include "RootEventData/TDigiEvent.h"
00016 #include "RootEventData/TJobInfo.h"
00017 #include "RootCnvSvc/commonData.h"
00018 #include "RootCnvSvc/RootInterface.h"
00019 
00020 #include "RootCnvSvc/RootCnvSvc.h"
00021 #include "TTree.h"
00022 #include "TFile.h"
00023 
00024 
00025 using namespace std;
00026 
00027 class TBossFullEvent;
00028 
00030 
00031 
00032 class EventWriter : public Algorithm {
00033 public:
00034   EventWriter (const std::string& name, ISvcLocator* pSvcLocator);
00035   ~EventWriter();
00036   StatusCode initialize();
00037   StatusCode execute();
00038   StatusCode finalize();
00039   
00040 private:
00041   // some variables needed by semaphore
00042 
00043   // Gaudi service interface
00044   IDataManagerSvc       *m_pDataManager;
00045   IDataProviderSvc      *m_pDataProvider;
00046   IConversionSvc        *m_pConversionSvc;
00047   IDataStoreAgent       *m_pAgent;
00048   DataStoreItem         *m_currentItem;
00049   RootInterface         *m_pRootInterface;
00050   RootCnvSvc*  m_cnvSvc;
00051   TRecTrackEvent *m_trkEvt;
00052   TDigiEvent *m_digiEvt;
00053   TMcEvent  *m_mcEvt;
00054   THltEvent *m_hltEvt;
00055   TEvtHeader *m_evtHd;
00056   virtual std::string getJobOptions(); 
00057   virtual std::string getDecayOptions(); 
00058 
00059   typedef std::vector<DataStoreItem*> Items;
00060   typedef std::vector<std::string>    ItemNames;
00061 
00062   commonData m_common;
00063   TFile*        m_single_outputFiles;
00064   TTree*        m_single_outputTrees;
00065   TTree*        m_jobInfoTree;
00066   int st;
00067   string m_dofileName;
00068   string m_dofileName_1;
00069   Items         m_itemList;
00070   ItemNames  m_itemNames;
00071   StatusCode getSvc();
00072   void addItem(Items& itms, const std::string& descriptor);
00073   void clearItems(Items& items);
00074   DataStoreItem* findItem(const std::string& path);
00075   StatusCode collectObjects(); 
00076   std::vector<std::string> m_jobOptions; 
00077   std::string m_bossVer; 
00078   std::string m_decayOptions; 
00079   TJobInfo* jobInfo;   
00080 
00081   // for DistBoss
00082   int              m_mode;  //2-OfflineMode, 3-DistBossMode
00083   std::string      m_svrName;
00084   TBossFullEvent  *m_TFullEvt;
00085   NetDataWriter   *m_writer;
00086   int              m_bufsize;
00087   char            *m_cbuf;
00088 };
00089 
00090 #endif

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