FAQ:How do I get the position of each PMT?

From Daya Bay

Revision as of 15:24, 17 May 2011 by Djaffe (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

If you have the sensDetId (the same ID used to identify PMTs in the calibration tables), you can use

pmtGeomInfo = self.pmtGeomSvc.get( pmtID )
pmtXYZ = pmtGeomInfo.localPosition()

For a SimHit object, pmtId = hit.sensDetId().


  • Specific question about Pool PMTs from Ry:
Is there a function in class PmtPoolSensor that distinguishes between inner and outer pools?  
Apparently board and connector numbers alone are not sufficient to uniquely specify a PMT.  
PmtPoolSensor::inwardFacing() apparently refers to PMT orientation rather than position.  
It is probably possible to use the wall number, but I thought I could be overlooking some simpler function.
  • Answer from Miao:
You can use PmtPoolSensor.detectorId()
The definition of DetectorId_t can be found in: Conventions/DetectorId.h
  • Example python script:

http://dayabay.ihep.ac.cn/tracs/dybsvn/browser/dybgaudi/trunk/Tutorial/Quickstart/python/Quickstart/PmtInfoExample.py

Personal tools