13 #include <TDirectory.h>
30 #include <JANA/JApplication.h>
31 #include <JANA/JFactory.h>
63 TDirectory *
mainDir = gDirectory;
64 TDirectory *tagmDir = gDirectory->mkdir(
"TAGM_clusters");
67 gDirectory->mkdir(
"Before")->cd();
69 h_mult_b =
new TH1I(
"mult_b",
"Multiplicity before",40,0.,40.);
70 h_E_b =
new TH1I(
"E_b",
"Energy before merging",110,8.2,9.3);
71 for (uint32_t i = 0; i < 10; ++i)
73 h_deltaT[i] =
new TH1I(Form(
"deltaT_%i",i+1),
74 Form(
"#Deltat of neighboring hits, group %i",i+1),
81 gDirectory->mkdir(
"After")->cd();
83 h_mult_a =
new TH1I(
"mult_a",
"Multiplicity after",40,0.,40.);
84 h_E_a =
new TH1I(
"E_a",
"Energy after merging",110,8.2,9.3);
88 h_occupancy_ind =
new TH1D(
"occupancy_ind",
"Histogram of occupancy",20,1,21);
123 vector<const DTAGMHit*> tagm_hits;
124 loop->Get(tagm_hits,
"Calib");
125 vector<const DTAGMHit*> tagm_merged_hits;
126 loop->Get(tagm_merged_hits);
128 japp->RootFillLock(
this);
132 for (uint32_t i = 0; i < tagm_hits.size(); ++i)
134 if (!tagm_hits[i]->has_fADC)
continue;
135 if (tagm_hits[i]->row > 0)
continue;
138 h_E_b->Fill(tagm_hits[i]->E);
145 for (uint32_t i = 0; i < tagm_merged_hits.size(); ++i)
147 if (!tagm_merged_hits[i]->has_fADC)
continue;
148 if (tagm_merged_hits[i]->row > 0)
150 int col = tagm_merged_hits[i]->column;
151 int row = tagm_merged_hits[i]->row;
164 h_E_a->Fill(tagm_merged_hits[i]->E);
170 set<uint32_t> locColUsedSoFar;
171 for (uint32_t i = 0; i < tagm_hits.size(); ++i)
173 if (!tagm_hits[i]->has_fADC)
continue;
174 if (tagm_hits[i]->row > 0)
continue;
177 if (locColUsedSoFar.find(tagm_hits[i]->column) != locColUsedSoFar.end())
continue;
179 for (uint32_t j = i+1; j < tagm_hits.size(); ++j)
181 if (!tagm_hits[j]->has_fADC)
continue;
182 if (tagm_hits[j]->row > 0)
continue;
184 int diff = tagm_hits[i]->column - tagm_hits[j]->column;
185 double deltaT = tagm_hits[i]->t - tagm_hits[j]->t;
188 if (tagm_hits[i]->
column < 11)
190 else if (tagm_hits[i]->
column < 21)
192 else if (tagm_hits[i]->
column < 31)
194 else if (tagm_hits[i]->
column < 41)
196 else if (tagm_hits[i]->
column < 51)
198 else if (tagm_hits[i]->
column < 61)
200 else if (tagm_hits[i]->
column < 71)
202 else if (tagm_hits[i]->
column < 81)
204 else if (tagm_hits[i]->
column < 91)
209 if (fabs(diff) == 1 && fabs(deltaT) <= 5)
211 locColUsedSoFar.insert(tagm_hits[j]->
column);
217 japp->RootFillUnLock(
this);
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
JEventProcessor_TAGM_clusters()
jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
~JEventProcessor_TAGM_clusters()
jerror_t fini(void)
Called after last event of last event source has been processed.
static TH1D * h_occupancy_a
static TH1D * h_occupancy_b
static TH1I * h_deltaT[10]
jerror_t init(void)
Called once at program start.
static const unsigned int kColumnCount
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
static TH1D * h_occupancy_ind