]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
update from Per Thomas
authordsilverm <dsilverm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Jan 2010 02:18:02 +0000 (02:18 +0000)
committerdsilverm <dsilverm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Jan 2010 02:18:02 +0000 (02:18 +0000)
EMCAL/AliCaloRawAnalyzerPeakFinder.cxx
EMCAL/AliCaloRawAnalyzerPeakFinder.h

index f839260957e58f5c14776fecdf90af3d16af2bd4..898f29d11f9b24c93d1d10149effcf74d88bf9f4 100644 (file)
@@ -85,6 +85,10 @@ AliCaloRawAnalyzerPeakFinder::Evaluate( const vector<AliCaloBunchInfo> &bunchvec
   short maxampindex; //index of maximum amplitude
   short maxamp; //Maximum amplitude
   fAmp = 0;
+  fAmpA[0] = 0;
+  fAmpA[1] = 0;
+  fAmpA[2] = 0;
+
   int index = SelectBunch( bunchvector,  &maxampindex,  &maxamp );
  
   if( index >= 0)
@@ -112,18 +116,56 @@ AliCaloRawAnalyzerPeakFinder::Evaluate( const vector<AliCaloBunchInfo> &bunchvec
              int pfindex = n - fNsampleCut; 
              pfindex = pfindex > SAMPLERANGE ? SAMPLERANGE : pfindex;
 
+             int dt =  maxampindex - startbin -2; 
              for(int i=0; i < SAMPLERANGE; i++ )
                {
-                 int dt =  maxampindex - startbin -2;
-                 double tmp =  fReversed[ dt  +i];  
-                 fAmp += fPFAmpVectors[0][pfindex][i]*tmp; 
+                 //      int dt =  maxampindex - startbin -2;
+                 
+                 //              double tmp[3];
+                 //      tmp[0]  =  fReversed[ dt  +i -1]; 
+                 //              tmp[1]  =  fReversed[ dt  +i];  
+                 //              tmp[2]  =  fReversed[ dt  +i +1]; 
+                 
+                 for(int j = 0; j < 3; j++)
+                   {
+                     //    fAmpA[j] += fPFAmpVectors[0][pfindex][i]*tmp[j]; 
+                     fAmpA[j] += fPFAmpVectors[0][pfindex][i]*fReversed[ dt  +i +j -1];
+
+                   }
+               }
+             
+             double diff = 9999;
+
+             int tmpindex = 0;
+
+             for(int k=0; k < 3; k ++)
+               {
+                 //              cout << __FILE__ << __LINE__ << "amp[="<< k <<"] = " << fAmpA[k] << endl;
+                 if(  TMath::Abs(fAmpA[k] - ( maxamp - ped) )  < diff)
+                   {
+                     diff = TMath::Abs(fAmpA[k] - ( maxamp - ped));
+                     tmpindex = k; 
+                   }
                }
              
-             return AliCaloFitResults( maxamp, ped , -1, fAmp, -1, -1, -1 ); 
+             double tof = 0;
+
+             for(int k=0; k < SAMPLERANGE; k++   )
+               {
+                 tof +=  fPFTofVectors[0][pfindex][k]*fReversed[ dt  +k + tmpindex -1 ];   
+               }
+             
+             tof = tof /  fAmpA[tmpindex];
+
+             //   return AliCaloFitResults( maxamp, ped , -1, fAmp, -1, -1, -1 );  
+             return AliCaloFitResults( maxamp, ped , -1, fAmpA[tmpindex], tof, -2, -3 ); 
+                 
            }
+
          else
            {
-             return AliCaloFitResults( maxamp, ped , -1, maxf, -1, -1, -1 ); 
+             return AliCaloFitResults( maxamp, ped , -5, maxf, -6, -7, -8 ); 
            }
        }
     }
@@ -162,7 +204,8 @@ AliCaloRawAnalyzerPeakFinder::LoadVectors()
              
              for(int m = 0; m < n ; m++ )
                {
-                 fscanf(fp, "%lf\t", &fPFTofVectors[i][j][m] );
+                 fPFTofVectors[i][j][m] = 1;
+        //       fscanf(fp, "%lf\t", &fPFTofVectors[i][j][m] );
                }
              
              fclose (fp);
index d4ad5e60a345064a03f8fb3712a4316f04733586..08cd7f97298f21e65b7fd1c2c2ab340b159ffcf1 100644 (file)
@@ -49,6 +49,9 @@ class  AliCaloRawAnalyzerPeakFinder : public AliCaloRawAnalyzer
   double *fPFTofVectors[MAXSTART][SAMPLERANGE]; // Vectors for TOF extraction
   double fTof; 
   double fAmp;
+  double fAmpA[3];
+  // double fAmp2;
+  // double fAmp3;
 
 };