]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - T0/AliT0CalibTimeEq.cxx
warning fixed
[u/mrichter/AliRoot.git] / T0 / AliT0CalibTimeEq.cxx
index 1baad64f77380f8113339d56c200f10afbc1e863..6ea38be691f41d9d9a29cc1aa10f8dea9056a34d 100644 (file)
@@ -40,7 +40,11 @@ ClassImp(AliT0CalibTimeEq)
                                       fRmsVertex(0)      
 {
   //
-
+  for(Int_t i=0; i<24; i++) {
+   fTimeEq[i] = 0;           // Time Equalized for OCDB         
+   fTimeEqRms[i] = -1;       // RMS of Time Equalized for OCDB  
+   for (Int_t ih=0; ih<5; ih++)   fCFDvalue[i][ih] = 0;
+  }
 }
 
 //________________________________________________________________
@@ -54,6 +58,11 @@ AliT0CalibTimeEq::AliT0CalibTimeEq(const char* name):TNamed(),
   namst += name;
   SetName(namst.Data());
   SetTitle(namst.Data());
+  for(Int_t i=0; i<24; i++) {
+   fTimeEq[i] = 0;           // Time Equalized for OCDB         
+   fTimeEqRms[i] = -1;       // RMS of Time Equalized for OCDB  
+   for (Int_t ih=0; ih<5; ih++)   fCFDvalue[i][ih] = 0;
+  }
 }
 
 //________________________________________________________________
@@ -64,7 +73,7 @@ AliT0CalibTimeEq::AliT0CalibTimeEq(const AliT0CalibTimeEq& calibda):TNamed(calib
 // copy constructor
   SetName(calibda.GetName());
   SetTitle(calibda.GetName());
-
+  ((AliT0CalibTimeEq &) calibda).Copy(*this);
 
 }
 
@@ -75,6 +84,7 @@ AliT0CalibTimeEq &AliT0CalibTimeEq::operator =(const AliT0CalibTimeEq& calibda)
   SetName(calibda.GetName());
   SetTitle(calibda.GetName());
  
+  if (this != &calibda) (( AliT0CalibTimeEq &) calibda).Copy(*this);
   return *this;
 }
 
@@ -101,8 +111,8 @@ void  AliT0CalibTimeEq::Print(Option_t*) const
 
   printf("\n   ----    PM Arrays       ----\n\n");
   printf(" Time delay CFD \n");
-  for (Int_t i=0; i<24; i++) printf(" CFD  %f ",fTimeEq[i]);
-  printf("\n Mean Vertex %f \n", fMeanVertex);
+  for (Int_t i=0; i<24; i++) 
+    printf(" CFD  %f diff %f  \n",fCFDvalue[i][0],fTimeEq[i]);
 } 
 
 
@@ -117,6 +127,7 @@ Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
   Int_t okdiff=0;
   Int_t oktime=0;
   Bool_t ok=false;
