#ifndef MuseSelector_h #define MuseSelector_h #include #include #include #include #include #include #include #include #include #include #include class MuseSelector : public TSelector { public : int vz; std::string id; std::string title; std::string part; double theta_min; double theta_max; std::string input_file; bool cut_weights; double gem_track_cut; double scint_threshold; std::string rescatter; //Create Histograms TH1D* h_vertex_dx_; TH1D* h_vertex_dy_; TH1D* h_vertex_dz_; TH1D* h_doca_; TH1D* h_doca_tgt_; TH1D* h_doca_no_tgt_; TH1D* h_dtheta_; TH1D* h_vertex_z_; TH1D* h_vertex_z_noBLSC_; TH1D* h_vertex_z_tgt_; TH1D* h_vertex_z_no_tgt_; TH1D* h_theta_; TH1D* h_theta_no_rescatter_; TH1D* h_theta_tgt_; TH1D* h_theta_tgt_no_rescatter_; TH1D* h_theta_no_tgt_; TH1D* h_theta_no_tgt_no_rescatter_; TH2D* h_theta_z_; TH2D* h_theta_z_tgt_; TH2D* h_theta_z_no_tgt_; TH1D* h_p_before_tracking_; TH1D* h_p_before_tracking_bad_; TH2D* h_vertex_z_intersection_x_good_; TH2D* h_vertex_z_intersection_x_bad_; TH1D* h_intersection_x_good_; TH1D* h_intersection_x_bad_; TH1D* h_angle_num_; TH1D* h_angle_eff_denom_; TH1D* h_angle_ratio_; TH1D* h_angle_num_tgt_; TH1D* h_angle_eff_denom_tgt_; TH1D* h_angle_ratio_tgt_; TH1D* h_angle_num_no_tgt_; TH1D* h_angle_eff_denom_no_tgt_; TH1D* h_angle_ratio_no_tgt_; TH1D* h_angle_pur_num_; TH1D* h_angle_pur_denom_; TH1D* h_angle_pur_ratio_; TH1D* h_angle_pur_num_tgt_; TH1D* h_angle_pur_denom_tgt_; TH1D* h_angle_pur_ratio_tgt_; TH1D* h_angle_pur_num_no_tgt_; TH1D* h_angle_pur_denom_no_tgt_; TH1D* h_angle_pur_ratio_no_tgt_; TH2D* h_window_xy_good_; TH2D* h_window_xy_bad_; //TGT scintillator histograms TH1D* h_scint_edep_; TH1D* h_scint_edep_tgt_; TH1D* h_scint_edep_no_tgt_; TH1D* h_scint_PID_; TH1D* h_scint_PID_tgt_; TH1D* h_scint_PID_no_tgt_; TH1D* h_scint_CopyID_; TH1D* h_scint_CopyID_tgt_; TH1D* h_scint_CopyID_no_tgt_; TH2D* h_edep_num_scints_; TH2D* h_edep_vs_theta_; TProfile* h_zvertex_vs_vtx_momentum_; TProfile* h_zvertex_vs_vtx_momentum_tgt_; TProfile* h_zvertex_vs_vtx_momentum_no_tgt_; TH2D* h2_zvertex_vs_vtx_momentum_; TH2D* h2_zvertex_vs_vtx_momentum_tgt_; TH2D* h2_zvertex_vs_vtx_momentum_no_tgt_; TH2D* h_mom_comp_; TH1D* h_q2_tgt_; TH1D* h_q2_no_tgt_; TH1D* h_q2_; TH1D* h_overall_eff_num_; TH1D* h_overall_eff_denom_; TH1D* h_subtracted_; TH1D* h_eff_corrected_; TH1D *h_scale_factor_; //Create TTreeReader and branches TTreeReader fReader; TTreeReaderValue seed1; TTreeReaderValue seed2; TTreeReaderValue golden; TTreeReaderValue edep_sc2; TTreeReaderValue edep_sc1; TTreeReaderValue edep_nai; TTreeReaderValue nai_hit; TTreeReaderValue theta; TTreeReaderValue doca; TTreeReaderValue vertex; TTreeReaderValue recon_tgt_hit_pos; TTreeReaderValue tgt_theta; TTreeReaderValue tgt_event; TTreeReaderValue tgt_vertex; TTreeReaderValue MuonDecay; TTreeReaderValue gem_trackOK; TTreeReaderValue weight; TTreeReaderValue tgt_hit; TTreeReaderValue is_eioni; TTreeReaderValue is_coulomb; TTreeReaderValue is_ebrem; TTreeReaderValue p_before_vertex; TTreeReaderValue tgt_scints_hit; TTreeReaderValue tgt_scints_fired; TTreeReaderArray tgt_scints_Edep; TTreeReaderArray tgt_scints_muonEdep; TTreeReaderArray tgt_scints_electronEdep; TTreeReaderArray tgt_scints_photonEdep; TTreeReaderArray tgt_scints_PID; TTreeReaderArray tgt_scints_CopyID; TTreeReaderValue ds_intersection; TTreeReaderValue ds_intersection_point; TTreeReaderValue window_inter; TTreeReaderValue window_inter_point; TTreeReaderValue blsc_test_hit; TTreeReaderArray blsc_test_pid; TTreeReaderValue left_track; TTreeReaderValue right_track; TTreeReaderValue stcl_p; TTreeReaderValue stcr_p; TTreeReaderValue hit_veto; TTreeReaderValue hit_blsc; TTreeReaderValue frame_hit; TTreeReaderValue delta_bar; TTreeReaderValue has_inscatter; TTreeReaderValue ds_frame_hit; TTreeReaderValue is_lh2; MuseSelector(TTree * = 0): seed1(fReader, "EventSeed1"), seed2(fReader, "EventSeed2"), golden(fReader, "golden"), edep_sc2(fReader, "edep_sc2"), edep_sc1(fReader, "edep_sc1"), edep_nai(fReader, "NAI_edep"), nai_hit(fReader, "NAI_hit"), theta(fReader, "recon_theta"), doca(fReader, "recon_doca"), vertex(fReader, "recon_vertex"), recon_tgt_hit_pos(fReader, "recon_tgt_hit_pos"), tgt_theta(fReader, "CHAMBER_Theta"), tgt_event(fReader, "CHAMBER_target_event"), tgt_vertex(fReader, "CHAMBER_Vertex"), MuonDecay(fReader, "MuonDecay"), gem_trackOK(fReader, "GEM_trackOK"), weight(fReader, "weight"), tgt_hit(fReader, "CHAMBER_hit"), is_eioni(fReader, "CHAMBER_is_eioni"), is_coulomb(fReader, "CHAMBER_is_coulomb"), is_ebrem(fReader, "CHAMBER_is_ebrem"), p_before_vertex(fReader, "CHAMBER_Pin"), tgt_scints_hit(fReader, "TGT_scints_hit"), tgt_scints_fired(fReader, "TGT_scints_fired"), tgt_scints_Edep(fReader, "TGT_scints_Edep"), tgt_scints_muonEdep(fReader, "TGT_scints_muonEdep"), tgt_scints_electronEdep(fReader, "TGT_scints_electronEdep"), tgt_scints_photonEdep(fReader, "TGT_scints_photonEdep"), tgt_scints_PID(fReader, "TGT_scints_PID"), tgt_scints_CopyID(fReader, "TGT_scints_CopyID"), ds_intersection(fReader, "downstream_intersection"), ds_intersection_point(fReader, "downstream_intersection_point"), window_inter(fReader, "window_intersection"), window_inter_point(fReader, "window_intersection_point"), blsc_test_hit(fReader, "BLSC_TEST_Hit"), blsc_test_pid(fReader, "BLSC_TEST_ParticleID"), left_track(fReader, "left_track"), right_track(fReader, "right_track"), stcl_p(fReader, "STCL_p"), stcr_p(fReader, "STCR_p"), hit_veto(fReader, "VSC_hit"), hit_blsc(fReader, "BLSC_hit"), frame_hit(fReader, "frame_hit"), has_inscatter(fReader, "CHAMBER_InScatter"), ds_frame_hit(fReader, "CHAMBER_hit_ds_frame"), delta_bar(fReader, "delta_bar"), is_lh2(fReader, "CHAMBER_is_lh2"), vz(0), id(""), title(""), theta_min(0), theta_max(0), input_file(""), cut_weights(false), gem_track_cut(30), scint_threshold(0), rescatter("frame"), part("") {} virtual ~MuseSelector() {} virtual void Init(TTree *tree); virtual void SlaveBegin(TTree *tree); virtual Bool_t Process(Long64_t entry); virtual void Terminate(); virtual Int_t Version() const { return 2; } virtual void SetOption(const char *option) { fOption = option; } void FillParams(); ClassDef(MuseSelector,0); }; #endif