Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

LCDG4CalHit Class Reference

#include <LCDG4CalHit.hh>

Inheritance diagram for LCDG4CalHit:

Inheritance graph
[legend]
Collaboration diagram for LCDG4CalHit:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LCDG4CalHit ()
 ~LCDG4CalHit ()
 LCDG4CalHit (const LCDG4CalHit &right)
const LCDG4CalHitoperator= (const LCDG4CalHit &right)
bool operator== (const LCDG4CalHit &right) const
void * operator new (size_t)
void operator delete (void *aHit)
void Draw ()
void Print ()
void SetLayer (const G4int layer)
G4int GetLayer () const
void SetSystem (const G4int sysNo)
G4int GetSystem () const
void SetBarEnd (const G4int barend)
G4int GetBarEnd () const
void SetNorth (const G4int north)
G4int GetNorth () const
void SetPhi (const G4int phi)
G4int GetPhi () const
void SetTheta (const G4int theta)
G4int GetTheta () const
void SetEdep (const G4double de)
G4double GetEdep () const
void SetEdepAbs (const G4double de)
G4double GetEdepAbs () const
void SetPos (const G4ThreeVector &xyz)
G4ThreeVector GetPos () const
G4int GetNMC () const
G4int GetTrkID (G4int ith) const
G4double GetEMC (G4int ith) const
G4double GetTimeMC (G4int ith) const
unsigned int GetCellID () const
unsigned int sioTagToLcioTag (unsigned int sioTag) const
G4int AddLayerLog (G4LogicalVolume *g4vxdlog, G4int startlayerNo)
G4int AddMcPart (G4int mcidx, G4double emc, G4double tmc)
void AddMcPartAbs (G4double emc)

Private Attributes

G4int m_layer
G4int m_sysNo
G4int m_barend
G4int m_north
G4int m_phi
G4int m_theta
G4float m_edep
G4float m_edepabs
G4ThreeVector m_pos
G4int m_nmc
std::vector< G4int > * m_trkid
std::vector< G4double > * m_emc
std::vector< G4double > * m_tmc

Constructor & Destructor Documentation

LCDG4CalHit::LCDG4CalHit  ) 
 

Definition at line 13 of file LCDG4CalHit.cc.

References m_edep, m_edepabs, m_emc, m_nmc, m_tmc, and m_trkid.

00014   : G4VHit(), m_layer(-1), m_sysNo(-1), m_barend(-1), m_phi(-1), m_theta(-1)
00015 {
00016   m_nmc=0;
00017   m_edep=0;
00018   m_edepabs=0;
00019 
00020   m_trkid=new std::vector<G4int>;
00021   m_trkid->clear();
00022   m_emc =new std::vector<G4double>;
00023   m_emc->clear();
00024   m_tmc =new std::vector<G4double>;
00025   m_tmc->clear();
00026 }

LCDG4CalHit::~LCDG4CalHit  ) 
 

Definition at line 31 of file LCDG4CalHit.cc.

References m_emc, m_tmc, and m_trkid.

00031                          {
00032   if (m_trkid) {
00033     m_trkid->clear();
00034     delete m_trkid;
00035     m_trkid=0;
00036   }
00037   if (m_emc) {
00038     m_emc->clear();
00039     delete m_emc;
00040   }
00041   if (m_tmc) {
00042     m_tmc->clear();
00043     delete m_tmc;
00044   }
00045 }

LCDG4CalHit::LCDG4CalHit const LCDG4CalHit right  ) 
 

Definition at line 50 of file LCDG4CalHit.cc.

References m_barend, m_edep, m_edepabs, m_emc, m_layer, m_nmc, m_phi, m_pos, m_sysNo, m_theta, and m_trkid.

00050                                                  : G4VHit() {
00051   m_layer  = right.m_layer;
00052   m_sysNo  = right.m_sysNo;
00053   m_barend = right.m_barend;
00054   m_edep   = right.m_edep;
00055   m_edepabs= right.m_edepabs;
00056   m_theta  = right.m_theta;
00057   m_phi    = right.m_phi;
00058   m_pos    = right.m_pos;
00059 
00060   m_trkid=new std::vector<G4int>;
00061   m_emc =new std::vector<G4double>;
00062   m_trkid->clear();
00063   m_emc->clear();
00064   int imc=0;
00065   m_nmc=right.m_nmc;
00066   for(imc=0 ; imc < right.m_nmc ; imc++) {
00067     m_trkid->push_back((*right.m_trkid)[imc]);
00068     m_emc->push_back((*right.m_emc)[imc]);
00069   }
00070 }


