CMS 3D CMS Logo

Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes

BscSD Class Reference

#include <BscSD.h>

Inheritance diagram for BscSD:
SensitiveTkDetector Observer< const BeginOfRun * > Observer< const BeginOfEvent * > Observer< const EndOfEvent * > SensitiveDetector

List of all members.

Public Member Functions

 BscSD (std::string, const DDCompactView &, SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
virtual void clear ()
virtual void DrawAll ()
virtual void EndOfEvent (G4HCofThisEvent *eventHC)
void fillHits (edm::PSimHitContainer &, std::string use)
virtual double getEnergyDeposit (G4Step *step)
std::vector< std::string > getNames ()
virtual void Initialize (G4HCofThisEvent *HCE)
virtual void PrintAll ()
virtual bool ProcessHits (G4Step *, G4TouchableHistory *)
virtual uint32_t setDetUnitId (G4Step *)
virtual ~BscSD ()

Protected Attributes

float edepositEM
float edepositHAD
G4int emPDG
G4int epPDG
G4int gammaPDG

Private Member Functions

virtual void clearHits ()
void CreateNewHit ()
void GetStepInfo (G4Step *aStep)
G4bool HitExists ()
void ResetForNewPrimary ()
G4ThreeVector SetToLocal (G4ThreeVector global)
G4ThreeVector SetToLocalExit (G4ThreeVector globalPoint)
void StoreHit (BscG4Hit *)
void Summarize ()
void update (const BeginOfRun *)
 This routine will be called when the appropriate signal arrives.
void update (const ::EndOfEvent *)
void update (const BeginOfEvent *)
 This routine will be called when the appropriate signal arrives.
void UpdateHit ()

Private Attributes

BscG4HitcurrentHit
G4VPhysicalVolume * currentPV
float edeposit
float Eloss
G4ThreeVector entrancePoint
int eventno
G4ThreeVector exitPoint
G4int hcID
G4ThreeVector hitPoint
G4ThreeVector hitPointExit
G4ThreeVector hitPointLocal
G4ThreeVector hitPointLocalExit
float incidentEnergy
std::string name
BscNumberingSchemenumberingScheme
float Pabs
int ParentId
short ParticleType
float PhiAtEntry
G4StepPoint * postStepPoint
G4StepPoint * preStepPoint
uint32_t previousUnitID
G4int primaryID
G4int primID
TrackingSlaveSDslave
G4ThreeVector theEntryPoint
G4ThreeVector theExitPoint
BscG4HitCollectiontheHC
const SimTrackManagertheManager
float ThetaAtEntry
G4Track * theTrack
float Tof
G4int tsID
G4double tSlice
G4int tSliceID
uint32_t unitID
float Vx
float Vy
float Vz
float X
float Y
float Z

Detailed Description

Definition at line 54 of file BscSD.h.


Constructor & Destructor Documentation

BscSD::BscSD ( std::string  name,
const DDCompactView cpv,
SensitiveDetectorCatalog clg,
edm::ParameterSet const &  p,
const SimTrackManager manager 
)

Definition at line 45 of file BscSD.cc.

References SensitiveDetector::AssignSD(), ecaldqm::collectionName, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), LogDebug, SensitiveDetectorCatalog::logicalNames(), numberingScheme, SensitiveDetector::Register(), and slave.

                                                                        :
  SensitiveTkDetector(name, cpv, clg, p), numberingScheme(0), name(name),
  hcID(-1), theHC(0), theManager(manager), currentHit(0), theTrack(0), 
  currentPV(0), unitID(0),  previousUnitID(0), preStepPoint(0), 
  postStepPoint(0), eventno(0){
    
  //Add Bsc Sentitive Detector Name
  collectionName.insert(name);
    
    
  //Parameters
  edm::ParameterSet m_p = p.getParameter<edm::ParameterSet>("BscSD");
  int verbn = m_p.getUntrackedParameter<int>("Verbosity");
  //int verbn = 1;
    
  SetVerboseLevel(verbn);
  LogDebug("BscSim") 
    << "*******************************************************\n"
    << "*                                                     *\n"
    << "* Constructing a BscSD  with name " << name << "\n"
    << "*                                                     *\n"
    << "*******************************************************";
    
    
  slave  = new TrackingSlaveSD(name);
    
  //
  // attach detectors (LogicalVolumes)
  //
  std::vector<std::string> lvNames = clg.logicalNames(name);

  this->Register();

  for (std::vector<std::string>::iterator it=lvNames.begin();  
       it !=lvNames.end(); it++) {
    this->AssignSD(*it);
    edm::LogInfo("BscSim") << "BscSD : Assigns SD to LV " << (*it);
  }
    
  if      (name == "BSCHits") {
    if (verbn > 0) {
      edm::LogInfo("BscSim") << "name = BSCHits and  new BscNumberingSchem";
    }
    numberingScheme = new BscNumberingScheme() ;
  } else {
    edm::LogWarning("BscSim") << "BscSD: ReadoutName "<<name<<" not supported";
  }
  
  edm::LogInfo("BscSim") << "BscSD: Instantiation completed";
}
BscSD::~BscSD ( ) [virtual]

