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