CMS 3D CMS Logo

PrintGeomSummary.h
Go to the documentation of this file.
1 #ifndef SimG4Core_PrintGeomSummary_H
2 #define SimG4Core_PrintGeomSummary_H
3 
8 
9 #include "G4NavigationHistory.hh"
10 
11 #include <algorithm>
12 #include <iostream>
13 #include <vector>
14 #include <map>
15 #include <string>
16 
17 class BeginOfJob;
18 class BeginOfRun;
19 class DDLogicalPart;
20 class G4LogicalVolume;
21 class G4VPhysicalVolume;
22 class G4VSolid;
23 
25  public Observer<const BeginOfJob *>,
26  public Observer<const BeginOfRun *> {
27 
28 public:
30  ~PrintGeomSummary() override;
31 
32 private:
33  void update(const BeginOfJob * job) override;
34  void update(const BeginOfRun * run) override;
35  void addSolid(const DDLogicalPart & part);
36  void fillLV(G4LogicalVolume * lv);
37  void dumpSummary(std::ostream& out, std::string name);
38  G4VPhysicalVolume * getTopPV();
39  void addName(std::string name);
40  void printSummary(std::ostream & out);
41 
42 private:
43  std::vector<std::string> nodeNames_;
44  std::map<DDSolidShape,std::string> solidShape_;
45  std::map<std::string,DDSolidShape> solidMap_;
46  G4VPhysicalVolume * theTopPV_;
47  std::vector<G4LogicalVolume*> lvs_, touch_;
48  std::vector<G4VSolid*> sls_;
49  std::map<DDSolidShape,std::pair<int,int> > kount_;
50 };
51 
52 #endif
std::map< DDSolidShape, std::string > solidShape_
void addName(std::string name)
void addSolid(const DDLogicalPart &part)
void printSummary(std::ostream &out)
G4VPhysicalVolume * getTopPV()
G4VPhysicalVolume * theTopPV_
~PrintGeomSummary() override
std::vector< G4LogicalVolume * > touch_
PrintGeomSummary(edm::ParameterSet const &p)
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:93
std::map< DDSolidShape, std::pair< int, int > > kount_
std::vector< std::string > nodeNames_
void fillLV(G4LogicalVolume *lv)
void update(const BeginOfJob *job) override
This routine will be called when the appropriate signal arrives.
part
Definition: HCALResponse.h:20
std::vector< G4VSolid * > sls_
void dumpSummary(std::ostream &out, std::string name)
std::vector< G4LogicalVolume * > lvs_
std::map< std::string, DDSolidShape > solidMap_