Definition at line 101 of file BscSD.cc.

References numberingScheme, and slave.

              { 
  //AZ:
  if (slave) delete slave; 

  if (numberingScheme)
    delete numberingScheme;

}

Member Function Documentation

void BscSD::clear ( void  ) [virtual]

Definition at line 400 of file BscSD.cc.

                  {
} 
void BscSD::clearHits ( ) [private, virtual]

Implements SensitiveDetector.

Definition at line 438 of file BscSD.cc.

References TrackingSlaveSD::Initialize(), and slave.

Referenced by update().

                     {
  //AZ:
  slave->Initialize();
}
void BscSD::CreateNewHit ( ) [private]

Definition at line 272 of file BscSD.cc.

References currentHit, currentPV, Eloss, hitPoint, hitPointLocal, hitPointLocalExit, incidentEnergy, LogDebug, NULL, Pabs, ParentId, ParticleType, PhiAtEntry, primaryID, BscG4Hit::setEnergyLoss(), BscG4Hit::setEntry(), BscG4Hit::setEntryLocalP(), BscG4Hit::setExitLocalP(), BscG4Hit::setIncidentEnergy(), BscG4Hit::setPabs(), BscG4Hit::setParentId(), BscG4Hit::setParticleType(), BscG4Hit::setPhiAtEntry(), BscG4Hit::setThetaAtEntry(), BscG4Hit::setTimeSlice(), BscG4Hit::setTof(), BscG4Hit::setTrackID(), BscG4Hit::setUnitID(), BscG4Hit::setVx(), BscG4Hit::setVy(), BscG4Hit::setVz(), BscG4Hit::setX(), BscG4Hit::setY(), BscG4Hit::setZ(), StoreHit(), ThetaAtEntry, theTrack, Tof, tSlice, tSliceID, unitID, UpdateHit(), Vx, Vy, Vz, X, Y, and Z.

