CMS 3D CMS Logo

BscSD Class Reference

#include <SimG4CMS/Forward/interface/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 ::EndOfEvent *)
void update (const BeginOfEvent *)
 This routine will be called when the appropriate signal arrives.
void update (const BeginOfRun *)
 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(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), it, LogDebug, SensitiveDetectorCatalog::logicalNames(), numberingScheme, SensitiveDetector::Register(), and slave.

00047                                                                         :
00048   SensitiveTkDetector(name, cpv, clg, p), numberingScheme(0), name(name),
00049   hcID(-1), theHC(0), theManager(manager), currentHit(0), theTrack(0), 
00050   currentPV(0), unitID(0),  previousUnitID(0), preStepPoint(0), 
00051   postStepPoint(0), eventno(0){
00052     
00053   //Add Bsc Sentitive Detector Name
00054   collectionName.insert(name);
00055     
00056     
00057   //Parameters
00058   edm::ParameterSet m_p = p.getParameter<edm::ParameterSet>("BscSD");
00059   int verbn = m_p.getUntrackedParameter<int>("Verbosity");
00060   //int verbn = 1;
00061     
00062   SetVerboseLevel(verbn);
00063   LogDebug("BscSim") 
00064     << "*******************************************************\n"
00065     << "*                                                     *\n"
00066     << "* Constructing a BscSD  with name " << name << "\n"
00067     << "*                                                     *\n"
00068     << "*******************************************************";
00069     
00070     
00071   slave  = new TrackingSlaveSD(name);
00072     
00073   //
00074   // attach detectors (LogicalVolumes)
00075   //
00076   std::vector<std::string> lvNames = clg.logicalNames(name);
00077 
00078   this->Register();
00079 
00080   for (std::vector<std::string>::iterator it=lvNames.begin();  
00081        it !=lvNames.end(); it++) {
00082     this->AssignSD(*it);
00083     edm::LogInfo("BscSim") << "BscSD : Assigns SD to LV " << (*it);
00084   }
00085     
00086   if      (name == "BSCHits") {
00087     if (verbn > 0) {
00088       edm::LogInfo("BscSim") << "name = BSCHits and  new BscNumberingSchem";
00089     }
00090     numberingScheme = new BscNumberingScheme() ;
00091   } else {
00092     edm::LogWarning("BscSim") << "BscSD: ReadoutName "<<name<<" not supported";
00093   }
00094   
00095   edm::LogInfo("BscSim") << "BscSD: Instantiation completed";
00096 }

BscSD::~BscSD (  )  [virtual]

Definition at line 101 of file BscSD.cc.

References numberingScheme, and slave.

00101               { 
00102   //AZ:
00103   if (slave) delete slave; 
00104 
00105   if (numberingScheme)
00106     delete numberingScheme;
00107 
00108 }


Member Function Documentation

void BscSD::clear ( void   )  [virtual]

Definition at line 424 of file BscSD.cc.

00424                   {
00425 } 

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

Implements SensitiveDetector.

Definition at line 462 of file BscSD.cc.

References TrackingSlaveSD::Initialize(), and slave.

Referenced by update().

00462                      {
00463   //AZ:
00464   slave->Initialize();
00465 }

void BscSD::CreateNewHit (  )  [private]

Definition at line 272 of file BscSD.cc.

References currentHit, currentPV, Eloss, lat::endl(), hitPoint, hitPointLocal, hitPointLocalExit, incidentEnergy, LogDebug, NULL, Pabs, ParentId, 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().

