BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
BesMucDigitizer Class Reference

#include <BesMucDigitizer.hh>

Inheritance diagram for BesMucDigitizer:

Public Member Functions

 BesMucDigitizer (G4String modName)
 ~BesMucDigitizer ()
virtual void Digitize ()
 BesMucDigitizer (G4String modName)
 ~BesMucDigitizer ()
virtual void Digitize ()
 BesMucDigitizer (G4String modName)
 ~BesMucDigitizer ()
virtual void Digitize ()

Detailed Description

Constructor & Destructor Documentation

◆ BesMucDigitizer() [1/3]

BesMucDigitizer::BesMucDigitizer ( G4String modName)

Definition at line 31 of file BesMucDigitizer.cc.

31 : G4VDigitizerModule( modName ) {
32 collectionName.push_back( "BesMucDigisCollection" );
33 m_besMucDigisCollection = 0;
34
35 // Standard unit: length in mm; time in ns; energy in MeV; att in mm;
36 // Here: att in mm; vel in m/s; threshold in MeV; mucRes in ps;
37
38 // retrieve G4Svc
39 ISvcLocator* svcLocator = Gaudi::svcLocator();
40 IG4Svc* tmpSvc;
41 StatusCode sc = svcLocator->service( "G4Svc", tmpSvc );
42 // m_G4Svc = dynamic_cast<G4Svc *>(tmpSvc);
43 m_G4Svc = tmpSvc;
44
45 // get Muc Ntuple from G4Svc
46 if ( m_G4Svc->MucRootFlag() )
47 {
48 m_tupleMuc = m_G4Svc->GetTupleMuc();
49 sc = m_tupleMuc->addItem( "part", m_part );
50 sc = m_tupleMuc->addItem( "seg", m_seg );
51 sc = m_tupleMuc->addItem( "gap", m_gap );
52 sc = m_tupleMuc->addItem( "strip", m_strip );
53 }
54
55 Initialize();
56}

◆ ~BesMucDigitizer() [1/3]

BesMucDigitizer::~BesMucDigitizer ( )

Definition at line 58 of file BesMucDigitizer.cc.

58{}

◆ BesMucDigitizer() [2/3]

BesMucDigitizer::BesMucDigitizer ( G4String modName)

◆ ~BesMucDigitizer() [2/3]

BesMucDigitizer::~BesMucDigitizer ( )

◆ BesMucDigitizer() [3/3]

BesMucDigitizer::BesMucDigitizer ( G4String modName)

◆ ~BesMucDigitizer() [3/3]

BesMucDigitizer::~BesMucDigitizer ( )

Member Function Documentation

◆ Digitize() [1/3]

void BesMucDigitizer::Digitize ( )
virtual

Definition at line 73 of file BesMucDigitizer.cc.

73 {
74 Initialize();
75
76 m_besMucDigisCollection = new BesMucDigisCollection( moduleName, collectionName[0] );
77 G4DigiManager* DigiMan = G4DigiManager::GetDMpointer();
78
79 // hits collection ID
80 G4int THCID;
81 THCID = DigiMan->GetHitsCollectionID( "BesMucHitsCollection" );
82
83 // hits collection
84 BesMucHitsCollection* THC = 0;
85 THC = (BesMucHitsCollection*)( DigiMan->GetHitsCollection( THCID ) );
86
87 if ( THC )
88 {
89 G4int trackIndex, part, seg, gap, strip;
90 BesMucDigit* aDigit = new BesMucDigit();
91
92 G4int n_hit = THC->entries();
93 for ( G4int i = 0; i < n_hit; i++ )
94 {
95 aDigit->SetHit( ( *THC )[i] );
96 trackIndex = aDigit->GetTrackIndex();
97 part = aDigit->GetPart();
98 seg = aDigit->GetSeg();
99 gap = aDigit->GetGap();
100 strip = aDigit->GetNearestStripNo();
101
102 // fill muc Ntuple
103 if ( m_G4Svc->MucRootFlag() )
104 {
105 m_part = part;
106 m_seg = seg;
107 m_gap = gap;
108 m_strip = strip;
109
110 m_tupleMuc->write();
111 }
112
113 ( *THC )[i]->SetPart( part );
114 ( *THC )[i]->SetSeg( seg );
115 ( *THC )[i]->SetGap( gap );
116 ( *THC )[i]->SetStrip( strip );
117 if ( m_stripID[part][seg][gap][strip] == 0 )
118 { NewDigi( trackIndex, part, seg, gap, strip ); }
119 else { OldDigi(); }
120 }
121 // Smear();
122 StoreDigiCollection( m_besMucDigisCollection );
123 delete aDigit;
124 }
125}
G4TDigiCollection< BesMucDigi > BesMucDigisCollection
G4THitsCollection< BesMucHit > BesMucHitsCollection
G4int GetNearestStripNo()
void SetHit(BesMucHit *hit)

◆ Digitize() [2/3]

virtual void BesMucDigitizer::Digitize ( )
virtual

◆ Digitize() [3/3]

virtual void BesMucDigitizer::Digitize ( )
virtual

The documentation for this class was generated from the following files: