CMS 3D CMS Logo

PPSPixelOrganization.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: PPS
4 // Class : PPSPixelOrganization
5 //
6 // Implementation:
7 // <Notes on implementation>
8 //
9 
10 // user include files
14 #include "G4VPhysicalVolume.hh"
15 #include "G4VTouchable.hh"
16 
17 //
18 // constructors and destructor
19 //
21  : currentUnitID_(-1), currentArm_(-1), currentStation_(-1), currentRP_(-1), currentPlane_(-1) {
22  edm::LogInfo("PPSSim") << "Creating PPSPixelOrganization";
23 }
24 
25 //
26 // member functions
27 //
28 
29 uint32_t PPSPixelOrganization ::unitID(const G4Step* aStep) {
30  const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
31  G4VPhysicalVolume* physVol;
32  int ii = 0;
33 
34  for (ii = 0; ii < touch->GetHistoryDepth(); ii++) {
35  physVol = touch->GetVolume(ii);
36 
37  edm::LogInfo("PPSSim") << "physVol=" << physVol->GetName() << ", level=" << ii
38  << ", physVol->GetCopyNo()=" << physVol->GetCopyNo();
39 
40  if (physVol->GetName().contains("Envelop")) {
41  currentPlane_ = physVol->GetCopyNo() - 1;
42  } else if (physVol->GetName() == "RP_box_primary_vacuum") {
43  int cpy_no = physVol->GetCopyNo();
44  currentArm_ = (cpy_no / 100) % 10;
45  currentStation_ = (cpy_no / 10) % 10;
46  currentRP_ = cpy_no % 10;
47  }
48  }
49 
50  edm::LogInfo("PPSSim") << currentArm_ << " " << currentRP_ << " " << currentPlane_;
51 
53  uint32_t kk = id.rawId();
54  edm::LogInfo("PPSSim") << " ID " << kk;
55  return id.rawId();
56 }
uint32_t unitID(const G4Step *aStep) override
ii
Definition: cuy.py:590