00272                          {
00273 
00274 #ifdef debug
00275   LogDebug("BscSim") << "BscSD CreateNewHit for"
00276                      << " PV "     << currentPV->GetName()
00277                      << " PVid = " << currentPV->GetCopyNo()
00278                      << " Unit "   << unitID <<std::endl;
00279   LogDebug("BscSim") << " primary "    << primaryID
00280                      << " time slice " << tSliceID 
00281                      << " For Track  " << theTrack->GetTrackID()
00282                      << " which is a " << theTrack->GetDefinition()->GetParticleName();
00283            
00284   if (theTrack->GetTrackID()==1) {
00285     LogDebug("BscSim") << " of energy "     << theTrack->GetTotalEnergy();
00286   } else {
00287     LogDebug("BscSim") << " daughter of part. " << theTrack->GetParentID();
00288   }
00289 
00290   LogDebug("BscSim")  << " and created by " ;
00291   if (theTrack->GetCreatorProcess()!=NULL)
00292     LogDebug("BscSim") << theTrack->GetCreatorProcess()->GetProcessName() ;
00293   else 
00294     LogDebug("BscSim") << "NO process";
00295   LogDebug("BscSim") << std::endl;
00296 #endif          
00297     
00298 
00299   currentHit = new BscG4Hit;
00300   currentHit->setTrackID(primaryID);
00301   currentHit->setTimeSlice(tSlice);
00302   currentHit->setUnitID(unitID);
00303   currentHit->setIncidentEnergy(incidentEnergy);
00304 
00305   currentHit->setPabs(Pabs);
00306   currentHit->setTof(Tof);
00307   currentHit->setEnergyLoss(Eloss);
00308   currentHit->setParticleType(ParticleType);
00309   currentHit->setThetaAtEntry(ThetaAtEntry);
00310   currentHit->setPhiAtEntry(PhiAtEntry);
00311 
00312 // currentHit->setEntry(entrancePoint);
00313   currentHit->setEntry(hitPoint);
00314 
00315   currentHit->setEntryLocalP(hitPointLocal);
00316   currentHit->setExitLocalP(hitPointLocalExit);
00317 
00318   currentHit->setParentId(ParentId);
00319   currentHit->setVx(Vx);
00320   currentHit->setVy(Vy);
00321   currentHit->setVz(Vz);
00322 
00323   currentHit->setX(X);
00324   currentHit->setY(Y);
00325   currentHit->setZ(Z);
00326 
00327   UpdateHit();
00328   
00329   StoreHit(currentHit);
00330 }        

void BscSD::DrawAll (  )  [virtual]

Definition at line 428 of file BscSD.cc.

00428                     {
00429 } 

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

Reimplemented from SensitiveDetector.

Definition at line 372 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.

00372                                         {
00373 
00374   // here we loop over transient hits and make them persistent
00375   if(theHC->entries() > 100){
00376     LogDebug("BscSim") << "BscSD: warning!!! Number of hits exceed 100 and =" << theHC->entries() << "\n";
00377   }
00378   for (int j=0; j<theHC->entries() && j<100; j++) {
00379     //AZ:
00380     BscG4Hit* aHit = (*theHC)[j];
00381     LogDebug("BscSim") << "hit number" << j << "unit ID = "<<aHit->getUnitID()<< "\n";
00382     LogDebug("BscSim") << "entry z " << aHit->getEntry().z()<< "\n";
00383     LogDebug("BscSim") << "entr theta " << aHit->getThetaAtEntry()<< "\n";
00384 
00385     Local3DPoint locExitPoint(0,0,0);
00386     Local3DPoint locEntryPoint(aHit->getEntry().x(),
00387                                aHit->getEntry().y(),
00388                                aHit->getEntry().z());
00389     slave->processHits(PSimHit(locEntryPoint,locExitPoint,
00390                                aHit->getPabs(),
00391                                aHit->getTof(),
00392                                aHit->getEnergyLoss(),
00393                                aHit->getParticleType(),
00394                                aHit->getUnitID(),
00395                                aHit->getTrackID(),
00396                                aHit->getThetaAtEntry(),
00397                                aHit->getPhiAtEntry()));
00398 
00399     /*
00400       aHit->getEM(),
00401       aHit->getHadr(),
00402       aHit->getIncidentEnergy(),
00403       aHit->getTimeSlice(),
00404       aHit->getEntry(),
00405       aHit->getEntryLocalP(),
00406       aHit->getExitLocalP(),
00407       aHit->getParentId(),
00408       aHit->getX(), 
00409       aHit->getY(), 
00410       aHit->getZ(), 
00411       aHit->getVx(), 
00412       aHit->getVy(), 
00413       aHit->getVz() 
00414     */
00415   }
00416   Summarize();
00417 }

