]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - T0/AliT0CalibWalk.cxx
added more info and fixed calc
[u/mrichter/AliRoot.git] / T0 / AliT0CalibWalk.cxx
index fb1b3d7b96f89570e141f76092599b8d28974155..59007069f5302a3b39b0155b2eb26deff40d64fd 100644 (file)
@@ -35,6 +35,8 @@
 #include <TProfile.h>
 #include <TF1.h>
 
+using std::cout;
+using std::endl;
 ClassImp(AliT0CalibWalk)
 
 //________________________________________________________________
@@ -128,15 +130,15 @@ Bool_t AliT0CalibWalk::MakeWalkCorrGraph(const char *laserFile)
       Float_t x2[50], xx2[50],y2[50];
       Float_t xx1[50],yy1[50], xx[50];
       
-      Float_t cfd0[24];
-      Int_t startim = 0;
+      Float_t cfd0 = 0;
       
       for (Int_t ii=0; ii<nmips; ii++)
        x1[ii] = y1[ii] = x2[ii] = y2[ii] = 0; 
       
       for (Int_t i=0; i<24; i++)
        {
-         for (Int_t im=startim; im<nmips; im++)
+         cfd0 = 0;
+         for (Int_t im=0; im<nmips; im++)
            {         
              TString cfd = Form("hCFD%i_%i",i+1,im+1);
              TString qtc = Form("hQTC%i_%i",i+1,im+1);
@@ -159,15 +161,17 @@ Bool_t AliT0CalibWalk::MakeWalkCorrGraph(const char *laserFile)
                printf("no peak in CFD spectrum for PMT %i amplitude %i\n",i,im);
                return ok;
              }
-             
              if(hCFD && hCFD->GetEntries()>500 ) {
                if( hCFD->GetRMS() >= 1.5) 
                  GetMeanAndSigma(hCFD, cfdmean, sigma);
                else
                  cfdmean = hCFD->GetMean();
                
-               if (im == 0) cfd0[i] = cfdmean;
-               y1[im] =  cfdmean - cfd0[i];
+               Int_t   maxBin = hCFD->GetMaximumBin(); 
+               Double_t  meanEstimate = hCFD->GetBinCenter( maxBin); 
+               if(TMath::Abs(meanEstimate - cfdmean) > 20 ) cfdmean = meanEstimate; 
+               if (im == 0) cfd0 = cfdmean;
+               y1[im] =  cfdmean - cfd0;
              } 
              if(hQTC && hQTC->GetEntries()>500) {
                GetMeanAndSigma(hQTC, qtmean, sigma);
@@ -224,7 +228,7 @@ Bool_t AliT0CalibWalk::MakeWalkCorrGraph(const char *laserFile)
       //         cout<<" add amp "<<i<<endl;
       
       if(i==23)
-       cout<<"Graphs created..."<<endl;
+       cout<<"Graphs created..."<<endl;   
        }
     } //if gFile exits
 
@@ -234,7 +238,7 @@ Bool_t AliT0CalibWalk::MakeWalkCorrGraph(const char *laserFile)
 void AliT0CalibWalk::GetMeanAndSigma(TH1F* hist, Float_t &mean, Float_t &sigma) 
 {
 
-  const double window = 5.;  //fit window 
+  const double window = 2.;  //fit window 
  
   double meanEstimate, sigmaEstimate; 
   int maxBin;
@@ -247,6 +251,7 @@ void AliT0CalibWalk::GetMeanAndSigma(TH1F* hist, Float_t &mean, Float_t &sigma)
 
   mean  = (Float_t) fit->GetParameter(1);
   sigma = (Float_t) fit->GetParameter(2);
+  printf(" mean %f max %f sigma %f \n",mean, meanEstimate , sigma);  
 
   delete fit;
 }