35#include <Math/Functor.h>
36#include <TPolyLine3D.h>
37#include <Math/Vector3D.h>
38#include <Fit/Fitter.h>
40class IDataProviderSvc;
43#define MAXNOFCLUSTERS 500
45#define MAXNOFHITS 2400
46#define MAXNOFFITPOINT 4
50#define MAXNOFSTRIP_L1_x 856
51#define MAXNOFSTRIP_L1_v 1174
52#define MAXNOFSTRIP_L2_x 630
53#define MAXNOFSTRIP_L2_v 1077
55#define MAXLENGTH_L1_x 532
56#define MAXLENGTH_L2_x 690
57#define MAXLENGTH_L1_v 532/TMath::Cos(TMath::DegToRad()*46.6877)
58#define MAXLENGTH_L2_v 690/TMath::Cos(TMath::DegToRad()*31.0337)
118 IDataProviderSvc* m_evtSvc;
124 double anode_mid_gap_L1;
125 double anode_mid_gap_L2;
141 double anode_mid_gap_radius[3];
170 int ncluster_2d_L1_S1;
171 int ncluster_2d_L2_S1;
172 int ncluster_2d_L2_S2;
173 int ncluster_1d_L1_S1_x;
174 int ncluster_1d_L2_S1_x;
175 int ncluster_1d_L2_S2_x;
176 int ncluster_1d_L1_S1_v;
177 int ncluster_1d_L2_S1_v;
178 int ncluster_1d_L2_S2_v;
229 int track_test_layerid;
230 int track_test_sheetid;
231 double track_xpoca_glo;
232 double track_ypoca_glo;
233 double track_zpoca_glo;
234 double track_x1top_glo;
235 double track_y1top_glo;
236 double track_z1top_glo;
237 double track_phi1top_loc;
238 double track_v1top_loc;
239 double track_x1bot_glo;
240 double track_y1bot_glo;
241 double track_z1bot_glo;
242 double track_phi1bot_loc;
243 double track_v1bot_loc;
245 double track_x2top_glo;
246 double track_y2top_glo;
247 double track_z2top_glo;
248 double track_phi2top_loc;
249 double track_v2top_loc;
250 double track_x2bot_glo;
251 double track_y2bot_glo;
252 double track_z2bot_glo;
253 double track_phi2bot_loc;
254 double track_v2bot_loc;
268 TH1F *h_nofhit_L1_S1_x;
269 TH1F *h_nofhit_L1_S2_x;
270 TH1F *h_nofhit_L2_S1_x;
271 TH1F *h_nofhit_L2_S2_x;
273 TH1F *h_nofhit_L1_S1_v;
274 TH1F *h_nofhit_L2_S1_v;
275 TH1F *h_nofhit_L2_S2_v;
279 TH1F *h_hit_charge_L1_S1_x;
280 TH1F *h_hit_charge_L1_S2_x;
281 TH1F *h_hit_charge_L2_S1_x;
282 TH1F *h_hit_charge_L2_S2_x;
284 TH1F *h_hit_charge_L1_S1_v;
285 TH1F *h_hit_charge_L2_S1_v;
286 TH1F *h_hit_charge_L2_S2_v;
289 TH1F *h_hit_time_L1_S1_x;
290 TH1F *h_hit_time_L1_S2_x;
291 TH1F *h_hit_time_L2_S1_x;
292 TH1F *h_hit_time_L2_S2_x;
294 TH1F *h_hit_time_L1_S1_v;
295 TH1F *h_hit_time_L2_S1_v;
296 TH1F *h_hit_time_L2_S2_v;
300 TH2F *h_hit_charge_vs_strip_L1_S1_x;
301 TH2F *h_hit_charge_vs_strip_L1_S2_x;
302 TH2F *h_hit_charge_vs_strip_L2_S1_x;
303 TH2F *h_hit_charge_vs_strip_L2_S2_x;
305 TH2F *h_hit_charge_vs_strip_L1_S1_v;
306 TH2F *h_hit_charge_vs_strip_L2_S1_v;
307 TH2F *h_hit_charge_vs_strip_L2_S2_v;
310 TH2F *h_hit_time_vs_strip_L1_S1_x;
311 TH2F *h_hit_time_vs_strip_L1_S2_x;
312 TH2F *h_hit_time_vs_strip_L2_S1_x;
313 TH2F *h_hit_time_vs_strip_L2_S2_x;
315 TH2F *h_hit_time_vs_strip_L1_S1_v;
316 TH2F *h_hit_time_vs_strip_L2_S1_v;
317 TH2F *h_hit_time_vs_strip_L2_S2_v;
321 TH2F *h_hit_charge_vs_time_L1_S1_x;
322 TH2F *h_hit_charge_vs_time_L1_S2_x;
323 TH2F *h_hit_charge_vs_time_L2_S1_x;
324 TH2F *h_hit_charge_vs_time_L2_S2_x;
326 TH2F *h_hit_charge_vs_time_L1_S1_v;
327 TH2F *h_hit_charge_vs_time_L2_S1_v;
328 TH2F *h_hit_charge_vs_time_L2_S2_v;
332 TH2F *h_hit_charge_vs_length_L1_S1_v;
333 TH2F *h_hit_charge_vs_length_L2_S1_v;
334 TH2F *h_hit_charge_vs_length_L2_S2_v;
337 TH1F *h_hit_in_time_charge_L1_S1_x;
338 TH1F *h_hit_in_time_charge_L1_S2_x;
339 TH1F *h_hit_in_time_charge_L2_S1_x;
340 TH1F *h_hit_in_time_charge_L2_S2_x;
342 TH1F *h_hit_in_time_charge_L1_S1_v;
343 TH1F *h_hit_in_time_charge_L2_S1_v;
344 TH1F *h_hit_in_time_charge_L2_S2_v;
348 TH1F *h_hit_in_time_strip_L1_S1_x;
349 TH1F *h_hit_in_time_strip_L1_S2_x;
350 TH1F *h_hit_in_time_strip_L2_S1_x;
351 TH1F *h_hit_in_time_strip_L2_S2_x;
353 TH1F *h_hit_in_time_strip_L1_S1_v;
354 TH1F *h_hit_in_time_strip_L2_S1_v;
355 TH1F *h_hit_in_time_strip_L2_S2_v;
359 TH2F *h_hit_in_time_charge_vs_strip_L1_S1_x;
360 TH2F *h_hit_in_time_charge_vs_strip_L1_S2_x;
361 TH2F *h_hit_in_time_charge_vs_strip_L2_S1_x;
362 TH2F *h_hit_in_time_charge_vs_strip_L2_S2_x;
364 TH2F *h_hit_in_time_charge_vs_strip_L1_S1_v;
365 TH2F *h_hit_in_time_charge_vs_strip_L2_S1_v;
366 TH2F *h_hit_in_time_charge_vs_strip_L2_S2_v;
371 TH1F *h_nofcluster1d_L1_S1_x;
372 TH1F *h_nofcluster1d_L1_S2_x;
373 TH1F *h_nofcluster1d_L2_S1_x;
374 TH1F *h_nofcluster1d_L2_S2_x;
376 TH1F *h_nofcluster1d_L1_S1_v;
377 TH1F *h_nofcluster1d_L2_S1_v;
378 TH1F *h_nofcluster1d_L2_S2_v;
382 TH1F *h_cluster1d_size_L1_S1_x;
383 TH1F *h_cluster1d_size_L1_S2_x;
384 TH1F *h_cluster1d_size_L2_S1_x;
385 TH1F *h_cluster1d_size_L2_S2_x;
387 TH1F *h_cluster1d_size_L1_S1_v;
388 TH1F *h_cluster1d_size_L2_S1_v;
389 TH1F *h_cluster1d_size_L2_S2_v;
392 TH2F *h_cluster1d_charge_vs_phi_L1_S1_x;
393 TH2F *h_cluster1d_charge_vs_phi_L1_S2_x;
394 TH2F *h_cluster1d_charge_vs_phi_L2_S1_x;
395 TH2F *h_cluster1d_charge_vs_phi_L2_S2_x;
398 TH2F *h_cluster1d_charge_vs_v_L1_S1_v;
399 TH2F *h_cluster1d_charge_vs_v_L2_S1_v;
400 TH2F *h_cluster1d_charge_vs_v_L2_S2_v;
403 TH1F *h_cluster1d_charge_fitted_L1_S1_x;
404 TH1F *h_cluster1d_charge_fitted_L1_S2_x;
405 TH1F *h_cluster1d_charge_fitted_L2_S1_x;
406 TH1F *h_cluster1d_charge_fitted_L2_S2_x;
409 TH1F *h_cluster1d_charge_fitted_L1_S1_v;
410 TH1F *h_cluster1d_charge_fitted_L1_S2_v;
411 TH1F *h_cluster1d_charge_fitted_L2_S1_v;
412 TH1F *h_cluster1d_charge_fitted_L2_S2_v;
416 TH1F *h_nofcluster2d_L1_S1;
417 TH1F *h_nofcluster2d_L1_S2;
418 TH1F *h_nofcluster2d_L2_S1;
419 TH1F *h_nofcluster2d_L2_S2;
422 TH1F *h_cluster2d_size_L1_S1;
423 TH1F *h_cluster2d_size_L1_S2;
424 TH1F *h_cluster2d_size_L2_S1;
425 TH1F *h_cluster2d_size_L2_S2;
428 TH2F *h_cluster2d_charge_vs_phi_L1_S1;
429 TH2F *h_cluster2d_charge_vs_phi_L1_S2;
430 TH2F *h_cluster2d_charge_vs_phi_L2_S1;
431 TH2F *h_cluster2d_charge_vs_phi_L2_S2;
434 TH2F *h_cluster2d_charge_vs_z_L1_S1;
435 TH2F *h_cluster2d_charge_vs_z_L1_S2;
436 TH2F *h_cluster2d_charge_vs_z_L2_S1;
437 TH2F *h_cluster2d_charge_vs_z_L2_S2;
440 TH2F *h_cluster2d_z_vs_phi_L1_S1;
441 TH2F *h_cluster2d_z_vs_phi_L1_S2;
442 TH2F *h_cluster2d_z_vs_phi_L2_S1;
443 TH2F *h_cluster2d_z_vs_phi_L2_S2;
447 TH1F *h_cluster1d_charge_selected_L1_S1_x;
448 TH1F *h_cluster1d_charge_selected_L1_S2_x;
449 TH1F *h_cluster1d_charge_selected_L2_S1_x;
450 TH1F *h_cluster1d_charge_selected_L2_S2_x;
451 TH1F *h_cluster1d_charge_selected_L1_S1_v;
452 TH1F *h_cluster1d_charge_selected_L1_S2_v;
453 TH1F *h_cluster1d_charge_selected_L2_S1_v;
454 TH1F *h_cluster1d_charge_selected_L2_S2_v;
457 TH1F *h_cluster1d_size_selected_L1_S1_x;
458 TH1F *h_cluster1d_size_selected_L1_S2_x;
459 TH1F *h_cluster1d_size_selected_L2_S1_x;
460 TH1F *h_cluster1d_size_selected_L2_S2_x;
461 TH1F *h_cluster1d_size_selected_L1_S1_v;
462 TH1F *h_cluster1d_size_selected_L1_S2_v;
463 TH1F *h_cluster1d_size_selected_L2_S1_v;
464 TH1F *h_cluster1d_size_selected_L2_S2_v;
467 TH1F *h_cluster2d_charge_selected_L1_S1;
468 TH1F *h_cluster2d_charge_selected_L1_S2;
469 TH1F *h_cluster2d_charge_selected_L2_S1;
470 TH1F *h_cluster2d_charge_selected_L2_S2;
486 TH1F *h_test_residual_rphi;
487 TH1F *h_test_residual_rphi_tpc;
490 TH2F *h_test_res_rphi_vs_chi2;
491 TH2F *h_test_res_rphi_vs_chi2_tpc;
494 TH1F *h_test_residual_z;
495 TH1F *h_test_residual_z_tpc;
498 TH2F *h_test_res_z_vs_chi2;
499 TH2F *h_test_res_z_vs_chi2_tpc;
503 TH1F *h_residual_rphi_L1_S1;
504 TH1F *h_residual_rphi_L1_S2;
505 TH1F *h_residual_rphi_L2_S1;
506 TH1F *h_residual_rphi_L2_S2;
508 TH2F *h_res_rphi_vs_chi2_L1_S1;
509 TH2F *h_res_rphi_vs_chi2_L1_S2;
510 TH2F *h_res_rphi_vs_chi2_L2_S1;
511 TH2F *h_res_rphi_vs_chi2_L2_S2;
514 TH1F *h_residual_rphi_L1_S1_tpc;
515 TH1F *h_residual_rphi_L1_S2_tpc;
516 TH1F *h_residual_rphi_L2_S1_tpc;
517 TH1F *h_residual_rphi_L2_S2_tpc;
519 TH2F *h_res_rphi_vs_chi2_L1_S1_tpc;
520 TH2F *h_res_rphi_vs_chi2_L1_S2_tpc;
521 TH2F *h_res_rphi_vs_chi2_L2_S1_tpc;
522 TH2F *h_res_rphi_vs_chi2_L2_S2_tpc;
525 TH1F *h_residual_z_L1_S1;
526 TH1F *h_residual_z_L1_S2;
527 TH1F *h_residual_z_L2_S1;
528 TH1F *h_residual_z_L2_S2;
530 TH2F *h_res_z_vs_chi2_L1_S1;
531 TH2F *h_res_z_vs_chi2_L1_S2;
532 TH2F *h_res_z_vs_chi2_L2_S1;
533 TH2F *h_res_z_vs_chi2_L2_S2;
536 TH1F *h_residual_z_L1_S1_tpc;
537 TH1F *h_residual_z_L1_S2_tpc;
538 TH1F *h_residual_z_L2_S1_tpc;
539 TH1F *h_residual_z_L2_S2_tpc;
541 TH2F *h_res_z_vs_chi2_L1_S1_tpc;
542 TH2F *h_res_z_vs_chi2_L1_S2_tpc;
543 TH2F *h_res_z_vs_chi2_L2_S1_tpc;
544 TH2F *h_res_z_vs_chi2_L2_S2_tpc;
547 TH1F *h_signal_charge_2d;
548 TH1F *h_signal_charge_1d_x;
549 TH1F *h_signal_charge_1d_v;
550 TH1F *h_signal_size_1d_x;
551 TH1F *h_signal_size_1d_v;
553 TH1F *h_signal_charge_2d_chi2cut;
554 TH1F *h_signal_charge_1d_x_chi2cut;
555 TH1F *h_signal_charge_1d_v_chi2cut;
556 TH1F *h_signal_size_1d_x_chi2cut;
557 TH1F *h_signal_size_1d_v_chi2cut;
560 TH1F *h_background_charge_2d;
561 TH1F *h_background_charge_1d_x;
562 TH1F *h_background_charge_1d_v;
563 TH1F *h_background_size_1d_x;
564 TH1F *h_background_size_1d_v;
570 TH2F *h_eff_vs_phi_vs_z;
572 TH2F *h_eff_vs_phi_vs_chi2;
573 TH2F *h_eff_vs_z_vs_chi2;
576 TH1F *h_resolution_rphi_vs_chi2;
577 TH1F *h_resolution_rphi_tpc_vs_chi2;
579 TH1F *h_resolution_z_vs_chi2;
580 TH1F *h_resolution_z_tpc_vs_chi2;
583 TH2F *h_test_residual_rphi_vs_angxy_L1_cc;
584 TH2F *h_test_residual_rphi_vs_angxy_L1_tpc;
585 TH2F *h_test_residual_rphi_vs_angxy_L2_cc;
586 TH2F *h_test_residual_rphi_vs_angxy_L2_tpc;
588 TH1F *h_resolution_vs_ang_xy_L1;
589 TH1F *h_resolution_vs_ang_xy_L2;
590 TH1F *h_resolution_tpc_vs_ang_xy_L1;
591 TH1F *h_resolution_tpc_vs_ang_xy_L2;
600 int nentries_residual_rphi;
601 double mean_residual_rphi;
602 double sigma_residual_rphi;
603 int nentries_residual_z;
604 double mean_residual_z;
605 double sigma_residual_z;
633 std::vector< double > vector_test_residual_rphi;
634 std::vector< double > vector_test_residual_z;
635 std::vector< double > vector_test_charge;
636 std::vector< double > vector_test_charge_x;
637 std::vector< double > vector_test_charge_v;
639 std::vector< double > vector_test_phi;
640 std::vector< double > vector_test_z;
641 std::vector< double > vector_chi2;
643 std::vector< int > vector_test_size_x;
644 std::vector< int > vector_test_size_v;
645 std::vector< int > vector_test_clusterid;
646 std::vector< int > vector_test_idx;
647 std::vector< int > vector_test_idv;
void fill_cluster2d_histo()
void define_cluster1d_histo()
void define_cluster2d_histo()
void define_track_histo()
void define_cluster_selected_histo()
int find_closest_exp_cluster2d(double fphi, double fz)
void fill_hit_in_time_histo()
void define_cluster1d_from_fit_histo()
void fill_cluster1d_histo()
void fill_cluster_selected_histo()
bool read_file(TString name)
void define_hit_in_time_histo()