PandaRoot
PndGiBuuGenerator.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndGiBuuGenerator header file -----
3 // ----- Created 02/08/12 by T.Stockmanns -----
4 // -------------------------------------------------------------------------
5 
14 #ifndef PND_GiBuuGENERATOR_H
15 #define PND_GiBuuGENERATOR_H
16 
17 #include "FairGenerator.h"
18 #include "PndGiBuuDecayerAbs.h"
19 
20 #include "TString.h"
21 #include <fstream>
22 #include <map>
23 
24 class FairPrimaryGenerator;
25 
26 class PndGiBuuGenerator : public FairGenerator {
27 
28  public:
33  PndGiBuuGenerator(const Char_t *fileName, const Char_t *pidDataFileName);
34 
36  virtual ~PndGiBuuGenerator();
37 
42  virtual Bool_t ReadEvent(FairPrimaryGenerator *primGen);
43 
44  void RegisterDecayer(Int_t pdgCode, PndGiBuuDecayerAbs *decayer) { fDecayerMap[pdgCode] = decayer; }
45 
46  protected:
47  Bool_t Init();
48 
49  private:
52 
53  void FillPidMap();
54  Int_t GetPdgParticleId(Int_t GiBuuId, Int_t charge);
55  void WriteoutDecayParticle(Int_t oldEventNr, Int_t oldRunId, FairPrimaryGenerator *primGen);
56 
57  std::map<std::pair<Int_t, Int_t>, Int_t> fMapGiBuuToPdg;
58 
59  Int_t fEvent;
60  Int_t fRunId;
61  TString fFileName;
62  TString fPidDataFileName;
63  std::ifstream *fInputAsciiFile;
64 
65  std::map<Int_t, PndGiBuuDecayerAbs *> fDecayerMap;
66 
67  Double_t fPx, fPy, fPz;
68  Int_t fPdg;
69 
70  void CloseInput();
71 
72  ClassDef(PndGiBuuGenerator, 1);
73 };
74 
75 #endif
virtual Bool_t ReadEvent(FairPrimaryGenerator *primGen)
void RegisterDecayer(Int_t pdgCode, PndGiBuuDecayerAbs *decayer)
virtual ~PndGiBuuGenerator()