Referenced by ProcessHits().

                         {

#ifdef debug
  LogDebug("BscSim") << "BscSD CreateNewHit for"
                     << " PV "     << currentPV->GetName()
                     << " PVid = " << currentPV->GetCopyNo()
                     << " Unit "   << unitID <<std::endl;
  LogDebug("BscSim") << " primary "    << primaryID
                     << " time slice " << tSliceID 
                     << " For Track  " << theTrack->GetTrackID()
                     << " which is a " << theTrack->GetDefinition()->GetParticleName();
           
  if (theTrack->GetTrackID()==1) {
    LogDebug("BscSim") << " of energy "     << theTrack->GetTotalEnergy();
  } else {
    LogDebug("BscSim") << " daughter of part. " << theTrack->GetParentID();
  }

  LogDebug("BscSim")  << " and created by " ;
  if (theTrack->GetCreatorProcess()!=NULL)
    LogDebug("BscSim") << theTrack->GetCreatorProcess()->GetProcessName() ;
  else 
    LogDebug("BscSim") << "NO process";
  LogDebug("BscSim") << std::endl;
#endif          
    
  currentHit = new BscG4Hit;
  currentHit->setTrackID(primaryID);
  currentHit->setTimeSlice(tSlice);
  currentHit->setUnitID(unitID);
  currentHit->setIncidentEnergy(incidentEnergy);

  currentHit->setPabs(Pabs);
  currentHit->setTof(Tof);
  currentHit->setEnergyLoss(Eloss);
  currentHit->setParticleType(ParticleType);
  currentHit->setThetaAtEntry(ThetaAtEntry);
  currentHit->setPhiAtEntry(PhiAtEntry);

  currentHit->setEntry(hitPoint);

  currentHit->setEntryLocalP(hitPointLocal);
  currentHit->setExitLocalP(hitPointLocalExit);

  currentHit->setParentId(ParentId);
  currentHit->setVx(Vx);
  currentHit->setVy(Vy);
  currentHit->setVz(Vz);

  currentHit->setX(X);
  currentHit->setY(Y);
  currentHit->setZ(Z);

  UpdateHit();
  
  StoreHit(currentHit);
}        
void BscSD::DrawAll ( ) [virtual]

Definition at line 404 of file BscSD.cc.

                    {
} 
void BscSD::EndOfEvent ( G4HCofThisEvent *  eventHC) [virtual]

Reimplemented from SensitiveDetector.

Definition at line 368 of file BscSD.cc.

References BscG4Hit::getEnergyLoss(), BscG4Hit::getEntry(), BscG4Hit::getPabs(), BscG4Hit::getParticleType(), BscG4Hit::getPhiAtEntry(), BscG4Hit::getThetaAtEntry(), BscG4Hit::getTof(), BscG4Hit::getTrackID(), BscG4Hit::getUnitID(), j, LogDebug, TrackingSlaveSD::processHits(), slave, Summarize(), and theHC.

                                        {

  // here we loop over transient hits and make them persistent
  for (int j=0; j<theHC->entries(); j++) {
    //AZ:
    BscG4Hit* aHit = (*theHC)[j];
    LogDebug("BscSim") << "hit number" << j << "unit ID = "<<aHit->getUnitID()<< "\n";
    LogDebug("BscSim") << "entry z " << aHit->getEntry().z()<< "\n";
    LogDebug("BscSim") << "entr theta " << aHit->getThetaAtEntry()<< "\n";

    Local3DPoint locExitPoint(0,0,0);
    Local3DPoint locEntryPoint(aHit->getEntry().x(),
                               aHit->getEntry().y(),
                               aHit->getEntry().z());
    slave->processHits(PSimHit(locEntryPoint,locExitPoint,
                               aHit->getPabs(),
                               aHit->getTof(),
                               aHit->getEnergyLoss(),
                               aHit->getParticleType(),
                               aHit->getUnitID(),
                               aHit->getTrackID(),
                               aHit->getThetaAtEntry(),
                               aHit->getPhiAtEntry()));
  }
  Summarize();
}
void BscSD::fillHits ( edm::PSimHitContainer c,
std::string  use 
) [virtual]

Implements SensitiveTkDetector.

Definition at line 414 of file BscSD.cc.

References TrackingSlaveSD::hits(), n, TrackingSlaveSD::name(), and slave.

                                                        {
  if (slave->name() == n) c=slave->hits();
}
double BscSD::getEnergyDeposit ( G4Step *  step) [virtual]

Definition at line 110 of file BscSD.cc.

Referenced by GetStepInfo().

                                            {
  return aStep->GetTotalEnergyDeposit();
}
std::vector< std::string > BscSD::getNames ( ) [virtual]

Reimplemented from SensitiveDetector.

Definition at line 443 of file BscSD.cc.

References TrackingSlaveSD::name(), slave, and groupFilesInBlocks::temp.

                                    {
  std::vector<std::string> temp;
  temp.push_back(slave->name());
  return temp;
}
void BscSD::GetStepInfo ( G4Step *  aStep) [private]