void BscSD::fillHits ( edm::PSimHitContainer c,
std::string  use 
) [virtual]

Implements SensitiveTkDetector.

Definition at line 438 of file BscSD.cc.

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

00438                                                         {
00439   if (slave->name() == n) c=slave->hits();
00440 }

double BscSD::getEnergyDeposit ( G4Step *  step  )  [virtual]

Definition at line 110 of file BscSD.cc.

Referenced by GetStepInfo().

00110                                             {
00111   return aStep->GetTotalEnergyDeposit();
00112 }

std::vector< std::string > BscSD::getNames (  )  [virtual]

Reimplemented from SensitiveDetector.

Definition at line 467 of file BscSD.cc.

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

00467                                     {
00468   std::vector<std::string> temp;
00469   temp.push_back(slave->name());
00470   return temp;
00471 }

void BscSD::GetStepInfo ( G4Step *  aStep  )  [private]

Definition at line 152 of file BscSD.cc.

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

Referenced by ProcessHits().

00152                                      {
00153   
00154   preStepPoint = aStep->GetPreStepPoint(); 
00155   postStepPoint= aStep->GetPostStepPoint(); 
00156   theTrack     = aStep->GetTrack();   
00157   hitPoint     = preStepPoint->GetPosition();   
00158   currentPV    = preStepPoint->GetPhysicalVolume();
00159   hitPointExit = postStepPoint->GetPosition();  
00160 
00161   hitPointLocal = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPoint);
00162   hitPointLocalExit = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPointExit);
00163 
00164 
00165   G4int particleCode = theTrack->GetDefinition()->GetPDGEncoding();
00166   LogDebug("BscSim") <<  "  BscSD :particleType =  " << theTrack->GetDefinition()->GetParticleName() <<std::endl;
00167   if (particleCode == emPDG ||
00168       particleCode == epPDG ||
00169       particleCode == gammaPDG ) {
00170     edepositEM  = getEnergyDeposit(aStep); edepositHAD = 0.;
00171   } else {
00172     edepositEM  = 0.; edepositHAD = getEnergyDeposit(aStep);
00173   }
00174   edeposit = aStep->GetTotalEnergyDeposit();
00175   tSlice    = (postStepPoint->GetGlobalTime() )/nanosecond;
00176   tSliceID  = (int) tSlice;
00177   unitID    = setDetUnitId(aStep);
00178 #ifdef debug
00179   LogDebug("BscSim") << "unitID=" << unitID <<std::endl;
00180 #endif
00181   primaryID    = theTrack->GetTrackID();
00182   //  Position     = hitPoint;
00183   Pabs         = aStep->GetPreStepPoint()->GetMomentum().mag()/GeV;
00184   Tof          = aStep->GetPostStepPoint()->GetGlobalTime()/nanosecond;
00185   Eloss        = aStep->GetTotalEnergyDeposit()/GeV;
00186   ParticleType = theTrack->GetDefinition()->GetPDGEncoding();      
00187   ThetaAtEntry = aStep->GetPreStepPoint()->GetPosition().theta()/deg;
00188   PhiAtEntry   = aStep->GetPreStepPoint()->GetPosition().phi()/deg;
00189 
00190   ParentId = theTrack->GetParentID();
00191   Vx = theTrack->GetVertexPosition().x();
00192   Vy = theTrack->GetVertexPosition().y();
00193   Vz = theTrack->GetVertexPosition().z();
00194   X  = hitPoint.x();
00195   Y  = hitPoint.y();
00196   Z  = hitPoint.z();
00197 }

G4bool BscSD::HitExists (  )  [private]

Definition at line 205 of file BscSD.cc.

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

Referenced by ProcessHits().

