14 #ifndef TRGGRLUNPACKER_H
15 #define TRGGRLUNPACKER_H
20 #include "rawdata/dataobjects/RawTRG.h"
21 #include "trg/grl/dataobjects/TRGGRLUnpackerStore.h"
23 #include <framework/core/Module.h>
24 #include <framework/datastore/StoreArray.h>
25 #include <framework/datastore/StoreObjPtr.h>
33 namespace TRGGRLUNPACKERSPACE {
36 const int nLeafs = 123 + 3 + 32 + 7;
38 const int nLeafsExtra = 7;
42 const int nBits = 2048;
44 const char* LeafNames[nLeafs + nLeafsExtra] = {
208 "firmid",
"firmver",
"evt",
"clk",
"coml1",
"b2ldly",
"maxrvc"
378 e_firmid, e_firmver, e_evt, e_clk, e_coml1, e_b2ldly, e_maxrvc
382 const int BitMap[nLeafs][2] = {
570 setLeafPointersArray(TRGGRLUnpackerStore* store,
int** bitArray)
572 bitArray[e_2GeV_15 ] = &(store->m_2GeV_ECL[15]);
573 bitArray[e_2GeV_14 ] = &(store->m_2GeV_ECL[14]);
574 bitArray[e_2GeV_13 ] = &(store->m_2GeV_ECL[13]);
575 bitArray[e_2GeV_12 ] = &(store->m_2GeV_ECL[12]);
576 bitArray[e_2GeV_11 ] = &(store->m_2GeV_ECL[11]);
577 bitArray[e_2GeV_10 ] = &(store->m_2GeV_ECL[10]);
578 bitArray[e_2GeV_9 ] = &(store->m_2GeV_ECL[9]);
579 bitArray[e_2GeV_8 ] = &(store->m_2GeV_ECL[8]);
580 bitArray[e_2GeV_7 ] = &(store->m_2GeV_ECL[7]);
581 bitArray[e_2GeV_6 ] = &(store->m_2GeV_ECL[6]);
582 bitArray[e_2GeV_5 ] = &(store->m_2GeV_ECL[5]);
583 bitArray[e_2GeV_4 ] = &(store->m_2GeV_ECL[4]);
584 bitArray[e_2GeV_3 ] = &(store->m_2GeV_ECL[3]);
585 bitArray[e_2GeV_2 ] = &(store->m_2GeV_ECL[2]);
586 bitArray[e_2GeV_1 ] = &(store->m_2GeV_ECL[1]);
587 bitArray[e_2GeV_0 ] = &(store->m_2GeV_ECL[0]);
588 bitArray[e_1GeV_15 ] = &(store->m_1GeV_ECL[15]);
589 bitArray[e_1GeV_14 ] = &(store->m_1GeV_ECL[14]);
590 bitArray[e_1GeV_13 ] = &(store->m_1GeV_ECL[13]);
591 bitArray[e_1GeV_12 ] = &(store->m_1GeV_ECL[12]);
592 bitArray[e_1GeV_11 ] = &(store->m_1GeV_ECL[11]);
593 bitArray[e_1GeV_10 ] = &(store->m_1GeV_ECL[10]);
594 bitArray[e_1GeV_9 ] = &(store->m_1GeV_ECL[9]);
595 bitArray[e_1GeV_8 ] = &(store->m_1GeV_ECL[8]);
596 bitArray[e_1GeV_7 ] = &(store->m_1GeV_ECL[7]);
597 bitArray[e_1GeV_6 ] = &(store->m_1GeV_ECL[6]);
598 bitArray[e_1GeV_5 ] = &(store->m_1GeV_ECL[5]);
599 bitArray[e_1GeV_4 ] = &(store->m_1GeV_ECL[4]);
600 bitArray[e_1GeV_3 ] = &(store->m_1GeV_ECL[3]);
601 bitArray[e_1GeV_2 ] = &(store->m_1GeV_ECL[2]);
602 bitArray[e_1GeV_1 ] = &(store->m_1GeV_ECL[1]);
603 bitArray[e_1GeV_0 ] = &(store->m_1GeV_ECL[0]);
605 bitArray[e_theta_11 ] = &(store->m_theta_ECL[11]);
606 bitArray[e_phi_11 ] = &(store->m_phi_ECL[11]);
607 bitArray[e_t_11 ] = &(store->m_t_ECL[11]);
608 bitArray[e_E_11 ] = &(store->m_E_ECL[11]);
609 bitArray[e_theta_10 ] = &(store->m_theta_ECL[10]);
610 bitArray[e_phi_10 ] = &(store->m_phi_ECL[10]);
611 bitArray[e_t_10 ] = &(store->m_t_ECL[10]);
612 bitArray[e_E_10 ] = &(store->m_E_ECL[10]);
613 bitArray[e_theta_9 ] = &(store->m_theta_ECL[9]);
614 bitArray[e_phi_9 ] = &(store->m_phi_ECL[9]);
615 bitArray[e_t_9 ] = &(store->m_t_ECL[9]);
616 bitArray[e_E_9 ] = &(store->m_E_ECL[9]);
617 bitArray[e_theta_8 ] = &(store->m_theta_ECL[8]);
618 bitArray[e_phi_8 ] = &(store->m_phi_ECL[8]);
619 bitArray[e_t_8 ] = &(store->m_t_ECL[8]);
620 bitArray[e_E_8 ] = &(store->m_E_ECL[8]);
621 bitArray[e_theta_7 ] = &(store->m_theta_ECL[7]);
622 bitArray[e_phi_7 ] = &(store->m_phi_ECL[7]);
623 bitArray[e_t_7 ] = &(store->m_t_ECL[7]);
624 bitArray[e_E_7 ] = &(store->m_E_ECL[7]);
625 bitArray[e_theta_6 ] = &(store->m_theta_ECL[6]);
626 bitArray[e_phi_6 ] = &(store->m_phi_ECL[6]);
627 bitArray[e_t_6 ] = &(store->m_t_ECL[6]);
628 bitArray[e_E_6 ] = &(store->m_E_ECL[6]);
629 bitArray[e_X_1 ] = &(store->m_X_1);
630 bitArray[e_N_cluster_1 ] = &(store->m_N_cluster_1);
631 bitArray[e_ECL_trg_1 ] = &(store->m_ECL_trg_1);
632 bitArray[e_theta_5 ] = &(store->m_theta_ECL[5]);
633 bitArray[e_phi_5 ] = &(store->m_phi_ECL[5]);
634 bitArray[e_t_5 ] = &(store->m_t_ECL[5]);
635 bitArray[e_E_5 ] = &(store->m_E_ECL[5]);
636 bitArray[e_theta_4 ] = &(store->m_theta_ECL[4]);
637 bitArray[e_phi_4 ] = &(store->m_phi_ECL[4]);
638 bitArray[e_t_4 ] = &(store->m_t_ECL[4]);
639 bitArray[e_E_4 ] = &(store->m_E_ECL[4]);
640 bitArray[e_theta_3 ] = &(store->m_theta_ECL[3]);
641 bitArray[e_phi_3 ] = &(store->m_phi_ECL[3]);
642 bitArray[e_t_3 ] = &(store->m_t_ECL[3]);
643 bitArray[e_E_3 ] = &(store->m_E_ECL[3]);
644 bitArray[e_theta_2 ] = &(store->m_theta_ECL[2]);
645 bitArray[e_phi_2 ] = &(store->m_phi_ECL[2]);
646 bitArray[e_t_2 ] = &(store->m_t_ECL[2]);
647 bitArray[e_E_2 ] = &(store->m_E_ECL[2]);
648 bitArray[e_theta_1 ] = &(store->m_theta_ECL[1]);
649 bitArray[e_phi_1 ] = &(store->m_phi_ECL[1]);
650 bitArray[e_t_1 ] = &(store->m_t_ECL[1]);
651 bitArray[e_E_1 ] = &(store->m_E_ECL[1]);
652 bitArray[e_theta_0 ] = &(store->m_theta_ECL[0]);
653 bitArray[e_phi_0 ] = &(store->m_phi_ECL[0]);
654 bitArray[e_t_0 ] = &(store->m_t_ECL[0]);
655 bitArray[e_E_0 ] = &(store->m_E_ECL[0]);
656 bitArray[e_X_0 ] = &(store->m_X_0);
657 bitArray[e_N_cluster_0 ] = &(store->m_N_cluster_0);
658 bitArray[e_ECL_trg_0 ] = &(store->m_ECL_trg_0);
659 bitArray[e_ECL_trg ] = &(store->m_ECL_trg);
660 bitArray[e_ECL_trg_delay ] = &(store->m_ECL_trg_delay);
661 bitArray[e_N_track_cut ] = &(store->m_N_track_cut);
662 bitArray[e_N_track_NN ] = &(store->m_N_track_NN);
663 bitArray[e_N_track_3D ] = &(store->m_N_track_3D);
664 bitArray[e_CDCL1_count ] = &(store->m_CDCL1_count);
665 bitArray[e_phi_CDC_int_1 ] = &(store->m_phi_CDC_int[1]);
666 bitArray[e_phi_CDC_int_0 ] = &(store->m_phi_CDC_int[0]);
667 bitArray[e_phi_i_int_1 ] = &(store->m_phi_i_int[1]);
668 bitArray[e_phi_i_int_0 ] = &(store->m_phi_i_int[0]);
669 bitArray[e_N_track ] = &(store->m_N_track);
670 bitArray[e_b2b_1to3 ] = &(store->m_b2b_1to3);
671 bitArray[e_b2b_1to5 ] = &(store->m_b2b_1to5);
672 bitArray[e_b2b_1to7 ] = &(store->m_b2b_1to7);
673 bitArray[e_b2b_1to9 ] = &(store->m_b2b_1to9);
674 bitArray[e_opening ] = &(store->m_opening);
675 bitArray[e_samehem_1 ] = &(store->m_samehem[1]);
676 bitArray[e_opphem_1 ] = &(store->m_opphem[1]);
677 bitArray[e_c_b2b_1to9_1 ] = &(store->m_c_b2b_1to9[1]);
678 bitArray[e_c_b2b_1to7_1 ] = &(store->m_c_b2b_1to7[1]);
679 bitArray[e_c_b2b_1to5_1 ] = &(store->m_c_b2b_1to5[1]);
680 bitArray[e_c_b2b_1to3_1 ] = &(store->m_c_b2b_1to3[1]);
681 bitArray[e_tc_b2b_1to9_1 ] = &(store->m_tc_b2b_1to9[1]);
682 bitArray[e_tc_b2b_1to7_1 ] = &(store->m_tc_b2b_1to7[1]);
683 bitArray[e_tc_b2b_1to5_1 ] = &(store->m_tc_b2b_1to5[1]);
684 bitArray[e_tc_b2b_1to3_1 ] = &(store->m_tc_b2b_1to3[1]);
685 bitArray[e_TOPL1_count ] = &(store->m_TOPL1_count);
686 bitArray[e_KLML1_count ] = &(store->m_KLML1_count);
687 bitArray[e_sector_KLM_int ] = &(store->m_sector_KLM_int);
688 bitArray[e_sector_CDC_int ] = &(store->m_sector_CDC_int);
689 bitArray[e_N_KLMmatch ] = &(store->m_N_KLMmatch);
690 bitArray[e_samehem_0 ] = &(store->m_samehem[0]);
691 bitArray[e_opphem_0 ] = &(store->m_opphem[0]);
692 bitArray[e_N_match_2GeV_0 ] = &(store->m_N_match_2GeV[0]);
693 bitArray[e_N_match_0 ] = &(store->m_N_match[0]);
694 bitArray[e_N_g_1GeV_0 ] = &(store->m_N_g_1GeV[0]);
695 bitArray[e_N_g_2GeV_0 ] = &(store->m_N_g_2GeV[0]);
696 bitArray[e_ECLL1_count ] = &(store->m_ECLL1_count);
697 bitArray[e_c_b2b_1to9_0 ] = &(store->m_c_b2b_1to9[0]);
698 bitArray[e_c_b2b_1to7_0 ] = &(store->m_c_b2b_1to7[0]);
699 bitArray[e_c_b2b_1to5_0 ] = &(store->m_c_b2b_1to5[0]);
700 bitArray[e_c_b2b_1to3_0 ] = &(store->m_c_b2b_1to3[0]);
701 bitArray[e_tc_b2b_1to9_0 ] = &(store->m_tc_b2b_1to9[0]);
702 bitArray[e_tc_b2b_1to7_0 ] = &(store->m_tc_b2b_1to7[0]);
703 bitArray[e_tc_b2b_1to5_0 ] = &(store->m_tc_b2b_1to5[0]);
704 bitArray[e_tc_b2b_1to3_0 ] = &(store->m_tc_b2b_1to3[0]);
705 bitArray[e_CDC3DL1_count ] = &(store->m_CDC3DL1_count);
706 bitArray[e_CDCNNL1_count ] = &(store->m_CDCNNL1_count);
707 bitArray[e_slot_CDC_int ] = &(store->m_slot_CDC_int);
708 bitArray[e_slot_TOP_int ] = &(store->m_slot_TOP_int);
709 bitArray[e_N_TOPmatch ] = &(store->m_N_TOPmatch);
710 bitArray[e_N_match_2GeV_1 ] = &(store->m_N_match_2GeV[1]);
711 bitArray[e_N_match_1 ] = &(store->m_N_match[1]);
712 bitArray[e_N_g_1GeV_1 ] = &(store->m_N_g_1GeV[1]);
713 bitArray[e_N_g_2GeV_1 ] = &(store->m_N_g_2GeV[1]);
714 bitArray[e_TSFL1_count ] = &(store->m_TSFL1_count);
715 bitArray[e_slot64b_TOP_int_1 ] = &(store->m_slot64b_TOP_int_1);
716 bitArray[e_slot64b_TOP_int_0 ] = &(store->m_slot64b_TOP_int_0);
717 bitArray[e_map_TSF3_int_1 ] = &(store->m_map_TSF3_int[1]);
718 bitArray[e_map_TSF3_int_0 ] = &(store->m_map_TSF3_int[0]);
719 bitArray[e_map_TSF1_int_1 ] = &(store->m_map_TSF1_int[1]);
720 bitArray[e_map_TSF1_int_0 ] = &(store->m_map_TSF1_int[0]);
721 bitArray[e_N_ST ] = &(store->m_N_ST);
722 bitArray[e_map_ST2_int_1 ] = &(store->m_map_ST2_int[1]);
723 bitArray[e_map_ST2_int_0 ] = &(store->m_map_ST2_int[0]);
724 bitArray[e_map_ST_int_1 ] = &(store->m_map_ST_int[1]);
725 bitArray[e_map_ST_int_0 ] = &(store->m_map_ST_int[0]);
726 bitArray[e_map_veto_int_1 ] = &(store->m_map_veto_int[1]);
727 bitArray[e_map_veto_int_0 ] = &(store->m_map_veto_int[0]);
728 bitArray[e_map_TSF4_int_1 ] = &(store->m_map_TSF4_int[1]);
729 bitArray[e_map_TSF4_int_0 ] = &(store->m_map_TSF4_int[0]);
730 bitArray[e_map_TSF2_int_1 ] = &(store->m_map_TSF2_int[1]);
731 bitArray[e_map_TSF2_int_0 ] = &(store->m_map_TSF2_int[0]);
732 bitArray[e_map_TSF0_int_1 ] = &(store->m_map_TSF0_int[1]);
733 bitArray[e_map_TSF0_int_0 ] = &(store->m_map_TSF0_int[0]);
734 bitArray[e_charge_flag ] = &(store->m_charge_flag);
735 bitArray[e_charge_sum ] = &(store->m_charge_sum);
736 bitArray[e_revoclk ] = &(store->m_revoclk);
737 bitArray[e_aaaa ] = &(store->m_aaaa);
738 bitArray[e_evt ] = &(store->m_evt);
739 bitArray[e_clk ] = &(store->m_clk);
740 bitArray[e_firmid ] = &(store->m_firmid);
741 bitArray[e_firmver ] = &(store->m_firmver);
742 bitArray[e_coml1 ] = &(store->m_coml1);
743 bitArray[e_b2ldly ] = &(store->m_b2ldly);
744 bitArray[e_maxrvc ] = &(store->m_maxrvc);
765 virtual void event()
override;
774 virtual void endRun()
override;
786 #endif // TRGGRLUNPACKER_H