Definition at line 152 of file BscSD.cc.

References currentPV, edeposit, edepositEM, edepositHAD, Eloss, emPDG, epPDG, gammaPDG, getEnergyDeposit(), hitPoint, hitPointExit, hitPointLocal, hitPointLocalExit, LogDebug, Pabs, ParentId, ParticleType, PhiAtEntry, postStepPoint, preStepPoint, primaryID, setDetUnitId(), ThetaAtEntry, theTrack, Tof, tSlice, tSliceID, unitID, Vx, Vy, Vz, X, Y, and Z.

Referenced by ProcessHits().

                                     {
  
  preStepPoint = aStep->GetPreStepPoint(); 
  postStepPoint= aStep->GetPostStepPoint(); 
  theTrack     = aStep->GetTrack();   
  hitPoint     = preStepPoint->GetPosition();   
  currentPV    = preStepPoint->GetPhysicalVolume();
  hitPointExit = postStepPoint->GetPosition();  

  hitPointLocal = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPoint);
  hitPointLocalExit = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPointExit);


  G4int particleCode = theTrack->GetDefinition()->GetPDGEncoding();
  LogDebug("BscSim") <<  "  BscSD :particleType =  " << theTrack->GetDefinition()->GetParticleName() <<std::endl;
  if (particleCode == emPDG ||
      particleCode == epPDG ||
      particleCode == gammaPDG ) {
    edepositEM  = getEnergyDeposit(aStep); edepositHAD = 0.;
  } else {
    edepositEM  = 0.; edepositHAD = getEnergyDeposit(aStep);
  }
  edeposit = aStep->GetTotalEnergyDeposit();
  tSlice    = (postStepPoint->GetGlobalTime() )/nanosecond;
  tSliceID  = (int) tSlice;
  unitID    = setDetUnitId(aStep);
#ifdef debug
  LogDebug("BscSim") << "unitID=" << unitID <<std::endl;
#endif
  primaryID    = theTrack->GetTrackID();
  //  Position     = hitPoint;
  Pabs         = aStep->GetPreStepPoint()->GetMomentum().mag()/GeV;
  Tof          = aStep->GetPostStepPoint()->GetGlobalTime()/nanosecond;
  Eloss        = aStep->GetTotalEnergyDeposit()/GeV;
  ParticleType = theTrack->GetDefinition()->GetPDGEncoding();      
  ThetaAtEntry = aStep->GetPreStepPoint()->GetPosition().theta()/deg;
  PhiAtEntry   = aStep->GetPreStepPoint()->GetPosition().phi()/deg;

  ParentId = theTrack->GetParentID();
  Vx = theTrack->GetVertexPosition().x();
  Vy = theTrack->GetVertexPosition().y();
  Vz = theTrack->GetVertexPosition().z();
  X  = hitPoint.x();
  Y  = hitPoint.y();
  Z  = hitPoint.z();
}
G4bool BscSD::HitExists ( ) [private]

Definition at line 205 of file BscSD.cc.

References currentHit, newFWLiteAna::found, BscG4Hit::getTimeSliceID(), BscG4Hit::getTrackID(), BscG4Hit::getUnitID(), j, previousUnitID, primaryID, primID, ResetForNewPrimary(), theHC, tsID, tSliceID, unitID, and UpdateHit().