Member Function Documentation

G4int LCDG4CalHit::AddLayerLog G4LogicalVolume *  g4vxdlog,
G4int  startlayerNo
 

G4int LCDG4CalHit::AddMcPart G4int  mcidx,
G4double  emc,
G4double  tmc
 

Definition at line 100 of file LCDG4CalHit.cc.

References m_edep, m_emc, m_nmc, m_tmc, and m_trkid.

Referenced by LCDG4MuonSD::ProcessHits(), LCDG4LumSD::ProcessHits(), and LCDG4CalSD::ProcessHits().

00100                                                                     {
00101   int flg_same=0;
00102   int imc=0;
00103   for (imc=0 ; imc < m_nmc ; imc++) {
00104     if ((*m_trkid)[imc] == mcidx) {
00105       flg_same=imc+1;
00106       break;
00107     }
00108   }
00109 
00110   m_edep+=emc;
00111   if (flg_same) {
00112     (*m_emc)[flg_same-1] += emc;
00113   } else {
00114     m_nmc++;
00115     m_trkid->push_back(mcidx);
00116     m_emc->push_back(emc);
00117     m_tmc->push_back(tmc);
00118   }
00119 
00120   return m_nmc;
00121 }

void LCDG4CalHit::AddMcPartAbs G4double  emc  )  [inline]
 

Definition at line 88 of file LCDG4CalHit.hh.

References m_edepabs.

Referenced by LCDG4MuonSD::ProcessHits(), LCDG4LumSD::ProcessHits(), and LCDG4CalSD::ProcessHits().

00088 { m_edepabs += emc; }

void LCDG4CalHit::Draw  ) 
 

Definition at line 163 of file LCDG4CalHit.cc.

References m_pos.

00163                        {
00164   G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
00165   if(pVVisManager) {
00166     G4Circle circle(m_pos);
00167     circle.SetScreenSize(1.0);
00168     //circle.SetScreenSize(0.04);
00169     circle.SetFillStyle(G4Circle::filled);
00170     G4Colour colour(1.0,0.0,1.0); // Magenta
00171     G4VisAttributes attribs(colour);
00172     circle.SetVisAttributes(attribs);
00173     pVVisManager->Draw(circle);
00174   }
00175 }

G4int LCDG4CalHit::GetBarEnd  )  const [inline]
 

Definition at line 44 of file LCDG4CalHit.hh.

References m_barend.

00044 { return m_barend; }

unsigned int LCDG4CalHit::GetCellID  )  const
 

Definition at line 141 of file LCDG4CalHit.cc.

References LCDtowerID::GetTag(), m_layer, m_phi, m_sysNo, m_theta, LCDtowerID::SetLayer(), LCDtowerID::SetPhi(), LCDtowerID::SetSystem(), LCDtowerID::SetTheta(), and sioTagToLcioTag().

Referenced by LCDG4LcioHelper::getCalHitLcio().

00141                                           {
00142   LCDtowerID towerID(0);
00143   towerID.SetTheta(m_theta);
00144   towerID.SetPhi(m_phi);
00145   towerID.SetLayer(m_layer);
00146   towerID.SetSystem(m_sysNo);
00147   unsigned int sioTag = towerID.GetTag();
00148   // convert to LCIO format
00149   return sioTagToLcioTag( sioTag );
00150 }

G4double LCDG4CalHit::GetEdep  )  const [inline]
 

Definition at line 60 of file LCDG4CalHit.hh.

References m_edep.

Referenced by LCDG4EventAction::EndOfEventAction(), and LCDG4CalSD::ProcessHits().

00060 { return m_edep; }

G4double LCDG4CalHit::GetEdepAbs  )  const [inline]
 

Definition at line 64 of file LCDG4CalHit.hh.

References m_edepabs.

