#include <iostream>
#include <vector>
#include <string>
#include <cassert>
#include <exception>
#include <boost/tuple/tuple.hpp>
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "SimG4Core/Notification/interface/BeginOfJob.h"
#include "SimG4Core/Notification/interface/BeginOfEvent.h"
#include "SimG4Core/Notification/interface/BeginOfTrack.h"
#include "SimG4Core/Notification/interface/EndOfTrack.h"
#include "RecoTracker/Record/interface/TrackerRecoGeometryRecord.h"
#include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
#include "DataFormats/GeometryVector/interface/GlobalPoint.h"
#include "G4Step.hh"
#include "G4Track.hh"
#include "G4VSolid.hh"
#include "G4LogicalVolumeStore.hh"
#include "G4TouchableHistory.hh"
#include "G4VPhysicalVolume.hh"
#include "G4AffineTransform.hh"
#include "TrackingMaterialProducer.h"
#include "SimG4Core/Watcher/interface/SimWatcherFactory.h"
#include "FWCore/Framework/interface/MakerMacros.h"
Go to the source code of this file.
Functions | |
DEFINE_SIMWATCHER (TrackingMaterialProducer) | |
boost::tuple< const G4VPhysicalVolume *, int > | GetSensitiveVolume (const G4VTouchable *touchable) |
static const G4AffineTransform & | GetTransform (const G4TouchableHistory *touchable, int depth) |
static const G4LogicalVolume * | GetVolume (const std::string &name) |
DEFINE_SIMWATCHER | ( | TrackingMaterialProducer | ) |
boost::tuple<const G4VPhysicalVolume*, int> GetSensitiveVolume | ( | const G4VTouchable * | touchable | ) |
Definition at line 60 of file TrackingMaterialProducer.cc.
References level.
Referenced by TrackingMaterialProducer::update().
00061 { 00062 int depth = touchable->GetHistoryDepth(); 00063 for (int level = 0; level < depth; ++level) { // 0 is self 00064 const G4VPhysicalVolume* volume = touchable->GetVolume(level); 00065 if (volume->GetLogicalVolume()->GetSensitiveDetector() != 0) { 00066 return boost::make_tuple(volume, level); 00067 } 00068 } 00069 return boost::tuple<const G4VPhysicalVolume*, int>(0, 0); 00070 }
static const G4AffineTransform& GetTransform | ( | const G4TouchableHistory * | touchable, | |
int | depth | |||
) | [inline, static] |
Definition at line 49 of file TrackingMaterialProducer.cc.
Referenced by TrackingMaterialProducer::update().
00050 { 00051 return touchable->GetHistory()->GetTransform( touchable->GetHistory()->GetDepth() - depth ); 00052 }
static const G4LogicalVolume* GetVolume | ( | const std::string & | name | ) | [static] |
Definition at line 36 of file TrackingMaterialProducer.cc.
Referenced by TrackingMaterialProducer::update().
00036 { 00037 const G4LogicalVolumeStore* lvs = G4LogicalVolumeStore::GetInstance(); 00038 00039 for (G4LogicalVolumeStore::const_iterator volume = lvs->begin(); volume != lvs->end(); ++volume) { 00040 if ((const std::string&) (*volume)->GetName() == name) 00041 return (*volume); 00042 } 00043 00044 return 0; 00045 }