00205                         {
00206   if (primaryID<1) {
00207     edm::LogWarning("BscSim") << "***** BscSD error: primaryID = " 
00208                                   << primaryID
00209                                   << " maybe detector name changed";
00210   }
00211 
00212   // Update if in the same detector, time-slice and for same track   
00213   //  if (primaryID == primID && tSliceID == tsID && unitID==previousUnitID) {
00214   if (tSliceID == tsID && unitID==previousUnitID) {
00215     //AZ:
00216     UpdateHit();
00217     return true;
00218   }
00219   // Reset entry point for new primary
00220   if (primaryID != primID)
00221     ResetForNewPrimary();
00222    
00223   //look in the HitContainer whether a hit with the same primID, unitID,
00224   //tSliceID already exists:
00225    
00226   G4bool found = false;
00227 
00228   //    LogDebug("BscSim") << "BscSD: HCollection=  " << theHC->entries()    <<std::endl;
00229   
00230   for (int j=0; j<theHC->entries()&&!found; j++) {
00231     BscG4Hit* aPreviousHit = (*theHC)[j];
00232     if (aPreviousHit->getTrackID()     == primaryID &&
00233         aPreviousHit->getTimeSliceID() == tSliceID  &&
00234         aPreviousHit->getUnitID()      == unitID       ) {
00235       //AZ:
00236       currentHit = aPreviousHit;
00237       found      = true;
00238     }
00239   }          
00240 
00241   if (found) {
00242     //AZ:
00243     UpdateHit();
00244     return true;
00245   } else {
00246     return false;
00247   }    
00248 }

void BscSD::Initialize ( G4HCofThisEvent *  HCE  )  [virtual]

Reimplemented from SensitiveDetector.

Definition at line 114 of file BscSD.cc.

References lat::endl(), hcID, LogDebug, name, primID, theHC, and tsID.

00114                                             { 
00115 #ifdef debug
00116   LogDebug("BscSim") << "BscSD : Initialize called for " << name << std::endl;
00117 #endif
00118 
00119   theHC = new BscG4HitCollection(name, collectionName[0]);
00120   if (hcID<0) 
00121     hcID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
00122   HCE->AddHitsCollection(hcID, theHC);
00123 
00124   tsID   = -2;
00125   primID = -2;
00126 
00128 }

void BscSD::PrintAll (  )  [virtual]

Definition at line 432 of file BscSD.cc.

References LogDebug, and theHC.

00432                      {
00433   LogDebug("BscSim") << "BscSD: Collection " << theHC->GetName() << "\n";
00434   theHC->PrintAllHits();
00435 } 

bool BscSD::ProcessHits ( G4Step *  aStep,
G4TouchableHistory *   
) [virtual]

Implements SensitiveDetector.

Definition at line 131 of file BscSD.cc.

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

00131                                                              {
00132 
00133   if (aStep == NULL) {
00134     return true;
00135   } else {
00136     GetStepInfo(aStep);
00137     //   LogDebug("BscSim") << edeposit <<std::endl;
00138 
00139     //AZ
00140 #ifdef debug
00141     LogDebug("BscSim") << "BscSD :  number of hits = " << theHC->entries() << std::endl;
00142 #endif
00143 
00144     if (HitExists() == false && edeposit>0. &&  theHC->entries()< 100 ){ 
00145       CreateNewHit();
00146       return true;
00147     }
00148   }
00149   return true;
00150 } 

void BscSD::ResetForNewPrimary (  )  [private]

Definition at line 251 of file BscSD.cc.

References entrancePoint, exitPoint, hitPoint, hitPointExit, incidentEnergy, preStepPoint, SetToLocal(), and SetToLocalExit().

Referenced by HitExists().

00251                                {
00252   
00253   entrancePoint  = SetToLocal(hitPoint);
00254   exitPoint      = SetToLocalExit(hitPointExit);
00255   incidentEnergy = preStepPoint->GetKineticEnergy();
00256 
00257 }

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().

00199                                            { 
00200 
00201   return (numberingScheme == 0 ? 0 : numberingScheme->getUnitID(aStep));
00202 }