Referenced by LCDG4EventAction::EndOfEventAction(), and LCDG4CalSD::ProcessHits().

00064 { return m_edepabs; }

G4double LCDG4CalHit::GetEMC G4int  ith  )  const [inline]
 

Definition at line 75 of file LCDG4CalHit.hh.

Referenced by LCDG4EventAction::EndOfEventAction(), and LCDG4LcioHelper::getCalHitLcio().

00075 {return (*m_emc)[ith];}

G4int LCDG4CalHit::GetLayer  )  const [inline]
 

Definition at line 36 of file LCDG4CalHit.hh.

References m_layer.

Referenced by LCDG4EventAction::EndOfEventAction().

00036 { return m_layer; }

G4int LCDG4CalHit::GetNMC  )  const [inline]
 

Definition at line 71 of file LCDG4CalHit.hh.

References m_nmc.

Referenced by LCDG4EventAction::EndOfEventAction(), and LCDG4LcioHelper::getCalHitLcio().

00071 {return m_nmc;}

G4int LCDG4CalHit::GetNorth  )  const [inline]
 

Definition at line 48 of file LCDG4CalHit.hh.

References m_north.

00048 { return m_north; }

G4int LCDG4CalHit::GetPhi  )  const [inline]
 

Definition at line 52 of file LCDG4CalHit.hh.

References m_phi.

Referenced by LCDG4EventAction::EndOfEventAction().

00052 { return m_phi; }

G4ThreeVector LCDG4CalHit::GetPos  )  const [inline]
 

Definition at line 69 of file LCDG4CalHit.hh.

References m_pos.

Referenced by LCDG4LcioHelper::getCalHitLcio().

00069 { return m_pos; }

G4int LCDG4CalHit::GetSystem  )  const [inline]
 

Definition at line 40 of file LCDG4CalHit.hh.

References m_sysNo.

Referenced by LCDG4EventAction::EndOfEventAction().

00040 { return m_sysNo; }

G4int LCDG4CalHit::GetTheta  )  const [inline]
 

Definition at line 56 of file LCDG4CalHit.hh.

References m_theta.

Referenced by LCDG4EventAction::EndOfEventAction().

00056 { return m_theta; }

G4double LCDG4CalHit::GetTimeMC G4int  ith  )  const [inline]
 

Definition at line 77 of file LCDG4CalHit.hh.

Referenced by LCDG4LcioHelper::getCalHitLcio().

00077 {return (*m_tmc)[ith];}

G4int LCDG4CalHit::GetTrkID G4int  ith  )  const [inline]
 

Definition at line 73 of file LCDG4CalHit.hh.

Referenced by LCDG4EventAction::EndOfEventAction(), and LCDG4LcioHelper::getCalHitLcio().

00073 {return (*m_trkid)[ith];}

void LCDG4CalHit::operator delete void *  aHit  )  [inline]
 

Definition at line 128 of file LCDG4CalHit.hh.

References LCDG4CalHitAllocator.

00128                                                    {
00129   LCDG4CalHitAllocator.FreeSingle((LCDG4CalHit*) aHit);
00130 }

void * LCDG4CalHit::operator new size_t   )  [inline]
 

Definition at line 122 of file LCDG4CalHit.hh.

References LCDG4CalHitAllocator.

00122                                              {
00123   void *aHit;
00124   aHit = (void *) LCDG4CalHitAllocator.MallocSingle();
00125   return aHit;
00126 }

const LCDG4CalHit & LCDG4CalHit::operator= const LCDG4CalHit right  ) 
 

Definition at line 75 of file LCDG4CalHit.cc.

References m_barend, m_edep, m_edepabs, m_emc, m_layer, m_nmc, m_phi, m_pos, m_sysNo, m_theta, and m_trkid.

00075                                                                   {
00076   m_layer  = right.m_layer;
00077   m_sysNo  = right.m_sysNo;
00078   m_barend = right.m_barend;
00079   m_edep   = right.m_edep;
00080   m_edepabs= right.m_edepabs;
00081   m_theta  = right.m_theta;
00082   m_phi    = right.m_phi;
00083   m_pos    = right.m_pos;
00084 
00085   int imc=0;
00086   m_trkid->clear();
00087   m_emc->clear();
00088   m_nmc=right.m_nmc;
00089   for(imc=0 ; imc < right.m_nmc ; imc++) {
00090     m_trkid->push_back((*right.m_trkid)[imc]);
00091     m_emc->push_back((*right.m_emc)[imc]);
00092   }
00093   return *this;
00094 }

