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 
24 class PrintGeomSummary : public SimWatcher, public Observer<const BeginOfJob *>, public Observer<const BeginOfRun *> {
25 public:
27  ~PrintGeomSummary() override;
28 
29 private:
30  void update(const BeginOfJob *job) override;
31  void update(const BeginOfRun *run) override;
32  void addSolid(const DDLogicalPart &part);
33  void fillLV(G4LogicalVolume *lv);
34  void dumpSummary(std::ostream &out, std::string name);
35  G4VPhysicalVolume *getTopPV();
36  void addName(std::string name);
37  void printSummary(std::ostream &out);
38 
39 private:
40  std::vector<std::string> nodeNames_;
41  std::map<DDSolidShape, std::string> solidShape_;
42  std::map<std::string, DDSolidShape> solidMap_;
43  G4VPhysicalVolume *theTopPV_;
44  std::vector<G4LogicalVolume *> lvs_, touch_;
45  std::vector<G4VSolid *> sls_;
46  std::map<DDSolidShape, std::pair<int, int> > kount_;
47 };
48 
49 #endif
std::vector< G4VSolid * > sls_
void addName(std::string name)
void addSolid(const DDLogicalPart &part)
void printSummary(std::ostream &out)
std::map< DDSolidShape, std::string > solidShape_
G4VPhysicalVolume * getTopPV()
G4VPhysicalVolume * theTopPV_
~PrintGeomSummary() override
PrintGeomSummary(edm::ParameterSet const &p)
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:93
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
void dumpSummary(std::ostream &out, std::string name)
std::vector< G4LogicalVolume * > lvs_
std::vector< G4LogicalVolume * > touch_
std::map< std::string, DDSolidShape > solidMap_
std::map< DDSolidShape, std::pair< int, int > > kount_