34 #include <JANA/JApplication.h>
35 #include <JANA/JFactory.h>
75 TDirectory *
main = gDirectory;
76 gDirectory->mkdir(
"st_multiplicity")->cd();
78 st_num_events =
new TH1I(
"st_num_events",
"ST Number of events",1, 0.5, 1.5);
99 h1_ADC_multiplicity[i] =
new TH1I(Form(
"h1_multiplicity_%i", i+1), Form(
"Channel %i, #phi #in [%i^{#circ}, %i^{#circ}]; fADC250 Multiplicity; fADC250 Counts ", i+1, 0+12*i, 12+12*i), 10, -0.5, 9.5);
100 h1_TDC_multiplicity[i] =
new TH1I(Form(
"h1_TDC_multiplicity_%i", i+1), Form(
"Channel %i, #phi #in [%i^{#circ}, %i^{#circ}]; TDC Multiplicity; TDC Counts ", i+1, 0+12*i, 12+12*i), 10, -0.5, 9.5);
101 h1_hit_multiplicity[i] =
new TH1I(Form(
"h1_hit_multiplicity_%i", i+1), Form(
"Channel %i, #phi #in [%i^{#circ}, %i^{#circ}]; Hit Multiplicity; Hit Counts ", i+1, 0+12*i, 12+12*i), 10, -0.5, 9.5);
103 h2_ADC_TDC_multiplicity[i] =
new TH2I (Form(
"h2_ADC_TDC_multiplicity_%i", i+1), Form(
"Channel %i, #phi #in [%i^{#circ}, %i^{#circ}];f1TDC Multiplicity; fADC250 Multiplicity", i+1, 0+12*i, 12+12*i), 10, -0.5, 9.5, 10, -0.5, 9.5);
141 vector<const DSCDigiHit*> ADC_Digi_Hits;
142 vector<const DSCTDCDigiHit*> TDC_Digi_Hits;
143 vector<const DSCHit*> Factory_Hits;
146 loop->GetSingle(locTrigger);
150 loop->Get(ADC_Digi_Hits);
151 loop->Get(TDC_Digi_Hits);
152 loop->Get(Factory_Hits);
154 int ADC_hits = ADC_Digi_Hits.size();
155 int TDC_hits = TDC_Digi_Hits.size();
156 int FAC_hits = Factory_Hits.size();
161 japp->RootFillLock(
this);
164 memset(counter_adc, 0,
sizeof(counter_adc));
165 memset(counter_tdc, 0,
sizeof(counter_tdc));
166 memset(counter_hit, 0,
sizeof(counter_hit));
167 memset(counter_adc_2, 0,
sizeof(counter_adc_2));
168 memset(counter_tdc_2, 0,
sizeof(counter_tdc_2));
169 memset(counter_adc_unmatched,0,
sizeof(counter_adc_unmatched));
170 memset(counter_tdc_unmatched,0,
sizeof(counter_tdc_unmatched));
173 if( (ADC_hits > 0) || (TDC_hits > 0) || (FAC_hits > 0) )
179 for(
int i = 0; i < ADC_hits; i++)
181 int adc_sector = ADC_Digi_Hits[i]->sector;
182 adc_index = adc_sector - 1;
186 counter_adc[adc_index] += 1;
187 for(
int k = 0; k < TDC_hits; k++)
189 int tdc_sector = TDC_Digi_Hits[k]->sector;
190 if (adc_sector != tdc_sector)
192 counter_adc_unmatched[adc_index] +=1;
200 if (counter_adc[j] != 0)
205 if ((counter_adc_unmatched[j] != 0) && (counter_adc_unmatched[j] <= 3))
212 for(
int k = 0; k < TDC_hits; k++)
214 int tdc_sector = TDC_Digi_Hits[k]->sector;
215 tdc_index = tdc_sector -1 ;
219 counter_tdc[tdc_index] += 1;
220 for(
int i = 0; i < ADC_hits; i++)
222 int adc_sector = ADC_Digi_Hits[i]->sector;
223 if (tdc_sector != adc_sector)
225 counter_tdc_unmatched[tdc_index] +=1;
232 if (counter_tdc[j] != 0)
238 if ((counter_tdc_unmatched[j] != 0) && (counter_tdc_unmatched[j] <= 3))
243 for(
int l = 0; l < FAC_hits; l++)
245 int hit_sector = Factory_Hits[l]->sector;
246 hit_index = hit_sector -1 ;
250 counter_hit[hit_index] += 1;
254 if (counter_hit[j] != 0)
263 if ((counter_adc[j] != 0) && (counter_tdc[j] != 0))
269 japp->RootFillUnLock(
this);
static TH1I * h1_adc_noMatchTO_tdc
static TH2I * h2_sector_adc_multip
static TH2I * h2_sector_hit_multip
const uint32_t ADC_MULTI_MAX
jerror_t init(void)
Called once at program start.
uint32_t Get_L1FrontPanelTriggerBits(void) const
static TH1I * h1_tdc_noMatchTO_adc
const uint32_t TDC_MULTI_MAX
static TH1I * st_num_events
const uint32_t ADC_MULTI_MIN
TH1I ** h1_hit_multiplicity
static TH2I * h2_st_adc_hit_multi
static TH2I * h2_tdc_unmatched
JEventProcessor_ST_online_multi()
const uint32_t TDC_MULTI_BINS
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
const uint32_t TDC_MULTI_MIN
const uint32_t ADC_MULTI_BINS
static TH2I * h2_st_adc_tdc_multi
TH2I ** h2_ADC_TDC_multiplicity
~JEventProcessor_ST_online_multi()
static TH2I * h2_sector_tdc_multip
jerror_t fini(void)
Called after last event of last event source has been processed.
static TH2I * h2_adc_unmatched
TH1I ** h1_ADC_multiplicity
int main(int argc, char *argv[])
jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
TH1I ** h1_TDC_multiplicity