+  //
   gFile = TFile::Open(filePhys);
   if(!gFile) {
     AliError("No input PHYS data found ");
@@ -126,9 +137,8 @@ Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
       ok=true;
       for (Int_t i=0; i<24; i++)
        {
-
          meandiff = sigmadiff =  meanver = meancfdtime = sigmacfdtime =0;
-         TH1F *cfd = (TH1F*) gFile->Get(Form("CFD1minCFD%d",i+1));
+         TH1F *cfd     = (TH1F*) gFile->Get(Form("CFD1minCFD%d",i+1));
          TH1F *cfdtime = (TH1F*) gFile->Get(Form("CFD%d",i+1));
          if(!cfd) {
            AliWarning(Form("no Diff histograms collected by PHYS DA for channel %i", i));
@@ -151,14 +161,18 @@ Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
          }
          if(cfd) {
            nent = Int_t(cfd->GetEntries());
-           if( nent<=50 || cfd->GetRMS() == 0 || cfd->GetMean() ) {
+           if( nent<=50) {
              okdiff++;
+             //              printf(" pmt %i nent %i cfd->GetRMS() %f cfd->GetMean() %f \n",
+             //     i, nent, cfd->GetRMS(), cfd->GetMean() );
              if(okdiff<4) {
                meandiff = 0;
                sigmadiff = 0;
              }
              else
                {
+                 // printf(" OK fsle:: pmt %i nent %i cfd->GetRMS() %f cfd->GetMean() %f \n",
+                 // i, nent, cfd->GetRMS(), cfd->GetMean() );
                  AliWarning(Form(" Not  enouph data in PMT %i- PMT1:  %i ", i, nent));
                  ok = false; 
                }
@@ -179,7 +193,7 @@ Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
          
          if(cfdtime) {
            nent = Int_t(cfdtime->GetEntries());
-           if( nent<=50 || cfdtime->GetRMS() == 0 || cfdtime->GetMean() ) {
+           if( nent<=50 ) {
              oktime++;
              if(oktime<4) {
                meancfdtime = 0;
@@ -190,11 +204,14 @@ Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
                  ok = false; 
                }
            }
-           if(nent > 50 )  { //!!!!!!!!!!
+           if(nent > 50  )  { //!!!!!!!!!!
              if(cfdtime->GetRMS()>1.5 )
                GetMeanAndSigma(cfdtime,meancfdtime, sigmacfdtime);
              if(cfdtime->GetRMS()<=1.5) 
                {
+                 if(cfdtime->GetRMS()==0 ||cfdtime->GetMean()==0 ) {
+                   ok = false;
+                 }
                  meancfdtime = cfdtime->GetMean();
                  sigmacfdtime = cfdtime->GetRMS();
                }
@@ -209,23 +226,21 @@ Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
          if (cfd) delete cfd;
          if (cfdtime) delete cfdtime;
        }
-      TH1F *ver = (TH1F*) gFile->Get("hVertex");
+      TH1F *ver = (TH1F*) gFile->Get("hVertex") ;
       if(ver) {
        meanver = ver->GetMean();
        rmsver = ver->GetRMS();
       }
       SetMeanVertex(meanver);
       SetRmsVertex(rmsver);
-      
       gFile->Close();
       delete gFile;
-      
     }
     return ok; 
 }
 
 //________________________________________________________________
-  Int_t AliT0CalibTimeEq::ComputeOfflineParams(const char* filePhys, Float_t *timecdb, Float_t *cfdvalue, Int_t badpmt)
+Int_t AliT0CalibTimeEq::ComputeOfflineParams(const char* filePhys, Float_t *timecdb, Float_t *cfdvalue, Int_t badpmt)
 {
   // fStatus implementation:
   //ok means
@@ -249,7 +264,7 @@ Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
   Int_t okcfd=0;
   TH1F *cfddiff = NULL; 
   TH1F *cfdtime = NULL;
-  TObjArray * TzeroObj = NULL;
+  TObjArray * tzeroObj = NULL;
 
   gFile = TFile::Open(filePhys);
   if(!gFile) {
@@ -260,14 +275,14 @@ Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
   else
     {
       meandiff = sigmadiff =  meanver = meancfdtime = sigmacfdtime =0;
-      TDirectory *dr = (TDirectory*) gFile->Get("T0Calib");
-      if (dr)   TzeroObj = (TObjArray*) dr->Get("T0Calib");
+      //      TDirectory *dr = (TDirectory*) gFile->Get("T0Calib");
+      tzeroObj = dynamic_cast<TObjArray*>(gFile->Get("T0Calib"));
       for (Int_t i=0; i<24; i++)
        {
-         if (i != badpmt) {
-           if(TzeroObj) {
-             cfddiff = (TH1F*)TzeroObj->FindObject(Form("CFD1minCFD%d",i+1));
-             cfdtime = (TH1F*)TzeroObj->FindObject(Form("CFD%d",i+1));
+         if (i != badpmt) {        
+           if(tzeroObj) {
+             cfddiff = (TH1F*) tzeroObj->FindObject(Form("CFD1minCFD%d",i+1));
+             cfdtime = (TH1F*)tzeroObj->FindObject(Form("CFD%d",i+1));
            }
            else
              {
@@ -394,11 +409,9 @@ Bool_t AliT0CalibTimeEq::ComputeOnlineParams(const char* filePhys)
          if (cfddiff) cfddiff->Reset();
          if (cfdtime) cfdtime->Reset();
          } //bad pmt
-       }
-      
+       }      
       gFile->Close();
       delete gFile;
-
     }
     return ok; 
    }