001 #ifndef EVCL_BANK_HH
002 #define EVCL_BANK_HH (1)
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027 #ifndef TRY_GENERIC_BANK_HH
028 #include "Trybos/TRY_Generic_Bank.hh"
029 #endif
030 #ifndef BNK_BIT_MASK_HH
031 #include "Banks/BNK_Bit_Mask.hh"
032 #endif
033 #ifndef TRY_BANK_NAME_HH
034 #include "Trybos/TRY_Bank_Name.hh"
035 #endif
036 #ifndef TRY_BANK_TYPE_HH
037 #include "Trybos/TRY_Bank_Type.hh"
038 #endif
039 #ifndef TRY_YBOS_FIELD_FORMAT_HH
040 #include "Trybos/TRY_Ybos_Field_Format.hh"
041 #endif
042
043 #include <iostream>
044
045
046
047
048 class TRY_Record_Iter_Any ;
049 class TRY_Record_Iter_Same ;
050
051
052
053
054
055 struct EVCL_Bank_format
056 {
057
058
059
060
061 enum {
062
063
064 field0_offset = 0,
065
066 trigger_number_index = 0,
067 trigger_summary1_index = 1,
068 trigger_summary2_index = 2,
069 trigger_summary3_index = 3,
070 trigger_summary4_index = 4,
071
072 future_use_index = 5,
073 repeat_mode_flag_index = 5,
074 scanner_done_timer_index = 5,
075 stale_event_timer_index = 5,
076
077 scanner_buffer_number_index = 6,
078 start_stop_optype_index = 6,
079
080 scanner_readout1_index = 7,
081 scanner_readout2_index = 8,
082 residual_readout1_index = 9,
083 residual_readout2_index = 10,
084 components_readout1_index = 11,
085 components_readout2_index = 12,
086 error_summary1_index = 13,
087 error_summary2_index = 14,
088
089 field0_n_elements = error_summary2_index + 1
090
091 } ;
092
093
094
095
096 enum { future_use_bits = 7,
097 future_use_shift = 0,
098 future_use_loval = 0,
099 future_use_hival = (1<<future_use_bits)-1,
100 future_use_mask = BNK_Bit_Mask::nbits07
101 } ;
102
103 enum { repeat_mode_flag_bits = 1,
104 repeat_mode_flag_shift = 7,
105 repeat_mode_flag_loval = 0,
106 repeat_mode_flag_hival = (1<<repeat_mode_flag_bits)-1,
107 repeat_mode_flag_mask = BNK_Bit_Mask::nbits01
108 } ;
109
110 enum { scanner_done_timer_bits = 12,
111 scanner_done_timer_shift = 8,
112 scanner_done_timer_loval = 0,
113 scanner_done_timer_hival = (1<<scanner_done_timer_bits)-1,
114 scanner_done_timer_mask = BNK_Bit_Mask::nbits12
115 } ;
116
117 enum { stale_event_timer_bits = 12,
118 stale_event_timer_shift = 20,
119 stale_event_timer_loval = 0,
120 stale_event_timer_hival = (1<<stale_event_timer_bits)-1,
121 stale_event_timer_mask = BNK_Bit_Mask::nbits12
122 } ;
123
124
125
126
127 enum { start_stop_optype_bits = 8,
128 start_stop_optype_shift = 0,
129 start_stop_optype_loval = 0,
130 start_stop_optype_hival = (1<<start_stop_optype_bits)-1,
131 start_stop_optype_mask = BNK_Bit_Mask::nbits08
132 } ;
133
134 enum { scanner_buffer_number_bits = 24,
135 scanner_buffer_number_shift = 8,
136 scanner_buffer_number_loval = 0,
137 scanner_buffer_number_hival = (1<<scanner_buffer_number_bits)-1,
138 scanner_buffer_number_mask = BNK_Bit_Mask::nbits24
139 } ;
140
141 } ;
142
143
144
145
146 class EVCL_Bank: virtual public TRY_Generic_Bank
147 {
148
149
150
151
152 public:
153
154
155
156
157
158
159
160 virtual void print(std::ostream& output) const ;
161 virtual void print(void) const ;
162
163
164
165
166 virtual void assign(const TRY_Generic_Bank& bank) ;
167
168 virtual void assign(const TRY_Bank_Key& key,
169 const TRY_Bank_Type& type) ;
170
171 inline
172 virtual void assign(const TRY_Bank_Name& name,
173 const TRY_Bank_Number& number,
174 const TRY_Bank_Type& type) ;
175
176 virtual void assign(const TRY_Bank_Key& key,
177 const TRY_Bank_Type& type,
178 const int4 n_data_words,
179 const int4* p_data_words) ;
180
181 inline
182 virtual void assign(const TRY_Bank_Name& name,
183 const TRY_Bank_Number& number,
184 const TRY_Bank_Type& type,
185 const int4 n_data_words,
186 const int4* p_data_words) ;
187
188 virtual void assign(const TRY_Record_Iter_Any& iter) ;
189 virtual void assign(const TRY_Record_Iter_Same& iter) ;
190
191
192
193
194 virtual void assign_ref(const TRY_Generic_Bank& bank) ;
195
196 virtual void assign_ref(const TRY_Bank_Key& key,
197 const TRY_Bank_Type& type,
198 TRY_Abstract_Record *p_record) ;
199
200 inline
201 virtual void assign_ref(const TRY_Bank_Name& name,
202 const TRY_Bank_Number& number,
203 const TRY_Bank_Type& type,
204 TRY_Abstract_Record* p_record) ;
205
206 virtual void assign_ref(const TRY_Bank_Key& key,
207 const TRY_Bank_Type& type,
208 const int4 n_data_words,
209 const int4* p_data_words,
210 TRY_Abstract_Record* p_record) ;
211
212 inline
213 virtual void assign_ref(const TRY_Bank_Name& name,
214 const TRY_Bank_Number& number,
215 const TRY_Bank_Type& type,
216 const int4 n_data_words,
217 const int4* p_data_words,
218 TRY_Abstract_Record* p_record) ;
219
220 virtual void assign_ref(const TRY_Record_Iter_Any& iter) ;
221 virtual void assign_ref(const TRY_Record_Iter_Same& iter) ;
222
223
224
225
226 EVCL_Bank(void) ;
227 virtual ~EVCL_Bank(void) ;
228
229
230
231
232 EVCL_Bank(const EVCL_Bank& bank) ;
233 EVCL_Bank(const TRY_Generic_Bank& bank) ;
234
235 EVCL_Bank& operator = (const EVCL_Bank& bank) ;
236 EVCL_Bank& operator = (const TRY_Generic_Bank& bank) ;
237
238
239
240
241 explicit
242 EVCL_Bank(const TRY_Bank_Number& number) ;
243
244 explicit
245 EVCL_Bank(const TRY_Bank_Number& number, TRY_Abstract_Record *p_record) ;
246
247 explicit
248 EVCL_Bank(const TRY_Record_Iter_Any& iter) ;
249
250 explicit
251 EVCL_Bank(const TRY_Record_Iter_Same& iter) ;
252
253
254
255
256 friend bool operator == (const EVCL_Bank& bank1,
257 const EVCL_Bank& bank2) ;
258
259 friend bool operator != (const EVCL_Bank& bank1,
260 const EVCL_Bank& bank2) ;
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285 friend std::ostream& operator << (std::ostream& output, const EVCL_Bank& bank) ;
286
287
288
289
290 int4 trigger_number(void) const;
291 int4 trigger_summary1(void) const;
292 int4 trigger_summary2(void) const;
293 int4 trigger_summary3(void) const;
294 int4 trigger_summary4(void) const;
295
296 int4 future_use(void) const;
297 int4 repeat_mode_flag(void) const;
298 int4 scanner_done_timer(void) const;
299 int4 stale_event_timer(void) const;
300
301 int4 start_stop_optype(void) const;
302 int4 scanner_buffer_number(void) const;
303
304 int4 scanner_readout1(void) const;
305 int4 scanner_readout2(void) const;
306 int4 residual_readout1(void) const;
307 int4 residual_readout2(void) const;
308 int4 components_readout1(void) const;
309 int4 components_readout2(void) const;
310 int4 error_summary1(void) const;
311 int4 error_summary2(void) const;
312
313
314
315
316 bool set_trigger_number(const int4 value) ;
317 bool set_trigger_summary1(const int4 value) ;
318 bool set_trigger_summary2(const int4 value) ;
319 bool set_trigger_summary3(const int4 value) ;
320 bool set_trigger_summary4(const int4 value) ;
321
322 bool set_future_use(const int4 value) ;
323 bool set_repeat_mode_flag(const int4 value) ;
324 bool set_scanner_done_timer(const int4 value) ;
325 bool set_stale_event_timer(const int4 value) ;
326
327 bool set_start_stop_optype(const int4 value) ;
328 bool set_scanner_buffer_number(const int4 value) ;
329
330 bool set_scanner_readout1(const int4 value) ;
331 bool set_scanner_readout2(const int4 value) ;
332 bool set_residual_readout1(const int4 value) ;
333 bool set_residual_readout2(const int4 value) ;
334 bool set_components_readout1(const int4 value) ;
335 bool set_components_readout2(const int4 value) ;
336 bool set_error_summary1(const int4 value) ;
337 bool set_error_summary2(const int4 value) ;
338
339
340
341
342 private:
343
344
345
346
347 inline TRY_Bank_Name class_bank_name(void) const ;
348 inline TRY_Bank_Type class_bank_type(void) const ;
349
350 } ;
351
352
353
354
355
356
357
358
359
360 inline
361 void
362 EVCL_Bank::
363 assign(const TRY_Bank_Name& name,
364 const TRY_Bank_Number& number,
365 const TRY_Bank_Type& type)
366 { assign(TRY_Bank_Key(name,number), type) ;
367 }
368
369 inline
370 void
371 EVCL_Bank::
372 assign(const TRY_Bank_Name& name,
373 const TRY_Bank_Number& number,
374 const TRY_Bank_Type& type,
375 const int4 n_data_words,
376 const int4* p_data_words)
377 { assign(TRY_Bank_Key(name,number), type, n_data_words, p_data_words) ;
378 }
379
380 inline
381 void
382 EVCL_Bank::
383 assign_ref(const TRY_Bank_Name& name,
384 const TRY_Bank_Number& number,
385 const TRY_Bank_Type& type,
386 TRY_Abstract_Record* p_record)
387 { assign_ref(TRY_Bank_Key(name,number), type,
388 p_record) ;
389 }
390
391 inline
392 void
393 EVCL_Bank::
394 assign_ref(const TRY_Bank_Name& name,
395 const TRY_Bank_Number& number,
396 const TRY_Bank_Type& type,
397 const int4 n_data_words,
398 const int4* p_data_words,
399 TRY_Abstract_Record* p_record)
400 { assign_ref(TRY_Bank_Key(name,number), type, n_data_words, p_data_words,
401 p_record) ;
402 }
403
404
405
406
407 inline
408 EVCL_Bank::
409 EVCL_Bank(void): TRY_Generic_Bank()
410 { assign(class_bank_name(), 0, class_bank_type()) ;
411 }
412
413 inline
414 EVCL_Bank::
415 ~EVCL_Bank(void)
416 { }
417
418
419
420
421 inline
422 EVCL_Bank::
423 EVCL_Bank(const EVCL_Bank& bank): TRY_Generic_Bank()
424 { assign(bank) ;
425 }
426
427 inline
428 EVCL_Bank::
429 EVCL_Bank(const TRY_Generic_Bank& bank): TRY_Generic_Bank()
430 { assign(bank) ;
431 }
432
433 inline
434 EVCL_Bank&
435 EVCL_Bank::
436 operator = (const EVCL_Bank& bank)
437 { if (this != &bank) assign(bank) ;
438 return(*this) ;
439 }
440
441 inline
442 EVCL_Bank&
443 EVCL_Bank::
444 operator = (const TRY_Generic_Bank& bank)
445 { if (this != &bank) assign(bank) ;
446 return(*this) ;
447 }
448
449
450
451
452 inline
453 EVCL_Bank::
454 EVCL_Bank(const TRY_Bank_Number& number): TRY_Generic_Bank()
455 { assign(TRY_Bank_Key(class_bank_name(), number),
456 class_bank_type()) ;
457 }
458
459 inline
460 EVCL_Bank::
461 EVCL_Bank(const TRY_Bank_Number& number,
462 TRY_Abstract_Record *p_record): TRY_Generic_Bank()
463 { assign_ref(TRY_Bank_Key(class_bank_name(), number),
464 class_bank_type(), p_record) ;
465 }
466
467 inline
468 EVCL_Bank::
469 EVCL_Bank(const TRY_Record_Iter_Any& iter): TRY_Generic_Bank()
470 { assign_ref(iter) ;
471 }
472
473 inline
474 EVCL_Bank::
475 EVCL_Bank(const TRY_Record_Iter_Same& iter): TRY_Generic_Bank()
476 { assign_ref(iter) ;
477 }
478
479
480
481
482 inline
483 bool
484 operator == (const EVCL_Bank& bank1,
485 const EVCL_Bank& bank2)
486 { return(bank1.compare(bank2)) ;
487 }
488
489 inline
490 bool
491 operator != (const EVCL_Bank& bank1,
492 const EVCL_Bank& bank2)
493 { return(! (bank1 == bank2)) ;
494 }
495
496
497
498
499 inline
500 std::ostream&
501 operator << (std::ostream& output, const EVCL_Bank& bank)
502 {
503 bank.print(output) ;
504 return(output) ;
505 }
506
507
508
509
510 inline
511 int4
512 EVCL_Bank::
513 trigger_number(void) const
514 { return(get_I4_element(EVCL_Bank_format::field0_offset,
515 EVCL_Bank_format::trigger_number_index) ) ;
516 }
517
518 inline
519 int4
520 EVCL_Bank::
521 trigger_summary1(void) const
522 { return(get_I4_element(EVCL_Bank_format::field0_offset,
523 EVCL_Bank_format::trigger_summary1_index) ) ;
524 }
525
526 inline
527 int4
528 EVCL_Bank::
529 trigger_summary2(void) const
530 { return(get_I4_element(EVCL_Bank_format::field0_offset,
531 EVCL_Bank_format::trigger_summary2_index) ) ;
532 }
533
534 inline int4
535 EVCL_Bank::trigger_summary3(void) const
536 { return(get_I4_element(EVCL_Bank_format::field0_offset,
537 EVCL_Bank_format::trigger_summary3_index) ) ;
538 }
539
540 inline
541 int4
542 EVCL_Bank::
543 trigger_summary4(void) const
544 { return(get_I4_element(EVCL_Bank_format::field0_offset,
545 EVCL_Bank_format::trigger_summary4_index) ) ;
546 }
547
548 inline
549 int4
550 EVCL_Bank::
551 future_use(void) const
552 { return(get_uI4_bitfield(EVCL_Bank_format::field0_offset,
553 EVCL_Bank_format::future_use_index,
554 EVCL_Bank_format::future_use_shift,
555 EVCL_Bank_format::future_use_mask) ) ;
556 }
557
558 inline
559 int4
560 EVCL_Bank::
561 repeat_mode_flag(void) const
562 { return(get_uI4_bitfield(EVCL_Bank_format::field0_offset,
563 EVCL_Bank_format::repeat_mode_flag_index,
564 EVCL_Bank_format::repeat_mode_flag_shift,
565 EVCL_Bank_format::repeat_mode_flag_mask) ) ;
566 }
567
568 inline
569 int4
570 EVCL_Bank::
571 scanner_done_timer(void) const
572 { return(get_uI4_bitfield(EVCL_Bank_format::field0_offset,
573 EVCL_Bank_format::scanner_done_timer_index,
574 EVCL_Bank_format::scanner_done_timer_shift,
575 EVCL_Bank_format::scanner_done_timer_mask) ) ;
576 }
577
578 inline
579 int4
580 EVCL_Bank::
581 stale_event_timer(void) const
582 { return(get_uI4_bitfield(EVCL_Bank_format::field0_offset,
583 EVCL_Bank_format::stale_event_timer_index,
584 EVCL_Bank_format::stale_event_timer_shift,
585 EVCL_Bank_format::stale_event_timer_mask) ) ;
586 }
587
588 inline
589 int4
590 EVCL_Bank::
591 start_stop_optype(void) const
592 { return(get_uI4_bitfield(EVCL_Bank_format::field0_offset,
593 EVCL_Bank_format::start_stop_optype_index,
594 EVCL_Bank_format::start_stop_optype_shift,
595 EVCL_Bank_format::start_stop_optype_mask) ) ;
596 }
597
598 inline
599 int4
600 EVCL_Bank::
601 scanner_buffer_number(void) const
602 { return(get_uI4_bitfield(EVCL_Bank_format::field0_offset,
603 EVCL_Bank_format::scanner_buffer_number_index,
604 EVCL_Bank_format::scanner_buffer_number_shift,
605 EVCL_Bank_format::scanner_buffer_number_mask) ) ;
606 }
607
608 inline
609 int4
610 EVCL_Bank::
611 scanner_readout1(void) const
612 { return(get_I4_element(EVCL_Bank_format::field0_offset,
613 EVCL_Bank_format::scanner_readout1_index) ) ;
614 }
615
616 inline
617 int4
618 EVCL_Bank::
619 scanner_readout2(void) const
620 { return(get_I4_element(EVCL_Bank_format::field0_offset,
621 EVCL_Bank_format::scanner_readout2_index) ) ;
622 }
623
624 inline
625 int4
626 EVCL_Bank::
627 residual_readout1(void) const
628 { return(get_I4_element(EVCL_Bank_format::field0_offset,
629 EVCL_Bank_format::residual_readout1_index) ) ;
630 }
631
632 inline
633 int4
634 EVCL_Bank::
635 residual_readout2(void) const
636 { return(get_I4_element(EVCL_Bank_format::field0_offset,
637 EVCL_Bank_format::residual_readout2_index) ) ;
638 }
639
640 inline
641 int4
642 EVCL_Bank::
643 components_readout1(void) const
644 { return(get_I4_element(EVCL_Bank_format::field0_offset,
645 EVCL_Bank_format::components_readout1_index) ) ;
646 }
647
648 inline
649 int4
650 EVCL_Bank::
651 components_readout2(void) const
652 { return(get_I4_element(EVCL_Bank_format::field0_offset,
653 EVCL_Bank_format::components_readout2_index) ) ;
654 }
655
656 inline
657 int4
658 EVCL_Bank::
659 error_summary1(void) const
660 { return(get_I4_element(EVCL_Bank_format::field0_offset,
661 EVCL_Bank_format::error_summary1_index) ) ;
662 }
663
664 inline
665 int4
666 EVCL_Bank::
667 error_summary2(void) const
668 { return(get_I4_element(EVCL_Bank_format::field0_offset,
669 EVCL_Bank_format::error_summary2_index) ) ;
670 }
671
672
673
674
675 inline
676 bool
677 EVCL_Bank::
678 set_trigger_number(const int4 trigger_number)
679 { return(set_I4_element(EVCL_Bank_format::field0_offset,
680 EVCL_Bank_format::trigger_number_index, trigger_number) ) ;
681 }
682
683 inline
684 bool
685 EVCL_Bank::
686 set_trigger_summary1(const int4 trigger_summary)
687 { return(set_I4_element(EVCL_Bank_format::field0_offset,
688 EVCL_Bank_format::trigger_summary1_index, trigger_summary) ) ;
689 }
690
691 inline
692 bool
693 EVCL_Bank::
694 set_trigger_summary2(const int4 trigger_summary)
695 { return(set_I4_element(EVCL_Bank_format::field0_offset,
696 EVCL_Bank_format::trigger_summary2_index, trigger_summary) ) ;
697 }
698
699 inline
700 bool
701 EVCL_Bank::
702 set_trigger_summary3(const int4 trigger_summary)
703 { return(set_I4_element(EVCL_Bank_format::field0_offset,
704 EVCL_Bank_format::trigger_summary3_index, trigger_summary) ) ;
705 }
706
707 inline
708 bool
709 EVCL_Bank::
710 set_trigger_summary4(const int4 trigger_summary)
711 { return(set_I4_element(EVCL_Bank_format::field0_offset,
712 EVCL_Bank_format::trigger_summary4_index, trigger_summary) ) ;
713 }
714
715 inline
716 bool
717 EVCL_Bank::
718 set_future_use(const int4 value)
719 {
720 return(set_uI4_bitfield(EVCL_Bank_format::field0_offset,
721 EVCL_Bank_format::future_use_index,
722 EVCL_Bank_format::future_use_shift,
723 EVCL_Bank_format::future_use_mask, value) ) ;
724 }
725
726 inline
727 bool
728 EVCL_Bank::
729 set_repeat_mode_flag(const int4 value)
730 {
731 return(set_uI4_bitfield(EVCL_Bank_format::field0_offset,
732 EVCL_Bank_format::repeat_mode_flag_index,
733 EVCL_Bank_format::repeat_mode_flag_shift,
734 EVCL_Bank_format::repeat_mode_flag_mask, value) ) ;
735 }
736
737 inline
738 bool
739 EVCL_Bank::
740 set_scanner_done_timer(const int4 value)
741 {
742 return(set_uI4_bitfield(EVCL_Bank_format::field0_offset,
743 EVCL_Bank_format::scanner_done_timer_index,
744 EVCL_Bank_format::scanner_done_timer_shift,
745 EVCL_Bank_format::scanner_done_timer_mask, value) ) ;
746 }
747
748 inline
749 bool
750 EVCL_Bank::
751 set_stale_event_timer(const int4 value)
752 {
753 return(set_uI4_bitfield(EVCL_Bank_format::field0_offset,
754 EVCL_Bank_format::stale_event_timer_index,
755 EVCL_Bank_format::stale_event_timer_shift,
756 EVCL_Bank_format::stale_event_timer_mask, value) ) ;
757 }
758
759 inline
760 bool
761 EVCL_Bank::
762 set_start_stop_optype(const int4 value)
763 {
764 return(set_uI4_bitfield(EVCL_Bank_format::field0_offset,
765 EVCL_Bank_format::start_stop_optype_index,
766 EVCL_Bank_format::start_stop_optype_shift,
767 EVCL_Bank_format::start_stop_optype_mask, value) ) ;
768 }
769
770 inline
771 bool
772 EVCL_Bank::
773 set_scanner_buffer_number(const int4 value)
774 {
775 return(set_uI4_bitfield(EVCL_Bank_format::field0_offset,
776 EVCL_Bank_format::scanner_buffer_number_index,
777 EVCL_Bank_format::scanner_buffer_number_shift,
778 EVCL_Bank_format::scanner_buffer_number_mask, value) ) ;
779 }
780
781 inline
782 bool
783 EVCL_Bank::
784 set_scanner_readout1(const int4 scanner_readout)
785 { return(set_I4_element(EVCL_Bank_format::field0_offset,
786 EVCL_Bank_format::scanner_readout1_index, scanner_readout) ) ;
787 }
788
789 inline
790 bool
791 EVCL_Bank::
792 set_scanner_readout2(const int4 scanner_readout)
793 { return(set_I4_element(EVCL_Bank_format::field0_offset,
794 EVCL_Bank_format::scanner_readout2_index, scanner_readout) ) ;
795 }
796
797 inline
798 bool
799 EVCL_Bank::
800 set_residual_readout1(const int4 residual_readout)
801 { return(set_I4_element(EVCL_Bank_format::field0_offset,
802 EVCL_Bank_format::residual_readout1_index, residual_readout) ) ;
803 }
804
805 inline
806 bool
807 EVCL_Bank::
808 set_residual_readout2(const int4 residual_readout)
809 { return(set_I4_element(EVCL_Bank_format::field0_offset,
810 EVCL_Bank_format::residual_readout2_index, residual_readout) ) ;
811 }
812
813 inline
814 bool
815 EVCL_Bank::
816 set_components_readout1(const int4 components_readout)
817 { return(set_I4_element(EVCL_Bank_format::field0_offset,
818 EVCL_Bank_format::components_readout1_index, components_readout) ) ;
819 }
820
821 inline
822 bool
823 EVCL_Bank::
824 set_components_readout2(const int4 components_readout)
825 { return(set_I4_element(EVCL_Bank_format::field0_offset,
826 EVCL_Bank_format::components_readout2_index, components_readout) ) ;
827 }
828
829 inline
830 bool
831 EVCL_Bank::
832 set_error_summary1(const int4 error_summary)
833 { return(set_I4_element(EVCL_Bank_format::field0_offset,
834 EVCL_Bank_format::error_summary1_index, error_summary) ) ;
835 }
836
837 inline
838 bool
839 EVCL_Bank::
840 set_error_summary2(const int4 error_summary)
841 { return(set_I4_element(EVCL_Bank_format::field0_offset,
842 EVCL_Bank_format::error_summary2_index, error_summary) ) ;
843 }
844
845
846
847
848 inline
849 TRY_Bank_Name
850 EVCL_Bank::
851 class_bank_name(void) const
852 { return(TRY_Bank_Name("EVCL")) ;
853 }
854
855 inline
856 TRY_Bank_Type
857 EVCL_Bank::
858 class_bank_type(void) const
859 { return(TRY_Bank_Type("15I4")) ;
860 }
861
862
863
864
865
866
867 #endif
868
Send problems or questions to cdfcode@fnal.gov