54 auto indexIsOk = [
this](
int idx)->
bool{
62 auto trigNSW_output = std::make_shared<NSWTrigOut>();
63 if ( (side<0)||(side>1) )
return 0;
65 if ( TGC_TriggerSector<0 || TGC_TriggerSector>47 )
return 0;
67 int temp=int((TGC_TriggerSector-2)/6);
68 int NSW_TriggerSector=temp*2+int((TGC_TriggerSector-1-6*temp)/5);
69 if(TGC_TriggerSector==0 || TGC_TriggerSector==1) {
75 if (not indexIsOk(NSW_TriggerSector))
return nullptr;
76 *trigNSW_output+=*
m_buffer[side][NSW_TriggerSector];
78 if ( NSW_TriggerSector == 15 ) {
81 if (not indexIsOk(NSW_TriggerSector + 1))
return nullptr;
82 *trigNSW_output+=*
m_buffer[side][NSW_TriggerSector+1];
85 if( !(TGC_TriggerSector%6==4 || TGC_TriggerSector%6==5) ){
86 return trigNSW_output;
90 if ( NSW_TriggerSector==14 ) {
95 if (not indexIsOk(NSW_TriggerSector + 2))
return nullptr;
96 *trigNSW_output+=*
m_buffer[side][NSW_TriggerSector+2];
99 return trigNSW_output;
103 if ( TGC_TriggerSector<0 || TGC_TriggerSector>23 )
return 0;
106 int temp=int((TGC_TriggerSector-4)/6);
107 int NSW_TriggerSector=temp*4+int((TGC_TriggerSector-6*temp-4)/2)+2;
108 if(TGC_TriggerSector==0 || TGC_TriggerSector==1)
109 NSW_TriggerSector=15;
110 else if(TGC_TriggerSector==2 || TGC_TriggerSector==3)
114 if (not indexIsOk(NSW_TriggerSector))
return nullptr;
115 *trigNSW_output+=*
m_buffer[side][NSW_TriggerSector];
117 if(TGC_TriggerSector==0 || TGC_TriggerSector==1){
118 *trigNSW_output+=*
m_buffer[side][0];
119 *trigNSW_output+=*
m_buffer[side][1];
120 }
else if(TGC_TriggerSector==22 || TGC_TriggerSector==23){
121 if (not indexIsOk(NSW_TriggerSector + 1))
return nullptr;
122 *trigNSW_output+=*
m_buffer[side][NSW_TriggerSector+1];
123 *trigNSW_output+=*
m_buffer[side][0];
125 if (not indexIsOk(NSW_TriggerSector + 2))
return nullptr;
126 *trigNSW_output+=*
m_buffer[side][NSW_TriggerSector+1];
127 *trigNSW_output+=*
m_buffer[side][NSW_TriggerSector+2];
130 return trigNSW_output;
138void TGCNSW::setOutput(
int side,
int NSWTriggerProcesser, uint8_t NSWeta_8bit, uint8_t NSWphi_6bit, uint8_t NSWDtheta_5bit,
bool lowRes,
bool phiRes,
bool NSWmonitor)
140 if ( (side<0)||(side>1) )
return;
142 m_buffer[side][NSWTriggerProcesser]->setSide(side);
143 m_buffer[side][NSWTriggerProcesser]->setNSWTriggerProcessor(NSWTriggerProcesser);
144 m_buffer[side][NSWTriggerProcesser]->setEta(NSWeta_8bit);
145 m_buffer[side][NSWTriggerProcesser]->setPhi(NSWphi_6bit);
146 m_buffer[side][NSWTriggerProcesser]->setDtheta(NSWDtheta_5bit);
147 m_buffer[side][NSWTriggerProcesser]->setLowRes(lowRes);
148 m_buffer[side][NSWTriggerProcesser]->setPhiRes(phiRes);
149 m_buffer[side][NSWTriggerProcesser]->setMonitor(NSWmonitor);
void setOutput(int side, int NSWTriggerProcesser, uint8_t NSWeta_8bit, uint8_t NSWphi_6bit, uint8_t NSWDtheta_5bit, bool lowRes, bool phiRes, bool NSWmonitor)