GEMC  2.3
Geant4 Monte-Carlo Framework
HitProcess_MapRegister.cc
Go to the documentation of this file.
1 // gemc headers
2 #include "HitProcess.h"
4 #include "flux_hitprocess.h"
5 
6 // CLAS12
9 #include "clas12/cnd_hitprocess.h"
10 #include "clas12/ctof_hitprocess.h"
11 #include "clas12/dc_hitprocess.h"
12 #include "clas12/ec_hitprocess.h"
13 #include "clas12/ftof_hitprocess.h"
17 #include "clas12/htcc_hitprocess.h"
18 #include "clas12/ltcc_hitprocess.h"
21 #include "clas12/pcal_hitprocess.h"
22 #include "clas12/rich_hitprocess.h"
23 
24 // Beam Dump eXperiment
25 #include "bdx/cormo_hitprocess.h"
26 #include "bdx/veto_hitprocess.h"
27 #include "bdx/crs_hitprocess.h"
28 
29 // APrime
30 #include "HPS/ECAL_hitprocess.h"
31 #include "HPS/SVT_hitprocess.h"
33 
34 // Cebaf
36 
37 
38 map<string, HitProcess_Factory> HitProcess_Map(string experiments)
39 {
40 
41  map<string, HitProcess_Factory> hitMap;
42 
43  stringstream exps(experiments);
44  string EXP;
45 
46  cout << endl;
47  while(!exps.eof())
48  {
49  exps >> EXP;
50  cout << " >> Registering experiment \"" << EXP << "\" hit processes " << endl;
51 
52  // flux is independent of experiment
53  hitMap["flux"] = &flux_HitProcess::createHitClass;
54  // mirror is also a flux detector
55  hitMap["mirror"] = &flux_HitProcess::createHitClass;
56 
57  // CLAS12
58  if(EXP == "clas12")
59  {
60  hitMap["bonus"] = &bonus_HitProcess::createHitClass;
61  hitMap["bst"] = &bst_HitProcess::createHitClass;
62  hitMap["cnd"] = &cnd_HitProcess::createHitClass;
63  hitMap["ctof"] = &ctof_HitProcess::createHitClass;
64  hitMap["dc"] = &dc_HitProcess::createHitClass;
65  hitMap["ec"] = &ec_HitProcess::createHitClass;
66  hitMap["ecs"] = &ec_HitProcess::createHitClass;
67  hitMap["ftof_p1a"] = &ftof_HitProcess::createHitClass;
68  hitMap["ftof_p1b"] = &ftof_HitProcess::createHitClass;
69  hitMap["ftof_p2"] = &ftof_HitProcess::createHitClass;
70  hitMap["ft_cal"] = &ft_cal_HitProcess::createHitClass;
71  hitMap["ft_hodo"] = &ft_hodo_HitProcess::createHitClass;
72  hitMap["htcc"] = &htcc_HitProcess::createHitClass;
73  hitMap["ltcc"] = &ltcc_HitProcess::createHitClass;
74  hitMap["fmt"] = &FMT_HitProcess::createHitClass;
75  hitMap["bmt"] = &BMT_HitProcess::createHitClass;
76  hitMap["ftm"] = &FTM_HitProcess::createHitClass;
77  hitMap["pcal"] = &pcal_HitProcess::createHitClass;
78  hitMap["rich"] = &rich_HitProcess::createHitClass;
79  }
80  // Aprime
81  else if(EXP == "HPS")
82  {
83  hitMap["SVT"] = &SVT_HitProcess::createHitClass;
84  hitMap["ECAL"] = &ECAL_HitProcess::createHitClass;
85  hitMap["muon_hodo"] = &muon_hodo_HitProcess::createHitClass;
86  }
87  // GlueX
88  else if( EXP == "gluex" )
89  {
90  }
91  // SoLID
92  else if( EXP == "solid" )
93  {
94  }
95  else if( EXP == "BDX" )
96  {
97  hitMap["cormo"] = &cormo_HitProcess::createHitClass;
98  hitMap["veto"] = &veto_HitProcess::createHitClass;
99  hitMap["crs"] = &crs_HitProcess::createHitClass;
100  }
101  else if( EXP == "injector" )
102  {
103  hitMap["bubble"] = &bubble_HitProcess::createHitClass;
104  }
105 
106  }
107 
108  cout << endl;
109  return hitMap;
110 
111 }
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
Definition: ec_hitprocess.h:60
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
map< string, HitProcess_Factory > HitProcess_Map(string experiments)
< flux hit process common to all
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
static HitProcess * createHitClass()
Definition: dc_hitprocess.h:58