Referenced by ProcessHits().

                        {
  if (primaryID<1) {
    edm::LogWarning("BscSim") << "***** BscSD error: primaryID = " 
                                  << primaryID
                                  << " maybe detector name changed";
  }

  // Update if in the same detector, time-slice and for same track   
  //  if (primaryID == primID && tSliceID == tsID && unitID==previousUnitID) {
  if (tSliceID == tsID && unitID==previousUnitID) {
    //AZ:
    UpdateHit();
    return true;
  }
  // Reset entry point for new primary
  if (primaryID != primID)
    ResetForNewPrimary();
   
  //look in the HitContainer whether a hit with the same primID, unitID,
  //tSliceID already exists:
   
  G4bool found = false;

  //    LogDebug("BscSim") << "BscSD: HCollection=  " << theHC->entries()    <<std::endl;
  
  for (int j=0; j<theHC->entries()&&!found; j++) {
    BscG4Hit* aPreviousHit = (*theHC)[j];
    if (aPreviousHit->getTrackID()     == primaryID &&
        aPreviousHit->getTimeSliceID() == tSliceID  &&
        aPreviousHit->getUnitID()      == unitID       ) {
      //AZ:
      currentHit = aPreviousHit;
      found      = true;
    }
  }          

  if (found) {
    //AZ:
    UpdateHit();
    return true;
  } else {
    return false;
  }    
}
void BscSD::Initialize ( G4HCofThisEvent *  HCE) [virtual]

Reimplemented from SensitiveDetector.

Definition at line 114 of file BscSD.cc.

References ecaldqm::collectionName, hcID, LogDebug, name, primID, theHC, and tsID.

                                            { 
#ifdef debug
  LogDebug("BscSim") << "BscSD : Initialize called for " << name << std::endl;
#endif

  theHC = new BscG4HitCollection(name, collectionName[0]);
  if (hcID<0) 
    hcID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
  HCE->AddHitsCollection(hcID, theHC);

  tsID   = -2;
  primID = -2;

}
void BscSD::PrintAll ( ) [virtual]

Definition at line 408 of file BscSD.cc.

References LogDebug, and theHC.

                     {
  LogDebug("BscSim") << "BscSD: Collection " << theHC->GetName() << "\n";
  theHC->PrintAllHits();
} 
bool BscSD::ProcessHits ( G4Step *  aStep,
G4TouchableHistory *   
) [virtual]

Implements SensitiveDetector.

Definition at line 131 of file BscSD.cc.

References CreateNewHit(), edeposit, GetStepInfo(), HitExists(), LogDebug, NULL, and theHC.

                                                             {

  if (aStep == NULL) {
    return true;
  } else {
    GetStepInfo(aStep);
    //   LogDebug("BscSim") << edeposit <<std::endl;

    //AZ
#ifdef debug
    LogDebug("BscSim") << "BscSD :  number of hits = " << theHC->entries() << std::endl;
#endif

    if (HitExists() == false && edeposit>0. ){ 
      CreateNewHit();
      return true;
    }
  }
  return true;
} 
void BscSD::ResetForNewPrimary ( ) [private]
uint32_t BscSD::setDetUnitId ( G4Step *  aStep) [virtual]

Implements SensitiveDetector.

Definition at line 199 of file BscSD.cc.

References BscNumberingScheme::getUnitID(), and numberingScheme.

Referenced by GetStepInfo().

                                           { 

  return (numberingScheme == 0 ? 0 : numberingScheme->getUnitID(aStep));
}
G4ThreeVector BscSD::SetToLocal ( G4ThreeVector  global) [private]

Definition at line 352 of file BscSD.cc.

References preStepPoint, and theEntryPoint.

Referenced by ResetForNewPrimary().

                                                   {

  const G4VTouchable* touch= preStepPoint->GetTouchable();
  theEntryPoint = touch->GetHistory()->GetTopTransform().TransformPoint(global);
  return theEntryPoint;  
}
G4ThreeVector BscSD::SetToLocalExit ( G4ThreeVector  globalPoint) [private]

Definition at line 360 of file BscSD.cc.

References postStepPoint, and theExitPoint.

Referenced by ResetForNewPrimary().

                                                            {

  const G4VTouchable* touch= postStepPoint->GetTouchable();
  theExitPoint = touch->GetHistory()->GetTopTransform().TransformPoint(globalPoint);
  return theExitPoint;  
}
void BscSD::StoreHit ( BscG4Hit hit) [private]

Definition at line 260 of file BscSD.cc.

References primID, and theHC.

