Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DReaction_factory_track_skimmer.cc
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: DReaction_factory_track_skimmer.cc
4 // Created: Tue Jan 13 11:08:16 EST 2015
5 // Creator: Paul (on Darwin Pauls-MacBook-Pro.local 14.0.0 i386)
6 //
7 
10 
11 //------------------
12 // init
13 //------------------
15 {
16  // Make as many DReaction objects as desired
17  DReactionStep* locReactionStep = NULL;
18  DReaction* locReaction = NULL; //needs to be a unique name for each DReaction object, CANNOT (!) be "Thrown"
19 
20  // DOCUMENTATION:
21  // ANALYSIS library: https://halldweb1.jlab.org/wiki/index.php/GlueX_Analysis_Software
22  // DReaction factory: https://halldweb1.jlab.org/wiki/index.php/Analysis_DReaction
23 
24  /**************************************************** skim_pi0 ****************************************************/
25 
26  locReaction = new DReaction("skim_pi0");
27 
28  //pi0 -> g, g
29  DReactionStep* locReactionStep_Pi01 = new DReactionStep();
30  locReactionStep_Pi01->Set_InitialParticleID(Pi0);
31  locReactionStep_Pi01->Add_FinalParticleID(Gamma);
32  locReactionStep_Pi01->Add_FinalParticleID(Gamma);
33  locReaction->Add_ReactionStep(locReactionStep_Pi01);
34  dReactionStepPool.push_back(locReactionStep_Pi01); //register so will be deleted later: prevent memory leak
35 
36  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
37  _data.push_back(locReaction); //Register the DReaction with the factory
38 
39  /**************************************************** skim_2pi0 ****************************************************/
40 
41  locReaction = new DReaction("skim_2pi0");
42 
43  //X -> 2pi0
44  locReactionStep = new DReactionStep();
45  locReactionStep->Set_InitialParticleID(Unknown);
46  locReactionStep->Add_FinalParticleID(Pi0);
47  locReactionStep->Add_FinalParticleID(Pi0);
48  locReaction->Add_ReactionStep(locReactionStep);
49  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
50 
51  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
52  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
53 
54  //pi0 -> g, g
55  DReactionStep* locReactionStep_Pi02 = new DReactionStep();
56  locReactionStep_Pi02->Set_InitialParticleID(Pi0);
57  locReactionStep_Pi02->Add_FinalParticleID(Gamma);
58  locReactionStep_Pi02->Add_FinalParticleID(Gamma);
59  locReaction->Add_ReactionStep(locReactionStep_Pi02);
60  dReactionStepPool.push_back(locReactionStep_Pi02); //register so will be deleted later: prevent memory leak
61 
62  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
63  _data.push_back(locReaction); //Register the DReaction with the factory
64 
65  /**************************************************** skim_3pi0 ****************************************************/
66 
67  locReaction = new DReaction("skim_3pi0");
68 
69  //X -> 3pi0
70  locReactionStep = new DReactionStep();
71  locReactionStep->Set_InitialParticleID(Unknown);
72  locReactionStep->Add_FinalParticleID(Pi0);
73  locReactionStep->Add_FinalParticleID(Pi0);
74  locReactionStep->Add_FinalParticleID(Pi0);
75  locReaction->Add_ReactionStep(locReactionStep);
76  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
77 
78  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
79  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
80  locReaction->Add_ReactionStep(locReactionStep_Pi02); //pi0 -> g, g
81 
82  //pi0 -> g, g
83  DReactionStep* locReactionStep_Pi03 = new DReactionStep();
84  locReactionStep_Pi03->Set_InitialParticleID(Pi0);
85  locReactionStep_Pi03->Add_FinalParticleID(Gamma);
86  locReactionStep_Pi03->Add_FinalParticleID(Gamma);
87  locReaction->Add_ReactionStep(locReactionStep_Pi03);
88  dReactionStepPool.push_back(locReactionStep_Pi03); //register so will be deleted later: prevent memory leak
89 
90  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
91  _data.push_back(locReaction); //Register the DReaction with the factory
92 
93  /**************************************************** skim_ks_2piq ****************************************************/
94 
95  locReaction = new DReaction("skim_ks_2piq");
96 
97  //ks -> pi+, pi-
98  locReactionStep = new DReactionStep();
99  locReactionStep->Set_InitialParticleID(KShort);
100  locReactionStep->Add_FinalParticleID(PiPlus);
101  locReactionStep->Add_FinalParticleID(PiMinus);
102  locReaction->Add_ReactionStep(locReactionStep);
103  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
104 
105  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, KShort, false, 800, 0.3, 0.7, "KShort"));
106  _data.push_back(locReaction); //Register the DReaction with the factory
107 
108  /**************************************************** skim_ks_2pi0 ****************************************************/
109 
110  locReaction = new DReaction("skim_ks_2pi0");
111 
112  //ks -> 2pi0
113  locReactionStep = new DReactionStep();
114  locReactionStep->Set_InitialParticleID(KShort);
115  locReactionStep->Add_FinalParticleID(Pi0);
116  locReactionStep->Add_FinalParticleID(Pi0);
117  locReaction->Add_ReactionStep(locReactionStep);
118  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
119 
120  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
121  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
122  locReaction->Add_ReactionStep(locReactionStep_Pi02); //pi0 -> g, g
123 
124  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
125  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, KShort, false, 800, 0.3, 0.7, "KShort"));
126 
127  _data.push_back(locReaction); //Register the DReaction with the factory
128 
129  /**************************************************** skim_eta_2g ****************************************************/
130 
131  locReaction = new DReaction("skim_eta_2g");
132 
133  //eta -> g, g
134  DReactionStep* locReactionStep_Eta2g = new DReactionStep();
135  locReactionStep_Eta2g->Set_InitialParticleID(Eta);
136  locReactionStep_Eta2g->Add_FinalParticleID(Gamma);
137  locReactionStep_Eta2g->Add_FinalParticleID(Gamma);
138  locReaction->Add_ReactionStep(locReactionStep_Eta2g);
139  dReactionStepPool.push_back(locReactionStep_Eta2g); //register so will be deleted later: prevent memory leak
140 
141  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Eta, false, 1000, 0.3, 0.8, "Eta"));
142  _data.push_back(locReaction); //Register the DReaction with the factory
143 
144  /**************************************************** skim_eta_3pi0 ****************************************************/
145 
146  locReaction = new DReaction("skim_eta_3pi0");
147 
148  //eta -> 3pi0
149  DReactionStep* locReactionStep_Eta3Pi0 = new DReactionStep();
150  locReactionStep_Eta3Pi0->Set_InitialParticleID(Eta);
151  locReactionStep_Eta3Pi0->Add_FinalParticleID(Pi0);
152  locReactionStep_Eta3Pi0->Add_FinalParticleID(Pi0);
153  locReactionStep_Eta3Pi0->Add_FinalParticleID(Pi0);
154  locReaction->Add_ReactionStep(locReactionStep_Eta3Pi0);
155  dReactionStepPool.push_back(locReactionStep_Eta3Pi0); //register so will be deleted later: prevent memory leak
156 
157  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
158  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
159  locReaction->Add_ReactionStep(locReactionStep_Pi02); //pi0 -> g, g
160  locReaction->Add_ReactionStep(locReactionStep_Pi03); //pi0 -> g, g
161 
162  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
163  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Eta, false, 1000, 0.3, 0.8, "Eta"));
164 
165  _data.push_back(locReaction); //Register the DReaction with the factory
166 
167  /**************************************************** skim_eta_3piq ****************************************************/
168 
169  locReaction = new DReaction("skim_eta_3piq");
170 
171  //eta -> pi+, pi-, pi0
172  DReactionStep* locReactionStep_Eta3Piq = new DReactionStep();
173  locReactionStep_Eta3Piq->Set_InitialParticleID(Eta);
174  locReactionStep_Eta3Piq->Add_FinalParticleID(PiPlus);
175  locReactionStep_Eta3Piq->Add_FinalParticleID(PiMinus);
176  locReactionStep_Eta3Piq->Add_FinalParticleID(Pi0);
177  locReaction->Add_ReactionStep(locReactionStep_Eta3Piq);
178  dReactionStepPool.push_back(locReactionStep_Eta3Piq); //register so will be deleted later: prevent memory leak
179 
180  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
181  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
182 
183  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
184  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Eta, false, 1000, 0.3, 0.8, "Eta"));
185 
186  _data.push_back(locReaction); //Register the DReaction with the factory
187 
188  /**************************************************** skim_omega_3piq ****************************************************/
189 
190  locReaction = new DReaction("skim_omega_3piq");
191 
192  //omega -> pi+, pi-, pi0
193  locReactionStep = new DReactionStep();
194  locReactionStep->Set_InitialParticleID(omega);
195  locReactionStep->Add_FinalParticleID(PiPlus);
196  locReactionStep->Add_FinalParticleID(PiMinus);
197  locReactionStep->Add_FinalParticleID(Pi0);
198  locReaction->Add_ReactionStep(locReactionStep);
199  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
200 
201  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
202  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
203 
204  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
205  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, omega, false, 1600, 0.4, 1.2, "Omega"));
206 
207  _data.push_back(locReaction); //Register the DReaction with the factory
208 
209  /**************************************************** skim_omega_pi0g ****************************************************/
210 
211  locReaction = new DReaction("skim_omega_pi0g");
212 
213  //omega -> pi0, g
214  locReactionStep = new DReactionStep();
215  locReactionStep->Set_InitialParticleID(omega);
216  locReactionStep->Add_FinalParticleID(Pi0);
217  locReactionStep->Add_FinalParticleID(Gamma);
218  locReaction->Add_ReactionStep(locReactionStep);
219  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
220 
221  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
222  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
223 
224  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
225  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, omega, false, 1600, 0.4, 1.2, "Omega"));
226 
227  _data.push_back(locReaction); //Register the DReaction with the factory
228 
229  /**************************************************** skim_etaprm_2piqeta_2g ****************************************************/
230 
231  locReaction = new DReaction("skim_etaprm_2piqeta_2g");
232 
233  //eta' -> pi+, pi-, eta
234  DReactionStep* locReactionStep_EtaPrime2PiqEta = new DReactionStep();
235  locReactionStep_EtaPrime2PiqEta->Set_InitialParticleID(EtaPrime);
236  locReactionStep_EtaPrime2PiqEta->Add_FinalParticleID(PiPlus);
237  locReactionStep_EtaPrime2PiqEta->Add_FinalParticleID(PiMinus);
238  locReactionStep_EtaPrime2PiqEta->Add_FinalParticleID(Eta);
239  locReaction->Add_ReactionStep(locReactionStep_EtaPrime2PiqEta);
240  dReactionStepPool.push_back(locReactionStep_EtaPrime2PiqEta); //register so will be deleted later: prevent memory leak
241 
242  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
243  locReaction->Add_ReactionStep(locReactionStep_Eta2g); //eta -> g, g
244 
245  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Eta, false, 1000, 0.3, 0.8, "Eta"));
246  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, EtaPrime, false, 1400, 0.6, 1.3, "EtaPrime"));
247 
248  _data.push_back(locReaction); //Register the DReaction with the factory
249 
250  /**************************************************** skim_etaprm_2piqeta_3pi0 ****************************************************/
251 
252  locReaction = new DReaction("skim_etaprm_2piqeta_3pi0");
253 
254  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
255  locReaction->Add_ReactionStep(locReactionStep_EtaPrime2PiqEta); //eta' -> pi+, pi-, eta
256  locReaction->Add_ReactionStep(locReactionStep_Eta3Pi0); //eta -> 3pi0
257  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
258  locReaction->Add_ReactionStep(locReactionStep_Pi02); //pi0 -> g, g
259  locReaction->Add_ReactionStep(locReactionStep_Pi03); //pi0 -> g, g
260 
261  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
262  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Eta, false, 1000, 0.3, 0.8, "Eta"));
263  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, EtaPrime, false, 1400, 0.6, 1.3, "EtaPrime"));
264 
265  _data.push_back(locReaction); //Register the DReaction with the factory
266 
267  /**************************************************** skim_etaprm_2piqeta_3piq ****************************************************/
268 
269  locReaction = new DReaction("skim_etaprm_2piqeta_3piq");
270 
271  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
272  locReaction->Add_ReactionStep(locReactionStep_EtaPrime2PiqEta); //eta' -> pi+, pi-, eta
273  locReaction->Add_ReactionStep(locReactionStep_Eta3Piq); //eta -> pi+, pi-, pi0
274  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
275 
276  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
277  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Eta, false, 1000, 0.3, 0.8, "Eta"));
278  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, EtaPrime, false, 1400, 0.6, 1.3, "EtaPrime"));
279 
280  _data.push_back(locReaction); //Register the DReaction with the factory
281 
282  /**************************************************** skim_etaprm_2piqg ****************************************************/
283 
284  locReaction = new DReaction("skim_etaprm_2piqg");
285 
286  //eta' -> pi+, pi-, g
287  locReactionStep = new DReactionStep();
288  locReactionStep->Set_InitialParticleID(EtaPrime);
289  locReactionStep->Add_FinalParticleID(PiPlus);
290  locReactionStep->Add_FinalParticleID(PiMinus);
291  locReactionStep->Add_FinalParticleID(Gamma);
292  locReaction->Add_ReactionStep(locReactionStep);
293  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
294 
295  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, EtaPrime, false, 1400, 0.6, 1.3, "EtaPrime"));
296  _data.push_back(locReaction); //Register the DReaction with the factory
297 
298  /**************************************************** skim_etaprm_2pi0eta_2g ****************************************************/
299 
300  locReaction = new DReaction("skim_etaprm_2pi0eta_2g");
301 
302  //eta' -> 2pi0, eta
303  DReactionStep* locReactionStep_EtaPrime2Pi0Eta = new DReactionStep();
304  locReactionStep_EtaPrime2Pi0Eta->Set_InitialParticleID(EtaPrime);
305  locReactionStep_EtaPrime2Pi0Eta->Add_FinalParticleID(Pi0);
306  locReactionStep_EtaPrime2Pi0Eta->Add_FinalParticleID(Pi0);
307  locReactionStep_EtaPrime2Pi0Eta->Add_FinalParticleID(Eta);
308  locReaction->Add_ReactionStep(locReactionStep_EtaPrime2Pi0Eta);
309  dReactionStepPool.push_back(locReactionStep_EtaPrime2Pi0Eta); //register so will be deleted later: prevent memory leak
310 
311  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
312  locReaction->Add_ReactionStep(locReactionStep_Eta2g); //eta -> g, g
313  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
314  locReaction->Add_ReactionStep(locReactionStep_Pi02); //pi0 -> g, g
315 
316  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
317  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Eta, false, 1000, 0.3, 0.8, "Eta"));
318  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, EtaPrime, false, 1400, 0.6, 1.3, "EtaPrime"));
319 
320  _data.push_back(locReaction); //Register the DReaction with the factory
321 
322  /**************************************************** skim_etaprm_2pi0eta_3pi0 ****************************************************/
323 
324  locReaction = new DReaction("skim_etaprm_2pi0eta_3pi0");
325 
326  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
327  locReaction->Add_ReactionStep(locReactionStep_EtaPrime2Pi0Eta); //eta' -> 2pi0, eta
328  locReaction->Add_ReactionStep(locReactionStep_Eta3Pi0); //eta -> 3pi0
329  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
330  locReaction->Add_ReactionStep(locReactionStep_Pi02); //pi0 -> g, g
331  locReaction->Add_ReactionStep(locReactionStep_Pi03); //pi0 -> g, g
332 
333  //pi0 -> g, g
334  locReactionStep = new DReactionStep();
335  locReactionStep->Set_InitialParticleID(Pi0);
336  locReactionStep->Add_FinalParticleID(Gamma);
337  locReactionStep->Add_FinalParticleID(Gamma);
338  locReaction->Add_ReactionStep(locReactionStep);
339  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
340 
341  //pi0 -> g, g
342  locReactionStep = new DReactionStep();
343  locReactionStep->Set_InitialParticleID(Pi0);
344  locReactionStep->Add_FinalParticleID(Gamma);
345  locReactionStep->Add_FinalParticleID(Gamma);
346  locReaction->Add_ReactionStep(locReactionStep);
347  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
348 
349  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
350  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Eta, false, 1000, 0.3, 0.8, "Eta"));
351  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, EtaPrime, false, 1400, 0.6, 1.3, "EtaPrime"));
352 
353  _data.push_back(locReaction); //Register the DReaction with the factory
354 
355  /**************************************************** skim_etaprm_2pi0eta_3piq ****************************************************/
356 
357  locReaction = new DReaction("skim_etaprm_2pi0eta_3piq");
358 
359  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
360  locReaction->Add_ReactionStep(locReactionStep_EtaPrime2Pi0Eta); //eta' -> 2pi0, eta
361  locReaction->Add_ReactionStep(locReactionStep_Eta3Piq); //eta -> pi+, pi-, pi0
362  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
363  locReaction->Add_ReactionStep(locReactionStep_Pi02); //pi0 -> g, g
364  locReaction->Add_ReactionStep(locReactionStep_Pi03); //pi0 -> g, g
365 
366  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
367  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Eta, false, 1000, 0.3, 0.8, "Eta"));
368  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, EtaPrime, false, 1400, 0.6, 1.3, "EtaPrime"));
369 
370  _data.push_back(locReaction); //Register the DReaction with the factory
371 
372  /**************************************************** skim_phi_2kq ****************************************************/
373 
374  locReaction = new DReaction("skim_phi_2kq");
375 
376  //phi -> K+, K-
377  locReactionStep = new DReactionStep();
378  locReactionStep->Set_InitialParticleID(phiMeson);
379  locReactionStep->Add_FinalParticleID(KPlus);
380  locReactionStep->Add_FinalParticleID(KMinus);
381  locReaction->Add_ReactionStep(locReactionStep);
382  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
383 
384  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, phiMeson, false, 800, 0.8, 1.2, "Phi"));
385  _data.push_back(locReaction); //Register the DReaction with the factory
386 
387  /**************************************************** skim_phi_3piq ****************************************************/
388 
389  locReaction = new DReaction("skim_phi_3piq");
390 
391  //phi -> pi+, pi-, pi0
392  locReactionStep = new DReactionStep();
393  locReactionStep->Set_InitialParticleID(phiMeson);
394  locReactionStep->Add_FinalParticleID(PiPlus);
395  locReactionStep->Add_FinalParticleID(PiMinus);
396  locReactionStep->Add_FinalParticleID(Pi0);
397  locReaction->Add_ReactionStep(locReactionStep);
398  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
399 
400  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
401  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
402 
403  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
404  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, phiMeson, false, 800, 0.8, 1.2, "Phi"));
405 
406  _data.push_back(locReaction); //Register the DReaction with the factory
407 
408  /**************************************************** skim_lambda ****************************************************/
409 
410  locReaction = new DReaction("skim_lambda");
411 
412  //lambda -> p, pi-
413  DReactionStep* locReactionStep_Lambda = new DReactionStep();
414  locReactionStep_Lambda->Set_InitialParticleID(Lambda);
415  locReactionStep_Lambda->Add_FinalParticleID(Proton);
416  locReactionStep_Lambda->Add_FinalParticleID(PiMinus);
417  locReaction->Add_ReactionStep(locReactionStep_Lambda);
418  dReactionStepPool.push_back(locReactionStep_Lambda); //register so will be deleted later: prevent memory leak
419 
420  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Lambda, false, 800, 1.0, 1.2, "Lambda"));
421  _data.push_back(locReaction); //Register the DReaction with the factory
422 
423  /**************************************************** skim_sigma0 ****************************************************/
424 
425  locReaction = new DReaction("skim_sigma0");
426 
427  //sigma0 -> lambda, g
428  locReactionStep = new DReactionStep();
429  locReactionStep->Set_InitialParticleID(Sigma0);
430  locReactionStep->Add_FinalParticleID(Lambda);
431  locReactionStep->Add_FinalParticleID(Gamma);
432  locReaction->Add_ReactionStep(locReactionStep);
433  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
434 
435  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
436  locReaction->Add_ReactionStep(locReactionStep_Lambda); //lambda -> p, pi-
437 
438  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Lambda, false, 800, 1.0, 1.2, "Lambda"));
439  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Sigma0, false, 800, 1.1, 1.3, "Sigma0"));
440 
441  _data.push_back(locReaction); //Register the DReaction with the factory
442 
443  /**************************************************** skim_sigma+ ****************************************************/
444 
445  locReaction = new DReaction("skim_sigma+");
446 
447  //sigma+ -> p, pi0
448  locReactionStep = new DReactionStep();
449  locReactionStep->Set_InitialParticleID(SigmaPlus);
450  locReactionStep->Add_FinalParticleID(Proton);
451  locReactionStep->Add_FinalParticleID(Pi0);
452  locReaction->Add_ReactionStep(locReactionStep);
453  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
454 
455  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
456  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
457 
458  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
459  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, SigmaPlus, false, 800, 1.1, 1.3, "Sigma+"));
460 
461  _data.push_back(locReaction); //Register the DReaction with the factory
462 
463  /**************************************************** skim_xi- ****************************************************/
464 
465  locReaction = new DReaction("skim_xi-");
466 
467  //xi- -> lambda, pi-
468  locReactionStep = new DReactionStep();
469  locReactionStep->Set_InitialParticleID(XiMinus);
470  locReactionStep->Add_FinalParticleID(Lambda);
471  locReactionStep->Add_FinalParticleID(PiMinus);
472  locReaction->Add_ReactionStep(locReactionStep);
473  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
474 
475  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
476  locReaction->Add_ReactionStep(locReactionStep_Lambda); //lambda -> p, pi-
477 
478  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Lambda, false, 800, 1.0, 1.2, "Lambda"));
479  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, XiMinus, false, 800, 1.1, 1.5, "Xi-"));
480 
481  _data.push_back(locReaction); //Register the DReaction with the factory
482 
483  /**************************************************** skim_xi0 ****************************************************/
484 
485  locReaction = new DReaction("skim_xi0");
486 
487  //xi0 -> lambda, pi0
488  locReactionStep = new DReactionStep();
489  locReactionStep->Set_InitialParticleID(Xi0);
490  locReactionStep->Add_FinalParticleID(Lambda);
491  locReactionStep->Add_FinalParticleID(Pi0);
492  locReaction->Add_ReactionStep(locReactionStep);
493  dReactionStepPool.push_back(locReactionStep); //register so will be deleted later: prevent memory leak
494 
495  //Reuse steps: Save time & memory //However, don't reuse within the SAME DReaction!
496  locReaction->Add_ReactionStep(locReactionStep_Lambda); //lambda -> p, pi-
497  locReaction->Add_ReactionStep(locReactionStep_Pi01); //pi0 -> g, g
498 
499  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Pi0, false, 510, 0.05, 0.22, "Pi0"));
500  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Lambda, false, 800, 1.0, 1.2, "Lambda"));
501  locReaction->Add_AnalysisAction(new DHistogramAction_InvariantMass(locReaction, Xi0, false, 800, 1.1, 1.5, "Xi0"));
502 
503  _data.push_back(locReaction); //Register the DReaction with the factory
504 
505  /**************************************************** skim_ee ****************************************************/
506 
507  locReaction = new DReaction("skim_ee");
508 
509  //X -> e+ e-
510  DReactionStep* locReactionStep_ee = new DReactionStep();
511  locReactionStep_ee->Set_InitialParticleID(Unknown);
512  locReactionStep_ee->Add_FinalParticleID(Electron);
513  locReactionStep_ee->Add_FinalParticleID(Positron);
514  locReaction->Add_ReactionStep(locReactionStep_ee);
515  dReactionStepPool.push_back(locReactionStep_ee); //register so will be deleted later: prevent memory leak
516  locReaction->Set_AnyComboFlag(true); //stops searching/building after first good one found that passes pre-selects
517 
518  // loose E/p cuts - require both tracks to be matched to showers
519  locReaction->Add_AnalysisAction(new DCustomAction_ee_ShowerEoverP_cut(locReaction, false, 0.65, 1.4, 0.65, 1.4));
520  _data.push_back(locReaction); //Register the DReaction with the factory
521 
522  /**************************************************** skim_jpsi_ee ****************************************************/
523 
524  locReaction = new DReaction("skim_jpsi_ee");
525 
526  //J/psi -> e+ e-
527  DReactionStep* locReactionStep_jpsi_ee = new DReactionStep();
528  locReactionStep_jpsi_ee->Set_InitialParticleID(Jpsi);
529  locReactionStep_jpsi_ee->Add_FinalParticleID(Electron);
530  locReactionStep_jpsi_ee->Add_FinalParticleID(Positron);
531  locReaction->Add_ReactionStep(locReactionStep_jpsi_ee);
532  dReactionStepPool.push_back(locReactionStep_jpsi_ee); //register so will be deleted later: prevent memory leak
533  locReaction->Set_AnyComboFlag(true); //stops searching/building after first good one found that passes pre-selects
534 
535  // loose E/p cuts - require both tracks to be matched to showers
536  locReaction->Add_AnalysisAction(new DCustomAction_ee_ShowerEoverP_cut(locReaction, false, 0.65, 1.4, 0.65, 1.4));
537  _data.push_back(locReaction); //Register the DReaction with the factory
538 
539  return NOERROR;
540 }
541 
542 //------------------
543 // fini
544 //------------------
546 {
547  for(size_t loc_i = 0; loc_i < dReactionStepPool.size(); ++loc_i)
548  delete dReactionStepPool[loc_i]; //cleanup memory
549  return NOERROR;
550 }
551 
void Add_ReactionStep(const DReactionStep *locReactionStep)
Definition: DReaction.h:48
void Add_FinalParticleID(Particle_t locPID, bool locIsMissingFlag=false)
jerror_t init(void)
Called once at program start.
jerror_t fini(void)
Called after last event of last event source has been processed.
void Set_AnyComboFlag(bool locAnyComboFlag)
Definition: DReaction.h:69
void Set_InitialParticleID(Particle_t locPID, bool locIsMissingFlag=false)
void Add_AnalysisAction(DAnalysisAction *locAnalysisAction)
Definition: DReaction.h:50