BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TDigiEvent.cxx
Go to the documentation of this file.
1#include "RootEventData/TDigiEvent.h"
2#include "TCollection.h" // Declares TIter
3#include <iostream>
4
6;
7
8// Allocate the TObjArray just once
9TObjArray* TDigiEvent::s_staticMdcDigiCol = 0;
10TObjArray* TDigiEvent::s_staticEmcDigiCol = 0;
11TObjArray* TDigiEvent::s_staticTofDigiCol = 0;
12TObjArray* TDigiEvent::s_staticMucDigiCol = 0;
13TObjArray* TDigiEvent::s_staticLumiDigiCol = 0;
14
15//***************************************************************
17 if ( !s_staticMdcDigiCol ) { s_staticMdcDigiCol = new TObjArray(); }
18 m_mdcDigiCol = s_staticMdcDigiCol;
19
20 if ( !s_staticEmcDigiCol ) { s_staticEmcDigiCol = new TObjArray(); }
21 m_emcDigiCol = s_staticEmcDigiCol;
22
23 if ( !s_staticTofDigiCol ) { s_staticTofDigiCol = new TObjArray(); }
24 m_tofDigiCol = s_staticTofDigiCol;
25
26 if ( !s_staticMucDigiCol ) { s_staticMucDigiCol = new TObjArray(); }
27 m_mucDigiCol = s_staticMucDigiCol;
28
29 if ( !s_staticLumiDigiCol ) { s_staticLumiDigiCol = new TObjArray(); }
30 m_lumiDigiCol = s_staticLumiDigiCol;
31
32 Clear();
33}
34
35//*****************************************************************
37
38 if ( m_mdcDigiCol == s_staticMdcDigiCol ) s_staticMdcDigiCol = 0;
39 m_mdcDigiCol->Delete();
40 delete m_mdcDigiCol;
41 m_mdcDigiCol = 0;
42
43 if ( m_emcDigiCol == s_staticEmcDigiCol ) s_staticEmcDigiCol = 0;
44 m_emcDigiCol->Delete();
45 delete m_emcDigiCol;
46 m_emcDigiCol = 0;
47
48 if ( m_tofDigiCol == s_staticTofDigiCol ) s_staticTofDigiCol = 0;
49 m_tofDigiCol->Delete();
50 delete m_tofDigiCol;
51 m_tofDigiCol = 0;
52
53 if ( m_mucDigiCol == s_staticMucDigiCol ) s_staticMucDigiCol = 0;
54 m_mucDigiCol->Delete();
55 delete m_mucDigiCol;
56 m_mucDigiCol = 0;
57
58 if ( m_lumiDigiCol == s_staticLumiDigiCol ) s_staticLumiDigiCol = 0;
59 m_lumiDigiCol->Delete();
60 delete m_lumiDigiCol;
61 m_lumiDigiCol = 0;
62}
63
64//*****************************************************************
65void TDigiEvent::initialize( Bool_t fromMc ) { m_fromMc = fromMc; }
66
67//*****************************************************************
68void TDigiEvent::Clear( Option_t* option ) {
69 /*
70 const Int_t nd = 20000;
71 static Int_t limit = 100;
72 static Int_t ind=0;
73 static TMdcDigi* keep[nd];
74
75
76 Int_t n = m_mdcDigiCol->GetEntries();
77 if (n>limit) {
78 limit=n+10;
79 if (limit > nd)
80 std::cout << "!!!Warning: limit for TMdcDigi is greater than " << nd << std::endl;
81 for (Int_t j=0;j<ind;j++) delete keep[j];
82 ind = 0;
83 }
84 for (Int_t i=0;i<n;i++) keep[ind+i] = (TMdcDigi*)m_mdcDigiCol->At(i);
85 ind += n;
86 if (ind > nd-limit) {
87 for (Int_t j=0;j<ind;j++) delete keep[j];
88 ind = 0;
89 }
90 m_mdcDigiCol->Clear();
91*/
92}
93
94//*****************************************************************************
95void TDigiEvent::Print( Option_t* option ) const {
96 TObject::Print( option );
97 std::cout.precision( 2 );
98 if ( m_mdcDigiCol )
99 std::cout << "Number of TMdcDigis " << m_mdcDigiCol->GetEntries() << std::endl;
100 else std::cout << "Number of TMdcDigis 0" << std::endl;
101}
102
103/// Mdc
104void TDigiEvent::addMdcDigi( TMdcDigi* digi ) { m_mdcDigiCol->Add( digi ); }
105
106const TMdcDigi* TDigiEvent::getMdcDigi( Int_t i ) const {
107 if ( Int_t( i ) >= m_mdcDigiCol->GetEntries() ) return 0;
108 return (TMdcDigi*)m_mdcDigiCol->At( i );
109}
110/// Emc
111void TDigiEvent::addEmcDigi( TEmcDigi* digi ) { m_emcDigiCol->Add( digi ); }
112
113const TEmcDigi* TDigiEvent::getEmcDigi( Int_t i ) const {
114 if ( Int_t( i ) >= m_emcDigiCol->GetEntries() ) return 0;
115 return (TEmcDigi*)m_emcDigiCol->At( i );
116}
117
118/// Tof
119void TDigiEvent::addTofDigi( TTofDigi* digi ) { m_tofDigiCol->Add( digi ); }
120
121const TTofDigi* TDigiEvent::getTofDigi( Int_t i ) const {
122 if ( Int_t( i ) >= m_tofDigiCol->GetEntries() ) return 0;
123 return (TTofDigi*)m_tofDigiCol->At( i );
124}
125
126/// Muc
127void TDigiEvent::addMucDigi( TMucDigi* digi ) { m_mucDigiCol->Add( digi ); }
128
129const TMucDigi* TDigiEvent::getMucDigi( Int_t i ) const {
130 if ( Int_t( i ) >= m_mucDigiCol->GetEntries() ) return 0;
131 return (TMucDigi*)m_mucDigiCol->At( i );
132}
133
134/// Lumi
135void TDigiEvent::addLumiDigi( TLumiDigi* digi ) { m_lumiDigiCol->Add( digi ); }
136
137const TLumiDigi* TDigiEvent::getLumiDigi( Int_t i ) const {
138 if ( i >= m_lumiDigiCol->GetEntries() ) return 0;
139 return (TLumiDigi*)m_lumiDigiCol->At( i );
140}
ClassImp(TDigiEvent)
void addMucDigi(TMucDigi *digi)
Add a MucDigi into the MUC Data collection.
void addEmcDigi(TEmcDigi *digi)
Add a TkrDigi into the TKR data collection.
const TMucDigi * getMucDigi(Int_t i) const
retrieve a MucDigi From the collection, using the index into the array
virtual ~TDigiEvent()
void Print(Option_t *option="") const
void initialize(Bool_t fromMc=true)
void Clear(Option_t *option="")
const TMdcDigi * getMdcDigi(Int_t i) const
retrieve a TkrDigi from the collection, using the index into the array
void addTofDigi(TTofDigi *digi)
Add a TofDigi into the TOF Data collection.
const TEmcDigi * getEmcDigi(Int_t i) const
retrieve a EmcDigi from the collection, using the index into the array
void addMdcDigi(TMdcDigi *digi)
Add a TkrDigi into the TKR data collection.
const TLumiDigi * getLumiDigi(Int_t i) const
retrieve a LumiDigi From the collection, using the index into the array
void addLumiDigi(TLumiDigi *digi)
Add a LumiDigi into the MUC Data collection.
const TTofDigi * getTofDigi(Int_t i) const
retrieve a TofDigi From the collection, using the index into the array