Referenced by CreateNewHit().

                                 {

  if (primID<0) return;
  if (hit == 0 ) {
    edm::LogWarning("BscSim") << "BscSD: hit to be stored is NULL !!";
    return;
  }

  theHC->insert( hit );
}
void BscSD::Summarize ( ) [private]

Definition at line 396 of file BscSD.cc.

Referenced by EndOfEvent().

                      {
}
void BscSD::update ( const ::EndOfEvent ) [private]

Definition at line 435 of file BscSD.cc.

                                     {
}
void BscSD::update ( const BeginOfEvent ) [private, virtual]

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfEvent * >.

Definition at line 418 of file BscSD.cc.

References clearHits(), eventno, and LogDebug.

                                          {
  LogDebug("BscSim") << " Dispatched BeginOfEvent for " << GetName()
                       << " !" ;
   clearHits();
   eventno = (*i)()->GetEventID();
}
void BscSD::update ( const BeginOfRun ) [private, virtual]

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfRun * >.

Definition at line 425 of file BscSD.cc.

References emPDG, epPDG, and gammaPDG.

                                     {

  G4ParticleTable * theParticleTable = G4ParticleTable::GetParticleTable();
  G4String particleName;
  emPDG = theParticleTable->FindParticle(particleName="e-")->GetPDGEncoding();
  epPDG = theParticleTable->FindParticle(particleName="e+")->GetPDGEncoding();
  gammaPDG = theParticleTable->FindParticle(particleName="gamma")->GetPDGEncoding();

} 
void BscSD::UpdateHit ( ) [private]

Definition at line 331 of file BscSD.cc.

References BscG4Hit::addEnergyDeposit(), currentHit, edepositEM, edepositHAD, Eloss, LogDebug, postStepPoint, previousUnitID, primaryID, primID, BscG4Hit::setEnergyLoss(), tsID, tSliceID, and unitID.

Referenced by CreateNewHit(), and HitExists().

                      {

  if (Eloss > 0.) {
    currentHit->addEnergyDeposit(edepositEM,edepositHAD);

#ifdef debug
    LogDebug("BscSim") << "updateHit: add eloss " << Eloss <<std::endl;
    LogDebug("BscSim") << "CurrentHit=" << currentHit
                       << ", PostStepPoint=" << postStepPoint->GetPosition();
#endif
    //AZ
    currentHit->setEnergyLoss(Eloss);
  }  

  // buffer for next steps:
  tsID           = tSliceID;
  primID         = primaryID;
  previousUnitID = unitID;
}

Member Data Documentation

Definition at line 127 of file BscSD.h.

Referenced by CreateNewHit(), HitExists(), and UpdateHit().

G4VPhysicalVolume* BscSD::currentPV [private]

Definition at line 129 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float BscSD::edeposit [private]

Definition at line 137 of file BscSD.h.

Referenced by GetStepInfo(), and ProcessHits().

float BscSD::edepositEM [protected]

Definition at line 164 of file BscSD.h.

Referenced by GetStepInfo(), and UpdateHit().

float BscSD::edepositHAD [protected]

Definition at line 164 of file BscSD.h.

Referenced by GetStepInfo(), and UpdateHit().

float BscSD::Eloss [private]

Definition at line 146 of file BscSD.h.

Referenced by CreateNewHit(), GetStepInfo(), and UpdateHit().

G4int BscSD::emPDG [protected]

Definition at line 165 of file BscSD.h.

Referenced by GetStepInfo(), and update().

G4ThreeVector BscSD::entrancePoint [private]

Definition at line 113 of file BscSD.h.

Referenced by ResetForNewPrimary().

G4int BscSD::epPDG [protected]

Definition at line 166 of file BscSD.h.

Referenced by GetStepInfo(), and update().

int BscSD::eventno [private]

Definition at line 160 of file BscSD.h.

Referenced by update().

G4ThreeVector BscSD::exitPoint [private]

Definition at line 113 of file BscSD.h.

Referenced by ResetForNewPrimary().

G4int BscSD::gammaPDG [protected]

Definition at line 167 of file BscSD.h.

Referenced by GetStepInfo(), and update().

G4int BscSD::hcID [private]

Definition at line 122 of file BscSD.h.

Referenced by Initialize().

G4ThreeVector BscSD::hitPoint [private]

Definition at line 139 of file BscSD.h.

Referenced by CreateNewHit(), GetStepInfo(), and ResetForNewPrimary().

G4ThreeVector BscSD::hitPointExit [private]

Definition at line 141 of file BscSD.h.

Referenced by GetStepInfo(), and ResetForNewPrimary().

G4ThreeVector BscSD::hitPointLocal [private]

Definition at line 142 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4ThreeVector BscSD::hitPointLocalExit [private]

Definition at line 143 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float BscSD::incidentEnergy [private]

Definition at line 117 of file BscSD.h.

Referenced by CreateNewHit(), and ResetForNewPrimary().

std::string BscSD::name [private]

Reimplemented from SensitiveDetector.

Definition at line 121 of file BscSD.h.

Referenced by Initialize().

Definition at line 111 of file BscSD.h.

Referenced by BscSD(), setDetUnitId(), and ~BscSD().

float BscSD::Pabs [private]

Definition at line 144 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

int BscSD::ParentId [private]

Definition at line 152 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

short BscSD::ParticleType [private]

Definition at line 147 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float BscSD::PhiAtEntry [private]

Definition at line 150 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4StepPoint* BscSD::postStepPoint [private]

Definition at line 136 of file BscSD.h.

Referenced by GetStepInfo(), SetToLocalExit(), and UpdateHit().

G4StepPoint* BscSD::preStepPoint [private]

Definition at line 135 of file BscSD.h.

Referenced by GetStepInfo(), ResetForNewPrimary(), and SetToLocal().

uint32_t BscSD::previousUnitID [private]

Definition at line 131 of file BscSD.h.

Referenced by HitExists(), and UpdateHit().

G4int BscSD::primaryID [private]

Definition at line 132 of file BscSD.h.

Referenced by CreateNewHit(), GetStepInfo(), HitExists(), and UpdateHit().

G4int BscSD::primID [private]

Definition at line 118 of file BscSD.h.

Referenced by HitExists(), Initialize(), StoreHit(), and UpdateHit().

Definition at line 110 of file BscSD.h.

Referenced by BscSD(), clearHits(), EndOfEvent(), fillHits(), getNames(), and ~BscSD().

G4ThreeVector BscSD::theEntryPoint [private]

Definition at line 114 of file BscSD.h.

Referenced by SetToLocal().

G4ThreeVector BscSD::theExitPoint [private]

Definition at line 115 of file BscSD.h.

Referenced by SetToLocalExit().

Definition at line 123 of file BscSD.h.

Referenced by EndOfEvent(), HitExists(), Initialize(), PrintAll(), ProcessHits(), and StoreHit().

Definition at line 124 of file BscSD.h.

float BscSD::ThetaAtEntry [private]

Definition at line 149 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4Track* BscSD::theTrack [private]

Definition at line 128 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float BscSD::Tof [private]

Definition at line 145 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4int BscSD::tsID [private]

Definition at line 126 of file BscSD.h.

Referenced by HitExists(), Initialize(), and UpdateHit().

G4double BscSD::tSlice [private]

Definition at line 133 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

G4int BscSD::tSliceID [private]

Definition at line 132 of file BscSD.h.

Referenced by CreateNewHit(), GetStepInfo(), HitExists(), and UpdateHit().

uint32_t BscSD::unitID [private]

Definition at line 131 of file BscSD.h.

Referenced by CreateNewHit(), GetStepInfo(), HitExists(), and UpdateHit().

float BscSD::Vx [private]

Definition at line 153 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float BscSD::Vy [private]

Definition at line 153 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float BscSD::Vz [private]

Definition at line 153 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float BscSD::X [private]

Definition at line 154 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float BscSD::Y [private]

Definition at line 154 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().

float BscSD::Z [private]

Definition at line 154 of file BscSD.h.

Referenced by CreateNewHit(), and GetStepInfo().