G4ThreeVector BscSD::SetToLocal ( G4ThreeVector  global  )  [private]

Definition at line 356 of file BscSD.cc.

References preStepPoint, and theEntryPoint.

Referenced by ResetForNewPrimary().

00356                                                    {
00357 
00358   const G4VTouchable* touch= preStepPoint->GetTouchable();
00359   theEntryPoint = touch->GetHistory()->GetTopTransform().TransformPoint(global);
00360   return theEntryPoint;  
00361 }

G4ThreeVector BscSD::SetToLocalExit ( G4ThreeVector  globalPoint  )  [private]

Definition at line 364 of file BscSD.cc.

References postStepPoint, and theExitPoint.

Referenced by ResetForNewPrimary().

00364                                                             {
00365 
00366   const G4VTouchable* touch= postStepPoint->GetTouchable();
00367   theExitPoint = touch->GetHistory()->GetTopTransform().TransformPoint(globalPoint);
00368   return theExitPoint;  
00369 }

void BscSD::StoreHit ( BscG4Hit hit  )  [private]

Definition at line 260 of file BscSD.cc.

References primID, and theHC.

Referenced by CreateNewHit().

00260                                  {
00261 
00262   if (primID<0) return;
00263   if (hit == 0 ) {
00264     edm::LogWarning("BscSim") << "BscSD: hit to be stored is NULL !!";
00265     return;
00266   }
00267 
00268   theHC->insert( hit );
00269 }

void BscSD::Summarize (  )  [private]

Definition at line 420 of file BscSD.cc.

Referenced by EndOfEvent().

00420                       {
00421 }

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

Definition at line 459 of file BscSD.cc.

00459                                      {
00460 }

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

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfEvent * >.

Definition at line 442 of file BscSD.cc.

References clearHits(), eventno, and LogDebug.

00442                                           {
00443   LogDebug("BscSim") << " Dispatched BeginOfEvent for " << GetName()
00444                        << " !" ;
00445    clearHits();
00446    eventno = (*i)()->GetEventID();
00447 }

void BscSD::update ( const BeginOfRun  )  [private, virtual]

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfRun * >.

Definition at line 449 of file BscSD.cc.

References emPDG, epPDG, and gammaPDG.

00449                                      {
00450 
00451   G4ParticleTable * theParticleTable = G4ParticleTable::GetParticleTable();
00452   G4String particleName;
00453   emPDG = theParticleTable->FindParticle(particleName="e-")->GetPDGEncoding();
00454   epPDG = theParticleTable->FindParticle(particleName="e+")->GetPDGEncoding();
00455   gammaPDG = theParticleTable->FindParticle(particleName="gamma")->GetPDGEncoding();
00456 
00457 } 

void BscSD::UpdateHit (  )  [private]

Definition at line 333 of file BscSD.cc.

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

Referenced by CreateNewHit(), and HitExists().

00333                       {
00334   //
00335   if (Eloss > 0.) {
00336     currentHit->addEnergyDeposit(edepositEM,edepositHAD);
00337 
00338 #ifdef debug
00339     LogDebug("BscSim") << "updateHit: add eloss " << Eloss <<std::endl;
00340     LogDebug("BscSim") << "CurrentHit=" << currentHit
00341                        << ", PostStepPoint=" << postStepPoint->GetPosition();
00342 #endif
00343     //AZ
00344     currentHit->setEnergyLoss(Eloss);
00345   }  
00346 
00347 
00348 
00349   // buffer for next steps:
00350   tsID           = tSliceID;
00351   primID         = primaryID;
00352   previousUnitID = unitID;
00353 }


Member Data Documentation

BscG4Hit* BscSD::currentHit [private]

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().

BscNumberingScheme* BscSD::numberingScheme [private]

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.

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().

TrackingSlaveSD* BscSD::slave [private]

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().

BscG4HitCollection* BscSD::theHC [private]

Definition at line 123 of file BscSD.h.

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

const SimTrackManager* BscSD::theManager [private]

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:15:04 2009 for CMSSW by  doxygen 1.5.4