diff --git a/Trigger/TrigT1/TrigT1RPCmonitoring/TrigT1RPCmonitoring/DetailedTW.h b/Trigger/TrigT1/TrigT1RPCmonitoring/TrigT1RPCmonitoring/DetailedTW.h new file mode 100755 index 0000000000000000000000000000000000000000..3b08fd8ea4ab48a708dd407782f990b66dd4d86a --- /dev/null +++ b/Trigger/TrigT1/TrigT1RPCmonitoring/TrigT1RPCmonitoring/DetailedTW.h @@ -0,0 +1,116 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef DETAILEDTW_H +#define DETAILEDTW_H + +#include <vector> +#include <list> + +#include "MuonCablingTools/BaseObject.h" + +#include <TrigT1RPClogic/RPCdata.h> +#include <TrigT1RPClogic/RPCdigit.h> + +#ifndef LVL1_STANDALONE +#include "RPCcablingInterface/IRPCcablingSvc.h" +#else +#include "RPCcabling/CablingRPC.h" +#endif + + +class DetailedTW : public BaseObject{ + + public: + + struct global_vars { + float event; + float pt; + float sign; + int check_conf; + int check_high; + int majority_low; + int majority_high; + }; + + + struct pivot_vars{ + unsigned int vp_code; + float vp_x; + float vp_y; + float vp_z; + int vp_CMA_eta; + int vp_CMA_phi; + int vp_PAD; + int vp_Ixx; + int pstrip_global; + int logic_sector_p; + int strip_number_p; + int klayer_p; + }; + + + struct lowPt_vars{ + int cp_code; + float cp_x; + float cp_y; + float cp_z; + int cstrip_global; + int logic_sector_c; + int strip_number_c; + int klayer_c; + }; + + + struct highPt_vars{ + float hp_x; + float hp_y; + float hp_z; + int hstrip_global; + int logic_sector_h; + int strip_number_h; + int klayer_h; + }; + + + typedef std::list < pivot_vars > list_pivot_vars; + typedef std::list < lowPt_vars > list_lowPt_vars; + typedef std::list < highPt_vars > list_highPt_vars; + + + private: + + int m_how_many; + global_vars m_global_v; + + list_pivot_vars m_list_pivot; + list_lowPt_vars m_list_lowPt ; + list_highPt_vars m_list_highPt; + + + public: +#ifdef LVL1_STANDALONE + DetailedTW(const RPCdata*); +#else + DetailedTW(const RPCdata*,const IRPCcablingSvc*); +#endif + + ~DetailedTW(); + + private: + +#ifdef LVL1_STANDALONE + void load_pivot_digi (const RPCdigit*,const CablingRPCBase*); + void load_lowPt_digi (const RPCdigit*,const CablingRPCBase*); + void load_highPt_digi(const RPCdigit*,const CablingRPCBase*); +#else + void load_pivot_digi (const RPCdigit*,const IRPCcablingSvc*); + void load_lowPt_digi (const RPCdigit*,const IRPCcablingSvc*); + void load_highPt_digi(const RPCdigit*,const IRPCcablingSvc*); +#endif + + void make_ntupla(int, float, float, int, int, int); + }; + +#endif diff --git a/Trigger/TrigT1/TrigT1RPCmonitoring/TrigT1RPCmonitoring/TrigEfficiency.h b/Trigger/TrigT1/TrigT1RPCmonitoring/TrigT1RPCmonitoring/TrigEfficiency.h new file mode 100755 index 0000000000000000000000000000000000000000..09c272f6f1985549d4df5f9aa3f8b98cb2e14c21 --- /dev/null +++ b/Trigger/TrigT1/TrigT1RPCmonitoring/TrigT1RPCmonitoring/TrigEfficiency.h @@ -0,0 +1,90 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef TRIGGER_EFFICIENCY_H +#define TRIGGER_EFFICIENCY_H + +#include <list> +#include <utility> + +#include "GaudiKernel/INTupleSvc.h" +#include "GaudiKernel/NTuple.h" + + +struct MontecarloThru +{ + float eta; + float phi; + + float p_x; + float p_y; + float p_z; + + float vertex_x; + float vertex_y; + float vertex_z; +}; + + +class TrigEfficiency +{ + public: + typedef std::pair <unsigned int,unsigned long int> TrigData; + typedef std::list <TrigData> SLwords; + typedef std::list <MontecarloThru> MCthru; + + private: + void load_SLwords(TrigData); + void load_MCthru(MontecarloThru); + + public: + TrigEfficiency(NTuple::Tuple*,unsigned int,unsigned int); + ~TrigEfficiency(); + + TrigEfficiency(const TrigEfficiency&); + + TrigEfficiency operator=(const TrigEfficiency&); + + void operator<<(TrigData); + void operator<<(MontecarloThru); + + const SLwords & sl_words(void) const {return m_words;} + const MCthru & mcthru(void) const {return m_thru;} + NTuple::Tuple* ntuple(void) const {return m_ntup;} + int max_muon(void) const {return m_max_muon;} + int max_roi(void) const { return m_max_roi;} + + + void write_ntp(INTupleSvc*); + + private: + NTuple::Tuple* m_ntup; + + SLwords m_words; + MCthru m_thru; + + unsigned int m_max_muon; + unsigned int m_max_roi; + + NTuple::Item<long> m_nmuon; + NTuple::Array<float> m_eta; + NTuple::Array<float> m_phi; + NTuple::Array<float> m_Px; + NTuple::Array<float> m_Py; + NTuple::Array<float> m_Pz; + NTuple::Array<float> m_Vx; + NTuple::Array<float> m_Vy; + NTuple::Array<float> m_Vz; + + NTuple::Item<long> m_nroi; + NTuple::Array<float> m_side; + NTuple::Array<float> m_sector; + NTuple::Array<float> m_roi; + NTuple::Array<float> m_th; +}; + + + + +#endif diff --git a/Trigger/TrigT1/TrigT1RPCmonitoring/cmt/requirements b/Trigger/TrigT1/TrigT1RPCmonitoring/cmt/requirements new file mode 100755 index 0000000000000000000000000000000000000000..c6d287244aa039a520bef8a914889ac09ecf9ffa --- /dev/null +++ b/Trigger/TrigT1/TrigT1RPCmonitoring/cmt/requirements @@ -0,0 +1,23 @@ +package TrigT1RPCmonitoring + +author Alessandro Di Mattia <alessandro.dimattia@roma1.infn.it> + +use AtlasPolicy AtlasPolicy-01-* +use GaudiInterface GaudiInterface-01-* External + +use TrigT1RPClogic TrigT1RPClogic-00-* Trigger/TrigT1 + +use MuonCablingTools MuonCablingTools-00-* MuonSpectrometer/MuonCablings +use RPCcablingInterface RPCcablingInterface-00-* MuonSpectrometer/MuonCablings +use RPCcabling RPCcabling-00-* MuonSpectrometer/MuonCablings + +macro_append lib_RPCmonitoring_pp_cppflags " -DLVL1_STANDALONE " +library RPCmonitoring -no_share -suffix=STN *.cxx +macro_append RPCmonitoring_dependencies " install_includes" + +apply_pattern dual_use_library files=*.cxx + + +#library TrigT1RPCmonitoring *.cxx -s=../src/components *.cxx + +#apply_pattern declare_runtime diff --git a/Trigger/TrigT1/TrigT1RPCmonitoring/src/DetailedTW.cxx b/Trigger/TrigT1/TrigT1RPCmonitoring/src/DetailedTW.cxx new file mode 100755 index 0000000000000000000000000000000000000000..b110239a241596f4c23f8f3a1fc651167d402c3c --- /dev/null +++ b/Trigger/TrigT1/TrigT1RPCmonitoring/src/DetailedTW.cxx @@ -0,0 +1,391 @@ +// -*- C++ -*- + +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include <stdio.h> +#include <math.h> +#include "TrigT1RPCmonitoring/DetailedTW.h" + +using namespace std; + +#ifdef LVL1_STANDALONE +DetailedTW::DetailedTW(const RPCdata* rpc_data) : BaseObject(Monitoring,"DetailedTW") +#else +DetailedTW::DetailedTW(const RPCdata* rpc_data,const IRPCcablingSvc* cabling) : + BaseObject(Data,"DetailedTW") +#endif +{ + m_how_many = 0; + + m_global_v.event = 0; + m_global_v.pt = 0; + m_global_v.sign = 0; + m_global_v.check_conf = 0; + m_global_v.check_high = 0; + m_global_v.majority_low = 0; + m_global_v.majority_high = 0; + + m_list_pivot.clear(); + m_list_lowPt.clear() ; + m_list_highPt.clear(); + + +#ifdef LVL1_STANDALONE + const CablingRPCBase* cabling = RPCcabling::CablingRPC::instance(); +#endif + + if(!cabling) + { + DISP << "Creation of Trigger Window data is not possible: no cabling service!" + << endl; + DISP_ERROR; + return; + } + + RPCdata::digitList eta = rpc_data->eta_digits_list(); + RPCdata::digitList::const_iterator digi = eta.begin(); + + while(digi != eta.end()) + { + const int station = (*digi)->decoding().lvl1_station(); + + if (station == 2) load_pivot_digi(*digi,cabling); + else if (station == 1) load_lowPt_digi(*digi,cabling); + else if (station == 3) load_highPt_digi(*digi,cabling); + + ++digi; + } + +} + +DetailedTW::~DetailedTW() +{ + m_list_pivot.clear(); + m_list_lowPt.clear() ; + m_list_highPt.clear(); +} + + +#ifdef LVL1_STANDALONE +void DetailedTW::load_pivot_digi(const RPCdigit* digi,const CablingRPCBase* cabling) +#else +void DetailedTW::load_pivot_digi(const RPCdigit* digi,const IRPCcablingSvc* cabling) +#endif +{ + DISP << "DetailedTW::load_pivot_digi -> Pivot digit n. " << m_list_pivot.size() + 1; + DISP_DEBUG; + + pivot_vars temp_vars; + + // Get logic values from the digit + unsigned long str_code = digi->decoding().code(); + const int sector = digi->decoding().logic_sector(); + const ViewType type = digi->decoding().view(); + const int station = digi->decoding().lvl1_station(); + const int cabling_code = digi->decoding().cabling_code(); + + const CMAparameters::CMAlist list = + cabling->give_CMAs(sector,type,station,cabling_code); + + if(list.size() > 1) + { + DISP << "DetailedTW::load_pivot_digi: found more than 1 CMA for a pivot digit!"; + DISP_ERROR; + return; + } + + int CMA_eta = list.front()->id().eta_index(); + int CMA_phi = list.front()->id().phi_index(); + int CMA_PAD = list.front()->id().PAD_index(); + int CMA_Ixx = list.front()->id().Ixx_index(); + + int global_code; + int global_connector; + int prev_strips_conn; + int foll_strips_conn; + cabling->give_global_address(str_code,global_code,global_connector, + prev_strips_conn,foll_strips_conn); + + // Fill all the vars in struct pivot_vars (defined in DetailedTW.h) + temp_vars.vp_code = str_code; + temp_vars.vp_x = digi->x(); + temp_vars.vp_y = digi->y(); + temp_vars.vp_z = digi->z(); + + temp_vars.vp_CMA_eta = CMA_eta; + temp_vars.vp_CMA_phi = CMA_phi; + temp_vars.vp_PAD = CMA_PAD; + temp_vars.vp_Ixx = CMA_Ixx; + + temp_vars.pstrip_global = global_code; + + temp_vars.logic_sector_p = digi->decoding().logic_sector(); + temp_vars.strip_number_p = digi->decoding().strip_number(); + temp_vars.klayer_p = digi->decoding().rpc_layer() + digi->decoding().lvl1_station()*2; + + // insert the temp_vars into the list + m_list_pivot.push_back(temp_vars); + +} + + +#ifdef LVL1_STANDALONE +void DetailedTW::load_lowPt_digi(const RPCdigit* digi,const CablingRPCBase* cabling) +#else +void DetailedTW::load_lowPt_digi(const RPCdigit* digi,const IRPCcablingSvc* cabling) +#endif +{ + DISP << "DetailedTW::load_lowPt_digi -> Low Pt digit n. " << m_list_lowPt.size() + 1; + DISP_DEBUG; + + lowPt_vars temp_vars; + + // Get logic values from the digit + unsigned long str_code = digi->decoding().code(); + + int global_code; + int global_connector; + int prev_strips_conn; + int foll_strips_conn; + cabling->give_global_address(str_code,global_code,global_connector, + prev_strips_conn,foll_strips_conn); + + // Fill all vars in struct conf_vars (defined in DetailedTW.h) + temp_vars.cp_code = str_code; + temp_vars.cp_x = digi->x(); + temp_vars.cp_y = digi->y(); + temp_vars.cp_z = digi->z(); + temp_vars.cstrip_global = global_code; //local strip number instead of global! + temp_vars.logic_sector_c = digi->decoding().logic_sector(); + temp_vars.strip_number_c = digi->decoding().strip_number(); + temp_vars.klayer_c = digi->decoding().rpc_layer() + digi->decoding().lvl1_station()*2; + + // insert the temp_vars into the list + m_list_lowPt.push_back(temp_vars); +} + +#ifdef LVL1_STANDALONE +void DetailedTW::load_highPt_digi(const RPCdigit* digi,const CablingRPCBase* cabling) +#else +void DetailedTW::load_highPt_digi(const RPCdigit* digi,const IRPCcablingSvc* cabling) +#endif +{ + DISP << "DetailedTW::load_highPt_digi -> High Pt digit n. " << m_list_highPt.size() + 1; + DISP_DEBUG; + + highPt_vars temp_vars; + + // Get logic values from the digit + unsigned long str_code = digi->decoding().code(); + + int global_code; + int global_connector; + int prev_strips_conn; + int foll_strips_conn; + cabling->give_global_address(str_code,global_code,global_connector, + prev_strips_conn,foll_strips_conn); + + // Fill all vars in struct conf_vars (defined in DetailedTW.h) + temp_vars.hp_x = digi->x(); + temp_vars.hp_y = digi->y(); + temp_vars.hp_z = digi->z(); + temp_vars.hstrip_global = global_code; //local strip number instead of global! + temp_vars.logic_sector_h = digi->decoding().logic_sector(); + temp_vars.strip_number_h = digi->decoding().strip_number(); + temp_vars.klayer_h = digi->decoding().rpc_layer() + digi->decoding().lvl1_station()*2; + + // insert the temp_vars into the list + m_list_highPt.push_back(temp_vars); +} + +void DetailedTW::make_ntupla(int event,float pt,float sign,int /*id_ntp*/,int maj_low, int maj_high){ + + cout<<" Enter Mk_ntupla "<<endl; + + // fill vars in struct global_vars (defined in DetailedTW.h) + m_global_v.event = event; + m_global_v.pt = pt; + m_global_v.sign = sign; + m_global_v.check_conf = 99999; + m_global_v.check_high = 99999; + m_global_v.majority_low = maj_low; + m_global_v.majority_high = maj_high; + + //HCDIR_W("//PAWC/T1MB"," "); + + // int numb_var_global = 7; + // int numb_var_pivot = 12; + // int numb_var_conf = 8; + // int numb_var_high = 7; + const int numb_var_tot = 34; + + float vars[numb_var_tot]; + + for (int ind=0;ind<numb_var_tot;ind++) + { + vars[ind]=99999.; // reset vars + } + + vars[0] = m_global_v.event; + vars[1] = m_global_v.pt; + vars[2] = m_global_v.sign; + vars[32] = m_global_v.majority_low; + vars[33] = m_global_v.majority_high; + + list_pivot_vars::const_iterator pv = m_list_pivot.begin(); + while (pv != m_list_pivot.end() ) + { + DISP << " For this event there are " << m_list_pivot.size() + << " digit into the pivot plane."; + DISP_DEBUG; + + + vars[3] = (*pv).vp_code; + vars[4] = (*pv).vp_x; + vars[5] = (*pv).vp_y; + vars[6] = (*pv).vp_z; + vars[7] = (*pv).vp_CMA_eta; + vars[8] = (*pv).vp_CMA_phi; + vars[9] = (*pv).vp_PAD; + vars[10] = (*pv).vp_Ixx; + vars[11] = (*pv).pstrip_global; + vars[12] = (*pv).logic_sector_p; + vars[13] = (*pv).strip_number_p; + vars[14] = (*pv).klayer_p; + + if (m_list_lowPt.size() == 0) // ZERO DIGI IN LOW PT PLANE + { + m_global_v.check_conf = 0; + vars[15]= m_global_v.check_conf; // check_conf=0 + + if (m_list_highPt.size() == 0) // ZERO DIGI IN HIGH PT PLANE + { + m_global_v.check_high = 0; + vars[24] = m_global_v.check_high; // check_high=0 + + DISP << "fill ntupla case YNN"; + DISP_DEBUG; + + for (int ind=0;ind<numb_var_tot;ind++) + { + DISP << "VAR # " << ind << " = " << vars[ind]; // reset vars + } + + // HFN_W(id_ntp,vars); + } + else + { // AT LEAST 1 DIGIT IN HIGH PLANE!!! + list_highPt_vars::const_iterator hg = m_list_highPt.begin(); + while (hg != m_list_highPt.end() ) + { + m_global_v.check_high = 1; + + vars[24] = m_global_v.check_high; //check_high=1 + vars[25] = (*hg).hp_x; + vars[26] = (*hg).hp_y; + vars[27] = (*hg).hp_z; + vars[28] = (*hg).hstrip_global; + vars[29] = (*hg).logic_sector_h; + vars[30] = (*hg).strip_number_h; + vars[31] = (*hg).klayer_h; + + DISP << "fill ntupla case NYY"; + DISP_DEBUG; + + for (int ind=0;ind<numb_var_tot;ind++) + { + DISP << "VAR # " << ind << " = " << vars[ind]; + DISP_DEBUG; + } + + hg++; + + //HFN_W(id_ntp,vars); + + }//end of while (index_digi_high<lista_high + }///end of if (lista_high.count ! + + } + else + { // AT LEAST 1 DIGIT IN CONF PLANE !!!! + list_lowPt_vars::const_iterator lw = m_list_lowPt.begin(); + while (lw != m_list_lowPt.end() ) + { + m_global_v.check_conf = 1; + + vars[15] = m_global_v.check_conf; //check_conf=1 + vars[16] = (*lw).cp_code; + vars[17] = (*lw).cp_x; + vars[18] = (*lw).cp_y; + vars[19] = (*lw).cp_z; + vars[20] = (*lw).cstrip_global; + vars[21] = (*lw).logic_sector_c; + vars[22] = (*lw).strip_number_c; + vars[23] = (*lw).klayer_c; + + if (m_list_highPt.size() == 0) + { // ZERO DIGI IN HIGH PT PLANE + m_global_v.check_high = 0; + + vars[24] = m_global_v.check_high; // check_high=0 + + DISP << "fill ntupla case YYN"; + DISP_DEBUG; + + for (int ind=0;ind<numb_var_tot;ind++) + { + DISP << "VAR # " << ind << " = " << vars[ind]; + DISP_DEBUG; + } + + //HFN_W(id_ntp,vars); + } + else + { // AT LEAST 1 DIGIT IN HIGH PLANE!!! + list_highPt_vars::const_iterator hg = m_list_highPt.begin(); + while (hg != m_list_highPt.end() ) + { + m_global_v.check_high = 1; + + vars[24] = m_global_v.check_high; //check_high=1 + vars[25] = (*hg).hp_x; + vars[26] = (*hg).hp_y; + vars[27] = (*hg).hp_z; + vars[28] = (*hg).hstrip_global; + vars[29] = (*hg).logic_sector_h; + vars[30] = (*hg).strip_number_h; + vars[31] = (*hg).klayer_h; + + DISP << "fill ntupla case YYY"; + DISP_DEBUG; + + for (int ind=0;ind<numb_var_tot;ind++) + { + DISP << "VAR # " << ind << " = " << vars[ind]; + DISP_DEBUG; + } + + hg++; + + // HFN_W(id_ntp,vars); + + }//end of while (index_digi_high<lista_high + }///end of if (lista_high.count ! + + lw++;; + + }//end of while (index_digi_conf<lista_conf + } //end of else (lista_conferma.count ! + + pv++; + + } //end of if pivot_list + + DISP << "exit from make ntupla"; + DISP_ERROR; + +}//end of void DetailedTW::make_ntupla(int event) + + diff --git a/Trigger/TrigT1/TrigT1RPCmonitoring/src/TrigEfficiency.cxx b/Trigger/TrigT1/TrigT1RPCmonitoring/src/TrigEfficiency.cxx new file mode 100755 index 0000000000000000000000000000000000000000..b9cbfb9304022b71e5c279bd4d7e414d77c60062 --- /dev/null +++ b/Trigger/TrigT1/TrigT1RPCmonitoring/src/TrigEfficiency.cxx @@ -0,0 +1,134 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include "TrigT1RPCmonitoring/TrigEfficiency.h" +#include "TrigT1RPClogic/decodeSL.h" + + +TrigEfficiency::TrigEfficiency( NTuple::Tuple* ntup,unsigned int max_muon, + unsigned int max_roi) : m_ntup(ntup) +{ + m_ntup->addItem("MCTHRU/muon",m_nmuon,0,static_cast<int>(max_muon)); + m_ntup->addItem("MCTHRU/eta",m_nmuon,m_eta); + m_ntup->addItem("MCTHRU/phi",m_nmuon,m_phi); + m_ntup->addItem("MCTHRU/Px",m_nmuon,m_Px); + m_ntup->addItem("MCTHRU/Py",m_nmuon,m_Py); + m_ntup->addItem("MCTHRU/Pz",m_nmuon,m_Pz); + m_ntup->addItem("MCTHRU/Vx",m_nmuon,m_Vx); + m_ntup->addItem("MCTHRU/Vy",m_nmuon,m_Vy); + m_ntup->addItem("MCTHRU/Vz",m_nmuon,m_Vz); + + m_ntup->addItem("ROIS/roi",m_nroi,0,static_cast<int>(max_roi)); + m_ntup->addItem("ROIS/side",m_nroi,m_side); + m_ntup->addItem("ROIS/sector",m_nroi,m_sector); + m_ntup->addItem("ROIS/roiId",m_nroi,m_roi); + m_ntup->addItem("ROIS/thre",m_nroi,m_th); + + m_words.clear(); + m_thru.clear(); + + m_max_muon = max_muon; + m_max_roi = max_roi; +} + +TrigEfficiency::~TrigEfficiency() +{ + m_words.clear(); + m_thru.clear(); +} + +TrigEfficiency::TrigEfficiency(const TrigEfficiency& efficiency) : + m_ntup(efficiency.ntuple()),m_words(efficiency.sl_words()), + m_thru(efficiency.mcthru()),m_max_muon(efficiency.max_muon()), + m_max_roi(efficiency.max_roi()) +{ +} + +TrigEfficiency +TrigEfficiency::operator=(const TrigEfficiency& efficiency) +{ + m_words.clear(); + m_words = efficiency.sl_words(); + m_thru = efficiency.mcthru(); + m_ntup = efficiency.ntuple(); + m_max_muon = efficiency.max_muon(); + m_max_roi = efficiency.max_roi(); + return *this; +} + +void +TrigEfficiency::load_SLwords(TrigData data) +{ + if(m_words.size() <= m_max_roi-1) m_words.push_back(data); +} + +void +TrigEfficiency::load_MCthru(MontecarloThru thru) +{ + if(m_thru.size() <= m_max_muon-1) m_thru.push_back(thru); +} + +void +TrigEfficiency::operator<<(TrigData data) +{ + this->load_SLwords(data); +} + +void +TrigEfficiency::operator<<(MontecarloThru thru) +{ + this->load_MCthru(thru); +} + +void +TrigEfficiency::write_ntp(INTupleSvc* ntupleSvc) +{ + int count = 0; + m_nmuon = m_thru.size(); + MCthru::const_iterator mc = m_thru.begin(); + while(mc != m_thru.end()) + { + m_eta[count] = (*mc).eta; + m_phi[count] = (*mc).phi; + m_Px[count] = (*mc).p_x; + m_Py[count] = (*mc).p_y; + m_Pz[count] = (*mc).p_z; + m_Vx[count] = (*mc).vertex_x; + m_Vy[count] = (*mc).vertex_y; + m_Vz[count] = (*mc).vertex_z; + + ++count; + ++mc; + } + + count = 0; + m_nroi = m_words.size(); + SLwords::const_iterator it = m_words.begin(); + while (it != m_words.end()) + { + long int subsystem = ((*it).first > 31)? 1 : 0; + long int logic_sector = ((*it).first) %32; + + unsigned long int data_word = (*it).second; + + m_side[count] = subsystem; + m_sector[count] = logic_sector; + m_roi[count] = TriggerRPC::ROI1(data_word); + m_th[count] = TriggerRPC::PT1(data_word); + + // cout << "Input to Efficiency ntup: side=" << subsystem + // << ", SL= " << logic_sector + // << ", RoI=" << TriggerRPC::ROI1(data_word) + // << ", Th=" << TriggerRPC::PT1(data_word) + // << ", data word " << hex << data_word + // << dec << endl; + + ++count; + ++it; + } + + ntupleSvc->writeRecord("/NTUPLES/FILE1/RPCTRIG/9"); + m_words.clear(); + m_thru.clear(); +} diff --git a/Trigger/TrigT1/TrigT1RPCmonitoring/src/components/TrigT1RPCmonitoring_entries.cxx b/Trigger/TrigT1/TrigT1RPCmonitoring/src/components/TrigT1RPCmonitoring_entries.cxx new file mode 100755 index 0000000000000000000000000000000000000000..0c2e01c468b2ea9a48ab54caa54dfa914e2a3863 --- /dev/null +++ b/Trigger/TrigT1/TrigT1RPCmonitoring/src/components/TrigT1RPCmonitoring_entries.cxx @@ -0,0 +1,4 @@ +#include "GaudiKernel/DeclareFactoryEntries.h" + +DECLARE_FACTORY_ENTRIES(TrigT1RPCmonitoring) { +} diff --git a/Trigger/TrigT1/TrigT1RPCmonitoring/src/components/TrigT1RPCmonitoring_load.cxx b/Trigger/TrigT1/TrigT1RPCmonitoring/src/components/TrigT1RPCmonitoring_load.cxx new file mode 100755 index 0000000000000000000000000000000000000000..0af97694147f7ddbb5a3278f7c10b3d5d2b6c0b0 --- /dev/null +++ b/Trigger/TrigT1/TrigT1RPCmonitoring/src/components/TrigT1RPCmonitoring_load.cxx @@ -0,0 +1,5 @@ +#include "GaudiKernel/LoadFactoryEntries.h" + +LOAD_FACTORY_ENTRIES(TrigT1RPCmonitoring) + +