/[PAMELA software]/tof/flight/ToFNuclei/src/ToFNuclei.cpp
ViewVC logotype

Diff of /tof/flight/ToFNuclei/src/ToFNuclei.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by pamela, Mon Oct 13 13:41:39 2008 UTC revision 1.4 by pamelats, Thu Apr 16 13:43:40 2009 UTC
# Line 1  Line 1 
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    //*****************************************************
18  #include <ToFNuclei.h>  #include <ToFNuclei.h>
19    
20  //--------------------------------------  //--------------------------------------
# Line 14  ToFNuclei::ToFNuclei(PamLevel2 *l2p){   Line 31  ToFNuclei::ToFNuclei(PamLevel2 *l2p){  
31    //    //
32    L2 = l2p;    L2 = l2p;
33    //    //
34      beta_in = 100.;
35      //
36    if ( !L2->IsORB() ) printf(" WARNING: OrbitalInfo Tree is needed, the plugin could not work properly without it \n");    if ( !L2->IsORB() ) printf(" WARNING: OrbitalInfo Tree is needed, the plugin could not work properly without it \n");
37    //    //
38    OBT = 0;    OBT = 0;
# Line 30  void ToFNuclei::Clear(){ Line 49  void ToFNuclei::Clear(){
49    ncount_trk = 0.;    ncount_trk = 0.;
50    charge_trk = 0.;    charge_trk = 0.;
51    memset (charge_layer_trk,0,6*sizeof(Float_t));  //    memset (charge_layer_trk,0,6*sizeof(Float_t));  //
52      memset (charge_PMT_trk,0,48*sizeof(Float_t));  //
53    memset (layerinfo_trk,0,6*sizeof(Int_t));  //    memset (layerinfo_trk,0,6*sizeof(Int_t));  //
54    ncount_std = 0.;    ncount_std = 0.;
55    charge_std = 0.;    charge_std = 0.;
56    memset (charge_layer_std,0,6*sizeof(Float_t));  //    memset (charge_layer_std,0,6*sizeof(Float_t));  //
57      memset (charge_PMT_std,0,48*sizeof(Float_t));  //
58    memset (layerinfo_std,0,6*sizeof(Int_t));  //    memset (layerinfo_std,0,6*sizeof(Int_t));  //
59  };  };
60    
# Line 83  void ToFNuclei::Process(Int_t ntr){ Line 104  void ToFNuclei::Process(Int_t ntr){
104      newentry = true;      newentry = true;
105    };    };
106    //    //
107    if ( !newentry ) return;    if ( !newentry ) {
108      return;
109                      }
110    //    //
111    tr = ntr;    tr = ntr;
112    //    //
# Line 96  void ToFNuclei::Process(Int_t ntr){ Line 119  void ToFNuclei::Process(Int_t ntr){
119    
120    Clear();    Clear();
121    
122    //    //  cout<<"beta_in = "<<beta_in<<endl;
123    
124    
125    Double_t time = L2->GetOrbitalInfo()->absTime;    Double_t time = L2->GetOrbitalInfo()->absTime;
126    
# Line 108  void ToFNuclei::Process(Int_t ntr){ Line 132  void ToFNuclei::Process(Int_t ntr){
132  //if (L2->GetTrkLevel2()->GetNTracks()!=1) return;  //if (L2->GetTrkLevel2()->GetNTracks()!=1) return;
133  if (L2->GetTrkLevel2()->GetNTracks()==1) {  if (L2->GetTrkLevel2()->GetNTracks()==1) {
134    
135    /*
136  Float_t  PMTsat[48] = {  Float_t  PMTsat[48] = {
137  3162.14, 3165.48, 3153.85, 3085.73, 3089.65, 3107.64, 3097.52, 3078.37, 3130.05, 3087.07, 3112.22,  3162.14, 3165.48, 3153.85, 3085.73, 3089.65, 3107.64, 3097.52, 3078.37, 3130.05, 3087.07, 3112.22,
138  3102.92, 3080.58, 3092.55, 3087.94, 3125.03, 3094.09, 3143.16,  3102.92, 3080.58, 3092.55, 3087.94, 3125.03, 3094.09, 3143.16,
139  3125.51, 3181.27, 3092.09, 3124.98, 3069.3, 3095.53, 3097.11, 3133.53, 3114.73, 3113.01, 3091.19,  3125.51, 3181.27, 3092.09, 3124.98, 3069.3, 3095.53, 3097.11, 3133.53, 3114.73, 3113.01, 3091.19,
140  3097.99, 3033.84, 3134.98, 3081.37, 3111.04, 3066.77, 3108.17,  3097.99, 3033.84, 3134.98, 3081.37, 3111.04, 3066.77, 3108.17,
141  3133, 3111.06, 3052.52, 3140.66, 3106.33, 3094.85, 3150.85, 3118.8, 3096.24, 3118.47,3111.36, 3117.11  3133, 3111.06, 3052.52, 3140.66, 3106.33, 3094.85, 3150.85, 3118.8, 3096.24, 3118.47,3111.36, 3117.11
142  }  };
143  ;  */
144    
145    // new values from Napoli dec 2008
146    Float_t  PMTsat[48] = {
147    3176.35,3178.19,3167.38,3099.73,3117.00,3126.29,3111.44,3092.27,
148    3146.48,3094.41,3132.13,3115.37,3099.32,3110.97,3111.80,3143.14,
149    3106.72,3153.44,3136.00,3188.96,3104.73,3140.45,3073.18,3106.62,
150    3112.48,3146.92,3127.24,3136.52,3109.59,3112.89,3045.15,3147.26,
151    3095.92,3121.05,3083.25,3123.62,3150.92,3125.30,3067.60,3160.18,
152    3119.36,3108.92,3164.77,3133.64,3111.47,3131.98,3128.87,3135.56 };
153    
154    for (Int_t i=0; i<48;i++) PMTsat[i] = PMTsat[i] - 5.;  // safety margin
155    
156    
157    Float_t C0t[48][9] = {
158    0, 1, 2, 3, 4, 5, 6, 8, 92,
159    0, 1, 2, 3, 4, 5, 6, 8, 92,
160    0, 1, 2, 3, 4, 5, 6, 8, 92,
161    0, 1, 2, 3, 4, 5, 6, 8, 92,
162    0, 1, 2, 3, 4, 5, 6, 8, 92,
163    0, 1, 2, 3, 4, 5, 6, 8, 92,
164    0, 1, 2, 3, 4, 5, 6, 8, 92,
165    0, 1, 2, 3, 4, 5, 6, 8, 92,
166    0, 1, 2, 3, 4, 5, 6, 8, 92,
167    0, 1, 2, 3, 4, 5, 6, 8, 92,
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    
 Float_t C0t[48][9] = {0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92,  
 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92,  
 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92,  
 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92,  
 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92,  
 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92,  
 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92,  
 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92 };  
207    
208  Float_t A0t[48][9] = {  Float_t A0t[48][9] = {
209  0, 0.90472, 5.19581, 7.99982, 11, 13, 16, 18, 2000, 0, 0.7774, 5.15121, 7.99976, 11, 13, 16, 18, 2000, 0, 1.18414, 5.1952, 8, 11, 13, 16, 17.9999, 2000, 0, 1.0189, 5.61869, 8, 11, 13.0006, 15.9998, 18.0014, 2000, 0, 1.08725, 4.4728, 7.99979, 11,  0, 0.90472, 5.19581, 7.99982, 11, 13, 16, 18, 2000,
210  13.0002, 16, 18, 2000, 0, 0.946462, 4.69554, 7.99994, 11, 13.0001, 16, 18, 2000, 0, 1.13176, 4.57483, 7.99999, 11, 13.0002, 15.9999, 18.0002, 2000, 0, 1.00872, 4.99316, 8, 11, 13, 16, 18, 2000, 0, 1.19891, 5.01355, 8, 11, 13.0003, 16, 18, 2000, 0, 0.5,  0, 0.7774, 5.15121, 7.99976, 11, 13, 16, 18, 2000,
211  2, 4.5, 5.50003, 6.50028, 8.00004, 8.99989, 2000, 0, 1.16961, 4.59028, 8, 11, 13.0001, 16, 18, 2000, 0, 0.989643, 5.21958, 7.99998, 11, 13, 16,  0, 1.18414, 5.1952, 8, 11, 13, 16, 17.9999, 2000,
212  17.9999, 2000, 0, 0.952029, 5.19598, 7.99998, 11, 13.0005, 16.0005, 18, 2000, 0, 0.736833, 4.95596, 8, 11, 13, 16, 18, 2000, 0, 1.34007, 3.74275, 8, 11, 13, 16, 18, 2000, 0, 1.47101, 4.31154, 8, 11, 13, 16, 18,  0, 1.0189, 5.61869, 8, 11, 13.0006, 15.9998, 18.0014, 2000,
213  2000, 0, 1.3754, 4.83141, 8.00002, 11, 13, 16, 18, 2000, 0, 1.47712, 5.79783, 8, 11, 13, 16, 18, 2000, 0, 1.19127, 5.35796, 7.99996, 11, 13,  0, 1.08725, 4.4728, 7.99979, 11, 13.0002, 16, 18, 2000,
214  16, 18, 2000, 0, 1.25745, 5.98391, 8, 11, 13.0004, 16.0001, 18.0001, 2000, 0, 1.18024, 5.40107, 7.99999, 11, 13, 16, 18.0001, 2000, 0, 0.961883,  0, 0.946462, 4.69554, 7.99994, 11, 13.0001, 16, 18, 2000,
215  5.10846, 7.99999, 11, 13, 16, 18, 2000, 0, 1.23192, 6.21098, 8, 11, 13.0005, 16, 18.0003, 2000, 0, 1.15846, 5.23573, 7.99995,  0, 1.13176, 4.57483, 7.99999, 11, 13.0002, 15.9999, 18.0002, 2000,
216  11, 13, 16, 18.0002, 2000, 0, 1.26163, 5.5425, 8.00001, 11, 13.0002, 16.0006, 18, 2000, 0, 1.12754, 5.57064, 7.99999, 11, 13, 16, 18.0002,  0, 1.00872, 4.99316, 8, 11, 13, 16, 18, 2000,
217  2000, 0, 1.22768, 6.06283, 8, 11, 13.0002, 16, 18, 2000, 0, 1.83569, 5.87584, 8.00006, 11, 13.0005, 16, 18,  0, 1.19891, 5.01355, 8, 11, 13.0003, 16, 18, 2000,
218  2000, 0, 1.61434, 5.56634, 7, 7.99999, 8.99999, 14.999, 16, 2000, 0, 1.61287, 5.46416, 7.99989, 10, 12, 14.9997, 16, 2000, 0, 1.49053,  0, 0.5, 2.284, 3.12, 8.795, 6.257, 7.841, 6.1743, 2000,
219  6.21581, 9.00001, 12, 14, 16, 22, 2000, 0, 1.64579, 5.08498, 7.99989, 10, 12, 15, 16, 2000, 0, 1.83474, 6.29746, 9.00001, 12, 14.0001, 16.0001, 22,  0, 1.16961, 4.59028, 8, 11, 13.0001, 16, 18, 2000,
220  2000, 0, 1.80066, 6.19725, 9, 12, 14, 16, 22, 2000, 0, 1.9025, 5.83736, 8, 10, 12, 14.9999, 16, 2000, 0, 1.90163, 5.62801, 7.99999, 10, 12, 15, 16, 2000, 0, 2.5518,  0, 0.989643, 5.21958, 7.99998, 11, 13, 16, 17.9999, 2000,
221  5.97325, 9.00012, 12, 15, 18, 22, 2000, 0, 2.53476, 5.75312, 9.00007, 12, 15, 18, 22, 2000, 0, 2.67784, 6.9232, 9.00005, 12, 15, 18, 22, 2000, 0, 2.62769, 7.22552, 9.00003,  0, 0.952029, 5.19598, 7.99998, 11, 13.0005, 16.0005, 18, 2000,
222  12.0001, 15, 18, 22, 2000, 0, 2.58088, 6.30413, 9.0001, 12, 15, 18, 22, 2000, 0, 2.48219, 7.06085, 9.00005, 12, 15, 18, 22, 2000, 0, 3.23157, 5.20668, 9.00007, 12, 15,  0, 0.736833, 4.95596, 8, 11, 13, 16, 18, 2000,
223  18, 22, 2000, 0, 3.38244, 6.45172, 9.00006, 12.0001, 15, 18.0001, 22, 2000, 0, 3.14595, 5.29036, 9.00008, 12, 15, 18, 22.0001, 2000, 0, 3.34692, 6.17283, 9.00041, 12,  0, 1.34007, 3.74275, 8, 11, 13, 16, 18, 2000,
224  15, 18.0001, 22, 2000, 0, 3.16915, 4.25973, 9.00015, 12, 15, 18, 22, 2000, 0, 3.25809, 5.58971, 9.00068, 12, 15, 18,  0, 1.47101, 4.31154, 8, 11, 13, 16, 18, 2000,
225  22.0001, 2000 } ;  0, 1.3754, 4.83141, 8.00002, 11, 13, 16, 18, 2000,
226    0, 1.47712, 5.79783, 8, 11, 13, 16, 18, 2000,
227    0, 1.19127, 5.35796, 7.99996, 11, 13, 16, 18, 2000,
228    0, 1.25745, 5.98391, 8, 11, 13.0004, 16.0001, 18.0001, 2000,
229    0, 1.18024, 5.40107, 7.99999, 11, 13, 16, 18.0001, 2000,
230    0, 0.961883, 5.10846, 7.99999, 11, 13, 16, 18, 2000,
231    0, 1.23192, 6.21098, 8, 11, 13.0005, 16, 18.0003, 2000,
232    0, 1.15846, 5.23573, 7.99995, 11, 13, 16, 18.0002, 2000,
233    0, 1.26163, 5.5425, 8.00001, 11, 13.0002, 16.0006, 18, 2000,
234    0, 1.12754, 5.57064, 7.99999, 11, 13, 16, 18.0002, 2000,
235    0, 1.22768, 6.06283, 8, 11, 13.0002, 16, 18, 2000,
236    0, 1.83569, 5.87584, 8.00006, 11, 13.0005, 16, 18, 2000,
237    0, 1.61434, 5.56634, 7, 7.99999, 8.99999, 14.999, 16, 2000,
238    0, 1.61287, 5.46416, 7.99989, 10, 12, 14.9997, 16, 2000,
239    0, 1.49053, 6.21581, 9.00001, 12, 14, 16, 22, 2000,
240    0, 1.64579, 5.08498, 7.99989, 10, 12, 15, 16, 2000,
241    0, 1.83474, 6.29746, 9.00001, 12, 14.0001, 16.0001, 22, 2000,
242    0, 1.80066, 6.19725, 9, 12, 14, 16, 22, 2000,
243    0, 1.9025, 5.83736, 8, 10, 12, 14.9999, 16, 2000,
244    0, 1.90163, 5.62801, 7.99999, 10, 12, 15, 16, 2000,
245    0, 2.5518, 5.97325, 9.00012, 12, 15, 18, 22, 2000,
246    0, 2.53476, 5.75312, 9.00007, 12, 15, 18, 22, 2000,
247    0, 2.67784, 6.9232, 9.00005, 12, 15, 18, 22, 2000,
248    0, 2.62769, 7.22552, 9.00003, 12.0001, 15, 18, 22, 2000,
249    0, 2.58088, 6.30413, 9.0001, 12, 15, 18, 22, 2000,
250    0, 2.48219, 7.06085, 9.00005, 12, 15, 18, 22, 2000,
251    0, 3.23157, 5.20668, 9.00007, 12, 15, 18, 22, 2000,
252    0, 3.38244, 6.45172, 9.00006, 12.0001, 15, 18.0001, 22, 2000,
253    0, 3.14595, 5.29036, 9.00008, 12, 15, 18, 22.0001, 2000,
254    0, 3.34692, 6.17283, 9.00041, 12, 15, 18.0001, 22, 2000,
255    0, 3.16915, 4.25973, 9.00015, 12, 15, 18, 22, 2000,
256    0, 3.25809, 5.58971, 9.00068, 12, 15, 18, 22.0001, 2000} ;
257    
258    
259  Float_t A1t[48][9] = {  Float_t A1t[48][9] = {
260  0, -0.148721, -3.39495, -4.31459, -0.929148, 3.54132, -0.781274, 1.31968, 0, 0, 0.300986, -2.80331, -4.23227, 0.298916, 4.10416, -5.18516, 7.03041, 0,  0, -0.148721, -3.39495, -4.31459, -0.929148, 3.54132, -0.781274, 1.31968, 0,
261  0, -0.590177, -3.12529, -0.44614, 0.620419, 5.19609, 9.88925, 14.9819, 0, 0, -0.173358, -3.98938, -0.616916, 0.405404,  0, 0.300986, -2.80331, -4.23227, 0.298916, 4.10416, -5.18516, 7.03041, 0,
262  6.25045, 10.5087, 24.7055, 0, 0, -0.32707, -1.1686, -3.46701, -0.284242, 4.09514, -0.561233, -0.166844, 0, 0, 0.0440221, -1.5147, -2.67239,  0, -0.590177, -3.12529, -0.44614, 0.620419, 5.19609, 9.88925, 14.9819, 0,
263  -1.08848, 5.05632, 3.92546, -0.0525454, 0, 0, -0.331836, -1.25371, -1.59317, 0.654738, 4.41673, 5.99879,  0, -0.173358, -3.98938, -0.616916, 0.405404, 6.25045, 10.5087, 24.7055, 0,
264  14.9057, 0, 0, 0.00587183, -2.17841, -1.48496, 0.477997, 6.24062, 6.19841, 11.4798, 0, 0, -0.515989, -2.1195, -1.44376, 0.145546, 5.41926,  0, -0.32707, -1.1686, -3.46701, -0.284242, 4.09514, -0.561233, -0.166844, 0,
265  5.03587, 10.7126, 0, 0, 0, 0, -0.5, 0, 4.35377, 6.97709, 15.0047, 0, 0, -0.554732, -1.6306, -1.54677,  0, 0.0440221, -1.5147, -2.67239, -1.08848, 5.05632, 3.92546, -0.0525454, 0,
266  0.687092, 3.97612, 4.05449, 3.44324, 0, 0, -0.0314164, -2.83515, -1.29946, 2.31597, 7.15645, 6.95353, 12.8573, 0, 0, -0.218413, -3.04095, -1.50327,  0, -0.331836, -1.25371, -1.59317, 0.654738, 4.41673, 5.99879, 14.9057, 0,
267  0.291698, 5.27119, 9.06051, 18.4417, 0, 0, 0.410005, -2.45452, -0.851601, 0.206665, 6.44906, 7.53132,  0, 0.00587183, -2.17841, -1.48496, 0.477997, 6.24062, 6.19841, 11.4798, 0,
268  10.5636, 0, 0, -1.29063, 0.463767, -0.720394, 1.27269, 3.66394, 4.52102, 7.33444, 0, 0, -1.54073, -1.60146, -1.91721, -0.640132, 3.58881, 0.561348,  0, -0.515989, -2.1195, -1.44376, 0.145546, 5.41926, 5.03587, 10.7126, 0,
269  7.33444, 0, 0, -0.558527, -2.43481, -1.64492, 1.51694, 6.05449, 4.67951, 5.40004, 0, 0, -1.44736, -5.265, -1.28878, -0.238869, 4.13668, 4.58264,  0, 0, 0.0682, 3.2814, -6.1989, 8.05589, 9.75967, 23.797, 0,
270  3.28758, 0, 0, -0.596315, -3.35555, -2.03624, -0.148223, 6.16332, 4.71164, 15.6531, 0, 0, -0.740826, -4.79843, 0.345734, -0.210722, 6.32702, 9.76698, 19.9151, 0, 0, -0.541817,  0, -0.554732, -1.6306, -1.54677, 0.687092, 3.97612, 4.05449, 3.44324, 0,
271  -3.30557, -1.76057, -0.216039, 5.79923, 8.00931, 16.4061, 0, 0, -0.0503124, -2.66635, -1.70196, -1.07446, 3.46058, 1.45824,  0, -0.0314164, -2.83515, -1.29946, 2.31597, 7.15645, 6.95353, 12.8573, 0,
272  -2.21932, 0, 0, -0.495955, -5.78012, -0.174017, 0.675206, 6.30264, 8.30058, 20.3899, 0, 0, -0.315843, -2.8796, -3.04323, -0.681945, 5.49248, 7.42757,  0, -0.218413, -3.04095, -1.50327, 0.291698, 5.27119, 9.06051, 18.4417, 0,
273  17.1667, 0, 0, -0.643179, -3.5364, -0.245549, 0.694213, 5.79727, 10.2911, 9.61651, 0, 0, -0.315433, -3.56856, -1.25894, 2.05501, 6.85829, 8.74895,  0, 0.410005, -2.45452, -0.851601, 0.206665, 6.44906, 7.53132, 10.5636, 0,
274  14.9955, 0, 0, -0.478207, -4.82517, 0.688668, 1.40183, 6.78743, 8.02806, 2.65821, 0, 0, -1.63072, -5.05269, -0.582789, 1.22014, 6.80023, 8.8931, 5.15517, 0, 0,  0, -1.29063, 0.463767, -0.720394, 1.27269, 3.66394, 4.52102, 7.33444, 0,
275  -1.50826, -3.68958, 0.420744, 3.25124, 4.28046, -16.9712, -12, 0, 0, -1.52021, -3.37459, -2.41086, 0.547517, -0.56013, -8.59935, -3, 0, 0, -0.998702, -4.7187, -2.33974,  0, -1.54073, -1.60146, -1.91721, -0.640132, 3.58881, 0.561348, 7.33444, 0,
276  -0.0974348, 3.10138, 2.3293, -5.71135, 0, 0, -1.66188, -2.39145, -2.55052, 0.29005, -0.16697, -3.97018, -1.5, 0, 0,  0, -0.558527, -2.43481, -1.64492, 1.51694, 6.05449, 4.67951, 5.40004, 0,
277  -2.04431, -4.95214, -1.51889, 1.92081, 5.92476, 8.94417, -0.172422, 0, 0, -1.94155, -4.95644, -2.47063, 0.0233995, 2.57015, 4.84173,  0, -1.44736, -5.265, -1.28878, -0.238869, 4.13668, 4.58264, 3.28758, 0,
278  -0.555407, 0, 0, -2.22045, -4.21875, -1.23892, 0.911188, -0.705415, -11.5648, -7, 0, 0, -2.25418, -3.71067,  0, -0.596315, -3.35555, -2.03624, -0.148223, 6.16332, 4.71164, 15.6531, 0,
279  -1.87307, 0.560423, 0.206679, -4.27293, -3, 0, 0, -3.90179, -5.14354, -4.08454, -3.13545, -3.57868, -5.13198, -1.0019, 0, 0, -3.78789, -4.50313,  0, -0.740826, -4.79843, 0.345734, -0.210722, 6.32702, 9.76698, 19.9151, 0,
280  -5.24307, -3.24931, -0.319336, -1.407, -3.77821, 0, 0, -4.16337, -7.12861, -2.29639, -0.786276, 2.58494, 4.16162, 7.22747, 0, 0, -4.04189, -7.82707,  0, -0.541817, -3.30557, -1.76057, -0.216039, 5.79923, 8.00931, 16.4061, 0,
281  -1.34893, -1.05519, 4.33166, 4.87264, 12.3328, 0, 0, -3.85946, -5.71064, -4.43564, -1.53025, 1.42505, -0.0695653, 4.33418, 0, 0, -3.65794, -8.19828,  0, -0.0503124, -2.66635, -1.70196, -1.07446, 3.46058, 1.45824, -2.21932, 0,
282  -3.32738, -1.25785, -1.13124, -6.79745, -8.37113, 0, 0, -5.571, -2.49596, -2.8623, -2.74219, -1.43215, -0.359863, 0.25062, 0, 0, -6.00932, -5.60393,  0, -0.495955, -5.78012, -0.174017, 0.675206, 6.30264, 8.30058, 20.3899, 0,
283  -2.33967, -1.53792, 3.67721, 5.49137, 8.34507, 0, 0, -5.36442, -3.19657, -2.9975, -1.73078, 0.0558693, -0.179221, 9.45231, 0, 0, -5.91858, -5.04606, -2.88549, -0.953526, 1.17816, 5.43427, 0.871257, 0,  0, -0.315843, -2.8796, -3.04323, -0.681945, 5.49248, 7.42757, 17.1667, 0,
284  0, -5.53832, -0.498886, -3.85789, -2.61557, -2.45863, -1.44554, -7.21927, 0, 0, -5.70059, -3.94476, -3.23927, 0.15573, 1.85295, 3.96162, 8.70362, 0 } ;  0, -0.643179, -3.5364, -0.245549, 0.694213, 5.79727, 10.2911, 9.61651, 0,
285    0, -0.315433, -3.56856, -1.25894, 2.05501, 6.85829, 8.74895, 14.9955, 0,
286    0, -0.478207, -4.82517, 0.688668, 1.40183, 6.78743, 8.02806, 2.65821, 0,
287    0, -1.63072, -5.05269, -0.582789, 1.22014, 6.80023, 8.8931, 5.15517, 0,
288    0, -1.50826, -3.68958, 0.420744, 3.25124, 4.28046, -16.9712, -12, 0,
289    0, -1.52021, -3.37459, -2.41086, 0.547517, -0.56013, -8.59935, -3, 0,
290    0, -0.998702, -4.7187, -2.33974, -0.0974348, 3.10138, 2.3293, -5.71135, 0,
291    0, -1.66188, -2.39145, -2.55052, 0.29005, -0.16697, -3.97018, -1.5, 0,
292    0, -2.04431, -4.95214, -1.51889, 1.92081, 5.92476, 8.94417, -0.172422, 0,
293    0, -1.94155, -4.95644, -2.47063, 0.0233995, 2.57015, 4.84173, -0.555407, 0,
294    0, -2.22045, -4.21875, -1.23892, 0.911188, -0.705415, -11.5648, -7, 0,
295    0, -2.25418, -3.71067, -1.87307, 0.560423, 0.206679, -4.27293, -3, 0,
296    0, -3.90179, -5.14354, -4.08454, -3.13545, -3.57868, -5.13198, -1.0019, 0,
297    0, -3.78789, -4.50313, -5.24307, -3.24931, -0.319336, -1.407, -3.77821, 0,
298    0, -4.16337, -7.12861, -2.29639, -0.786276, 2.58494, 4.16162, 7.22747, 0,
299    0, -4.04189, -7.82707, -1.34893, -1.05519, 4.33166, 4.87264, 12.3328, 0,
300    0, -3.85946, -5.71064, -4.43564, -1.53025, 1.42505, -0.0695653, 4.33418, 0,
301    0, -3.65794, -8.19828, -3.32738, -1.25785, -1.13124, -6.79745, -8.37113, 0,
302    0, -5.571, -2.49596, -2.8623, -2.74219, -1.43215, -0.359863, 0.25062, 0,
303    0, -6.00932, -5.60393, -2.33967, -1.53792, 3.67721, 5.49137, 8.34507, 0,
304    0, -5.36442, -3.19657, -2.9975, -1.73078, 0.0558693, -0.179221, 9.45231, 0,
305    0, -5.91858, -5.04606, -2.88549, -0.953526, 1.17816, 5.43427, 0.871257, 0,
306    0, -5.53832, -0.498886, -3.85789, -2.61557, -2.45863, -1.44554, -7.21927, 0,
307    0, -5.70059, -3.94476, -3.23927, 0.15573, 1.85295, 3.96162, 8.70362, 0 };
308    
309    
310  Float_t A2t[48][9] = {  Float_t A2t[48][9] = {
311  0, 0.447567, 2.19777, 4.56362, 2.7416, 2.05411, 10.11, 19.0312, 0, 0, 0.11417, 1.62292, 5.00684, 3,  0, 0.447567, 2.19777, 4.56362, 2.7416, 2.05411, 10.11, 19.0312, 0,
312  3.00006, 17.3401, 17.8502, 0, 0, 0.613665, 1.84729, 0.717669, 3, 2.53701, 1.23897, 10.2529, 0, 0, 0.318447, 2.30647, 0.936633, 3, 3, 2.95973, 3, 0, 0,  0, 0.11417, 1.62292, 5.00684, 3, 3.00006, 17.3401, 17.8502, 0,
313  0.398201, 0.701095, 3.91236, 3, 3, 11.5693, 17.9749, 0, 0, 0.202853, 0.806934, 3.11779, 3.57657, 1.59933,  0, 0.613665, 1.84729, 0.717669, 3, 2.53701, 1.23897, 10.2529, 0,
314  6.71492, 23.6721, 0, 0, 0.378081, 0.60131, 1.91722, 1.97014, 3, 5.08036, 9.64776, 0, 0, 0.185602, 1.13243, 1.95726, 2.25608, 1.31382,  0, 0.318447, 2.30647, 0.936633, 3, 3, 2.95973, 3, 0,
315  6.06097, 15.9104, 0, 0, 0.519026, 1.16139, 1.92471, 3, 3, 6.24901, 15.0465, 0, 0, 0, 0, 0, 0, 3, 1.24657,  0, 0.398201, 0.701095, 3.91236, 3, 3, 11.5693, 17.9749, 0,
316  0.76179, 0, 0, 0.584808, 1.01299, 1.55521, 1.3038, 3, 7.23646, 20.977, 0, 0, 0.252569, 1.60163, 1.83587, 0.630466, 0.777058, 6.0142, 15.4738, 0, 0,  0, 0.202853, 0.806934, 3.11779, 3.57657, 1.59933, 6.71492, 23.6721, 0,
317  0.434331, 1.84922, 1.83168, 3, 3, 3, 6.44375, 0, 0, 0.0330463, 1.50249, 1.15961, 3, 0.810556, 4.20175,  0, 0.378081, 0.60131, 1.91722, 1.97014, 3, 5.08036, 9.64776, 0,
318  16.0172, 0, 0, 1.15272, -0.461141, 0.6358, 0.566375, 3.20343, 5.26698, 14.6336, 0, 0, 1.24677, 1.12736, 1.76074, 3, 3.77723, 10.7814, 14.6336, 0,  0, 0.185602, 1.13243, 1.95726, 2.25608, 1.31382, 6.06097, 15.9104, 0,
319  0, 0.551726, 1.59633, 1.18411, 0.119382, 0.843864, 6.67491, 20.4289, 0, 0, 1.17008, 3.53223, 1.7298, 3,  0, 0.519026, 1.16139, 1.92471, 3, 3, 6.24901, 15.0465, 0,
320  3.51043, 7.10543, 22.3253, 0, 0, 0.612142, 1.96606, 2.64693, 3.25016, 1.25888, 7.04821, 11.7283, 0, 0, 0.69148, 2.84536, 0.249509, 4.29848, 3,  0, 0, 0, -1.972, 4.7828, -3.1154, -2.11319, -4.7497, 0,
321  3.58229, 9.01681, 0, 0, 0.565678, 1.96366, 2.32387, 3.15843, 1.66386, 3.07223, 7.67847, 0, 0, 0.286252,  0, 0.584808, 1.01299, 1.55521, 1.3038, 3, 7.23646, 20.977, 0,
322  1.61749, 2.08437, 3.96745, 3.46972, 9.29207, 23.9444, 0, 0, 0.427677, 3.58328, 0.303785, 3, 3, 4.66547, 6.77271, 0, 0, 0.367136, 1.62323,  0, 0.252569, 1.60163, 1.83587, 0.630466, 0.777058, 6.0142, 15.4738, 0,
323  3.53394, 3.22174, 1.19152, 2.67962, 7.37085, 0, 0, 0.571177, 2.03267, 0.714761, 2.31548, 3, 3, 23.2035, 0,  0, 0.434331, 1.84922, 1.83168, 3, 3, 3, 6.44375, 0,
324  0, 0.410871, 2.02075, 2.01824, 1.2684, 1.18522, 3.21976, 12.8378, 0, 0, 0.463877, 2.86112, 0.170916, 3, 3, 5.97413, 28.4085, 0, 0, 1.30088,  0, 0.0330463, 1.50249, 1.15961, 3, 0.810556, 4.20175, 16.0172, 0,
325  3.26557, 2, 3, 3, 4.77584, 22.8794, 0, 0, 1.02941, 2.12558, 0.872765, 2.23727, 4.7981, 24.6338, 24.6338, 0, 0, 1.05783, 1.89525, 2.85289, 3.0898,  0, 1.15272, -0.461141, 0.6358, 0.566375, 3.20343, 5.26698, 14.6336, 0,
326  7.83407, 17.8466, 20, 0, 0, 0.87851, 2.49044, 1.91387, 2.41541, 3.8418, 9.41288, 24.0375, 0, 0, 1.18188, 1.273, 2.9275, 3.06704, 7.12642, 12.7629, 15,  0, 1.24677, 1.12736, 1.76074, 3, 3.77723, 10.7814, 14.6336, 0,
327  0, 0, 1.53682, 2.57011, 1.06205, 0.506326, 1.68314, 3.58498, 23.1595, 0, 0, 1.46302, 2.68515, 1.99381, 2.17816, 4.41356, 6.53634,  0, 0.551726, 1.59633, 1.18411, 0.119382, 0.843864, 6.67491, 20.4289, 0,
328  20.7136, 0, 0, 1.4731, 2.3654, 1.53025, 2.96327, 8.70277, 21.6253, 25, 0, 0, 1.53808, 2.07089, 2.22662, 3.14766, 7.57131, 14.2471, 20, 0, 0,  0, 1.17008, 3.53223, 1.7298, 3, 3.51043, 7.10543, 22.3253, 0,
329  2.54185, 2.94079, 2.66362, 3.52374, 6.80629, 11.3325, 14.5186, 0, 0, 2.43664, 2.49436, 4.17446, 3.77162,  0, 0.612142, 1.96606, 2.64693, 3.25016, 1.25888, 7.04821, 11.7283, 0,
330  3.31898, 7.43896, 18.2548, 0, 0, 2.66465, 3.9858, 1.0855, 1.91916, 1.82719, 3.62289, 11.3872, 0, 0, 2.59071, 4.39003, 0.0757547, 3, 0.158868,  0, 0.69148, 2.84536, 0.249509, 4.29848, 3, 3.58229, 9.01681, 0,
331  3.55454, 5.71387, 0, 0, 2.48014, 3.16071, 3.1975, 1.7259, 1.53532, 6.33812, 11.2325, 0, 0, 2.35236,  0, 0.565678, 1.96366, 2.32387, 3.15843, 1.66386, 3.07223, 7.67847, 0,
332  4.94998, 1.78836, 1.9115, 4.74233, 13.6973, 21.965, 0, 0, 3.52215, 0.812087, 1.1768, 2.95239, 4.3202, 6.04614, 13.6556, 0, 0, 3.79446, 2.80606,  0, 0.286252, 1.61749, 2.08437, 3.96745, 3.46972, 9.29207, 23.9444, 0,
333  0.88371, 3, 0.614106, 2.52782, 12.4441, 0, 0, 3.41363, 1.57296, 1.59021, 2.47593, 3.41146, 6.76304, 5.59471, 0, 0, 3.72529, 2.50889, 2, 3, 4.06815, 2.78676,  0, 0.427677, 3.58328, 0.303785, 3, 3, 4.66547, 6.77271, 0,
334  19.6427, 0, 0, 3.54713, -0.296079, 2.10851, 2.42037, 5.37573, 6.78065, 22.298, 0, 0, 3.61517, 1.96909, 2, 0.249865, 2.46639, 3.42483, 8.1652, 0 } ;  0, 0.367136, 1.62323, 3.53394, 3.22174, 1.19152, 2.67962, 7.37085, 0,
335    0, 0.571177, 2.03267, 0.714761, 2.31548, 3, 3, 23.2035, 0,
336    0, 0.410871, 2.02075, 2.01824, 1.2684, 1.18522, 3.21976, 12.8378, 0,
337    0, 0.463877, 2.86112, 0.170916, 3, 3, 5.97413, 28.4085, 0,
338    0, 1.30088, 3.26557, 2, 3, 3, 4.77584, 22.8794, 0,
339    0, 1.02941, 2.12558, 0.872765, 2.23727, 4.7981, 24.6338, 24.6338, 0,
340    0, 1.05783, 1.89525, 2.85289, 3.0898, 7.83407, 17.8466, 20, 0,
341    0, 0.87851, 2.49044, 1.91387, 2.41541, 3.8418, 9.41288, 24.0375, 0,
342    0, 1.18188, 1.273, 2.9275, 3.06704, 7.12642, 12.7629, 15, 0,
343    0, 1.53682, 2.57011, 1.06205, 0.506326, 1.68314, 3.58498, 23.1595, 0,
344    0, 1.46302, 2.68515, 1.99381, 2.17816, 4.41356, 6.53634, 20.7136, 0,
345    0, 1.4731, 2.3654, 1.53025, 2.96327, 8.70277, 21.6253, 25, 0,
346    0, 1.53808, 2.07089, 2.22662, 3.14766, 7.57131, 14.2471, 20, 0,
347    0, 2.54185, 2.94079, 2.66362, 3.52374, 6.80629, 11.3325, 14.5186, 0,
348    0, 2.43664, 2.49436, 4.17446, 3.77162, 3.31898, 7.43896, 18.2548, 0,
349    0, 2.66465, 3.9858, 1.0855, 1.91916, 1.82719, 3.62289, 11.3872, 0,
350    0, 2.59071, 4.39003, 0.0757547, 3, 0.158868, 3.55454, 5.71387, 0,
351    0, 2.48014, 3.16071, 3.1975, 1.7259, 1.53532, 6.33812, 11.2325, 0,
352    0, 2.35236, 4.94998, 1.78836, 1.9115, 4.74233, 13.6973, 21.965, 0,
353    0, 3.52215, 0.812087, 1.1768, 2.95239, 4.3202, 6.04614, 13.6556, 0,
354    0, 3.79446, 2.80606, 0.88371, 3, 0.614106, 2.52782, 12.4441, 0,
355    0, 3.41363, 1.57296, 1.59021, 2.47593, 3.41146, 6.76304, 5.59471, 0,
356    0, 3.72529, 2.50889, 2, 3, 4.06815, 2.78676, 19.6427, 0,
357    0, 3.54713, -0.296079, 2.10851, 2.42037, 5.37573, 6.78065, 22.298, 0,
358    0, 3.61517, 1.96909, 2, 0.249865, 2.46639, 3.42483, 8.1652, 0} ;
359    
360    
361  // S115B failure: 1158700000 // 2006-09-19 21:06:40 UTC  // S115B failure: 1158700000 // 2006-09-19 21:06:40 UTC
362    
363  if (time > 1158700000.) {     // first workaround: just use calibration of PMT S115A  if (time < 1158700000.) {     // first workaround: just use calibration of PMT S115A
364  for ( Int_t jj=0; jj<9; jj++ ){  for ( Int_t jj=0; jj<9; jj++ ){
365  A0t[9][jj] = A0t[8][jj] ;  A0t[9][jj] = A0t[8][jj] ;
366  A1t[9][jj] = A1t[8][jj] ;  A1t[9][jj] = A1t[8][jj] ;
# Line 223  Float_t xv[6],yv[6]; Line 382  Float_t xv[6],yv[6];
382  Int_t  iz;  Int_t  iz;
383  Float_t x1[9],y1[9];  Float_t x1[9],y1[9];
384  Int_t n1 = 9;  Int_t n1 = 9;
385  Float_t  Layercharge[6] = {1000., 1000., 1000., 1000., 1000., 1000. };  
386    Float_t  Layercharge[6] = {1005., 1005., 1005., 1005., 1005., 1005. };
387    
388  Int_t  Layerinfo[6] = {0, 0, 0, 0, 0, 0 };  Int_t  Layerinfo[6] = {0, 0, 0, 0, 0, 0 };
389    
390    Float_t adc[48],adc_c[48],PMTcharge_arr[48];
391    
392  //------------------------------------------------------------------  //------------------------------------------------------------------
393    
394  PamTrack *track = L2->GetTrack(0);  PamTrack *track = L2->GetTrack(0);
395    
396  Float_t beta_mean = fabs(track->GetToFTrack()->beta[12]);  Float_t beta_mean = fabs(track->GetToFTrack()->beta[12]);
397    
398    // New!! If "beta_in" != 100. then overwrite beta_mean with beta_in
399    if (beta_in != 100.) beta_mean=beta_in;
400    
401  Float_t def = track->GetTrkTrack()->al[4];  Float_t def = track->GetTrkTrack()->al[4];
402  Float_t rig = 1./def;  Float_t rig = 1./def;
403    
404  Int_t ncount=0;  Int_t ncount=0;
405  Float_t charge_chi=1000.;  Float_t charge_chi=1000.;
406    
 if ((beta_mean > 0.05)  && (beta_mean < 1.5)) {  
   
   
407  //-------------------------------------------------------------  //-------------------------------------------------------------
408  //------------------  ToF Charge ------------------------------  //------------------  ToF Charge ------------------------------
409  //-------------------------------------------------------------  //-------------------------------------------------------------
# Line 248  if ((beta_mean > 0.05)  && (beta_mean < Line 411  if ((beta_mean > 0.05)  && (beta_mean <
411  // fill adc and tdc  // fill adc and tdc
412    
413     Int_t ich,jj,kk;     Int_t ich,jj,kk;
    Float_t adc[48],adc_c[48],PMTcharge_arr[48];  
414    
415     for (ich=0; ich<48; ich++)   adc[ich]   = 4095.;     for (ich=0; ich<48; ich++)   adc[ich]   = 4095.;
416     for (ich=0; ich<48; ich++)   adc_c[ich] = 1000.;     for (ich=0; ich<48; ich++)   adc_c[ich] = 1000.;
417     for (ich=0; ich<48; ich++)   PMTcharge_arr[ich] = 1000.;     for (ich=0; ich<48; ich++)   PMTcharge_arr[ich] = 1000.;
418    
419    
420    
421    if ((beta_mean < 0.05)  || (beta_mean > 2.0)) {
422      for (Int_t jj=0; jj<48;jj++) charge_PMT_trk[jj] = 1001.;
423      for (Int_t jj=0; jj<6;jj++) charge_layer_trk[jj] = 1001.;
424      for (Int_t jj=0; jj<6;jj++) layerinfo_trk[jj] = 1001.;
425      charge_trk = 1001.;
426      ncount_trk = 0;
427                                                  }
428    
429    
430    if ((beta_mean > 0.05)  && (beta_mean < 2.0)) {
431    
432     Float_t betahelp =   pow(beta_mean, 1.2);     Float_t betahelp =   pow(beta_mean, 1.2);
433    
434  //=======================================================================  //=======================================================================
# Line 274  if ((beta_mean > 0.05)  && (beta_mean < Line 449  if ((beta_mean > 0.05)  && (beta_mean <
449            Int_t adcflag = track->GetToFTrack()->adcflag[ipmt];            Int_t adcflag = track->GetToFTrack()->adcflag[ipmt];
450            L2->GetToFLevel2()->GetPMTIndex(pmtadc,jj,kk);            L2->GetToFLevel2()->GetPMTIndex(pmtadc,jj,kk);
451            if (adcflag==0) adc_c[pmtadc] = dEdx;            if (adcflag==0) adc_c[pmtadc] = dEdx;
           if (adc[pmtadc] > PMTsat[pmtadc]) adc_c[pmtadc] = 1000.;  
452    
           cout<<pmtadc<<" "<<adc[pmtadc]<<" "<<dEdx<<" "<<adc_c[pmtadc]<<endl;  
453    
454             if (adc[pmtadc] == 4095) adc_c[pmtadc] = 0.;
455             if (adc[pmtadc] == 4095) PMTcharge_arr[pmtadc] = 0.;
456    
457             if ((adc[pmtadc]>PMTsat[pmtadc]) && (adc[pmtadc]<4095)) adc_c[pmtadc] = 1000.;
458    
459           if (adc[pmtadc] < PMTsat[pmtadc]) {           if (adc[pmtadc] < PMTsat[pmtadc]) {
460  //----------------------------------------------------------------------------------------  //----------------------------------------------------------------------------------------
461  if ((pmtadc!=1) && (pmtadc!=9) || (pmtadc!=28) || (pmtadc!=29) || (pmtadc!=34)) {  if ((pmtadc!=1) && (pmtadc!=9) && (pmtadc!=28) && (pmtadc!=29) && (pmtadc!=34)) {
462    
463      for ( Int_t jj=0; jj<9; jj++ ){      for ( Int_t jj=0; jj<9; jj++ ){
464      x1[jj] = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean;      x1[jj] = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean;
# Line 291  if ((pmtadc!=1) && (pmtadc!=9) || (pmtad Line 468  if ((pmtadc!=1) && (pmtadc!=9) || (pmtad
468      TGraph *gr2 = new TGraph(n1,x1,y1);      TGraph *gr2 = new TGraph(n1,x1,y1);
469      TSpline3 *spl2 = new TSpline3("grs",gr2);    // use a cubic spline      TSpline3 *spl2 = new TSpline3("grs",gr2);    // use a cubic spline
470      chelp = spl2->Eval(ym);      chelp = spl2->Eval(ym);
471        if (chelp<0.) chelp=0.0001;  //WM new
472      charge = TMath::Sqrt(chelp);      charge = TMath::Sqrt(chelp);
473      gr2->Delete();      gr2->Delete();
474      spl2->Delete();      spl2->Delete();
475      PMTcharge_arr[pmtadc] = charge;      PMTcharge_arr[pmtadc] = charge;
476                                                                           } // pmtadc != ...                                                                           } // pmtadc != ...
477    
478  //----------------------------------------------------------------------------------------  //----------------------------------------------------------------------------------------
479    
480  if ((pmtadc==1) || (pmtadc==9) || (pmtadc==28) || (pmtadc==29) || (pmtadc==34)) {  if ((pmtadc==1) || (pmtadc==9) || (pmtadc==28) || (pmtadc==29) || (pmtadc==34)) {
481           for ( Int_t jj=0; jj<8; jj++ ){           for ( Int_t jj=0; jj<8; jj++ ){
482           yl = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean;           yl = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean;
# Line 305  if ((pmtadc==1) || (pmtadc==9) || (pmtad Line 485  if ((pmtadc==1) || (pmtadc==9) || (pmtad
485           m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl);           m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl);
486           b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl;           b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl;
487           chelp = m*ym + b;           chelp = m*ym + b;
488             if (chelp<0.) chelp=0.0001;  //WM new
489           charge= TMath::Sqrt(chelp);           charge= TMath::Sqrt(chelp);
490           PMTcharge_arr[pmtadc] = charge;           PMTcharge_arr[pmtadc] = charge;
491                               }                               }
# Line 312  if ((pmtadc==1) || (pmtadc==9) || (pmtad Line 493  if ((pmtadc==1) || (pmtadc==9) || (pmtad
493                                                                            } // if pmtadc ==....                                                                            } // if pmtadc ==....
494  //----------------------------------------------------------------------------------------  //----------------------------------------------------------------------------------------
495                                         } // adc < sat                                         } // adc < sat
496    
497               }   // ipmt...               }   // ipmt...
498    
499  //====================================================================  //====================================================================
# Line 339  Int_t ihelp_a[6] = {0,16,28,32,36,42}; Line 521  Int_t ihelp_a[6] = {0,16,28,32,36,42};
521    
522  for (Int_t ilay=0; ilay<6; ilay ++) {  for (Int_t ilay=0; ilay<6; ilay ++) {
523  Int_t jj = PaddleIdOfTrack[ilay] ;  Int_t jj = PaddleIdOfTrack[ilay] ;
524  Float_t xhelp = 1000.;  //Float_t xhelp = 1000.;
525    Float_t xhelp = 1005.;
526    
527  if (jj == -1) Layerinfo[ilay] = -1;  if (jj == -1) Layerinfo[ilay] = -1;
528    
529  if (jj != -1) {  if (jj != -1) {
530  Int_t ih = ihelp_a[ilay] + 2*jj;  Int_t ih = ihelp_a[ilay] + 2*jj;
531    
532    // New WM
533    Int_t igood1=0;
534    Int_t igood2=0;
535    if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih] > 0.)) igood1=1;
536    if ((PMTcharge_arr[ih+1] < 1000.) && (PMTcharge_arr[ih+1] > 0.)) igood2=1;
537    
538    if ((PMTcharge_arr[ih]==0.) && (PMTcharge_arr[ih+1]==0.))  xhelp = 0.;
539    if ((igood1==1)&&(igood2==1)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ;
540    if ((igood1==1)&&(igood2==0)) xhelp = PMTcharge_arr[ih];
541    if ((igood2==1)&&(igood1==0)) xhelp = PMTcharge_arr[ih+1];
542    
543    
544    /*
545  if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ;  if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ;
546  if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.))  xhelp = PMTcharge_arr[ih] ;  if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.))  xhelp = PMTcharge_arr[ih] ;
547  if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.))  xhelp = PMTcharge_arr[ih+1] ;  if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.))  xhelp = PMTcharge_arr[ih+1] ;
548    */
549     if (adc[ih] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1;     if (adc[ih] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1;
550     if (adc[ih+1] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1;     if (adc[ih+1] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1;
551     if ((adc[ih] > PMTsat[ih]) && (adc[ih] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10;     if ((adc[ih] > PMTsat[ih]) && (adc[ih] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10;
552     if ((adc[ih+1] > PMTsat[ih+1]) && (adc[ih+1] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10;     if ((adc[ih+1] > PMTsat[ih+1]) && (adc[ih+1] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10;
 //   cout<<ilay<<" "<<jj<<" "<<Layerinfo[ilay]<<endl;  
   
553         }         }
554  Layercharge[ilay] = xhelp;  Layercharge[ilay] = xhelp;
555                                      } // ilay ...                                      } // ilay ...
556    
557    
 //cout<<"Trk : ";  
 //for (Int_t ilay=0; ilay<6; ilay ++) cout<<Layercharge[ilay]<<" ";  
558    
559  //==========================================================================  //==========================================================================
560  //=========================   2nd-order correction   =======================  //=========================   2nd-order correction   =======================
# Line 388  Layercharge[ii] = Layercharge[ii]/c_corr Line 581  Layercharge[ii] = Layercharge[ii]/c_corr
581  //==========================================================================  //==========================================================================
582  //==========================================================================  //==========================================================================
583    
584    
585  Int_t  icount=0;  Int_t  icount=0;
586  Float_t charge_mean = 0.;  Float_t charge_mean = 0.;
587  for (Int_t ii=0; ii<6;  ii++) {  for (Int_t ii=0; ii<6;  ii++) {
# Line 461  if (icount>0) { Line 655  if (icount>0) {
655  //  cout<<" => "<<icount<<" "<<charge_chi<<endl;  //  cout<<" => "<<icount<<" "<<charge_chi<<endl;
656    
657  //=============================================================  //=============================================================
658    // changed 30-01-2009 WM
659    
660      for (Int_t jj=0; jj<48;jj++) charge_PMT_trk[jj] = PMTcharge_arr[jj];
 } // 0.05 < beta < 1.5  
   
661    for (Int_t jj=0; jj<6;jj++) charge_layer_trk[jj] = Layercharge[jj];    for (Int_t jj=0; jj<6;jj++) charge_layer_trk[jj] = Layercharge[jj];
662    for (Int_t jj=0; jj<6;jj++) layerinfo_trk[jj] = Layerinfo[jj];    for (Int_t jj=0; jj<6;jj++) layerinfo_trk[jj] = Layerinfo[jj];
663    charge_trk = charge_chi;    charge_trk = charge_chi;
664    ncount_trk = ncount;    ncount_trk = ncount;
665    
666    } // 0.05 < beta < 2.0
667    
668  } // if ntrk == 1  } // if ntrk == 1
669    
670  //================================================================  //================================================================
# Line 482  if (icount>0) { Line 677  if (icount>0) {
677  //  if(!track)return;  //  if(!track)return;
678    if(track) {    if(track) {
679    
680    /*
681  Float_t  PMTsat[48] = {  Float_t  PMTsat[48] = {
682  3162.14, 3165.48, 3153.85, 3085.73, 3089.65, 3107.64, 3097.52, 3078.37, 3130.05, 3087.07, 3112.22,  3162.14, 3165.48, 3153.85, 3085.73, 3089.65, 3107.64, 3097.52, 3078.37, 3130.05, 3087.07, 3112.22,
683  3102.92, 3080.58, 3092.55, 3087.94, 3125.03, 3094.09, 3143.16,  3102.92, 3080.58, 3092.55, 3087.94, 3125.03, 3094.09, 3143.16,
# Line 489  Float_t  PMTsat[48] = { Line 685  Float_t  PMTsat[48] = {
685  3097.99, 3033.84, 3134.98, 3081.37, 3111.04, 3066.77, 3108.17,  3097.99, 3033.84, 3134.98, 3081.37, 3111.04, 3066.77, 3108.17,
686  3133, 3111.06, 3052.52, 3140.66, 3106.33, 3094.85, 3150.85, 3118.8, 3096.24, 3118.47,3111.36, 3117.11  3133, 3111.06, 3052.52, 3140.66, 3106.33, 3094.85, 3150.85, 3118.8, 3096.24, 3118.47,3111.36, 3117.11
687  };  };
688    */
689    
690    // new values from Napoli dec 2008
691    Float_t  PMTsat[48] = {
692    3176.35,3178.19,3167.38,3099.73,3117.00,3126.29,3111.44,3092.27,
693    3146.48,3094.41,3132.13,3115.37,3099.32,3110.97,3111.80,3143.14,
694    3106.72,3153.44,3136.00,3188.96,3104.73,3140.45,3073.18,3106.62,
695    3112.48,3146.92,3127.24,3136.52,3109.59,3112.89,3045.15,3147.26,
696    3095.92,3121.05,3083.25,3123.62,3150.92,3125.30,3067.60,3160.18,
697    3119.36,3108.92,3164.77,3133.64,3111.47,3131.98,3128.87,3135.56 };
698    
699    for (Int_t i=0; i<48;i++) PMTsat[i] = PMTsat[i] - 5.;  // safety margin
700    
701    
702  Float_t C0t[48][9] = {  Float_t C0t[48][9] = {
703  0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92,  0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92,
# Line 618  Float_t A2t[48][9] = { Line 827  Float_t A2t[48][9] = {
827    
828  // S115B failure: 1158700000 // 2006-09-19 21:06:40 UTC  // S115B failure: 1158700000 // 2006-09-19 21:06:40 UTC
829    
830  if (time > 1158700000.) {     // first workaround: just use calibration of PMT S115A  if (time < 1158700000.) {     // first workaround: just use calibration of PMT S115A
831  for ( Int_t jj=0; jj<9; jj++ ){  for ( Int_t jj=0; jj<9; jj++ ){
832  A0t[9][jj] = A0t[8][jj] ;  A0t[9][jj] = A0t[8][jj] ;
833  A1t[9][jj] = A1t[8][jj] ;  A1t[9][jj] = A1t[8][jj] ;
# Line 641  Int_t  iz; Line 850  Int_t  iz;
850  Float_t x1[9],y1[9];  Float_t x1[9],y1[9];
851  Int_t n1 = 9;  Int_t n1 = 9;
852    
853  Float_t  Layercharge[6] = {1000., 1000., 1000., 1000., 1000., 1000. };  Float_t  Layercharge[6] = {1005., 1005., 1005., 1005., 1005., 1005. };
854    
855  Int_t  Layerinfo[6] = {0, 0, 0, 0, 0, 0 };  Int_t  Layerinfo[6] = {0, 0, 0, 0, 0, 0 };
856    
857    Float_t adc[48],adc_c[48],PMTcharge_arr[48];
858    
859    Float_t beta_mean = fabs(track->beta[12]);
860    
861    Float_t beta_mean = fabs(track->beta[12]);  // New!! If "beta_in" != 100. then overwrite beta_mean with beta_in
862    if (beta_in != 100.) beta_mean=beta_in;
863    
864    Int_t ncount=0;    Int_t ncount=0;
865    Float_t charge_chi=1000.;    Float_t charge_chi=1000.;
866    
   if ((beta_mean > 0.05)  && (beta_mean < 1.5)) {  
867        
868  //-------------------------------------------------------------  //-------------------------------------------------------------
869    
870  // fill adc and tdc  // fill adc and tdc
871    
872     Int_t ich,jj,kk;     Int_t ich,jj,kk;
    Float_t adc[48],adc_c[48],PMTcharge_arr[48];  
873    
874     for (ich=0; ich<48; ich++)   adc[ich]   = 4095.;     for (ich=0; ich<48; ich++)   adc[ich]   = 4095.;
875     for (ich=0; ich<48; ich++)   adc_c[ich] = 1000.;     for (ich=0; ich<48; ich++)   adc_c[ich] = 1000.;
876     for (ich=0; ich<48; ich++)   PMTcharge_arr[ich] = 1000.;     for (ich=0; ich<48; ich++)   PMTcharge_arr[ich] = 1000.;
877    
878    
879    if ((beta_mean < 0.05)  || (beta_mean > 2.0)) {
880      for (Int_t jj=0; jj<48;jj++) charge_PMT_std[jj] = 1001.;
881      for (Int_t jj=0; jj<6;jj++) charge_layer_std[jj] = 1001.;
882      for (Int_t jj=0; jj<6;jj++) layerinfo_std[jj] = 1001.;
883      charge_std = 1001.;
884      ncount_std = 0;
885                                                  }
886    
887    
888      if ((beta_mean > 0.05)  && (beta_mean < 2.0)) {
889    
890     Float_t betahelp =   pow(beta_mean, 1.2);     Float_t betahelp =   pow(beta_mean, 1.2);
891    
892  //=======================================================================  //=======================================================================
# Line 685  Int_t  Layerinfo[6] = {0, 0, 0, 0, 0, 0 Line 909  Int_t  Layerinfo[6] = {0, 0, 0, 0, 0, 0
909            Int_t adcflag = track->adcflag[ipmt];            Int_t adcflag = track->adcflag[ipmt];
910            L2->GetToFLevel2()->GetPMTIndex(pmtadc,jj,kk);            L2->GetToFLevel2()->GetPMTIndex(pmtadc,jj,kk);
911            if (adcflag==0) adc_c[pmtadc] = dEdx;            if (adcflag==0) adc_c[pmtadc] = dEdx;
912            if (adc[pmtadc] > PMTsat[pmtadc]) adc_c[pmtadc] = 1000.;  
913             if (adc[pmtadc] == 4095) adc_c[pmtadc] = 0.;
914             if (adc[pmtadc] == 4095) PMTcharge_arr[pmtadc] = 0.;
915    
916             if ((adc[pmtadc]>PMTsat[pmtadc]) && (adc[pmtadc]<4095)) adc_c[pmtadc] = 1000.;
917                                                                                    
918           if (adc[pmtadc] < PMTsat[pmtadc]) {           if (adc[pmtadc] < PMTsat[pmtadc]) {
919    
920  if ((pmtadc!=4) && (pmtadc!=8) || (pmtadc!=28) || (pmtadc!=31) || (pmtadc!=34) || (pmtadc!=39) && (pmtadc!=41) || (pmtadc!=46)) {  if ((pmtadc!=4) && (pmtadc!=8) && (pmtadc!=28) && (pmtadc!=31) && (pmtadc!=34) && (pmtadc!=39) && (pmtadc!=41) && (pmtadc!=46)) {
921    
922      for ( Int_t jj=0; jj<9; jj++ ){      for ( Int_t jj=0; jj<9; jj++ ){
923      x1[jj] = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean;      x1[jj] = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean;
# Line 702  if ((pmtadc!=4) && (pmtadc!=8) || (pmtad Line 930  if ((pmtadc!=4) && (pmtadc!=8) || (pmtad
930      TGraph *gr2 = new TGraph(n1,x1,y1);      TGraph *gr2 = new TGraph(n1,x1,y1);
931      TSpline3 *spl2 = new TSpline3("grs",gr2);    // use a cubic spline      TSpline3 *spl2 = new TSpline3("grs",gr2);    // use a cubic spline
932      chelp = spl2->Eval(ym);      chelp = spl2->Eval(ym);
933        if (chelp<0.) chelp=0.0001;  //WM new
934      charge = TMath::Sqrt(chelp);      charge = TMath::Sqrt(chelp);
935    
936      gr2->Delete();      gr2->Delete();
# Line 717  if ((pmtadc==4) && (pmtadc==8) || (pmtad Line 946  if ((pmtadc==4) && (pmtadc==8) || (pmtad
946           m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl);           m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl);
947           b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl;           b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl;
948           chelp = m*ym + b;           chelp = m*ym + b;
949             if (chelp<0.) chelp=0.0001;  //WM new
950           charge= TMath::Sqrt(chelp);           charge= TMath::Sqrt(chelp);
951           PMTcharge_arr[pmtadc] = charge;           PMTcharge_arr[pmtadc] = charge;
952                               }                               }
# Line 768  Int_t ihelp_a[6] = {0,16,28,32,36,42}; Line 998  Int_t ihelp_a[6] = {0,16,28,32,36,42};
998    
999  for (Int_t ilay=0; ilay<6; ilay ++) {  for (Int_t ilay=0; ilay<6; ilay ++) {
1000  Int_t jj = PaddleIdOfTrack[ilay] ;  Int_t jj = PaddleIdOfTrack[ilay] ;
1001  Float_t xhelp = 1000.;  //Float_t xhelp = 1000.;
1002    Float_t xhelp = 1005.;
1003    
1004  if (jj == -1) Layerinfo[ilay] = -1;  if (jj == -1) Layerinfo[ilay] = -1;
1005    
1006  if (jj != -1) {  if (jj != -1) {
1007  Int_t ih = ihelp_a[ilay] + 2*jj;  Int_t ih = ihelp_a[ilay] + 2*jj;
1008    
1009    // New WM
1010    Int_t igood1=0;
1011    Int_t igood2=0;
1012    if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih] > 0.)) igood1=1;
1013    if ((PMTcharge_arr[ih+1] < 1000.) && (PMTcharge_arr[ih+1] > 0.)) igood2=1;
1014    
1015    if ((PMTcharge_arr[ih]==0.) && (PMTcharge_arr[ih+1]==0.))  xhelp = 0.;
1016    if ((igood1==1)&&(igood2==1)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ;
1017    if ((igood1==1)&&(igood2==0)) xhelp = PMTcharge_arr[ih];
1018    if ((igood2==1)&&(igood1==0)) xhelp = PMTcharge_arr[ih+1];
1019    
1020    
1021    /*
1022  if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ;  if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ;
1023  if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.))  xhelp = PMTcharge_arr[ih] ;  if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.))  xhelp = PMTcharge_arr[ih] ;
1024  if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.))  xhelp = PMTcharge_arr[ih+1] ;  if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.))  xhelp = PMTcharge_arr[ih+1] ;
1025    */
1026    
1027     if (adc[ih] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1;     if (adc[ih] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1;
1028     if (adc[ih+1] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1;     if (adc[ih+1] ==  4095) Layerinfo[ilay] = Layerinfo[ilay] + 1;
# Line 801  Float_t xb = beta_mean; Line 1047  Float_t xb = beta_mean;
1047  for (Int_t ii=0; ii<6;  ii++) {  for (Int_t ii=0; ii<6;  ii++) {
1048  Int_t ic = 0;  Int_t ic = 0;
1049  Float_t corr[4] = {1., 0., 0., 0.};  Float_t corr[4] = {1., 0., 0., 0.};
1050  for (Int_t iii=1; iii<9;  iii++) if (fabs(Layercharge[ii] - iii)<0.50) ic = iii;  //for (Int_t iii=1; iii<9;  iii++) if (fabs(Layercharge[ii] - iii)<0.50) ic = iii;
1051    for (Int_t iii=1; iii<10;  iii++) if (fabs(Layercharge[ii] - iii)<0.50) ic = iii;
1052  if ((ic>0)&&(ic<=5)) for (Int_t iii=0; iii<4;  iii++) corr[iii] = corr_a[ic-1][iii];  if ((ic>0)&&(ic<=5)) for (Int_t iii=0; iii<4;  iii++) corr[iii] = corr_a[ic-1][iii];
1053  if (ic >5) for (Int_t iii=0; iii<4;  iii++) corr[iii] = corr_a[5][iii];  if (ic >5) for (Int_t iii=0; iii<4;  iii++) corr[iii] = corr_a[5][iii];
1054    
# Line 810  Float_t c_corr = corr[0]+corr[1]*xb+corr Line 1057  Float_t c_corr = corr[0]+corr[1]*xb+corr
1057  if ((ic>0)&&(ic<=5)) c_corr = c_corr/(1.*ic) ;  if ((ic>0)&&(ic<=5)) c_corr = c_corr/(1.*ic) ;
1058  if (ic>5) c_corr = c_corr/6. ;  if (ic>5) c_corr = c_corr/6. ;
1059    
1060    //cout<<Layercharge[ii]<<" "<<ic<<" "<<c_corr<<" => ";
1061  Layercharge[ii] = Layercharge[ii]/c_corr;  Layercharge[ii] = Layercharge[ii]/c_corr;
1062    //cout<<Layercharge[ii]<<endl;
1063    
1064                              }                              }
1065    
1066    
1067  //==========================================================================  //==========================================================================
1068    //cout<<"In ToFNuclei Std: ";
1069    //for (Int_t ilay=0; ilay<6; ilay ++) cout<<Layercharge[ilay]<<" ";
1070    //cout<<endl;
1071  //==========================================================================  //==========================================================================
1072    
1073    
   
1074  Int_t  icount=0;  Int_t  icount=0;
1075  Float_t charge_mean = 0.;  Float_t charge_mean = 0.;
1076  for (Int_t ii=0; ii<6;  ii++) {  for (Int_t ii=0; ii<6;  ii++) {
# Line 827  if (Layercharge[ii] < 1000) icount++; Line 1079  if (Layercharge[ii] < 1000) icount++;
1079                              }                              }
1080  if (icount>0) charge_mean = charge_mean/(1.*icount) ;  if (icount>0) charge_mean = charge_mean/(1.*icount) ;
1081    
1082    if (icount>0) {
1083    
1084    //for (Int_t ii=0; ii<6;  ii++) cout<<Layercharge[ii]<<" ";
1085    //cout<<endl;
1086    
1087    
1088      vector<float> charge_v;
1089      Float_t charge_median = 0.;
1090    
1091      ////////  get the median charge ////////////
1092      for(Int_t ii=0;ii<6;ii++) {
1093      if (Layercharge[ii] < 1000) charge_v.push_back(Layercharge[ii]);
1094                                }
1095    
1096      std::sort(charge_v.begin(),charge_v.end());
1097      charge_median = charge_v[(int)(charge_v.size()/2+charge_v.size()%2)-1];
1098    
1099    //cout<<charge_mean<<" "<<charge_median<<endl;
1100    
1101      charge_mean = charge_median;
1102    
1103    }  // icount>0
1104    
1105  //--- Calculate charge for the second time, use residuals of the single  //--- Calculate charge for the second time, use residuals of the single
1106  //--- measurements to get a chi2 value  //--- measurements to get a chi2 value
# Line 873  if (icount>0) charge_mean = charge_mean/ Line 1147  if (icount>0) charge_mean = charge_mean/
1147    
1148  //  charge_tof = charge_chi;  //  charge_tof = charge_chi;
1149    
1150   } // 0.05 < fabs( beta) < 1.5  // changed 30-01-2009 WM
1151    
1152      for (Int_t jj=0; jj<48;jj++) charge_PMT_std[jj] = PMTcharge_arr[jj];
1153    for (Int_t jj=0; jj<6;jj++) charge_layer_std[jj] = Layercharge[jj];    for (Int_t jj=0; jj<6;jj++) charge_layer_std[jj] = Layercharge[jj];
1154    for (Int_t jj=0; jj<6;jj++) layerinfo_std[jj] = Layerinfo[jj];    for (Int_t jj=0; jj<6;jj++) layerinfo_std[jj] = Layerinfo[jj];
1155    charge_std = charge_chi;    charge_std = charge_chi;
1156    ncount_std = ncount;    ncount_std = ncount;
1157    
1158     } // 0.05 < fabs( beta) < 2.0
1159    
1160    
1161  } // standalone track found  } // standalone track found
1162    
1163  }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.23