BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Digi.cxx
Go to the documentation of this file.
2using namespace std;
3
4void PrintMcInfo::printDigi( ofstream& os ) {
5
6 os << '\t' << setw( 40 ) << "MdcDigi" << setw( 30 ) << "TofDigi" << setw( 29 ) << "EmcDigi"
7 << "MucDig" << endl;
8 os << '\t' << "(layer , wire, trkIndex)"
9 << " "
10 << "(B/EC, layer, phi_module, trkIndex)"
11 << " "
12 << "(B/EC, theta, phi, trkIndex)"
13 << " "
14 << "(B/EC, segment, layer, strip, trkIndex)" << endl;
15
16 SmartDataPtr<MdcDigiCol> mdcCol( eventSvc(), "/Event/Digi/MdcDigiCol" );
17 SmartDataPtr<TofDigiCol> tofCol( eventSvc(), "/Event/Digi/TofDigiCol" );
18 SmartDataPtr<EmcDigiCol> emcCol( eventSvc(), "/Event/Digi/EmcDigiCol" );
19 SmartDataPtr<MucDigiCol> mucCol( eventSvc(), "/Event/Digi/MucDigiCol" );
20
21 MdcDigiCol::const_iterator it_mdc = mdcCol->begin();
22 TofDigiCol::const_iterator it_tof = tofCol->begin();
23 EmcDigiCol::const_iterator it_emc = emcCol->begin();
24 MucDigiCol::const_iterator it_muc = mucCol->begin();
25
26 vector<MdcDigiCol::const_iterator> vmdc;
27 vector<TofDigiCol::const_iterator> vtof;
28 vector<EmcDigiCol::const_iterator> vemc;
29 vector<MucDigiCol::const_iterator> vmuc;
30
31 if ( mdcCol->size() != 0 )
32 {
33 for ( ; it_mdc != mdcCol->end(); it_mdc++ ) { vmdc.push_back( it_mdc ); }
34 }
35 if ( tofCol->size() != 0 )
36 {
37 for ( ; it_tof != tofCol->end(); it_tof++ ) { vtof.push_back( it_tof ); }
38 }
39
40 if ( emcCol->size() != 0 )
41 {
42 for ( ; it_emc != emcCol->end(); it_emc++ ) { vemc.push_back( it_emc ); }
43 }
44
45 if ( mucCol->size() != 0 )
46 {
47 for ( ; it_muc != mucCol->end(); it_muc++ ) { vmuc.push_back( it_muc ); }
48 }
49
50 for ( int i = 0;; i++ )
51 {
52 bool bmdc = ( i > vmdc.size() ) ? true : false;
53 bool btof = ( i > vtof.size() ) ? true : false;
54 bool bemc = ( i > vemc.size() ) ? true : false;
55 bool bmuc = ( i > vmuc.size() ) ? true : false;
56 if ( ( i >= vmdc.size() ) && ( i >= vtof.size() ) && ( i >= vemc.size() ) &&
57 ( i >= vmuc.size() ) )
58 break;
59 for ( int m = 0; m < 8; m++ ) os << " ";
60 if ( vmdc.size() > 0 )
61 {
62 if ( i < vmdc.size() )
63 {
64 const Identifier ident_mdc = ( *vmdc[i] )->identify();
65 os << setw( 6 ) << MdcID::layer( ident_mdc );
66 os << setw( 6 ) << MdcID::wire( ident_mdc );
67 os << setw( 15 ) << ( *vmdc[i] )->getTrackIndex();
68 }
69 else
70 {
71 for ( int m = 0; m < 27; m++ ) os << " ";
72 }
73 }
74 else
75 {
76 for ( int m = 0; m < 27; m++ ) os << " ";
77 }
78
79 if ( vtof.size() > 0 )
80 {
81 if ( i < vtof.size() )
82 {
83 const Identifier ident_tof = ( *vtof[i] )->identify();
84 if ( TofID::barrel_ec( ident_tof ) == 1 )
85 {
86 os << "B "
87 << " ";
88 }
89 if ( TofID::barrel_ec( ident_tof ) == 0 )
90 {
91 os << "E_E"
92 << " ";
93 }
94 if ( TofID::barrel_ec( ident_tof ) == 2 )
95 {
96 os << "W_E"
97 << " ";
98 }
99 os << setw( 6 ) << TofID::layer( ident_tof );
100 os << setw( 6 ) << TofID::phi_module( ident_tof );
101 os << setw( 22 ) << ( *vtof[i] )->getTrackIndex();
102 }
103 else
104 {
105 for ( int m = 0; m < 39; m++ ) os << " ";
106 }
107 }
108 else
109 {
110 for ( int m = 0; m < 39; m++ ) os << " ";
111 }
112
113 if ( vemc.size() > 0 )
114 {
115 if ( i < vemc.size() )
116 {
117 const Identifier ident_emc = ( *vemc[i] )->identify();
118 if ( EmcID::barrel_ec( ident_emc ) == 1 )
119 {
120 os << "B "
121 << " ";
122 }
123 if ( EmcID::barrel_ec( ident_emc ) == 0 )
124 {
125 os << "E_E"
126 << " ";
127 }
128 if ( EmcID::barrel_ec( ident_emc ) == 2 )
129 {
130 os << "W_E"
131 << " ";
132 }
133 os << setw( 6 ) << EmcID::theta_module( ident_emc );
134 os << setw( 6 ) << EmcID::phi_module( ident_emc );
135 os << setw( 12 ) << ( *vemc[i] )->getTrackIndex();
136 }
137 else
138 {
139 for ( int m = 0; m < 29; m++ ) os << " ";
140 }
141 }
142 else
143 {
144 for ( int m = 0; m < 29; m++ ) os << " ";
145 }
146
147 if ( vmuc.size() > 0 )
148 {
149 if ( i < vmuc.size() )
150 {
151 const Identifier ident_muc = ( *vmuc[i] )->identify();
152 if ( MucID::barrel_ec( ident_muc ) == 1 )
153 {
154 os << "B "
155 << " ";
156 }
157 if ( MucID::barrel_ec( ident_muc ) == 0 )
158 {
159 os << "E_E"
160 << " ";
161 }
162 if ( MucID::barrel_ec( ident_muc ) == 2 )
163 {
164 os << "W_E"
165 << " ";
166 }
167 os << setw( 6 ) << MucID::segment( ident_muc );
168 os << setw( 6 ) << MucID::layer( ident_muc );
169 os << setw( 6 ) << MucID::strip( ident_muc );
170 os << setw( 6 ) << ( *vmuc[i] )->getTrackIndex();
171 os << endl;
172 }
173 else { os << endl; }
174 }
175 else { os << endl; }
176 }
177 vmdc.clear();
178 vtof.clear();
179 vemc.clear();
180 vmuc.clear();
181}
static unsigned int barrel_ec(const Identifier &id)
Values of different levels (failure returns 0).
Definition EmcID.cxx:36
static unsigned int theta_module(const Identifier &id)
Definition EmcID.cxx:41
static unsigned int phi_module(const Identifier &id)
Definition EmcID.cxx:46
static int layer(const Identifier &id)
Values of different levels (failure returns 0).
Definition MdcID.cxx:47
static int wire(const Identifier &id)
Definition MdcID.cxx:52
static int barrel_ec(const Identifier &id)
Values of different levels.
Definition MucID.cxx:38
static int layer(const Identifier &id)
Definition MucID.cxx:58
static int segment(const Identifier &id)
Definition MucID.cxx:48
static int strip(const Identifier &id)
Definition MucID.cxx:73
void printDigi(ofstream &)
Definition Digi.cxx:4
static int phi_module(const Identifier &id)
Definition TofID.cxx:65
static int barrel_ec(const Identifier &id)
Values of different levels (failure returns 0).
Definition TofID.cxx:54
static int layer(const Identifier &id)
Definition TofID.cxx:59