bool LCDG4CalHit::operator== const LCDG4CalHit right  )  const
 

Definition at line 126 of file LCDG4CalHit.cc.

References m_barend, m_layer, m_phi, m_sysNo, and m_theta.

00126                                                            {
00127   if(m_layer!=right.m_layer) return false;
00128   if(m_sysNo!=right.m_sysNo) return false;
00129   if(m_barend!=m_barend) return false;
00130   if(m_phi!=m_phi) return false;
00131   if(m_theta!=m_theta) return false;
00132 //    if(m_edep!=m_edep) return false;
00133 //    if(m_edepabs!=m_edepabs) return false;
00134 
00135 //    G4int    m_nmc;
00136 //    std::vector<G4int>    *m_trkid;
00137 //    std::vector<G4double> *m_emc;
00138   return true;
00139 }

void LCDG4CalHit::Print  ) 
 

Definition at line 180 of file LCDG4CalHit.cc.

References m_barend, m_edep, m_layer, m_phi, m_sysNo, and m_theta.

00180                         {
00181   G4cout << "Layer:" << m_layer << G4endl;
00182   G4cout << "Sysno:" << m_sysNo << G4endl;
00183   G4cout << "Bar/End:" << m_barend << G4endl;
00184   G4cout << "Phi:" << m_phi << G4endl;
00185   G4cout << "Theta:" << m_theta << G4endl;
00186   G4cout << "Edep:" << m_edep << G4endl;
00187 }

void LCDG4CalHit::SetBarEnd const G4int  barend  )  [inline]
 

Definition at line 42 of file LCDG4CalHit.hh.

References m_barend.

Referenced by LCDG4MuonSD::ProcessHits(), LCDG4LumSD::ProcessHits(), and LCDG4CalSD::ProcessHits().

00042 { m_barend = barend; }

void LCDG4CalHit::SetEdep const G4double  de  )  [inline]
 

Definition at line 58 of file LCDG4CalHit.hh.

References m_edep.

00058 { m_edep = de; }

void LCDG4CalHit::SetEdepAbs const G4double  de  )  [inline]
 

Definition at line 62 of file LCDG4CalHit.hh.

References m_edepabs.

00062 { m_edepabs = de; }

void LCDG4CalHit::SetLayer const G4int  layer  )  [inline]
 

Definition at line 34 of file LCDG4CalHit.hh.

References m_layer.

Referenced by LCDG4MuonSD::ProcessHits(), LCDG4LumSD::ProcessHits(), and LCDG4CalSD::ProcessHits().

00034 { m_layer = layer; }

void LCDG4CalHit::SetNorth const G4int  north  )  [inline]
 

Definition at line 46 of file LCDG4CalHit.hh.

References m_north.

Referenced by LCDG4CalSD::ProcessHits().

00046 { m_north = north; }

void LCDG4CalHit::SetPhi const G4int  phi  )  [inline]
 

Definition at line 50 of file LCDG4CalHit.hh.

References m_phi.

Referenced by LCDG4MuonSD::ProcessHits(), LCDG4LumSD::ProcessHits(), and LCDG4CalSD::ProcessHits().

00050 { m_phi = phi; }

void LCDG4CalHit::SetPos const G4ThreeVector &  xyz  )  [inline]
 

Definition at line 67 of file LCDG4CalHit.hh.

References m_pos.

Referenced by LCDG4MuonSD::ProcessHits(), LCDG4LumSD::ProcessHits(), and LCDG4CalSD::ProcessHits().

00067 { m_pos = xyz; }

void LCDG4CalHit::SetSystem const G4int  sysNo  )  [inline]
 

Definition at line 38 of file LCDG4CalHit.hh.

References m_sysNo.

Referenced by LCDG4MuonSD::ProcessHits(), LCDG4LumSD::ProcessHits(), and LCDG4CalSD::ProcessHits().

