ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4HCtable.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4HCtable.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 //
28 
29 #ifndef G4HCtable_H
30 #define G4HCtable_H 1
31 
33 #include "globals.hh"
34 //#include "g4rw/tvordvec.h"
35 #include <vector>
36 
37 // class description:
38 //
39 // This class is used by G4SDManager for book keeping the
40 // sensitive detector modules and hits collections. The order of
41 // hits collections stored in G4HCofThisEvent is same as the
42 // order of HClist.
43 // The order may vary from run to run, if the user adds/changes
44 // some of his/her sensitive detector modules.
45 // In case user wants to make G4Run object persistent, this
46 // G4HCtable class object should be copied and stored with
47 // G4Run object.
48 
49 class G4HCtable
50 {
51  public:
52  G4HCtable();
53  ~G4HCtable();
54 
55  public:
56  G4int Registor(G4String SDname,G4String HCname);
57  G4int GetCollectionID(G4String HCname) const;
59 
60  private:
61  std::vector<G4String> SDlist;
62  std::vector<G4String> HClist;
63 
64  public:
65  inline G4int entries() const
66  { return G4int(HClist.size()); }
67  inline G4String GetSDname(G4int i) const
68  {
69  if(i<0||i>entries()) return "***Not Defined***";
70  return SDlist[i];
71  }
72  inline G4String GetHCname(G4int i) const
73  {
74  if(i<0||i>entries()) return "***Not Defined***";
75  return HClist[i];
76  }
77 
78 };
79 
80 #endif
81