Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:06

0001 // -*- C++ -*-
0002 //
0003 // Package:     HcalTestBeam
0004 // Class  :     HcalTB02XtalNumberingScheme
0005 //
0006 // Implementation:
0007 //     Numbering scheme for crystal calorimeter in 2002 test beam
0008 //
0009 // Original Author:
0010 //         Created:  Sun 21 10:14:34 CEST 2006
0011 //
0012 
0013 // system include files
0014 
0015 // user include files
0016 #include "SimG4CMS/HcalTestBeam/interface/HcalTB02XtalNumberingScheme.h"
0017 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0018 
0019 //#define EDM_ML_DEBUG
0020 //
0021 // constructors and destructor
0022 //
0023 
0024 HcalTB02XtalNumberingScheme::HcalTB02XtalNumberingScheme() : HcalTB02NumberingScheme() {
0025   edm::LogVerbatim("HcalTBSim") << "Creating HcalTB02XtalNumberingScheme";
0026 }
0027 
0028 HcalTB02XtalNumberingScheme::~HcalTB02XtalNumberingScheme() {
0029 #ifdef EDM_ML_DEBUG
0030   edm::LogVerbatim("HcalTBSim") << "Deleting HcalTB02XtalNumberingScheme";
0031 #endif
0032 }
0033 
0034 //
0035 // member functions
0036 //
0037 
0038 int HcalTB02XtalNumberingScheme::getUnitID(const G4Step* aStep) const {
0039   const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
0040   int idx = touch->GetReplicaNumber(0);
0041   int idl = 0;
0042   if (touch->GetHistoryDepth() > 0)
0043     idl = touch->GetReplicaNumber(1);
0044   int idunit = idl * 100 + idx;
0045 #ifdef EDM_ML_DEBUG
0046   edm::LogVerbatim("HcalTBSim") << "HcalTB02XtalNumberingScheme:: Row " << idl << " Column " << idl
0047                                 << " idunit = " << idunit;
0048 #endif
0049   return idunit;
0050 }