00038 { m_sysNo = sysNo; }

void LCDG4CalHit::SetTheta const G4int  theta  )  [inline]
 

Definition at line 54 of file LCDG4CalHit.hh.

References m_theta.

Referenced by LCDG4MuonSD::ProcessHits(), LCDG4LumSD::ProcessHits(), and LCDG4CalSD::ProcessHits().

00054 { m_theta = theta; }

unsigned int LCDG4CalHit::sioTagToLcioTag unsigned int  sioTag  )  const
 

Definition at line 152 of file LCDG4CalHit.cc.

Referenced by GetCellID().

00152                                                                    {
00153   // Left-most four bits: ABCD (sio) -> DABC (lcio)
00154   unsigned lcioTag = sioTag & 0x0fffffff;
00155   lcioTag |= (sioTag & 0xe0000000) >> 1;
00156   lcioTag |= (sioTag & 0x10000000) << 3;
00157   return lcioTag;
00158 }


Member Data Documentation

G4int LCDG4CalHit::m_barend [private]
 

Definition at line 96 of file LCDG4CalHit.hh.

Referenced by GetBarEnd(), LCDG4CalHit(), operator=(), operator==(), Print(), and SetBarEnd().

G4float LCDG4CalHit::m_edep [private]
 

Definition at line 104 of file LCDG4CalHit.hh.

Referenced by AddMcPart(), GetEdep(), LCDG4CalHit(), operator=(), Print(), and SetEdep().

G4float LCDG4CalHit::m_edepabs [private]
 

Definition at line 106 of file LCDG4CalHit.hh.

Referenced by AddMcPartAbs(), GetEdepAbs(), LCDG4CalHit(), operator=(), and SetEdepAbs().

std::vector<G4double>* LCDG4CalHit::m_emc [private]
 

Definition at line 113 of file LCDG4CalHit.hh.

Referenced by AddMcPart(), LCDG4CalHit(), operator=(), and ~LCDG4CalHit().

G4int LCDG4CalHit::m_layer [private]
 

Definition at line 92 of file LCDG4CalHit.hh.

Referenced by GetCellID(), GetLayer(), LCDG4CalHit(), operator=(), operator==(), Print(), and SetLayer().

G4int LCDG4CalHit::m_nmc [private]
 

Definition at line 109 of file LCDG4CalHit.hh.

Referenced by AddMcPart(), GetNMC(), LCDG4CalHit(), and operator=().

G4int LCDG4CalHit::m_north [private]
 

Definition at line 98 of file LCDG4CalHit.hh.

Referenced by GetNorth(), and SetNorth().

G4int LCDG4CalHit::m_phi [private]
 

Definition at line 100 of file LCDG4CalHit.hh.

Referenced by GetCellID(), GetPhi(), LCDG4CalHit(), operator=(), operator==(), Print(), and SetPhi().

G4ThreeVector LCDG4CalHit::m_pos [private]
 

Definition at line 107 of file LCDG4CalHit.hh.

Referenced by Draw(), GetPos(), LCDG4CalHit(), operator=(), and SetPos().

G4int LCDG4CalHit::m_sysNo [private]
 

Definition at line 94 of file LCDG4CalHit.hh.

Referenced by GetCellID(), GetSystem(), LCDG4CalHit(), operator=(), operator==(), Print(), and SetSystem().

G4int LCDG4CalHit::m_theta [private]
 

Definition at line 102 of file LCDG4CalHit.hh.

Referenced by GetCellID(), GetTheta(), LCDG4CalHit(), operator=(), operator==(), Print(), and SetTheta().

std::vector<G4double>* LCDG4CalHit::m_tmc [private]
 

Definition at line 115 of file LCDG4CalHit.hh.

Referenced by AddMcPart(), LCDG4CalHit(), and ~LCDG4CalHit().

std::vector<G4int>* LCDG4CalHit::m_trkid [private]
 

Definition at line 111 of file LCDG4CalHit.hh.

Referenced by AddMcPart(), LCDG4CalHit(), operator=(), and ~LCDG4CalHit().


The documentation for this class was generated from the following files:
Generated on Thu Oct 7 18:45:04 2004 for LCDG4 by doxygen 1.3.4