Bug Summary

File:plugins/Calibration/CDC_amp/JEventProcessor_CDC_amp.cc
Location:line 210, column 7
Description:Value stored to 'netamp' is never read

Annotated Source Code

1// $Id$
2//
3// File: JEventProcessor_CDC_amp.cc
4// Created: Tue Sep 6 10:13:02 EDT 2016
5// Creator: njarvis (on Linux egbert 2.6.32-642.3.1.el6.x86_64 x86_64)
6//
7
8#include "JEventProcessor_CDC_amp.h"
9
10
11
12// Routine used to create our JEventProcessor
13#include <JANA/JApplication.h>
14#include <JANA/JFactory.h>
15extern "C"{
16void InitPlugin(JApplication *app){
17 InitJANAPlugin(app);
18 app->AddProcessor(new JEventProcessor_CDC_amp());
19}
20} // "C"
21
22
23//------------------
24// JEventProcessor_CDC_amp (Constructor)
25//------------------
26JEventProcessor_CDC_amp::JEventProcessor_CDC_amp()
27{
28
29}
30
31//------------------
32// ~JEventProcessor_CDC_amp (Destructor)
33//------------------
34JEventProcessor_CDC_amp::~JEventProcessor_CDC_amp()
35{
36
37}
38
39//------------------
40// init
41//------------------
42jerror_t JEventProcessor_CDC_amp::init(void)
43{
44 // This is called once at program startup.
45
46 TDirectory *main = gDirectory(ROOT::Internal::TDirectoryAtomicAdapter(TDirectory::CurrentDirectory
()))
;
47 gDirectory(ROOT::Internal::TDirectoryAtomicAdapter(TDirectory::CurrentDirectory
()))
->mkdir("CDC_amp")->cd();
48
49 time = new TH1I("time","CDC time (hits on tracks); raw time",200,0,2000);
50
51 a = new TH1I("a","CDC amplitude (hits on tracks);amplitude - pedestal",4096,0,4096);
52
53 an = new TH2I("an","CDC amplitude vs n (hits on tracks); n; amplitude - pedestal",3522,0,3522,4096,0,4096);
54
55 atime = new TH2D("atime","CDC amplitude vs time (hits on tracks); raw time; amplitude - pedestal",200,0,2000,4096,0,4096);
56
57 atheta = new TH2D("atheta","CDC amplitude vs theta (hits on tracks); theta; amplitude - pedestal",180,0,180,4096,0,4096);
58
59
60 a30 = new TH1I("a30","CDC amplitude (tracks, theta 28-32 deg, z 52-78cm);amplitude - pedestal",4096,0,4096);
61
62 a30_100ns = new TH1I("a30_100ns","CDC amplitude, hits with drift time < 100ns (tracks, theta 28-32 deg, z 52-78cm);amplitude - pedestal",4096,0,4096);
63
64 an30_100ns = new TH2I("an30_100ns","CDC amplitude vs n, hits with drift time < 100ns (tracks, theta 28-32 deg, z 52-78cm); n; amplitude - pedestal",3522,0,3522,4096,0,4096);
65
66 atime30 = new TH2D("atime30","CDC amplitude vs time (tracks, theta 28-32 deg, z 52-78cm); raw time; amplitude - pedestal",200,0,2000,4096,0,4096);
67
68 adoca30 = new TH2D("adoca30","CDC amplitude vs DOCA (tracks, theta 28-32 deg, z 52-78cm); DOCA (cm); amplitude - pedestal",200,0,1.0,4096,0,4096);
69
70
71
72 a45 = new TH1I("a45","CDC amplitude (tracks, theta 43-47 deg, z 52-78cm);amplitude - pedestal",4096,0,4096);
73
74 a45_100ns = new TH1I("a45_100ns","CDC amplitude, hits with drift time < 100ns (tracks, theta 43-47 deg, z 52-78cm); amplitude - pedestal",4096,0,4096);
75
76 an45_100ns = new TH2I("an45_100ns","CDC amplitude vs n, hits with drift time < 100ns (tracks, theta 43-47 deg, z 52-78cm); n; amplitude - pedestal",3522,0,3522,4096,0,4096);
77
78 atime45 = new TH2D("atime45","CDC amplitude vs time (tracks, theta 43-47 deg, z 52-78cm); raw time; amplitude - pedestal",200,0,2000,4096,0,4096);
79
80 adoca45 = new TH2D("adoca45","CDC amplitude vs DOCA (tracks, theta 43-47 deg, z 52-78cm); DOCA (cm); amplitude - pedestal",200,0,1.0,4096,0,4096);
81
82
83
84
85
86
87 a90 = new TH1I("a90","CDC amplitude (tracks, theta 85-95 deg, z 52-78cm);amplitude - pedestal",4096,0,4096);
88
89 a90_100ns = new TH1I("a90_100ns","CDC amplitude, hits with drift time < 100ns (tracks, theta 85-95 deg, z 52-78cm);amplitude - pedestal",4096,0,4096);
90
91 an90_100ns = new TH2I("an90_100ns","CDC amplitude vs n, hits with drift time < 100ns (tracks, theta 85-95 deg, z 52-78cm); n; amplitude - pedestal",3522,0,3522,4096,0,4096);
92
93 atime90 = new TH2D("atime90","CDC amplitude vs time (tracks, theta 85-95 deg, z 52-78cm); raw time; amplitude - pedestal",200,0,2000,4096,0,4096);
94
95 adoca90 = new TH2D("adoca90","CDC amplitude vs DOCA (tracks, theta 85-95 deg, z 52-78cm); DOCA (cm); amplitude - pedestal",200,0,1.0,4096,0,4096);
96
97 time90 = new TH1I("time90","CDC time (tracks, theta 85-95 deg, z 52-78cm); raw time",200,0,2000);
98
99 an90 = new TH2I("an90","CDC amplitude vs n (tracks, theta 85-95 deg, z 52-78cm); n; amplitude - pedestal",3522,0,3522,4096,0,4096);
100
101 xt90 = new TH2D("xt90","CDC DOCA vs time (tracks, theta 85-95 deg, z 52-78cm); time (ns); DOCA (cm)",400,0,1200,400,0,1.0);
102
103
104 main->cd();
105
106 return NOERROR;
107}
108
109//------------------
110// brun
111//------------------
112jerror_t JEventProcessor_CDC_amp::brun(JEventLoop *eventLoop, int32_t runnumber)
113{
114 // This is called whenever the run number changes
115
116 if (runnumber<40000) ASCALE = 8; // default for ASCALE before run 40,000 to be used if Df125config is not present
117
118 if (runnumber>41497) ASCALE = 8; // default for ASCALE before run 40,000 to be used if Df125config is not present
119
120 return NOERROR;
121}
122
123//------------------
124// evnt
125//------------------
126jerror_t JEventProcessor_CDC_amp::evnt(JEventLoop *loop, uint64_t eventnumber)
127{
128 // This is called for every event. Use of common resources like writing
129 // to a file or filling a histogram should be mutex protected. Using
130 // loop->Get(...) to get reconstructed objects (and thereby activating the
131 // reconstruction algorithm) should be done outside of any mutex lock
132 // since multiple threads may call this method at the same time.
133 // Here's an example:
134 //
135 // vector<const MyDataClass*> mydataclasses;
136 // loop->Get(mydataclasses);
137 //
138 // japp->RootFillLock(this);
139 // ... fill histograms or trees ...
140 // japp->RootFillUnLock(this);
141
142 int ring, straw, n; // ring number, straw number within ring, straw number overall (1 to 3522)
143
144 uint32_t amp,ped,t; // dcdcdigihits raw quantities: time, pedestal, amplitude, quality factor, overflow count
145
146 //scaling factors will be overridden by Df125Config if presqnt
147 // uint16_t ASCALE = 8; //amplitude
148 // uint16_t PSCALE = 1; //ped
149
150 //add extra 0 at front to use offset[1] for ring 1 //used to calculate straw number n
151 int straw_offset[29] = {0,0,42,84,138,192,258,324,404,484,577,670,776,882,1005,1128,1263,1398,1544,1690,1848,2006,2176,2346,2528,2710,2907,3104,3313};
152
153
154 // select events with physics events, i.e., not LED and other front panel triggers
155 const DTrigger* locTrigger = NULL__null;
156 loop->GetSingle(locTrigger);
157 if(locTrigger->Get_L1FrontPanelTriggerBits() != 0)
158 return NOERROR;
159
160 // use only events with track vertex in the target region
161 const DVertex* locVertex = NULL__null;
162 loop->GetSingle(locVertex);
163 double vertexz = locVertex->dSpacetimeVertex.Z();
164 if (vertexz < 52 || vertexz > 78) return NOERROR;
165
166
167 // // test whether this is simulated or real data (skip digihits for sim data)
168 // int SIMULATION;
169 // vector<const DMCThrown*> MCThrowns;
170 // loop->Get(MCThrowns);
171 // if (MCThrowns.empty()) SIMULATION = 0;
172 // if (!MCThrowns.empty()) SIMULATION = 1;
173
174
175 const DCDCHit *hit = NULL__null;
176 const DCDCDigiHit *digihit = NULL__null;
177 const Df125CDCPulse *cp = NULL__null;
178
179 int netamp = 0;
180 float scaledped;
181
182 int used[3523] = {0};
183
184 //--------tracks---------------------------
185
186
187 vector<const DTrackTimeBased*> tracks;
188
189 loop->Get(tracks);
190
191
192 for (uint32_t i=0; i<tracks.size(); i++) {
193
194 DVector3 mom = tracks[i]->momentum();
195 double theta = mom.Theta();
196 theta = 180.0*theta/3.14159;
197
198 vector<DTrackFitter::pull_t> pulls = tracks[i]->pulls;
199
200 for (uint32_t j=0; j<pulls.size(); j++) {
201
202 if (pulls[j].cdc_hit == NULL__null) continue;
203
204 hit = NULL__null;
205 pulls[j].cdc_hit->GetSingle(hit);
206
207 double doca = pulls[j].d;
208 double tdrift = pulls[j].tdrift;
209
210 netamp = 0;
Value stored to 'netamp' is never read
211
212 // if (!SIMULATION) {
213
214 digihit = NULL__null;
215 hit->GetSingle(digihit);
216 if (!digihit) continue;
217
218 cp = NULL__null;
219 digihit->GetSingle(cp);
220 if (!cp) continue; //no CDCPulseData (happens occasionally)
221
222 if (cp->time_quality_bit) continue;
223 if (cp->overflow_count) continue;
224
225 amp = cp->first_max_amp;
226 ped = cp->pedestal;
227 t = cp->le_time;
228
229 scaledped = ped*(float)PSCALE/(float)ASCALE;
230
231 netamp = (int)amp - (int)scaledped;
232
233 // }
234
235 if (netamp ==0) continue;
236
237 ring = (int)hit->ring;
238 straw = (int)hit->straw;
239
240 n = straw_offset[ring] + straw;
241
242
243 japp->RootFillLock(this); //ACQUIRE ROOT LOCK!!
244
245 if (!used[n]) {
246
247 used[n] = 1;
248
249 a->Fill(netamp);
250 an->Fill(n,netamp);
251 atheta->Fill(theta,netamp);
252 atime->Fill((int)t,netamp);
253 time->Fill((int)t);
254
255 if ((theta>85) && (theta<95)) {
256
257 a90->Fill(netamp);
258 atime90->Fill((int)t,netamp);
259 adoca90->Fill(doca,netamp);
260
261 if (hit->t < 100.0) a90_100ns->Fill(netamp);
262 if (hit->t < 100.0) an90_100ns->Fill(n,netamp);
263
264 an90->Fill(n,netamp);
265 time90->Fill((int)t);
266 xt90->Fill(tdrift,doca);
267
268 } else if ((theta > 28.05) && (theta < 32)) {
269
270 a30->Fill(netamp);
271 atime30->Fill((int)t,netamp);
272 adoca30->Fill(doca,netamp);
273
274 if (hit->t < 100.0) a30_100ns->Fill(netamp);
275 if (hit->t < 100.0) an30_100ns->Fill(n,netamp);
276
277 } else if ((theta > 43.07) && (theta < 47)) {
278
279 a45->Fill(netamp);
280 atime45->Fill((int)t,netamp);
281 adoca45->Fill(doca,netamp);
282
283 if (hit->t < 100.0) a45_100ns->Fill(netamp);
284 if (hit->t < 100.0) an45_100ns->Fill(n,netamp);
285
286
287 }
288
289 } //if !used
290
291
292 japp->RootFillUnLock(this);
293
294 }
295 }
296
297 return NOERROR;
298}
299
300//------------------
301// erun
302//------------------
303jerror_t JEventProcessor_CDC_amp::erun(void)
304{
305 // This is called whenever the run number changes, before it is
306 // changed to give you a chance to clean up before processing
307 // events from the next run number.
308 return NOERROR;
309}
310
311//------------------
312// fini
313//------------------
314jerror_t JEventProcessor_CDC_amp::fini(void)
315{
316 // Called before program exit after event processing is finished.
317
318
319 return NOERROR;
320}