| 1 | //***************************************************** | 
| 2 | //24-feb-2009: introduced "beta_in" and "Set_Beta": | 
| 3 | // beta_in is set to 100 by default. If it is not overwritten | 
| 4 | // by "Set_Beta" (ToFNuclei.h), the code is used as before. | 
| 5 | // If beta_in was set by the user using "Set_Beta", this beta | 
| 6 | // is taken for the calculations. | 
| 7 | // | 
| 8 | //26-feb-2009: Inserted S115B calibrations from Lucia | 
| 9 | // | 
| 10 | //02-apr-2009: bug found in some "if" statements for the | 
| 11 | // "Layercharge" definition, but only important if ADC=4095 | 
| 12 | // | 
| 13 | //15-apr-2009: small bug found in the calculation of the PMT | 
| 14 | // charge, the charge for the PMTs 1,9,28.. was calculated | 
| 15 | // twice, but the final result was OK | 
| 16 | // | 
| 17 | //05-may-2009: bug found in the calculation of the PMT | 
| 18 | // charge for standalone ToF due to changes made for rev 1.4: | 
| 19 | // For PMTs 4,8,39,41 (counting 0..47) no charge was calculated | 
| 20 | // calibration arrays now including correct brackets to avoid | 
| 21 | // compiler warnings | 
| 22 | //06-aug-2009: charge_layer_trk_raw  and charge_layer_std_raw | 
| 23 | // added: These are the "raw" values before doing the 2nd-order | 
| 24 | // correction | 
| 25 | //***************************************************** | 
| 26 | #include <ToFNuclei.h> | 
| 27 |  | 
| 28 | //-------------------------------------- | 
| 29 | /** | 
| 30 | * Default constructor | 
| 31 | */ | 
| 32 | ToFNuclei::ToFNuclei(){ | 
| 33 | Clear(); | 
| 34 | }; | 
| 35 |  | 
| 36 | ToFNuclei::ToFNuclei(PamLevel2 *l2p){ | 
| 37 | // | 
| 38 | Clear(); | 
| 39 | // | 
| 40 | L2 = l2p; | 
| 41 | // | 
| 42 | beta_in = 100.; | 
| 43 | // | 
| 44 | if ( !L2->IsORB() ) printf(" WARNING: OrbitalInfo Tree is needed, the plugin could not work properly without it \n"); | 
| 45 | // | 
| 46 | OBT = 0; | 
| 47 | PKT = 0; | 
| 48 | atime = 0; | 
| 49 | // | 
| 50 | sntr = 0; | 
| 51 | debug = false; | 
| 52 | // | 
| 53 | }; | 
| 54 |  | 
| 55 | void ToFNuclei::Clear(){ | 
| 56 | // | 
| 57 | ncount_trk = 0; | 
| 58 | charge_trk = 0.; | 
| 59 | memset (charge_layer_trk,0,6*sizeof(Float_t));  // | 
| 60 | memset (charge_layer_trk_raw,0,6*sizeof(Float_t));  // | 
| 61 | memset (charge_PMT_trk,0,48*sizeof(Float_t));  // | 
| 62 | memset (layerinfo_trk,0,6*sizeof(Int_t));  // | 
| 63 | ncount_std = 0; | 
| 64 | charge_std = 0.; | 
| 65 | memset (charge_layer_std,0,6*sizeof(Float_t));  // | 
| 66 | memset (charge_layer_std_raw,0,6*sizeof(Float_t));  // | 
| 67 | memset (charge_PMT_std,0,48*sizeof(Float_t));  // | 
| 68 | memset (layerinfo_std,0,6*sizeof(Int_t));  // | 
| 69 | }; | 
| 70 |  | 
| 71 | void ToFNuclei::Print(){ | 
| 72 | // | 
| 73 | Process(); | 
| 74 | // | 
| 75 | printf("========================================================================\n"); | 
| 76 | printf(" OBT: %u PKT: %u ATIME: %u Track %i \n",OBT,PKT,atime,tr); | 
| 77 | printf(" std : charge %f ncount %d layers %f %f %f %f %f %f \n",charge_std,ncount_std,charge_layer_std[0],charge_layer_std[1],charge_layer_std[2],charge_layer_std[3],charge_layer_std[4],charge_layer_std[5]); | 
| 78 | printf(" std : layerinfo %d %d %d %d %d %d \n",layerinfo_std[0],layerinfo_std[1],layerinfo_std[2],layerinfo_std[3],layerinfo_std[4],layerinfo_std[5]); | 
| 79 |  | 
| 80 | printf(" trk : charge %f ncount %d layers %f %f %f %f %f %f \n",charge_trk,ncount_trk,charge_layer_trk[0],charge_layer_trk[1],charge_layer_trk[2],charge_layer_trk[3],charge_layer_trk[4],charge_layer_trk[5]); | 
| 81 | printf(" trk : layerinfo %d %d %d %d %d %d \n",layerinfo_trk[0],layerinfo_trk[1],layerinfo_trk[2],layerinfo_trk[3],layerinfo_trk[4],layerinfo_trk[5]); | 
| 82 | printf("========================================================================\n"); | 
| 83 | // | 
| 84 | }; | 
| 85 |  | 
| 86 | void ToFNuclei::Delete(){ | 
| 87 | Clear(); | 
| 88 | }; | 
| 89 |  | 
| 90 |  | 
| 91 | void ToFNuclei::Process(){ | 
| 92 | Process(0); | 
| 93 | }; | 
| 94 |  | 
| 95 | void ToFNuclei::Process(Int_t ntr){ | 
| 96 | // | 
| 97 | if ( !L2 ){ | 
| 98 | printf(" ERROR: cannot find PamLevel2 object, use the correct constructor or check your program!\n"); | 
| 99 | printf(" ERROR: CaloExample variables not filled \n"); | 
| 100 | return; | 
| 101 | }; | 
| 102 | // | 
| 103 | Bool_t newentry = false; | 
| 104 | // | 
| 105 | if ( L2->IsORB() ){ | 
| 106 | if ( L2->GetOrbitalInfo()->pkt_num != PKT || L2->GetOrbitalInfo()->OBT != OBT || L2->GetOrbitalInfo()->absTime != atime || ntr != sntr ){ | 
| 107 | newentry = true; | 
| 108 | OBT = L2->GetOrbitalInfo()->OBT; | 
| 109 | PKT = L2->GetOrbitalInfo()->pkt_num; | 
| 110 | atime = L2->GetOrbitalInfo()->absTime; | 
| 111 | sntr = ntr; | 
| 112 | }; | 
| 113 | } else { | 
| 114 | newentry = true; | 
| 115 | }; | 
| 116 | // | 
| 117 | if ( !newentry ) { | 
| 118 | return; | 
| 119 | } | 
| 120 | // | 
| 121 | tr = ntr; | 
| 122 | // | 
| 123 | if ( debug ) printf(" Processing event at OBT %u PKT %u time %u \n",OBT,PKT,atime); | 
| 124 | // | 
| 125 | //  charge_trk = 0.; | 
| 126 | //  memset (charge_layer_trk,0,6*sizeof(Float_t));  // | 
| 127 | //  charge_std = 0.; | 
| 128 | //  memset (charge_layer_std,0,6*sizeof(Float_t));  // | 
| 129 |  | 
| 130 | Clear(); | 
| 131 |  | 
| 132 | //  cout<<"beta_in = "<<beta_in<<endl; | 
| 133 |  | 
| 134 |  | 
| 135 | Double_t time = L2->GetOrbitalInfo()->absTime; | 
| 136 |  | 
| 137 | //======================================================================= | 
| 138 | //==============          Siegen version 1           ==================== | 
| 139 | //==============   track dependent dEdx and beta     ==================== | 
| 140 | //======================================================================= | 
| 141 |  | 
| 142 | //if (L2->GetTrkLevel2()->GetNTracks()!=1) return; | 
| 143 | if (L2->GetTrkLevel2()->GetNTracks()==1) { | 
| 144 |  | 
| 145 | /* | 
| 146 | Float_t  PMTsat[48] = { | 
| 147 | 3162.14, 3165.48, 3153.85, 3085.73, 3089.65, 3107.64, 3097.52, 3078.37, 3130.05, 3087.07, 3112.22, | 
| 148 | 3102.92, 3080.58, 3092.55, 3087.94, 3125.03, 3094.09, 3143.16, | 
| 149 | 3125.51, 3181.27, 3092.09, 3124.98, 3069.3, 3095.53, 3097.11, 3133.53, 3114.73, 3113.01, 3091.19, | 
| 150 | 3097.99, 3033.84, 3134.98, 3081.37, 3111.04, 3066.77, 3108.17, | 
| 151 | 3133, 3111.06, 3052.52, 3140.66, 3106.33, 3094.85, 3150.85, 3118.8, 3096.24, 3118.47,3111.36, 3117.11 | 
| 152 | }; | 
| 153 | */ | 
| 154 |  | 
| 155 | // new values from Napoli dec 2008 | 
| 156 | Float_t  PMTsat[48] = { | 
| 157 | 3176.35,3178.19,3167.38,3099.73,3117.00,3126.29,3111.44,3092.27, | 
| 158 | 3146.48,3094.41,3132.13,3115.37,3099.32,3110.97,3111.80,3143.14, | 
| 159 | 3106.72,3153.44,3136.00,3188.96,3104.73,3140.45,3073.18,3106.62, | 
| 160 | 3112.48,3146.92,3127.24,3136.52,3109.59,3112.89,3045.15,3147.26, | 
| 161 | 3095.92,3121.05,3083.25,3123.62,3150.92,3125.30,3067.60,3160.18, | 
| 162 | 3119.36,3108.92,3164.77,3133.64,3111.47,3131.98,3128.87,3135.56 }; | 
| 163 |  | 
| 164 | for (Int_t i=0; i<48;i++) PMTsat[i] = PMTsat[i] - 5.;  // safety margin | 
| 165 |  | 
| 166 |  | 
| 167 | Float_t C0t[48][9] = { | 
| 168 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 169 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 170 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 171 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 172 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 173 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 174 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 175 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 176 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 177 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 178 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 179 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 180 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 181 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 182 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 183 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 184 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 185 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 186 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 187 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 188 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 189 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 190 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 191 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 192 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 193 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 194 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 195 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 196 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 197 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 198 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 199 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 200 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 201 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 202 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 203 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 204 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 205 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 206 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 207 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 208 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 209 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 210 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 211 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 212 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 213 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 214 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 215 | {0, 1, 2, 3, 4, 5, 6, 8, 92} } ; | 
| 216 |  | 
| 217 |  | 
| 218 |  | 
| 219 | Float_t A0t[48][9] = { | 
| 220 | {0, 0.90472, 5.19581, 7.99982, 11, 13, 16, 18, 2000}, | 
| 221 | {0, 0.7774, 5.15121, 7.99976, 11, 13, 16, 18, 2000}, | 
| 222 | {0, 1.18414, 5.1952, 8, 11, 13, 16, 17.9999, 2000}, | 
| 223 | {0, 1.0189, 5.61869, 8, 11, 13.0006, 15.9998, 18.0014, 2000}, | 
| 224 | {0, 1.08725, 4.4728, 7.99979, 11, 13.0002, 16, 18, 2000}, | 
| 225 | {0, 0.946462, 4.69554, 7.99994, 11, 13.0001, 16, 18, 2000}, | 
| 226 | {0, 1.13176, 4.57483, 7.99999, 11, 13.0002, 15.9999, 18.0002, 2000}, | 
| 227 | {0, 1.00872, 4.99316, 8, 11, 13, 16, 18, 2000}, | 
| 228 | {0, 1.19891, 5.01355, 8, 11, 13.0003, 16, 18, 2000}, | 
| 229 | {0, 0.5, 2.284, 3.12, 8.795, 6.257, 7.841, 6.1743, 2000}, | 
| 230 | {0, 1.16961, 4.59028, 8, 11, 13.0001, 16, 18, 2000}, | 
| 231 | {0, 0.989643, 5.21958, 7.99998, 11, 13, 16, 17.9999, 2000}, | 
| 232 | {0, 0.952029, 5.19598, 7.99998, 11, 13.0005, 16.0005, 18, 2000}, | 
| 233 | {0, 0.736833, 4.95596, 8, 11, 13, 16, 18, 2000}, | 
| 234 | {0, 1.34007, 3.74275, 8, 11, 13, 16, 18, 2000}, | 
| 235 | {0, 1.47101, 4.31154, 8, 11, 13, 16, 18, 2000}, | 
| 236 | {0, 1.3754, 4.83141, 8.00002, 11, 13, 16, 18, 2000}, | 
| 237 | {0, 1.47712, 5.79783, 8, 11, 13, 16, 18, 2000}, | 
| 238 | {0, 1.19127, 5.35796, 7.99996, 11, 13, 16, 18, 2000}, | 
| 239 | {0, 1.25745, 5.98391, 8, 11, 13.0004, 16.0001, 18.0001, 2000}, | 
| 240 | {0, 1.18024, 5.40107, 7.99999, 11, 13, 16, 18.0001, 2000}, | 
| 241 | {0, 0.961883, 5.10846, 7.99999, 11, 13, 16, 18, 2000}, | 
| 242 | {0, 1.23192, 6.21098, 8, 11, 13.0005, 16, 18.0003, 2000}, | 
| 243 | {0, 1.15846, 5.23573, 7.99995, 11, 13, 16, 18.0002, 2000}, | 
| 244 | {0, 1.26163, 5.5425, 8.00001, 11, 13.0002, 16.0006, 18, 2000}, | 
| 245 | {0, 1.12754, 5.57064, 7.99999, 11, 13, 16, 18.0002, 2000}, | 
| 246 | {0, 1.22768, 6.06283, 8, 11, 13.0002, 16, 18, 2000}, | 
| 247 | {0, 1.83569, 5.87584, 8.00006, 11, 13.0005, 16, 18, 2000}, | 
| 248 | {0, 1.61434, 5.56634, 7, 7.99999, 8.99999, 14.999, 16, 2000}, | 
| 249 | {0, 1.61287, 5.46416, 7.99989, 10, 12, 14.9997, 16, 2000}, | 
| 250 | {0, 1.49053, 6.21581, 9.00001, 12, 14, 16, 22, 2000}, | 
| 251 | {0, 1.64579, 5.08498, 7.99989, 10, 12, 15, 16, 2000}, | 
| 252 | {0, 1.83474, 6.29746, 9.00001, 12, 14.0001, 16.0001, 22, 2000}, | 
| 253 | {0, 1.80066, 6.19725, 9, 12, 14, 16, 22, 2000}, | 
| 254 | {0, 1.9025, 5.83736, 8, 10, 12, 14.9999, 16, 2000}, | 
| 255 | {0, 1.90163, 5.62801, 7.99999, 10, 12, 15, 16, 2000}, | 
| 256 | {0, 2.5518, 5.97325, 9.00012, 12, 15, 18, 22, 2000}, | 
| 257 | {0, 2.53476, 5.75312, 9.00007, 12, 15, 18, 22, 2000}, | 
| 258 | {0, 2.67784, 6.9232, 9.00005, 12, 15, 18, 22, 2000}, | 
| 259 | {0, 2.62769, 7.22552, 9.00003, 12.0001, 15, 18, 22, 2000}, | 
| 260 | {0, 2.58088, 6.30413, 9.0001, 12, 15, 18, 22, 2000}, | 
| 261 | {0, 2.48219, 7.06085, 9.00005, 12, 15, 18, 22, 2000}, | 
| 262 | {0, 3.23157, 5.20668, 9.00007, 12, 15, 18, 22, 2000}, | 
| 263 | {0, 3.38244, 6.45172, 9.00006, 12.0001, 15, 18.0001, 22, 2000}, | 
| 264 | {0, 3.14595, 5.29036, 9.00008, 12, 15, 18, 22.0001, 2000}, | 
| 265 | {0, 3.34692, 6.17283, 9.00041, 12, 15, 18.0001, 22, 2000}, | 
| 266 | {0, 3.16915, 4.25973, 9.00015, 12, 15, 18, 22, 2000}, | 
| 267 | {0, 3.25809, 5.58971, 9.00068, 12, 15, 18, 22.0001, 2000} } ; | 
| 268 |  | 
| 269 |  | 
| 270 | Float_t A1t[48][9] = { | 
| 271 | {0, -0.148721, -3.39495, -4.31459, -0.929148, 3.54132, -0.781274, 1.31968, 0}, | 
| 272 | {0, 0.300986, -2.80331, -4.23227, 0.298916, 4.10416, -5.18516, 7.03041, 0}, | 
| 273 | {0, -0.590177, -3.12529, -0.44614, 0.620419, 5.19609, 9.88925, 14.9819, 0}, | 
| 274 | {0, -0.173358, -3.98938, -0.616916, 0.405404, 6.25045, 10.5087, 24.7055, 0}, | 
| 275 | {0, -0.32707, -1.1686, -3.46701, -0.284242, 4.09514, -0.561233, -0.166844, 0}, | 
| 276 | {0, 0.0440221, -1.5147, -2.67239, -1.08848, 5.05632, 3.92546, -0.0525454, 0}, | 
| 277 | {0, -0.331836, -1.25371, -1.59317, 0.654738, 4.41673, 5.99879, 14.9057, 0}, | 
| 278 | {0, 0.00587183, -2.17841, -1.48496, 0.477997, 6.24062, 6.19841, 11.4798, 0}, | 
| 279 | {0, -0.515989, -2.1195, -1.44376, 0.145546, 5.41926, 5.03587, 10.7126, 0}, | 
| 280 | {0, 0, 0.0682, 3.2814, -6.1989, 8.05589, 9.75967, 23.797, 0}, | 
| 281 | {0, -0.554732, -1.6306, -1.54677, 0.687092, 3.97612, 4.05449, 3.44324, 0}, | 
| 282 | {0, -0.0314164, -2.83515, -1.29946, 2.31597, 7.15645, 6.95353, 12.8573, 0}, | 
| 283 | {0, -0.218413, -3.04095, -1.50327, 0.291698, 5.27119, 9.06051, 18.4417, 0}, | 
| 284 | {0, 0.410005, -2.45452, -0.851601, 0.206665, 6.44906, 7.53132, 10.5636, 0}, | 
| 285 | {0, -1.29063, 0.463767, -0.720394, 1.27269, 3.66394, 4.52102, 7.33444, 0}, | 
| 286 | {0, -1.54073, -1.60146, -1.91721, -0.640132, 3.58881, 0.561348, 7.33444, 0}, | 
| 287 | {0, -0.558527, -2.43481, -1.64492, 1.51694, 6.05449, 4.67951, 5.40004, 0}, | 
| 288 | {0, -1.44736, -5.265, -1.28878, -0.238869, 4.13668, 4.58264, 3.28758, 0}, | 
| 289 | {0, -0.596315, -3.35555, -2.03624, -0.148223, 6.16332, 4.71164, 15.6531, 0}, | 
| 290 | {0, -0.740826, -4.79843, 0.345734, -0.210722, 6.32702, 9.76698, 19.9151, 0}, | 
| 291 | {0, -0.541817, -3.30557, -1.76057, -0.216039, 5.79923, 8.00931, 16.4061, 0}, | 
| 292 | {0, -0.0503124, -2.66635, -1.70196, -1.07446, 3.46058, 1.45824, -2.21932, 0}, | 
| 293 | {0, -0.495955, -5.78012, -0.174017, 0.675206, 6.30264, 8.30058, 20.3899, 0}, | 
| 294 | {0, -0.315843, -2.8796, -3.04323, -0.681945, 5.49248, 7.42757, 17.1667, 0}, | 
| 295 | {0, -0.643179, -3.5364, -0.245549, 0.694213, 5.79727, 10.2911, 9.61651, 0}, | 
| 296 | {0, -0.315433, -3.56856, -1.25894, 2.05501, 6.85829, 8.74895, 14.9955, 0}, | 
| 297 | {0, -0.478207, -4.82517, 0.688668, 1.40183, 6.78743, 8.02806, 2.65821, 0}, | 
| 298 | {0, -1.63072, -5.05269, -0.582789, 1.22014, 6.80023, 8.8931, 5.15517, 0}, | 
| 299 | {0, -1.50826, -3.68958, 0.420744, 3.25124, 4.28046, -16.9712, -12, 0}, | 
| 300 | {0, -1.52021, -3.37459, -2.41086, 0.547517, -0.56013, -8.59935, -3, 0}, | 
| 301 | {0, -0.998702, -4.7187, -2.33974, -0.0974348, 3.10138, 2.3293, -5.71135, 0}, | 
| 302 | {0, -1.66188, -2.39145, -2.55052, 0.29005, -0.16697, -3.97018, -1.5, 0}, | 
| 303 | {0, -2.04431, -4.95214, -1.51889, 1.92081, 5.92476, 8.94417, -0.172422, 0}, | 
| 304 | {0, -1.94155, -4.95644, -2.47063, 0.0233995, 2.57015, 4.84173, -0.555407, 0}, | 
| 305 | {0, -2.22045, -4.21875, -1.23892, 0.911188, -0.705415, -11.5648, -7, 0}, | 
| 306 | {0, -2.25418, -3.71067, -1.87307, 0.560423, 0.206679, -4.27293, -3, 0}, | 
| 307 | {0, -3.90179, -5.14354, -4.08454, -3.13545, -3.57868, -5.13198, -1.0019, 0}, | 
| 308 | {0, -3.78789, -4.50313, -5.24307, -3.24931, -0.319336, -1.407, -3.77821, 0}, | 
| 309 | {0, -4.16337, -7.12861, -2.29639, -0.786276, 2.58494, 4.16162, 7.22747, 0}, | 
| 310 | {0, -4.04189, -7.82707, -1.34893, -1.05519, 4.33166, 4.87264, 12.3328, 0}, | 
| 311 | {0, -3.85946, -5.71064, -4.43564, -1.53025, 1.42505, -0.0695653, 4.33418, 0}, | 
| 312 | {0, -3.65794, -8.19828, -3.32738, -1.25785, -1.13124, -6.79745, -8.37113, 0}, | 
| 313 | {0, -5.571, -2.49596, -2.8623, -2.74219, -1.43215, -0.359863, 0.25062, 0}, | 
| 314 | {0, -6.00932, -5.60393, -2.33967, -1.53792, 3.67721, 5.49137, 8.34507, 0}, | 
| 315 | {0, -5.36442, -3.19657, -2.9975, -1.73078, 0.0558693, -0.179221, 9.45231, 0}, | 
| 316 | {0, -5.91858, -5.04606, -2.88549, -0.953526, 1.17816, 5.43427, 0.871257, 0}, | 
| 317 | {0, -5.53832, -0.498886, -3.85789, -2.61557, -2.45863, -1.44554, -7.21927, 0}, | 
| 318 | {0, -5.70059, -3.94476, -3.23927, 0.15573, 1.85295, 3.96162, 8.70362, 0} }; | 
| 319 |  | 
| 320 |  | 
| 321 | Float_t A2t[48][9] = { | 
| 322 | {0, 0.447567, 2.19777, 4.56362, 2.7416, 2.05411, 10.11, 19.0312, 0}, | 
| 323 | {0, 0.11417, 1.62292, 5.00684, 3, 3.00006, 17.3401, 17.8502, 0}, | 
| 324 | {0, 0.613665, 1.84729, 0.717669, 3, 2.53701, 1.23897, 10.2529, 0}, | 
| 325 | {0, 0.318447, 2.30647, 0.936633, 3, 3, 2.95973, 3, 0}, | 
| 326 | {0, 0.398201, 0.701095, 3.91236, 3, 3, 11.5693, 17.9749, 0}, | 
| 327 | {0, 0.202853, 0.806934, 3.11779, 3.57657, 1.59933, 6.71492, 23.6721, 0}, | 
| 328 | {0, 0.378081, 0.60131, 1.91722, 1.97014, 3, 5.08036, 9.64776, 0}, | 
| 329 | {0, 0.185602, 1.13243, 1.95726, 2.25608, 1.31382, 6.06097, 15.9104, 0}, | 
| 330 | {0, 0.519026, 1.16139, 1.92471, 3, 3, 6.24901, 15.0465, 0}, | 
| 331 | {0, 0, 0, -1.972, 4.7828, -3.1154, -2.11319, -4.7497, 0}, | 
| 332 | {0, 0.584808, 1.01299, 1.55521, 1.3038, 3, 7.23646, 20.977, 0}, | 
| 333 | {0, 0.252569, 1.60163, 1.83587, 0.630466, 0.777058, 6.0142, 15.4738, 0}, | 
| 334 | {0, 0.434331, 1.84922, 1.83168, 3, 3, 3, 6.44375, 0}, | 
| 335 | {0, 0.0330463, 1.50249, 1.15961, 3, 0.810556, 4.20175, 16.0172, 0}, | 
| 336 | {0, 1.15272, -0.461141, 0.6358, 0.566375, 3.20343, 5.26698, 14.6336, 0}, | 
| 337 | {0, 1.24677, 1.12736, 1.76074, 3, 3.77723, 10.7814, 14.6336, 0}, | 
| 338 | {0, 0.551726, 1.59633, 1.18411, 0.119382, 0.843864, 6.67491, 20.4289, 0}, | 
| 339 | {0, 1.17008, 3.53223, 1.7298, 3, 3.51043, 7.10543, 22.3253, 0}, | 
| 340 | {0, 0.612142, 1.96606, 2.64693, 3.25016, 1.25888, 7.04821, 11.7283, 0}, | 
| 341 | {0, 0.69148, 2.84536, 0.249509, 4.29848, 3, 3.58229, 9.01681, 0}, | 
| 342 | {0, 0.565678, 1.96366, 2.32387, 3.15843, 1.66386, 3.07223, 7.67847, 0}, | 
| 343 | {0, 0.286252, 1.61749, 2.08437, 3.96745, 3.46972, 9.29207, 23.9444, 0}, | 
| 344 | {0, 0.427677, 3.58328, 0.303785, 3, 3, 4.66547, 6.77271, 0}, | 
| 345 | {0, 0.367136, 1.62323, 3.53394, 3.22174, 1.19152, 2.67962, 7.37085, 0}, | 
| 346 | {0, 0.571177, 2.03267, 0.714761, 2.31548, 3, 3, 23.2035, 0}, | 
| 347 | {0, 0.410871, 2.02075, 2.01824, 1.2684, 1.18522, 3.21976, 12.8378, 0}, | 
| 348 | {0, 0.463877, 2.86112, 0.170916, 3, 3, 5.97413, 28.4085, 0}, | 
| 349 | {0, 1.30088, 3.26557, 2, 3, 3, 4.77584, 22.8794, 0}, | 
| 350 | {0, 1.02941, 2.12558, 0.872765, 2.23727, 4.7981, 24.6338, 24.6338, 0}, | 
| 351 | {0, 1.05783, 1.89525, 2.85289, 3.0898, 7.83407, 17.8466, 20, 0}, | 
| 352 | {0, 0.87851, 2.49044, 1.91387, 2.41541, 3.8418, 9.41288, 24.0375, 0}, | 
| 353 | {0, 1.18188, 1.273, 2.9275, 3.06704, 7.12642, 12.7629, 15, 0}, | 
| 354 | {0, 1.53682, 2.57011, 1.06205, 0.506326, 1.68314, 3.58498, 23.1595, 0}, | 
| 355 | {0, 1.46302, 2.68515, 1.99381, 2.17816, 4.41356, 6.53634, 20.7136, 0}, | 
| 356 | {0, 1.4731, 2.3654, 1.53025, 2.96327, 8.70277, 21.6253, 25, 0}, | 
| 357 | {0, 1.53808, 2.07089, 2.22662, 3.14766, 7.57131, 14.2471, 20, 0}, | 
| 358 | {0, 2.54185, 2.94079, 2.66362, 3.52374, 6.80629, 11.3325, 14.5186, 0}, | 
| 359 | {0, 2.43664, 2.49436, 4.17446, 3.77162, 3.31898, 7.43896, 18.2548, 0}, | 
| 360 | {0, 2.66465, 3.9858, 1.0855, 1.91916, 1.82719, 3.62289, 11.3872, 0}, | 
| 361 | {0, 2.59071, 4.39003, 0.0757547, 3, 0.158868, 3.55454, 5.71387, 0}, | 
| 362 | {0, 2.48014, 3.16071, 3.1975, 1.7259, 1.53532, 6.33812, 11.2325, 0}, | 
| 363 | {0, 2.35236, 4.94998, 1.78836, 1.9115, 4.74233, 13.6973, 21.965, 0}, | 
| 364 | {0, 3.52215, 0.812087, 1.1768, 2.95239, 4.3202, 6.04614, 13.6556, 0}, | 
| 365 | {0, 3.79446, 2.80606, 0.88371, 3, 0.614106, 2.52782, 12.4441, 0}, | 
| 366 | {0, 3.41363, 1.57296, 1.59021, 2.47593, 3.41146, 6.76304, 5.59471, 0}, | 
| 367 | {0, 3.72529, 2.50889, 2, 3, 4.06815, 2.78676, 19.6427, 0}, | 
| 368 | {0, 3.54713, -0.296079, 2.10851, 2.42037, 5.37573, 6.78065, 22.298, 0}, | 
| 369 | {0, 3.61517, 1.96909, 2, 0.249865, 2.46639, 3.42483, 8.1652, 0} } ; | 
| 370 |  | 
| 371 |  | 
| 372 | // S115B failure: 1158700000 // 2006-09-19 21:06:40 UTC | 
| 373 |  | 
| 374 | if (time < 1158700000.) {     // first workaround: just use calibration of PMT S115A | 
| 375 | for ( Int_t jj=0; jj<9; jj++ ){ | 
| 376 | A0t[9][jj] = A0t[8][jj] ; | 
| 377 | A1t[9][jj] = A1t[8][jj] ; | 
| 378 | A2t[9][jj] = A2t[8][jj] ; | 
| 379 | } | 
| 380 | } // if time... | 
| 381 |  | 
| 382 | //============================================================================ | 
| 383 |  | 
| 384 | //  2nd-order correction | 
| 385 | Float_t corr_a[6][4] = { | 
| 386 | {0.977261,  0.353729,  -0.83314,  0.452883}, | 
| 387 | {1.27649,  3.53459, -5.41948,  2.67854}, | 
| 388 | {2.21926,  4.32797,  -7.24001,  3.77247}, | 
| 389 | {2.4202,  7.99552,-12.4371,  6.08982}, | 
| 390 | {2.04984,  13.3375, -19.178,  8.86101}, | 
| 391 | {2.63322,  14.8072,  -20.911,9.57905} }; | 
| 392 |  | 
| 393 | //--------------------------------------------------------------------- | 
| 394 |  | 
| 395 | Float_t xv[6],yv[6]; | 
| 396 | Int_t  iz; | 
| 397 | Float_t x1[9],y1[9]; | 
| 398 | Int_t n1 = 9; | 
| 399 |  | 
| 400 | Float_t  Layercharge[6] = {1005., 1005., 1005., 1005., 1005., 1005. }; | 
| 401 |  | 
| 402 | Int_t  Layerinfo[6] = {0, 0, 0, 0, 0, 0 }; | 
| 403 |  | 
| 404 | //Float_t adc[48],adc_c[48],PMTcharge_arr[48]; | 
| 405 | Float_t adc[48],PMTcharge_arr[48]; | 
| 406 |  | 
| 407 | //------------------------------------------------------------------ | 
| 408 |  | 
| 409 | PamTrack *track = L2->GetTrack(0); | 
| 410 |  | 
| 411 | Float_t beta_mean = fabs(track->GetToFTrack()->beta[12]); | 
| 412 |  | 
| 413 | // New!! If "beta_in" != 100. then overwrite beta_mean with beta_in | 
| 414 | if (beta_in != 100.) beta_mean=beta_in; | 
| 415 |  | 
| 416 | //Float_t def = track->GetTrkTrack()->al[4]; | 
| 417 | //Float_t rig = 1./def; | 
| 418 |  | 
| 419 | Int_t ncount=0; | 
| 420 | Float_t charge_chi=1000.; | 
| 421 |  | 
| 422 | //------------------------------------------------------------- | 
| 423 | //------------------  ToF Charge ------------------------------ | 
| 424 | //------------------------------------------------------------- | 
| 425 |  | 
| 426 | // fill adc and tdc | 
| 427 |  | 
| 428 | Int_t ich,jj,kk; | 
| 429 |  | 
| 430 | for (ich=0; ich<48; ich++)   adc[ich]   = 4095.; | 
| 431 | //   for (ich=0; ich<48; ich++)   adc_c[ich] = 1000.; | 
| 432 | for (ich=0; ich<48; ich++)   PMTcharge_arr[ich] = 1000.; | 
| 433 |  | 
| 434 |  | 
| 435 |  | 
| 436 | if ((beta_mean < 0.05)  || (beta_mean > 2.0)) { | 
| 437 | for (Int_t jj=0; jj<48;jj++) charge_PMT_trk[jj] = 1001.; | 
| 438 | for (Int_t jj=0; jj<6;jj++) charge_layer_trk[jj] = 1001.; | 
| 439 | for (Int_t jj=0; jj<6;jj++) charge_layer_trk_raw[jj] = 1001.; | 
| 440 | for (Int_t jj=0; jj<6;jj++) layerinfo_trk[jj] = 1001; | 
| 441 | charge_trk = 1001.; | 
| 442 | ncount_trk = 0; | 
| 443 | } | 
| 444 |  | 
| 445 |  | 
| 446 | if ((beta_mean > 0.05)  && (beta_mean < 2.0)) { | 
| 447 |  | 
| 448 | Float_t betahelp =   pow(beta_mean, 1.2); | 
| 449 |  | 
| 450 | //======================================================================= | 
| 451 |  | 
| 452 | for (Int_t ipmt=0; ipmt<L2->GetToFLevel2()->npmt() ; ipmt++){ | 
| 453 | ToFPMT *tofpmt = L2->GetToFLevel2()->GetToFPMT(ipmt); | 
| 454 | Int_t pmt_id = tofpmt->pmt_id; | 
| 455 | adc[pmt_id] = tofpmt->adc ; | 
| 456 | } | 
| 457 |  | 
| 458 | //======================================================================= | 
| 459 | Float_t yl, yh, ym, m, b, chelp, charge; | 
| 460 |  | 
| 461 | for (Int_t ipmt=0; ipmt<track->GetToFTrack()->npmtadc; ipmt++){ | 
| 462 | Float_t dEdx = track->GetToFTrack()->dedx[ipmt]; | 
| 463 | ym = dEdx*betahelp; | 
| 464 | Int_t pmtadc = track->GetToFTrack()->pmtadc[ipmt]; | 
| 465 | //          Int_t adcflag = track->GetToFTrack()->adcflag[ipmt]; | 
| 466 | L2->GetToFLevel2()->GetPMTIndex(pmtadc,jj,kk); | 
| 467 | //          if (adcflag==0) adc_c[pmtadc] = dEdx; | 
| 468 |  | 
| 469 |  | 
| 470 | //         if (adc[pmtadc] == 4095) adc_c[pmtadc] = 0.; | 
| 471 | if (adc[pmtadc] == 4095) PMTcharge_arr[pmtadc] = 0.; | 
| 472 |  | 
| 473 | //         if ((adc[pmtadc]>PMTsat[pmtadc]) && (adc[pmtadc]<4095)) adc_c[pmtadc] = 1000.; | 
| 474 |  | 
| 475 | if (adc[pmtadc] < PMTsat[pmtadc]) { | 
| 476 | //---------------------------------------------------------------------------------------- | 
| 477 | if ((pmtadc!=1) && (pmtadc!=9) && (pmtadc!=28) && (pmtadc!=29) && (pmtadc!=34)) { | 
| 478 |  | 
| 479 | for ( Int_t jj=0; jj<9; jj++ ){ | 
| 480 | x1[jj] = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean; | 
| 481 | y1[jj] = C0t[pmtadc][jj]*C0t[pmtadc][jj] ; | 
| 482 | } | 
| 483 |  | 
| 484 | TGraph *gr2 = new TGraph(n1,x1,y1); | 
| 485 | TSpline3 *spl2 = new TSpline3("grs",gr2);    // use a cubic spline | 
| 486 | chelp = spl2->Eval(ym); | 
| 487 | if (chelp<0.) chelp=0.0001;  //WM new | 
| 488 | charge = TMath::Sqrt(chelp); | 
| 489 | gr2->Delete(); | 
| 490 | spl2->Delete(); | 
| 491 | PMTcharge_arr[pmtadc] = charge; | 
| 492 | } // pmtadc != ... | 
| 493 |  | 
| 494 | //---------------------------------------------------------------------------------------- | 
| 495 |  | 
| 496 | if ((pmtadc==1) || (pmtadc==9) || (pmtadc==28) || (pmtadc==29) || (pmtadc==34)) { | 
| 497 | for ( Int_t jj=0; jj<8; jj++ ){ | 
| 498 | yl = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean; | 
| 499 | yh = A0t[pmtadc][jj+1]+A1t[pmtadc][jj+1]*beta_mean+A2t[pmtadc][jj+1]*beta_mean*beta_mean; | 
| 500 | if ((yl<ym)&&(ym<yh)){ | 
| 501 | m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl); | 
| 502 | b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl; | 
| 503 | chelp = m*ym + b; | 
| 504 | if (chelp<0.) chelp=0.0001;  //WM new | 
| 505 | charge= TMath::Sqrt(chelp); | 
| 506 | PMTcharge_arr[pmtadc] = charge; | 
| 507 | } | 
| 508 | } // jj=0..8 | 
| 509 | } // if pmtadc ==.... | 
| 510 | //---------------------------------------------------------------------------------------- | 
| 511 | } // adc < sat | 
| 512 |  | 
| 513 | }   // ipmt... | 
| 514 |  | 
| 515 | //==================================================================== | 
| 516 | //================  Find out the hitted ToF paddles    =============== | 
| 517 | //==================================================================== | 
| 518 |  | 
| 519 | for (Int_t jj=0; jj<6; jj++){ | 
| 520 | xv[jj]=track->GetToFTrack()->xtr_tof[jj]; | 
| 521 | yv[jj]=track->GetToFTrack()->ytr_tof[jj]; | 
| 522 | } | 
| 523 |  | 
| 524 | Int_t PaddleIdOfTrack[6]; | 
| 525 |  | 
| 526 | PaddleIdOfTrack[0] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[0], yv[0], 0, 0.) ; | 
| 527 | PaddleIdOfTrack[1] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[1], yv[1], 1, 0.) ; | 
| 528 | PaddleIdOfTrack[2] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[2], yv[2], 2, 0.) ; | 
| 529 | PaddleIdOfTrack[3] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[3], yv[3], 3, 0.) ; | 
| 530 | PaddleIdOfTrack[4] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[4], yv[4], 4, 0.) ; | 
| 531 | PaddleIdOfTrack[5] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[5], yv[5], 5, 0.) ; | 
| 532 |  | 
| 533 | //============================================================== | 
| 534 |  | 
| 535 |  | 
| 536 | Int_t ihelp_a[6] = {0,16,28,32,36,42}; | 
| 537 |  | 
| 538 | for (Int_t ilay=0; ilay<6; ilay ++) { | 
| 539 | Int_t jj = PaddleIdOfTrack[ilay] ; | 
| 540 | //Float_t xhelp = 1000.; | 
| 541 | Float_t xhelp = 1005.; | 
| 542 |  | 
| 543 | if (jj == -1) Layerinfo[ilay] = -1; | 
| 544 |  | 
| 545 | if (jj != -1) { | 
| 546 | Int_t ih = ihelp_a[ilay] + 2*jj; | 
| 547 |  | 
| 548 | // New WM | 
| 549 | Int_t igood1=0; | 
| 550 | Int_t igood2=0; | 
| 551 | if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih] > 0.)) igood1=1; | 
| 552 | if ((PMTcharge_arr[ih+1] < 1000.) && (PMTcharge_arr[ih+1] > 0.)) igood2=1; | 
| 553 |  | 
| 554 | if ((PMTcharge_arr[ih]==0.) && (PMTcharge_arr[ih+1]==0.))  xhelp = 0.; | 
| 555 | if ((igood1==1)&&(igood2==1)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; | 
| 556 | if ((igood1==1)&&(igood2==0)) xhelp = PMTcharge_arr[ih]; | 
| 557 | if ((igood2==1)&&(igood1==0)) xhelp = PMTcharge_arr[ih+1]; | 
| 558 |  | 
| 559 |  | 
| 560 | /* | 
| 561 | if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; | 
| 562 | if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.))  xhelp = PMTcharge_arr[ih] ; | 
| 563 | if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.))  xhelp = PMTcharge_arr[ih+1] ; | 
| 564 | */ | 
| 565 | if (adc[ih] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; | 
| 566 | if (adc[ih+1] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; | 
| 567 | if ((adc[ih] > PMTsat[ih]) && (adc[ih] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; | 
| 568 | if ((adc[ih+1] > PMTsat[ih+1]) && (adc[ih+1] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; | 
| 569 | } | 
| 570 | Layercharge[ilay] = xhelp; | 
| 571 | } // ilay ... | 
| 572 |  | 
| 573 |  | 
| 574 |  | 
| 575 | //========================================================================== | 
| 576 | //============= Layercharge without 2nd-order correction   ================= | 
| 577 | //========================================================================== | 
| 578 |  | 
| 579 | for (Int_t jj=0; jj<6;jj++) charge_layer_trk_raw[jj] = Layercharge[jj]; | 
| 580 |  | 
| 581 | //========================================================================== | 
| 582 | //=========================   2nd-order correction   ======================= | 
| 583 | //========================================================================== | 
| 584 |  | 
| 585 | Float_t xb = beta_mean; | 
| 586 |  | 
| 587 | for (Int_t ii=0; ii<6;  ii++) { | 
| 588 | Int_t ic = 0; | 
| 589 | Float_t corr[4] = {1., 0., 0., 0.}; | 
| 590 | for (Int_t iii=1; iii<9;  iii++) if (fabs(Layercharge[ii] - iii)<0.50) ic = iii; | 
| 591 | if ((ic>0)&&(ic<=5)) for (Int_t iii=0; iii<4;  iii++) corr[iii] = corr_a[ic-1][iii]; | 
| 592 | if (ic >5) for (Int_t iii=0; iii<4;  iii++) corr[iii] = corr_a[5][iii]; | 
| 593 |  | 
| 594 | Float_t c_corr = corr[0]+corr[1]*xb+corr[2]*xb*xb+corr[3]*xb*xb*xb; | 
| 595 |  | 
| 596 | if ((ic>0)&&(ic<=5)) c_corr = c_corr/(1.*ic) ; | 
| 597 | if (ic>5) c_corr = c_corr/6. ; | 
| 598 |  | 
| 599 | //cout<<"beta "<<xb<<" layer "<<ii<<" ic "<<ic<<" => "<<c_corr<<endl; | 
| 600 | //cout<<xb<<"  "<<ic<<"  "<<c_corr<<endl; | 
| 601 |  | 
| 602 | Layercharge[ii] = Layercharge[ii]/c_corr; | 
| 603 |  | 
| 604 | } | 
| 605 |  | 
| 606 | //========================================================================== | 
| 607 | //========================================================================== | 
| 608 |  | 
| 609 |  | 
| 610 | Int_t  icount=0; | 
| 611 | Float_t charge_mean = 0.; | 
| 612 | for (Int_t ii=0; ii<6;  ii++) { | 
| 613 | if (Layercharge[ii] < 1000) charge_mean = charge_mean + Layercharge[ii] ; | 
| 614 | if (Layercharge[ii] < 1000) icount++; | 
| 615 | } | 
| 616 | if (icount>0) charge_mean = charge_mean/(1.*icount) ; | 
| 617 |  | 
| 618 | if (icount>0) { | 
| 619 |  | 
| 620 | //for (Int_t ii=0; ii<6;  ii++) cout<<Layercharge[ii]<<" "; | 
| 621 | //cout<<endl; | 
| 622 |  | 
| 623 |  | 
| 624 | vector<float> charge_v; | 
| 625 | Float_t charge_median = 0.; | 
| 626 |  | 
| 627 | ////////  get the median charge //////////// | 
| 628 | for(Int_t ii=0;ii<6;ii++) { | 
| 629 | if (Layercharge[ii] < 1000) charge_v.push_back(Layercharge[ii]); | 
| 630 | } | 
| 631 |  | 
| 632 | std::sort(charge_v.begin(),charge_v.end()); | 
| 633 | charge_median = charge_v[(int)(charge_v.size()/2+charge_v.size()%2)-1]; | 
| 634 |  | 
| 635 | //cout<<charge_mean<<" "<<charge_median<<endl; | 
| 636 |  | 
| 637 | charge_mean = charge_median; | 
| 638 |  | 
| 639 | }  // icount>0 | 
| 640 |  | 
| 641 |  | 
| 642 | //--- Calculate charge for the second time, use residuals of the single | 
| 643 | //--- measurements to get a chi2 value | 
| 644 |  | 
| 645 | Float_t w_i_arr[8] = {0.1, 0.15, 0.2, 0.25, 0.30, 0.35, 0.45, 0.50}; | 
| 646 |  | 
| 647 | icount=0; | 
| 648 | Float_t sw=0.; | 
| 649 | Float_t sxw=0.; | 
| 650 | Float_t w_i = 1./0.5; | 
| 651 | Float_t resmax= 3.0; | 
| 652 |  | 
| 653 | iz=1; | 
| 654 | if ((0.0<charge_mean) & (charge_mean<1.5)) iz=1; | 
| 655 | if ((1.5<charge_mean) & (charge_mean<2.5)) iz=2; | 
| 656 | if ((2.5<charge_mean) & (charge_mean<3.5)) iz=3; | 
| 657 | if ((3.5<charge_mean) & (charge_mean<4.5)) iz=4; | 
| 658 | if ((4.5<charge_mean) & (charge_mean<5.5)) iz=5; | 
| 659 | if ((5.5<charge_mean) & (charge_mean<6.5)) iz=6; | 
| 660 | if ((6.5<charge_mean) & (charge_mean<7.5)) iz=7; | 
| 661 | if ((7.5<charge_mean) & (charge_mean<90.)) iz=8; | 
| 662 |  | 
| 663 | w_i = 1./w_i_arr[iz-1]; | 
| 664 |  | 
| 665 | for (Int_t jj=0; jj<6;jj++){ | 
| 666 | if (Layercharge[jj] < 1000) { | 
| 667 | Float_t res = charge_mean - Layercharge[jj] ; | 
| 668 | if (fabs(res*w_i)<resmax) { | 
| 669 | icount= icount+1; | 
| 670 | sxw=sxw + Layercharge[jj]*w_i*w_i ; | 
| 671 | sw =sw + w_i*w_i ; | 
| 672 | } | 
| 673 | } | 
| 674 | } | 
| 675 |  | 
| 676 |  | 
| 677 | ncount =  icount; | 
| 678 | if (icount>0) charge_chi=sxw/sw; | 
| 679 |  | 
| 680 | //  cout<<" => "<<icount<<" "<<charge_chi<<endl; | 
| 681 |  | 
| 682 | //============================================================= | 
| 683 | // changed 30-01-2009 WM | 
| 684 |  | 
| 685 | for (Int_t jj=0; jj<48;jj++) charge_PMT_trk[jj] = PMTcharge_arr[jj]; | 
| 686 | for (Int_t jj=0; jj<6;jj++) charge_layer_trk[jj] = Layercharge[jj]; | 
| 687 | for (Int_t jj=0; jj<6;jj++) layerinfo_trk[jj] = Layerinfo[jj]; | 
| 688 | charge_trk = charge_chi; | 
| 689 | ncount_trk = ncount; | 
| 690 |  | 
| 691 | } // 0.05 < beta < 2.0 | 
| 692 |  | 
| 693 | } // if ntrk == 1 | 
| 694 |  | 
| 695 | //================================================================ | 
| 696 | //==============          Siegen version 1           ============= | 
| 697 | //==============        standalone dEdx and beta     ============= | 
| 698 | //================================================================ | 
| 699 |  | 
| 700 | // ToF track | 
| 701 | ToFTrkVar *track = L2->GetToFStoredTrack(-1); | 
| 702 | //  if(!track)return; | 
| 703 | if(track) { | 
| 704 |  | 
| 705 | /* | 
| 706 | Float_t  PMTsat[48] = { | 
| 707 | 3162.14, 3165.48, 3153.85, 3085.73, 3089.65, 3107.64, 3097.52, 3078.37, 3130.05, 3087.07, 3112.22, | 
| 708 | 3102.92, 3080.58, 3092.55, 3087.94, 3125.03, 3094.09, 3143.16, | 
| 709 | 3125.51, 3181.27, 3092.09, 3124.98, 3069.3, 3095.53, 3097.11, 3133.53, 3114.73, 3113.01, 3091.19, | 
| 710 | 3097.99, 3033.84, 3134.98, 3081.37, 3111.04, 3066.77, 3108.17, | 
| 711 | 3133, 3111.06, 3052.52, 3140.66, 3106.33, 3094.85, 3150.85, 3118.8, 3096.24, 3118.47,3111.36, 3117.11 | 
| 712 | }; | 
| 713 | */ | 
| 714 |  | 
| 715 | // new values from Napoli dec 2008 | 
| 716 | Float_t  PMTsat[48] = { | 
| 717 | 3176.35,3178.19,3167.38,3099.73,3117.00,3126.29,3111.44,3092.27, | 
| 718 | 3146.48,3094.41,3132.13,3115.37,3099.32,3110.97,3111.80,3143.14, | 
| 719 | 3106.72,3153.44,3136.00,3188.96,3104.73,3140.45,3073.18,3106.62, | 
| 720 | 3112.48,3146.92,3127.24,3136.52,3109.59,3112.89,3045.15,3147.26, | 
| 721 | 3095.92,3121.05,3083.25,3123.62,3150.92,3125.30,3067.60,3160.18, | 
| 722 | 3119.36,3108.92,3164.77,3133.64,3111.47,3131.98,3128.87,3135.56 }; | 
| 723 |  | 
| 724 | for (Int_t i=0; i<48;i++) PMTsat[i] = PMTsat[i] - 5.;  // safety margin | 
| 725 |  | 
| 726 | // calibration file "charge_fits_new_std_2.dat" | 
| 727 |  | 
| 728 | Float_t C0t[48][9] = { | 
| 729 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 730 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 731 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 732 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 733 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 734 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 735 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 736 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 737 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 738 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 739 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 740 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 741 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 742 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 743 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 744 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 745 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 746 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 747 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 748 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 749 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 750 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 751 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 752 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 753 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 754 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 755 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 756 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 757 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 758 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 759 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 760 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 761 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 762 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 763 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 764 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 765 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 766 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 767 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 768 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 769 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 770 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 771 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 772 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 773 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 774 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 775 | {0, 1, 2, 3, 4, 5, 6, 8, 92}, | 
| 776 | {0, 1, 2, 3, 4, 5, 6, 8, 92} } ; | 
| 777 |  | 
| 778 | Float_t A0t[48][9] = { | 
| 779 | {0, 0.707632, 5.09223, 7.99994, 11, 13, 16, 18, 2000}, | 
| 780 | {0, 0.636707, 6.37524, 8, 11, 13.0002, 16.0001, 18, 2000}, | 
| 781 | {0, 0.952117, 6.04188, 7.99999, 11, 13, 16, 18, 2000}, | 
| 782 | {0, 0.880805, 5.80883, 8.00003, 11.0001, 13.0005, 16.0011, 18.0027, 2000}, | 
| 783 | {0, 0.834937, 5.12617, 8, 11, 13, 16, 17.9998, 2000}, | 
| 784 | {0, 0.772954, 5.17221, 8, 11, 13, 16, 18.0006, 2000}, | 
| 785 | {0, 0.911496, 5.04755, 8, 11, 13, 16, 18, 2000}, | 
| 786 | {0, 0.86523, 5.55215, 8, 11, 13, 16, 17.9999, 2000}, | 
| 787 | {0, 1.06061, 5.49757, 12, 15, 20, 25, 25, 2000}, | 
| 788 | {0, 0.5, 1.8, 3, 3.8, 6.49999, 7.99996, 8.99998, 2000}, | 
| 789 | {0, 1.06974, 4.86153, 7.99999, 11, 13, 16, 18, 2000}, | 
| 790 | {0, 1.0465, 6.00778, 8, 11, 13, 16, 17.9999, 2000}, | 
| 791 | {0, 1.18132, 5.48741, 8, 11, 13, 16, 17.9999, 2000}, | 
| 792 | {0, 1.10823, 5.43611, 8, 11, 13, 16, 18.0001, 2000}, | 
| 793 | {0, 1.19621, 5.27647, 7.99994, 11, 13, 16, 18, 2000}, | 
| 794 | {0, 1.72505, 5.14873, 8.00006, 11, 13, 16, 17.9999, 2000}, | 
| 795 | {0, 1.48515, 6.07123, 8.00006, 11, 13.0003, 16, 17.9999, 2000}, | 
| 796 | {0, 1.17628, 6.63392, 8.00011, 11, 13, 16, 17.9999, 2000}, | 
| 797 | {0, 1.11301, 5.94317, 7.99999, 11, 13, 16, 18, 2000}, | 
| 798 | {0, 1.04361, 6.40789, 8.00002, 11.0002, 13.0015, 16, 17.9996, 2000}, | 
| 799 | {0, 1.12658, 5.69828, 8, 11, 13, 16, 18.0001, 2000}, | 
| 800 | {0, 0.840188, 5.44945, 8.00005, 11, 13, 16, 18, 2000}, | 
| 801 | {0, 1.16985, 6.21385, 8.00012, 11, 13.0002, 16, 17.9999, 2000}, | 
| 802 | {0, 0.977696, 5.70252, 8.00004, 11, 13, 16, 17.9999, 2000}, | 
| 803 | {0, 1.26298, 6.03137, 8.00003, 11, 13, 16.0009, 17.9998, 2000}, | 
| 804 | {0, 0.988707, 5.98453, 8, 11, 13, 16, 18.0001, 2000}, | 
| 805 | {0, 1.22109, 6.76385, 8.00002, 11, 13.0005, 16.0001, 18.0006, 2000}, | 
| 806 | {0, 1.65541, 6.01998, 8.00006, 11.0057, 13, 16, 18, 2000}, | 
| 807 | {0, 1.59779, 6.00152, 7.00005, 7.99997, 8.99997, 14.9991, 18, 2000}, | 
| 808 | {0, 1.6515, 5.95297, 7.99999, 10, 12, 14.9995, 18, 2000}, | 
| 809 | {0, 1.70339, 6.43684, 9, 12, 14, 16, 21.9999, 2000}, | 
| 810 | {0, 1.64867, 5.6503, 8, 10, 12, 14.9999, 18, 2000}, | 
| 811 | {0, 1.83955, 6.64378, 9, 12, 14, 16, 22, 2000}, | 
| 812 | {0, 1.71975, 6.42585, 9, 12, 14, 16, 22, 2000}, | 
| 813 | {0, 1.88735, 6.12987, 8, 10, 12, 15.0001, 18, 2000}, | 
| 814 | {0, 1.86719, 5.94227, 8, 10, 12, 14.9999, 20,2000}, | 
| 815 | {0, 2.55127, 5.83621, 8.99997, 12, 15, 17.9999, 21.9998, 2000}, | 
| 816 | {0, 2.59328, 5.90275, 8.99999, 12, 15, 18, 22, 2000}, | 
| 817 | {0, 2.63523, 6.56428, 9.00004, 12, 15.0003, 18.001, 22.0029, 2000}, | 
| 818 | {0, 2.63114, 6.77412, 8.99995, 11.9998, 14.9997, 17.9996, 21.9998, 2000}, | 
| 819 | {0, 2.48986, 6.43372, 8.99996, 11.9998, 14.9995, 17.9997, 21.9995, 2000}, | 
| 820 | {0, 2.43724, 6.51911, 9.00012, 12, 15, 18, 21.9999, 2000}, | 
| 821 | {0, 3.21403, 5.7, 9, 12, 15, 18, 22, 2000}, | 
| 822 | {0, 3.3517, 6.30461, 8.99997, 12, 15, 18, 22, 2000}, | 
| 823 | {0, 3.0843, 5.90189, 8.99993, 12, 15, 18, 22, 2000}, | 
| 824 | {0, 3.35806, 6.20792, 8.99998, 12.0001, 15, 18, 22, 2000}, | 
| 825 | {0, 3.13525, 5.60432, 8.99997, 12, 15.0001, 18, 22, 2000}, | 
| 826 | {0, 3.26271, 6.38934, 9, 12, 15, 18, 22.0001, 2000} }; | 
| 827 |  | 
| 828 |  | 
| 829 | Float_t A1t[48][9] = { | 
| 830 | { 0, 0.182202, -3.48762, -4.67241, -5.61872, 2.35336, -2.4112, -0.7861, 0 }, | 
| 831 | { 0, 0.528581, -6.33244, 0.176685, -3.3272, 5.47434, 7.62771, 18.9223, 0 }, | 
| 832 | { 0, -0.148985, -5.31035, -3.1044, -1.84685, -0.678725, -0.00713058, 11.2127, 0 }, | 
| 833 | { 0, 0.01113, -4.6759, -0.669811, 1.69435, 7.44019, 12.2231, 26.9653, 0 }, | 
| 834 | { 0, 0.0567585, -3.05564, -2.57264, -0.0868904, 4.88938, 2.64699, -10, 0 }, | 
| 835 | { 0, 0.331112, -3.06987, -0.451796, -0.660912, 4.49088, 6.43095, 16.7904, 0 }, | 
| 836 | { 0, 0.0779621, -2.64271, -2.29896, -1.95824, 1.8888, 1.02257, 10.5746, 0 }, | 
| 837 | { 0, 0.257346, -3.93191, 0.564894, 2.04068, 4.12823, 5.87416, 16.2268, 0 }, | 
| 838 | { 0, -0.332593, -3.65149, 0, 10, 20, 30, 40, 0 }, | 
| 839 | { 0, 0, 0, -0.5, 0, -6.80247, -9.43463, -8.44329, 0 }, | 
| 840 | { 0, -0.25099, -2.53532, -2.43846, -2.94008, -1.01258, -1.10502, 5.16068, 0 }, | 
| 841 | { 0, -0.101144, -4.98664, -0.369916, 2.2648, 4.2727, 3.1653, 19.8617, 0 }, | 
| 842 | { 0, -0.5074, -3.98429, -0.306633, 0.562595, 5.05787, 4.70127, 14.2399, 0 }, | 
| 843 | { 0, -0.326603, -3.83632, -1.75409, -1.86815, 0.84194, 1.32718, 14.4304, 0 }, | 
| 844 | { 0, -0.597543, -3.82759, -6.9094, -2.88583, 5.50573, 4.30943, 18.0664, 0 }, | 
| 845 | { 0, -1.86862, -3.80777, -2.69084, -4.09258, 1.59904, 4.61543, 13.8186, 0 }, | 
| 846 | { 0, -0.932447, -6.02195, -0.891975, 0.870346, 7.22131, 6.03928, 20.5102, 0 }, | 
| 847 | { 0, -0.439221, -7.66335, -2.7363, -3.29581, 3.74263, 3.2571, 15.8539, 0 }, | 
| 848 | { 0, -0.487944, -5.05733, -2.61662, -2.86336, 2.65017, -0.919043, 7.10535, 0 }, | 
| 849 | { 0, -0.0329559, -6.07396, -0.0044396, 2.75593, 8.87808, 14.9627, 28.8783, 0 }, | 
| 850 | { 0, -0.573054, -4.15302, -2.15074, -1.83499, 0.969726, 1.36361, 17.6185, 0 }, | 
| 851 | { 0, 0.238198, -3.75628, -1.02674, 1.12711, 3.06917, 2.61956, 11.2723, 0 }, | 
| 852 | { 0, -0.473325, -5.88165, -2.10476, -0.508963, 4.24835, 6.41943, 14.9346, 0 }, | 
| 853 | { 0, 0.0585487, -4.40372, -1.45949, 1.31992, 4.7115, 5.03433, 11.968, 0 }, | 
| 854 | { 0, -0.836615, -5.05945, -0.644868, 2.3894, 9.40413, 11.4195, 25.3239, 0 }, | 
| 855 | { 0, 0.026064, -4.78872, -0.819969, -0.57223, 1.84866, 0.29272, 15.1362, 0 }, | 
| 856 | { 0, -0.659228, -6.61715, 0.371846, 4.36719, 10.657, 17.8551, 29.3359, 0 }, | 
| 857 | { 0, -1.27483, -4.52966, -1.85458, -0.9634, 3.65819, 2.89211, 13.508, 0 }, | 
| 858 | { 0, -1.49858, -5.08299, 0.103222, 3.84545, 3.46523, -13.6535, -20, 0 }, | 
| 859 | { 0, -1.70043, -4.92192, -2.46523, -0.681845, -2.80632, -8.55159, -20, 0 }, | 
| 860 | { 0, -1.85437, -5.65787, -1.56314, 0.372468, 4.54151, 2.97956, -7.90681, 0 }, | 
| 861 | { 0, -1.78092, -4.19601, -1.84397, -0.175657, -2.0339, -5.64021, -20, 0 }, | 
| 862 | { 0, -2.08786, -6.05197, -1.81875, -0.423923, 5.86772, 7.50042, 4.22714, 0 }, | 
| 863 | { 0, -1.78679, -5.6835, -1.22858, -0.764359, 2.71007, 4.16034, 4.49981, 0 }, | 
| 864 | { 0, -2.21623, -5.39176, -0.174751, 0.19786, -1.93316, -7.45927, -20, 0 }, | 
| 865 | { 0, -2.2076, -4.93708, -1.49415, 0.576195, 0.552502, -5.02466, -18, 0 }, | 
| 866 | { 0, -3.95472, -4.97236, -5.73642, -7.17611, -8.40014, -10.7071, -13.5198, 0 }, | 
| 867 | { 0, -3.98713, -4.90269, -4.51467, -4.74549, -5.13124, -6.02539, -4.36386, 0 }, | 
| 868 | { 0, -4.09193, -6.36148, -1.92129, 0.535293, 4.36379, 8.09335, 21.4513, 0 }, | 
| 869 | { 0, -4.09301, -6.86077, -8.51634, -10.7671, -15.4194, -19.8748, -18.2532, 0 }, | 
| 870 | { 0, -3.66083, -6.39249, -8.20002, -12.5867, -18.523, -21.1403, -22.5493, 0 }, | 
| 871 | { 0, -3.66449, -6.84751, -3.49245, -4.82854, 0.21682, 0.54105, -16.1417, 0 }, | 
| 872 | { 0, -5.55283, -4.22, -4.20093, -2.0392, -1.493, 0.481244, 6.28662, 0 }, | 
| 873 | { 0, -5.93701, -5.45729, -6.95403, -6.68625, -5.13187, -5.10613, -2.64945, 0 }, | 
| 874 | { 0, -5.25381, -4.94071, -7.72978, -4.67849, -4.74316, -3.91651, 1.17451, 0 }, | 
| 875 | { 0, -6.01523, -5.33454, -6.26672, -5.88745, -8.91118, -11.1342, -7.91073, 0 }, | 
| 876 | { 0, -5.53583, -4.3686, -8.88023, -6.36106, -4.70941, -3.2139, -0.381882, 0 }, | 
| 877 | { 0, -5.7646, -6.25807, -5.12981, -1.5055, -1.11425, -0.388791, 8.42188, 0 } }; | 
| 878 |  | 
| 879 |  | 
| 880 | Float_t A2t[48][9] = { | 
| 881 | { 0, 0.317852, 2.46394, 4.35287, 6.69993, 1.37704, 9.38636, 22.3426, 0 }, | 
| 882 | { 0, 0.0270999, 4.03858, 0.614142, 7.64715, 3, 4.55046, 9.46688, 0 }, | 
| 883 | { 0, 0.422802, 3.25444, 2.83067, 3.78916, 7.15528, 9.61404, 9.53181, 0 }, | 
| 884 | { 0, 0.27719, 2.81849, 2, 3, 3, 3, 3, 0 }, | 
| 885 | { 0, 0.257138, 1.96682, 2.66388, 2.02686, 0.981737, 7.07876, 32, 0 }, | 
| 886 | { 0, 0.0777448, 1.95238, 0.591915, 3.36314, 1.71777, 3.1121, 3, 0 }, | 
| 887 | { 0, 0.201297, 1.54333, 2.06343, 3.81529, 3.47056, 7.66122, 10.2165, 0 }, | 
| 888 | { 0, 0.090275, 2.35456, 0.150419, 1.48979, 4.43331, 6.09798, 9.59925, 0 }, | 
| 889 | { 0, 0.472466, 2.2568, 0, 0, 0, 0, 0, 0 }, | 
| 890 | { 0, 0, 0, 0, 0, 5.8114, 8.76464, 11.718, 0 }, | 
| 891 | { 0, 0.369669, 1.66502, 2.21937, 4.8545, 6.71778, 9.52608, 13.5645, 0 }, | 
| 892 | { 0, 0.278447, 3.03196, 0.562358, 0.978803, 4.19387, 9.26949, 4.33973, 0 }, | 
| 893 | { 0, 0.488781, 2.52383, 0.674871, 2.54554, 2.33603, 6.75428, 10.7769, 0 }, | 
| 894 | { 0, 0.396462, 2.42949, 1.33035, 3.9579, 4.98889, 7.41728, 8.78462, 0 }, | 
| 895 | { 0, 0.616543, 2.39152, 7.13157, 4.52173, 0.795959, 5.05895, 3.58876, 0 }, | 
| 896 | { 0, 1.3407, 2.54098, 2, 7.35567, 6.08494, 6.47321, 6.60084, 0 }, | 
| 897 | { 0, 0.855061, 3.97328, 2, 3, 3, 10.1946, 7.06782, 0 }, | 
| 898 | { 0, 0.492265, 5.11681, 2, 2.24085, 0.00142742, 3.12852, 1.94308, 0 }, | 
| 899 | { 0, 0.594536, 3.10529, 2.07652, 4.86122, 2.7748, 10.0368, 14.8149, 0 }, | 
| 900 | { 0, 0.220041, 3.69287, 2, 3, 3, 0.0668348, 0.124322, 0 }, | 
| 901 | { 0, 0.652342, 2.52474, 1.92129, 3.97957, 5.4076, 8.66393, 5.53485, 0 }, | 
| 902 | { 0, 0.109911, 2.37426, 2, 2.09403, 4.25338, 7.64627, 8.96803, 0 }, | 
| 903 | { 0, 0.503317, 3.66579, 2, 3, 3, 3.95553, 7.79201, 0 }, | 
| 904 | { 0, 0.18358, 2.71524, 2, 1.64493, 2.67235, 6.00813, 13.3661, 0 }, | 
| 905 | { 0, 0.762639, 3.10968, 2, 1.79493, 0.0228019, 3, 6.68329, 0 }, | 
| 906 | { 0, 0.218363, 2.87712, 0.218535, 3, 4.57375, 9.68986, 4.89219, 0 }, | 
| 907 | { 0, 0.675406, 4.00709, 2, 1.07325, 3, 0.182969, 8.20433, 0 }, | 
| 908 | { 0, 0.991549, 2.68269, 2, 3.876, 2.94015, 6.72011, 7.03988, 0 }, | 
| 909 | { 0, 1.02743, 3.12518, 2, 2.20294, 6.63646, 22.0153, 35, 0 }, | 
| 910 | { 0, 1.18885, 3.01461, 2.30242, 3.46316, 8.98077, 16.6101, 35, 0 }, | 
| 911 | { 0, 1.47119, 3.24004, 1.07333, 2.31147, 2.98418, 9.99881, 28.0778, 0 }, | 
| 912 | { 0, 1.28408, 2.55246, 1.49292, 3.01143, 8.45419, 13.2062, 35, 0 }, | 
| 913 | { 0, 1.56497, 3.35834, 0.73553, 3, 2.13162, 5.84836, 18.6428, 0 }, | 
| 914 | { 0, 1.39782, 3.19843, 0.593735, 3.34643, 4.22204, 6.78619, 12.8529, 0 }, | 
| 915 | { 0, 1.46182, 3.30186, 0.0348858, 3.87061, 9.87769, 16.8741, 35, 0 }, | 
| 916 | { 0, 1.50597, 3.03838, 1.62411, 2.96043, 7.1428, 15.4035, 35, 0 }, | 
| 917 | { 0, 2.6053, 2.92019, 3.8816, 7.13833, 9.84022, 13.4445, 22.2018, 0 }, | 
| 918 | { 0, 2.58901, 2.74623, 2.66245, 5.37385, 8.40354, 11.6502, 17.4423, 0 }, | 
| 919 | { 0, 2.65151, 3.592, 2, 3, 3, 3, 3, 0 }, | 
| 920 | { 0, 2.65586, 3.87903, 6.12175, 9.92231, 16.1427, 21.4766, 21.4604, 0 }, | 
| 921 | { 0, 2.38768, 3.77375, 5.67703, 11.8596, 18.8674, 20.8655, 24.5083, 0 }, | 
| 922 | { 0, 2.40258, 4.1273, 2, 5.81564, 2.29756, 4.40615, 32.3639, 0 }, | 
| 923 | { 0, 3.54156, 2.13, 2.79762, 2.76993, 4.67104, 5.20053, 8.36394, 0 }, | 
| 924 | { 0, 3.76292, 2.83393, 5.30926, 6.67988, 7.35393, 9.46522, 14.8599, 0 }, | 
| 925 | { 0, 3.37723, 2.74166, 6.71253, 5.63259, 8.42885, 9.99872, 14.8742, 0 }, | 
| 926 | { 0, 3.83378, 2.79501, 4.78642, 5.94201, 11.4635, 14.7442, 16.5806, 0 }, | 
| 927 | { 0, 3.59181, 2.3773, 7.14813, 5.60101, 6.47122, 6.64957, 14.2374, 0 }, | 
| 928 | { 0, 3.68523, 3.54382, 3.92867, 2.18506, 5.56025, 7.75895, 7.448, 0 } }; | 
| 929 |  | 
| 930 |  | 
| 931 | // S115B failure: 1158700000 // 2006-09-19 21:06:40 UTC | 
| 932 |  | 
| 933 | if (time < 1158700000.) {     // first workaround: just use calibration of PMT S115A | 
| 934 | for ( Int_t jj=0; jj<9; jj++ ){ | 
| 935 | A0t[9][jj] = A0t[8][jj] ; | 
| 936 | A1t[9][jj] = A1t[8][jj] ; | 
| 937 | A2t[9][jj] = A2t[8][jj] ; | 
| 938 | } | 
| 939 | } // if time... | 
| 940 |  | 
| 941 |  | 
| 942 | //  2nd-order correction | 
| 943 | Float_t corr_a[6][4] = { | 
| 944 | {0.551894 , 2.24353 , -3.35885 , 1.51401} , | 
| 945 | {0.915691 , 4.83967 , -6.85389 , 3.13679} , | 
| 946 | {1.84338 , 5.63517 , -8.41577 , 4.04055} , | 
| 947 | {1.51216 , 11.3233 , -16.2119 , 7.45008} , | 
| 948 | {1.50481 , 15.2538 , -21.2003 , 9.51127} , | 
| 949 | {1.82038 , 17.5336 , -23.5512 , 10.3036}  }; | 
| 950 |  | 
| 951 | //--------------------------------------------------------------------- | 
| 952 |  | 
| 953 | //Float_t xv[6],yv[6]; | 
| 954 | Int_t  iz; | 
| 955 |  | 
| 956 | Float_t x1[9],y1[9]; | 
| 957 | Int_t n1 = 9; | 
| 958 |  | 
| 959 | Float_t  Layercharge[6] = {1005., 1005., 1005., 1005., 1005., 1005. }; | 
| 960 |  | 
| 961 | Int_t  Layerinfo[6] = {0, 0, 0, 0, 0, 0 }; | 
| 962 |  | 
| 963 | //Float_t adc[48],adc_c[48],PMTcharge_arr[48]; | 
| 964 | Float_t adc[48],PMTcharge_arr[48]; | 
| 965 |  | 
| 966 | Float_t beta_mean = fabs(track->beta[12]); | 
| 967 |  | 
| 968 | // New!! If "beta_in" != 100. then overwrite beta_mean with beta_in | 
| 969 | if (beta_in != 100.) beta_mean=beta_in; | 
| 970 |  | 
| 971 | Int_t ncount=0; | 
| 972 | Float_t charge_chi=1000.; | 
| 973 |  | 
| 974 |  | 
| 975 | //------------------------------------------------------------- | 
| 976 |  | 
| 977 | // fill adc and tdc | 
| 978 |  | 
| 979 | Int_t ich,jj,kk; | 
| 980 |  | 
| 981 | for (ich=0; ich<48; ich++)   adc[ich]   = 4095.; | 
| 982 | //   for (ich=0; ich<48; ich++)   adc_c[ich] = 1000.; | 
| 983 | for (ich=0; ich<48; ich++)   PMTcharge_arr[ich] = 1000.; | 
| 984 |  | 
| 985 |  | 
| 986 | if ((beta_mean < 0.05)  || (beta_mean > 2.0)) { | 
| 987 | for (Int_t jj=0; jj<48;jj++) charge_PMT_std[jj] = 1001.; | 
| 988 | for (Int_t jj=0; jj<6;jj++) charge_layer_std[jj] = 1001.; | 
| 989 | for (Int_t jj=0; jj<6;jj++) charge_layer_std_raw[jj] = 1001.; | 
| 990 | for (Int_t jj=0; jj<6;jj++) layerinfo_std[jj] = 1001; | 
| 991 | charge_std = 1001.; | 
| 992 | ncount_std = 0; | 
| 993 | } | 
| 994 |  | 
| 995 |  | 
| 996 | if ((beta_mean > 0.05)  && (beta_mean < 2.0)) { | 
| 997 |  | 
| 998 | Float_t betahelp =   pow(beta_mean, 1.2); | 
| 999 |  | 
| 1000 | //======================================================================= | 
| 1001 |  | 
| 1002 | for (Int_t ipmt=0; ipmt<L2->GetToFLevel2()->npmt() ; ipmt++){ | 
| 1003 | ToFPMT *tofpmt = L2->GetToFLevel2()->GetToFPMT(ipmt); | 
| 1004 | Int_t pmt_id = tofpmt->pmt_id; | 
| 1005 | adc[pmt_id] = tofpmt->adc ; | 
| 1006 | } | 
| 1007 |  | 
| 1008 | //======================================================================= | 
| 1009 |  | 
| 1010 | Float_t yl, yh, ym, m, b, chelp, charge; | 
| 1011 |  | 
| 1012 |  | 
| 1013 | for (Int_t ipmt=0; ipmt<track->npmtadc; ipmt++){ | 
| 1014 | Float_t dEdx = track->dedx[ipmt]; | 
| 1015 | ym = dEdx*betahelp; | 
| 1016 | Int_t pmtadc = track->pmtadc[ipmt]; | 
| 1017 | //          Int_t adcflag = track->adcflag[ipmt]; | 
| 1018 | L2->GetToFLevel2()->GetPMTIndex(pmtadc,jj,kk); | 
| 1019 | //          if (adcflag==0) adc_c[pmtadc] = dEdx; | 
| 1020 |  | 
| 1021 | //         if (adc[pmtadc] == 4095) adc_c[pmtadc] = 0.; | 
| 1022 | if (adc[pmtadc] == 4095) PMTcharge_arr[pmtadc] = 0.; | 
| 1023 |  | 
| 1024 | //         if ((adc[pmtadc]>PMTsat[pmtadc]) && (adc[pmtadc]<4095)) adc_c[pmtadc] = 1000.; | 
| 1025 |  | 
| 1026 | if (adc[pmtadc] < PMTsat[pmtadc]) { | 
| 1027 |  | 
| 1028 | if ((pmtadc!=4) && (pmtadc!=8) && (pmtadc!=28) && (pmtadc!=31) && (pmtadc!=34) && (pmtadc!=39) && (pmtadc!=41) && (pmtadc!=46)) { | 
| 1029 |  | 
| 1030 | for ( Int_t jj=0; jj<9; jj++ ){ | 
| 1031 | x1[jj] = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean; | 
| 1032 | y1[jj] = C0t[pmtadc][jj]*C0t[pmtadc][jj] ; | 
| 1033 | //    cout<<x1[jj]<<" "<<y1[jj]<<" "; | 
| 1034 | } | 
| 1035 | //    cout<<endl; | 
| 1036 |  | 
| 1037 |  | 
| 1038 | TGraph *gr2 = new TGraph(n1,x1,y1); | 
| 1039 | TSpline3 *spl2 = new TSpline3("grs",gr2);    // use a cubic spline | 
| 1040 | chelp = spl2->Eval(ym); | 
| 1041 | if (chelp<0.) chelp=0.0001;  //WM new | 
| 1042 | charge = TMath::Sqrt(chelp); | 
| 1043 |  | 
| 1044 | gr2->Delete(); | 
| 1045 | spl2->Delete(); | 
| 1046 | PMTcharge_arr[pmtadc] = charge; | 
| 1047 | } // pmtadc != ... | 
| 1048 |  | 
| 1049 | if ((pmtadc==4) || (pmtadc==8) || (pmtadc==28) || (pmtadc==31) || (pmtadc==34) || (pmtadc==39) || (pmtadc==41) || (pmtadc==46)) { | 
| 1050 | for ( Int_t jj=0; jj<8; jj++ ){ | 
| 1051 | yl = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean; | 
| 1052 | yh = A0t[pmtadc][jj+1]+A1t[pmtadc][jj+1]*beta_mean+A2t[pmtadc][jj+1]*beta_mean*beta_mean; | 
| 1053 | if ((yl<ym)&&(ym<yh)){ | 
| 1054 | m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl); | 
| 1055 | b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl; | 
| 1056 | chelp = m*ym + b; | 
| 1057 | if (chelp<0.) chelp=0.0001;  //WM new | 
| 1058 | charge= TMath::Sqrt(chelp); | 
| 1059 | PMTcharge_arr[pmtadc] = charge; | 
| 1060 | } | 
| 1061 | } // jj=0..8 | 
| 1062 | } // if pmtadc ==.... | 
| 1063 |  | 
| 1064 | } // adc < sat | 
| 1065 | }   // ipmt... | 
| 1066 |  | 
| 1067 |  | 
| 1068 | //==================================================================== | 
| 1069 | //=============  Check ToF standalone using HitPaddle =================== | 
| 1070 | //==================================================================== | 
| 1071 |  | 
| 1072 | Int_t PaddleIdOfTrack[6] = {-1, -1, -1, -1, -1, -1};; | 
| 1073 |  | 
| 1074 | for(jj=0; jj<8; jj++){ | 
| 1075 | Int_t HitPad = L2->GetToFLevel2()->HitPaddle(0,jj); | 
| 1076 | if (HitPad==1)  PaddleIdOfTrack[0] = jj; | 
| 1077 | } | 
| 1078 | for(jj=0; jj<6; jj++){ | 
| 1079 | Int_t HitPad = L2->GetToFLevel2()->HitPaddle(1,jj); | 
| 1080 | if (HitPad==1)  PaddleIdOfTrack[1] = jj; | 
| 1081 | } | 
| 1082 |  | 
| 1083 |  | 
| 1084 | for(jj=0; jj<2; jj++){ | 
| 1085 | Int_t HitPad = L2->GetToFLevel2()->HitPaddle(2,jj); | 
| 1086 | if (HitPad==1)   PaddleIdOfTrack[2] = jj; | 
| 1087 | } | 
| 1088 | for(jj=0; jj<2; jj++){ | 
| 1089 | Int_t HitPad = L2->GetToFLevel2()->HitPaddle(3,jj); | 
| 1090 | if (HitPad==1)   PaddleIdOfTrack[3] = jj; | 
| 1091 | } | 
| 1092 |  | 
| 1093 | for(jj=0; jj<3; jj++){ | 
| 1094 | Int_t HitPad = L2->GetToFLevel2()->HitPaddle(4,jj); | 
| 1095 | if (HitPad==1)   PaddleIdOfTrack[4] = jj; | 
| 1096 | } | 
| 1097 | for(jj=0; jj<3; jj++){ | 
| 1098 | Int_t HitPad = L2->GetToFLevel2()->HitPaddle(5,jj); | 
| 1099 | if (HitPad==1)   PaddleIdOfTrack[5] = jj; | 
| 1100 | } | 
| 1101 |  | 
| 1102 | //============================================================== | 
| 1103 |  | 
| 1104 |  | 
| 1105 | Int_t ihelp_a[6] = {0,16,28,32,36,42}; | 
| 1106 |  | 
| 1107 | for (Int_t ilay=0; ilay<6; ilay ++) { | 
| 1108 | Int_t jj = PaddleIdOfTrack[ilay] ; | 
| 1109 | //Float_t xhelp = 1000.; | 
| 1110 | Float_t xhelp = 1005.; | 
| 1111 |  | 
| 1112 | if (jj == -1) Layerinfo[ilay] = -1; | 
| 1113 |  | 
| 1114 | if (jj != -1) { | 
| 1115 | Int_t ih = ihelp_a[ilay] + 2*jj; | 
| 1116 |  | 
| 1117 | // New WM | 
| 1118 | Int_t igood1=0; | 
| 1119 | Int_t igood2=0; | 
| 1120 | if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih] > 0.)) igood1=1; | 
| 1121 | if ((PMTcharge_arr[ih+1] < 1000.) && (PMTcharge_arr[ih+1] > 0.)) igood2=1; | 
| 1122 |  | 
| 1123 | if ((PMTcharge_arr[ih]==0.) && (PMTcharge_arr[ih+1]==0.))  xhelp = 0.; | 
| 1124 | if ((igood1==1)&&(igood2==1)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; | 
| 1125 | if ((igood1==1)&&(igood2==0)) xhelp = PMTcharge_arr[ih]; | 
| 1126 | if ((igood2==1)&&(igood1==0)) xhelp = PMTcharge_arr[ih+1]; | 
| 1127 |  | 
| 1128 |  | 
| 1129 | /* | 
| 1130 | if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; | 
| 1131 | if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.))  xhelp = PMTcharge_arr[ih] ; | 
| 1132 | if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.))  xhelp = PMTcharge_arr[ih+1] ; | 
| 1133 | */ | 
| 1134 |  | 
| 1135 | if (adc[ih] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; | 
| 1136 | if (adc[ih+1] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; | 
| 1137 | if ((adc[ih] > PMTsat[ih]) && (adc[ih] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; | 
| 1138 | if ((adc[ih+1] > PMTsat[ih+1]) && (adc[ih+1] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; | 
| 1139 |  | 
| 1140 |  | 
| 1141 | } | 
| 1142 | Layercharge[ilay] = xhelp; | 
| 1143 | } // ilay ... | 
| 1144 |  | 
| 1145 |  | 
| 1146 | //cout<<"Std: "; | 
| 1147 | //for (Int_t ilay=0; ilay<6; ilay ++) cout<<Layercharge[ilay]<<" "; | 
| 1148 |  | 
| 1149 | //========================================================================== | 
| 1150 | //============= Layercharge without 2nd-order correction   ================= | 
| 1151 | //========================================================================== | 
| 1152 |  | 
| 1153 | for (Int_t jj=0; jj<6;jj++) charge_layer_std_raw[jj] = Layercharge[jj]; | 
| 1154 |  | 
| 1155 | //========================================================================== | 
| 1156 | //=========================   2nd-order correction   ======================= | 
| 1157 | //========================================================================== | 
| 1158 |  | 
| 1159 | Float_t xb = beta_mean; | 
| 1160 |  | 
| 1161 | for (Int_t ii=0; ii<6;  ii++) { | 
| 1162 | Int_t ic = 0; | 
| 1163 | Float_t corr[4] = {1., 0., 0., 0.}; | 
| 1164 | //for (Int_t iii=1; iii<9;  iii++) if (fabs(Layercharge[ii] - iii)<0.50) ic = iii; | 
| 1165 | for (Int_t iii=1; iii<10;  iii++) if (fabs(Layercharge[ii] - iii)<0.50) ic = iii; | 
| 1166 | if ((ic>0)&&(ic<=5)) for (Int_t iii=0; iii<4;  iii++) corr[iii] = corr_a[ic-1][iii]; | 
| 1167 | if (ic >5) for (Int_t iii=0; iii<4;  iii++) corr[iii] = corr_a[5][iii]; | 
| 1168 |  | 
| 1169 | Float_t c_corr = corr[0]+corr[1]*xb+corr[2]*xb*xb+corr[3]*xb*xb*xb; | 
| 1170 |  | 
| 1171 | if ((ic>0)&&(ic<=5)) c_corr = c_corr/(1.*ic) ; | 
| 1172 | if (ic>5) c_corr = c_corr/6. ; | 
| 1173 |  | 
| 1174 | //cout<<Layercharge[ii]<<" "<<ic<<" "<<c_corr<<" => "; | 
| 1175 | Layercharge[ii] = Layercharge[ii]/c_corr; | 
| 1176 | //cout<<Layercharge[ii]<<endl; | 
| 1177 |  | 
| 1178 | } | 
| 1179 |  | 
| 1180 |  | 
| 1181 | //========================================================================== | 
| 1182 | //cout<<"In ToFNuclei Std: "; | 
| 1183 | //for (Int_t ilay=0; ilay<6; ilay ++) cout<<Layercharge[ilay]<<" "; | 
| 1184 | //cout<<endl; | 
| 1185 | //========================================================================== | 
| 1186 |  | 
| 1187 |  | 
| 1188 | Int_t  icount=0; | 
| 1189 | Float_t charge_mean = 0.; | 
| 1190 | for (Int_t ii=0; ii<6;  ii++) { | 
| 1191 | if (Layercharge[ii] < 1000) charge_mean = charge_mean + Layercharge[ii] ; | 
| 1192 | if (Layercharge[ii] < 1000) icount++; | 
| 1193 | } | 
| 1194 | if (icount>0) charge_mean = charge_mean/(1.*icount) ; | 
| 1195 |  | 
| 1196 | if (icount>0) { | 
| 1197 |  | 
| 1198 | //for (Int_t ii=0; ii<6;  ii++) cout<<Layercharge[ii]<<" "; | 
| 1199 | //cout<<endl; | 
| 1200 |  | 
| 1201 |  | 
| 1202 | vector<float> charge_v; | 
| 1203 | Float_t charge_median = 0.; | 
| 1204 |  | 
| 1205 | ////////  get the median charge //////////// | 
| 1206 | for(Int_t ii=0;ii<6;ii++) { | 
| 1207 | if (Layercharge[ii] < 1000) charge_v.push_back(Layercharge[ii]); | 
| 1208 | } | 
| 1209 |  | 
| 1210 | std::sort(charge_v.begin(),charge_v.end()); | 
| 1211 | charge_median = charge_v[(int)(charge_v.size()/2+charge_v.size()%2)-1]; | 
| 1212 |  | 
| 1213 | //cout<<charge_mean<<" "<<charge_median<<endl; | 
| 1214 |  | 
| 1215 | charge_mean = charge_median; | 
| 1216 |  | 
| 1217 | }  // icount>0 | 
| 1218 |  | 
| 1219 | //--- Calculate charge for the second time, use residuals of the single | 
| 1220 | //--- measurements to get a chi2 value | 
| 1221 |  | 
| 1222 | //  Float_t w_i_arr[8] = {0.1, 0.15, 0.2, 0.25, 0.30, 0.35, 0.45, 0.50}; | 
| 1223 | Float_t w_i_arr[8] = {0.1, 0.15, 0.2, 0.25, 0.35, 0.40, 0.50, 0.55}; | 
| 1224 |  | 
| 1225 | icount=0; | 
| 1226 | Float_t sw=0.; | 
| 1227 | Float_t sxw=0.; | 
| 1228 | Float_t w_i = 1./0.5; | 
| 1229 | Float_t resmax= 3.0; | 
| 1230 |  | 
| 1231 | iz=1; | 
| 1232 | if ((0.0<charge_mean) & (charge_mean<1.5)) iz=1; | 
| 1233 | if ((1.5<charge_mean) & (charge_mean<2.5)) iz=2; | 
| 1234 | if ((2.5<charge_mean) & (charge_mean<3.5)) iz=3; | 
| 1235 | if ((3.5<charge_mean) & (charge_mean<4.5)) iz=4; | 
| 1236 | if ((4.5<charge_mean) & (charge_mean<5.5)) iz=5; | 
| 1237 | if ((5.5<charge_mean) & (charge_mean<6.5)) iz=6; | 
| 1238 | if ((6.5<charge_mean) & (charge_mean<7.5)) iz=7; | 
| 1239 | if ((7.5<charge_mean) & (charge_mean<90.)) iz=8; | 
| 1240 |  | 
| 1241 | w_i = 1./w_i_arr[iz-1]; | 
| 1242 |  | 
| 1243 |  | 
| 1244 | for (Int_t jj=0; jj<6;jj++){ | 
| 1245 | if (Layercharge[jj] < 1000) { | 
| 1246 | Float_t res = charge_mean - Layercharge[jj] ; | 
| 1247 | if (fabs(res*w_i)<resmax) {; | 
| 1248 | icount= icount+1; | 
| 1249 | sxw=sxw + Layercharge[jj]*w_i*w_i ; | 
| 1250 | sw =sw + w_i*w_i ; | 
| 1251 | } | 
| 1252 | } | 
| 1253 | } | 
| 1254 |  | 
| 1255 | if (icount>0) charge_chi=sxw/sw; | 
| 1256 |  | 
| 1257 | ncount =  icount; | 
| 1258 |  | 
| 1259 | //cout<<" => "<<icount<<" "<<charge_chi<<endl; | 
| 1260 |  | 
| 1261 |  | 
| 1262 | //  charge_tof = charge_chi; | 
| 1263 |  | 
| 1264 | // changed 30-01-2009 WM | 
| 1265 |  | 
| 1266 | for (Int_t jj=0; jj<48;jj++) charge_PMT_std[jj] = PMTcharge_arr[jj]; | 
| 1267 | for (Int_t jj=0; jj<6;jj++) charge_layer_std[jj] = Layercharge[jj]; | 
| 1268 | for (Int_t jj=0; jj<6;jj++) layerinfo_std[jj] = Layerinfo[jj]; | 
| 1269 | charge_std = charge_chi; | 
| 1270 | ncount_std = ncount; | 
| 1271 |  | 
| 1272 | } // 0.05 < fabs( beta) < 2.0 | 
| 1273 |  | 
| 1274 |  | 
| 1275 | } // standalone track found | 
| 1276 |  | 
| 1277 | } |