Index: fact/tools/pyscripts/pyfact/calfactfits.h
===================================================================
--- fact/tools/pyscripts/pyfact/calfactfits.h	(revision 13551)
+++ fact/tools/pyscripts/pyfact/calfactfits.h	(revision 13566)
@@ -139,24 +139,42 @@
 		calib_triggeroffsetmean = new float[calibfile.GetN("TriggerOffsetMean")];
 		calibfile.SetPtrAddress("TriggerOffsetMean", calib_triggeroffsetmean, calibfile.GetN("TriggerOffsetMean"));
-		trigger_offset = new double[calibfile.GetN("TriggerOffsetMean")];
+		trigger_offset = new double[calibfile.GetN("TriggerOffsetMean")*2];
         
         calibfile.GetRow(0);
         
-        for (int i = 0; i < (int)calibfile.GetN("BaselineMean"); ++i)
+int orig_index, new_index1, new_index2;
+        for (int pix=0 ; pix < (int)calib_npix; ++pix)
         {
-            baseline[i] = double(calib_baselinemean[i]) *4096./2000.;
-            baseline[i+(int)calibfile.GetN("BaselineMean")] = double(calib_baselinemean[i]) *4096./2000.; 
+            for (int sl = 0; sl < (int)calib_blm_size; ++sl)
+            {
+                orig_index = pix * (int)calib_blm_size + sl;
+                new_index1 = 2*pix * (int)calib_blm_size + sl;
+                new_index2 = (2*pix+1) * (int)calib_blm_size + sl;
+                
+                baseline[new_index2] = baseline[new_index1] = double(calib_baselinemean[orig_index]) *4096./2000.;
+            }
         }
-        
-        for (int i = 0; i < (int)calibfile.GetN("GainMean"); ++i)
+        for (int pix=0 ; pix < (int)calib_npix; ++pix)
         {
-            gain[i] = double(calib_gainmean[i]) * 1907.35;
-            gain[i+(int)calibfile.GetN("GainMean")] = double(calib_gainmean[i]) * 1907.35 *4096. /2000.;            
+            for (int sl = 0; sl < (int)calib_gm_size; ++sl)
+            {
+                orig_index = pix * (int)calib_gm_size + sl;
+                new_index1 = 2*pix * (int)calib_gm_size + sl;
+                new_index2 = (2*pix+1) * (int)calib_gm_size + sl;
+                
+                gain[new_index2] = gain[new_index1] = double(calib_gainmean[orig_index]) /( 1907.35 /4096. *2000.);
+            }
         }
         
-        for (int i = 0; i < (int)calibfile.GetN("TriggerOffsetMean"); ++i)
+        for (int pix=0 ; pix < (int)calib_npix; ++pix)
         {
-            trigger_offset[i] = double(calib_triggeroffsetmean[i])*4096./2000.;
-            trigger_offset[i+(int)calibfile.GetN("TriggerOffsetMean")] = double(calib_triggeroffsetmean[i])*4096./2000.;
+            for (int sl = 0; sl < (int)calib_tom_size; ++sl)
+            {
+                orig_index = pix * (int)calib_tom_size + sl;
+                new_index1 = 2*pix * (int)calib_tom_size + sl;
+                new_index2 = (2*pix+1) * (int)calib_tom_size + sl;
+                
+                trigger_offset[new_index2] = trigger_offset[new_index1] = double(calib_triggeroffsetmean[orig_index]) *4096. /2000.;
+            }
         }
         
@@ -180,23 +198,12 @@
 	~CalFactFits() //Standard destructor
 	{
-        //cout << "Destructor called       " << endl;
-        //cout << "calib_baselinemean      " << calib_baselinemean << endl;
-		//cout << "calib_gainmean          " << calib_gainmean << endl;
-		//cout << "calib_triggeroffsetmean " << calib_triggeroffsetmean << endl;
-		//cout << "event_data              " << event_data << endl;
-		//cout << "event_offset            " << event_offset << endl;
-		//cout << "event_boardtimes        " << event_boardtimes << endl;
-		//cout << "baseline                " << baseline << endl;
-		//cout << "gain                    " << gain << endl;
-		//cout << "trigger_offset          " << trigger_offset << endl;
-		
 		delete[] calib_baselinemean;
 		delete[] calib_gainmean;
-		//delete[] calib_triggeroffsetmean;
+		delete[] calib_triggeroffsetmean;
 		delete[] event_data;
 		delete[] event_offset;
 		delete[] event_boardtimes;
         delete[] baseline;
-        //delete[] gain;
+        delete[] gain;
         delete[] trigger_offset;
 	}
@@ -225,10 +232,9 @@
 				for(UInt_t slice = 0; slice < data_nroi; slice++)
                 {
-					drs_calib_offset = slice + event_offset[pixel];
+                    drs_calib_offset = slice + event_offset[pixel];
                     raw = (double)event_data[pixel*data_nroi+slice];
-                    raw_bsl = raw - baseline[pixel*calib_blm_size+drs_calib_offset];
-                    shifted = raw_bsl - trigger_offset[pixel*data_nroi+slice];
-					npcaldata[pixel*data_nroi+slice] = shifted / gain[pixel*calib_blm_size+drs_calib_offset];
-                    //npcaldata[pixel*data_nroi+slice] = double((event_data[pixel*data_nroi+slice]*2000./4096.-calib_baselinemean[pixel*calib_blm_size+drs_calib_offset]-calib_triggeroffsetmean[pixel*data_nroi+slice])/calib_gainmean[pixel*calib_blm_size+drs_calib_offset]*1907.35);
+                    raw_bsl = raw - baseline[pixel*calib_blm_size*2+drs_calib_offset];
+                    shifted = raw_bsl - trigger_offset[pixel*data_nroi*2+slice];
+                    npcaldata[pixel*data_nroi+slice] = shifted / gain[pixel*calib_blm_size*2+drs_calib_offset];
 					//Note: data_nroi=calib_nroi, calib_blm_size=calib_gm_size
 				}
