ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4_Bbc.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4_Bbc.C
1 #ifndef MACRO_G4BBC_C
2 #define MACRO_G4BBC_C
3 
5 
7 #include <g4main/PHG4Reco.h>
8 
10 
11 
12 R__LOAD_LIBRARY(libg4bbc.so)
13 R__LOAD_LIBRARY(libg4detectors.so)
14 
15 namespace Enable
16 {
17  bool BBC = false;
18  bool BBCFAKE = false;
19  int BBC_VERBOSITY = 0;
20 } // namespace Enable
21 
22 namespace G4BBC
23 {
24  double z_smearing = 0.; // should be 6 mm, temporarily perfect for TPC initial vertexing
25  double t_smearing = 0.02; // 20ps timing resolution
26 } // namespace G4BBC
27 
28 void BbcInit()
29 {
31  {
32  cout << "Enable::BBC and Enable::BBCFAKE cannot be true at the same time" << endl;
33  gSystem->Exit(1);
34  }
35  // Set boundary of tracked particles to include BBC (values in cm)
36  if (Enable::BBC)
37  {
41  }
42 }
43 
44 void Bbc(PHG4Reco* g4Reco)
45 {
46  if (Enable::BBC)
47  {
48  PHG4BbcSubsystem* bbc = new PHG4BbcSubsystem("BBC");
49  bbc->SuperDetector("BBC");
50  g4Reco->registerSubsystem(bbc);
51  }
52  return;
53 }
54 
55 void Bbc_Reco()
56 {
58 
59  //---------------
60  // Fun4All server
61  //---------------
62 
64 
65  if (Enable::BBCFAKE)
66  {
67  if (verbosity > 0)
68  {
69  cout << "BBCFAKE: Using smeared vtx and t0 resolutions of "
70  << G4BBC::z_smearing << " cm and " << G4BBC::t_smearing * 1000 << " ps" << endl;
71  }
72  BbcVertexFastSimReco* bbcvertex = new BbcVertexFastSimReco();
75  se->registerSubsystem(bbcvertex);
76  }
77 
78  return;
79 }
80 #endif