2943{
2944
2945 this->SetName("resplots");
2946
2948
2949 TDirectory *trt = nullptr;
2950 TDirectory *det1 = nullptr;
2951 TDirectory *det2 = nullptr;
2952 TDirectory *det3 = nullptr;
2953 TDirectory *det4 = nullptr;
2954
2955 if (!isAr)
2956 {
2957 cout << " In ResidualPlots Xenon" << endl;
2958 trt = (TDirectory *)
file->FindKey(
"TRT_all")->ReadObj();
2959 if (not trt){
2960 throw std::runtime_error("trt pointer is null");
2961 }
2962 det1 = (TDirectory *)trt->FindKey("Detector_-1")->ReadObj();
2963 det2 = (TDirectory *)trt->FindKey("Detector_1")->ReadObj();
2964 det3 = (TDirectory *)trt->FindKey("Detector_-2")->ReadObj();
2965 det4 = (TDirectory *)trt->FindKey("Detector_2")->ReadObj();
2966 }
2967 else
2968 {
2969 if (not trt){
2970 throw std::runtime_error("trt pointer is null");
2971 }
2972
2973
2974 cout << " In ResidualPlots Argon" << endl;
2975 if (
file->FindKey(
"TRT_Ar_all"))
2976 trt = (TDirectory *)
file->FindKey(
"TRT_Ar_all")->ReadObj();
2977 if (trt->FindKey("Detector_Ar_-1"))
2978 det1 = (TDirectory *)trt->FindKey("Detector_Ar_-1")->ReadObj();
2979 if (trt->FindKey("Detector_Ar_1"))
2980 det2 = (TDirectory *)trt->FindKey("Detector_Ar_1")->ReadObj();
2981 if (trt->FindKey("Detector_Ar_-2"))
2982 det3 = (TDirectory *)trt->FindKey("Detector_Ar_-2")->ReadObj();
2983 if (trt->FindKey("Detector_Ar_2"))
2984 det4 = (TDirectory *)trt->FindKey("Detector_Ar_2")->ReadObj();
2985 }
2986
2987 TH2F *reshist1 =
nullptr;
2988 TH2F *reshist2 =
nullptr;
2989 TH2F *reshist3 =
nullptr;
2990 TH2F *reshist4 =
nullptr;
2991 TH2F *reshist5 =
nullptr;
2992 TH2F *treshist1 =
nullptr;
2993 TH2F *treshist2 =
nullptr;
2994 TH2F *treshist3 =
nullptr;
2995 TH2F *treshist4 =
nullptr;
2996 TH2F *treshist5 =
nullptr;
2997
2998 cout << " Find residual histograms " << endl;
2999
3000 if (trt->FindKey("residual"))
3001 reshist1 = (
TH2F *)trt->FindKey(
"residual")->ReadObj();
3002 if (det1)
3003 {
3004 if (det1->FindKey("residual"))
3005 reshist2 = (
TH2F *)det1->FindKey(
"residual")->ReadObj();
3006 }
3007 if (det2)
3008 {
3009 if (det2->FindKey("residual"))
3010 reshist3 = (
TH2F *)det2->FindKey(
"residual")->ReadObj();
3011 }
3012 if (det3)
3013 {
3014 if (det3->FindKey("residual"))
3015 reshist4 = (
TH2F *)det3->FindKey(
"residual")->ReadObj();
3016 }
3017 if (det4)
3018 {
3019 if (det4->FindKey("residual"))
3020 reshist5 = (
TH2F *)det4->FindKey(
"residual")->ReadObj();
3021 }
3022
3023 cout << " Find time residual histograms" << endl;
3024 if (trt->FindKey("timeresidual"))
3025 treshist1 = (
TH2F *)trt->FindKey(
"timeresidual")->ReadObj();
3026 if (det1)
3027 {
3028 if (det1->FindKey("timeresidual"))
3029 treshist2 = (
TH2F *)det1->FindKey(
"timeresidual")->ReadObj();
3030 }
3031 if (det2)
3032 {
3033 if (det2->FindKey("timeresidual"))
3034 treshist3 = (
TH2F *)det2->FindKey(
"timeresidual")->ReadObj();
3035 }
3036 if (det3)
3037 {
3038 if (det3->FindKey("timeresidual"))
3039 treshist4 = (
TH2F *)det3->FindKey(
"timeresidual")->ReadObj();
3040 }
3041 if (det4)
3042 {
3043 if (det4->FindKey("timeresidual"))
3044 treshist5 = (
TH2F *)det4->FindKey(
"timeresidual")->ReadObj();
3045 }
3046
3047 cout << " Configure residual histograms" << endl;
3048 if (reshist1)
3049 reshist1->SetTitle(Form("residual whole TRT"));
3050 if (reshist2)
3051 reshist2->SetTitle(Form("residual (barrel side C)"));
3052 if (reshist3)
3053 reshist3->SetTitle(Form("residual (barrel side A)"));
3054 if (reshist4)
3055 reshist4->SetTitle(Form("residual (endcap side C)"));
3056 if (reshist5)
3057 reshist5->SetTitle(Form("residual (endcap side A)"));
3058 if (reshist2)
3059 reshist2->SetFillColor(46);
3060 if (reshist3)
3061 reshist3->SetFillColor(46);
3062 if (reshist4)
3063 reshist4->SetFillColor(46);
3064 if (reshist5)
3065 reshist5->SetFillColor(46);
3066
3067 cout << " Configure time residual histograms" << endl;
3068 if (treshist1)
3069 treshist1->SetTitle("time-residual whole TRT");
3070 if (treshist2)
3071 treshist2->SetTitle("time-residual (barrel side C)");
3072 if (treshist3)
3073 treshist3->SetTitle("time-residual (barrel side A)");
3074 if (treshist4)
3075 treshist4->SetTitle("time-residual (endcap side C)");
3076 if (treshist5)
3077 treshist5->SetTitle("time-residual (endcap side A)");
3078 if (treshist2)
3079 treshist2->SetFillColor(38);
3080 if (treshist3)
3081 treshist3->SetFillColor(38);
3082 if (treshist4)
3083 treshist4->SetFillColor(38);
3084 if (treshist5)
3085 treshist5->SetFillColor(38);
3086
3087 if (isAr)
3088 {
3089
3090
3091 cout << " Configure Argon residual histograms" << endl;
3092 if (reshist1)
3093 reshist1->SetTitle("residual Argon whole TRT");
3094 if (reshist2)
3095 reshist2->SetTitle("residual Argon (barrel side C)");
3096 if (reshist3)
3097 reshist3->SetTitle("residual Argon (barrel side A)");
3098 if (reshist4)
3099 reshist4->SetTitle("residual Argon (endcap side C)");
3100 if (reshist5)
3101 reshist5->SetTitle("residual Argon (endcap side A)");
3102 if (treshist1)
3103 treshist1->SetTitle("time-residual Argon whole TRT");
3104 if (treshist2)
3105 treshist2->SetTitle("time-residual Argon (barrel side C)");
3106 if (treshist3)
3107 treshist3->SetTitle("time-residual Argon (barrel side A)");
3108 if (treshist4)
3109 treshist4->SetTitle("time-residual Argon (endcap side C)");
3110 if (treshist5)
3111 treshist5->SetTitle("time-residual Argon (endcap side A)");
3112 }
3113
3114 TF1 *resfit2 = nullptr;
3115 TF1 *resfit3 = nullptr;
3116 TF1 *resfit4 = nullptr;
3117 TF1 *resfit5 = nullptr;
3118 TF1 *tresfit2 = nullptr;
3119 TF1 *tresfit3 = nullptr;
3120 TF1 *tresfit4 = nullptr;
3121 TF1 *tresfit5 = nullptr;
3122
3123 if (reshist2)
3124 resfit2 = (TF1 *)reshist2->GetListOfFunctions()->First();
3125 if (reshist3)
3126 resfit3 = (TF1 *)reshist3->GetListOfFunctions()->First();
3127 if (reshist4)
3128 resfit4 = (TF1 *)reshist4->GetListOfFunctions()->First();
3129 if (reshist5)
3130 resfit5 = (TF1 *)reshist5->GetListOfFunctions()->First();
3131 if (treshist2)
3132 tresfit2 = (TF1 *)treshist2->GetListOfFunctions()->First();
3133 if (treshist3)
3134 tresfit3 = (TF1 *)treshist3->GetListOfFunctions()->First();
3135 if (treshist4)
3136 tresfit4 = (TF1 *)treshist4->GetListOfFunctions()->First();
3137 if (treshist5)
3138 tresfit5 = (TF1 *)treshist5->GetListOfFunctions()->First();
3139
3140 TText *mintxt = new TText();
3141 mintxt->SetNDC(kTRUE);
3142
3143 this->Divide(4, 2);
3144
3146 if (reshist2)
3147 {
3148 cout << " Draw residual barrel C" << endl;
3149 reshist2->Draw();
3150 mintxt->DrawText(0.15, 0.85, Form("Mean: %.3f", resfit2->GetParameter(1)));
3151 mintxt->DrawText(0.15, 0.80, Form("Sigma: %.3f", resfit2->GetParameter(2)));
3152 }
3154
3155 if (reshist3)
3156 {
3157 cout << " Draw residual barrel A" << endl;
3158 reshist3->Draw();
3159 mintxt->DrawText(0.15, 0.85, Form("Mean: %.3f", resfit3->GetParameter(1)));
3160 mintxt->DrawText(0.15, 0.80, Form("Sigma: %.3f", resfit3->GetParameter(2)));
3161 }
3163
3164 if (reshist4)
3165 {
3166 cout << " Draw residual endcap C" << endl;
3167 reshist4->Draw();
3168 mintxt->DrawText(0.15, 0.85, Form("Mean: %.3f", resfit4->GetParameter(1)));
3169 mintxt->DrawText(0.15, 0.80, Form("Sigma: %.3f", resfit4->GetParameter(2)));
3170 }
3172 if (reshist5)
3173 {
3174 cout << " Draw residual endcap A" << endl;
3175 reshist5->Draw();
3176 mintxt->DrawText(0.15, 0.85, Form("Mean: %.3f", resfit5->GetParameter(1)));
3177 mintxt->DrawText(0.15, 0.80, Form("Sigma: %.3f", resfit5->GetParameter(2)));
3178 }
3180
3181 if (treshist2)
3182 {
3183 cout << " Draw time residual barrel C" << endl;
3184 treshist2->Draw();
3185 mintxt->DrawText(0.15, 0.85, Form("Mean: %.3f", tresfit2->GetParameter(1)));
3186 mintxt->DrawText(0.15, 0.80, Form("Sigma: %.3f", tresfit2->GetParameter(2)));
3187 }
3189
3190 if (treshist3)
3191 {
3192 cout << " Draw time residual barrel A" << endl;
3193 treshist3->Draw();
3194 mintxt->DrawText(0.15, 0.85, Form("Mean: %.3f", tresfit3->GetParameter(1)));
3195 mintxt->DrawText(0.15, 0.80, Form("Sigma: %.3f", tresfit3->GetParameter(2)));
3196 }
3198 if (treshist4)
3199 {
3200 cout << " Draw time residual endcap C" << endl;
3201 treshist4->Draw();
3202 mintxt->DrawText(0.15, 0.85, Form("Mean: %.3f", tresfit4->GetParameter(1)));
3203 mintxt->DrawText(0.15, 0.80, Form("Sigma: %.3f", tresfit4->GetParameter(2)));
3204 }
3206 if (treshist5)
3207 {
3208 cout << " Draw time residual endcap A" << endl;
3209 treshist5->Draw();
3210 mintxt->DrawText(0.15, 0.85, Form("Mean: %.3f", tresfit5->GetParameter(1)));
3211 mintxt->DrawText(0.15, 0.80, Form("Sigma: %.3f", tresfit5->GetParameter(2)));
3212 }
3213 gStyle->SetOptStat(0);
3214}
TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)