Added log outputs
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 6 May 2007 13:24:54 +0000 (13:24 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 6 May 2007 13:24:54 +0000 (13:24 +0000)
13 files changed:
ESDCheck/AliAnalysisTaskPt.cxx
ESDCheck/AliEMCALQATask.cxx
ESDCheck/AliHMPIDQATask.cxx
ESDCheck/AliMUONQATask.cxx
ESDCheck/AliPHOSQATask.cxx
ESDCheck/AliPMDQATask.cxx
ESDCheck/AliT0QATask.cxx
ESDCheck/AliTOFQATask.cxx
ESDCheck/AliTOFQATask.h
ESDCheck/AliTRDQATask.cxx
ESDCheck/AliVZEROQATask.cxx
ESDCheck/Makefile
ESDCheck/ana.C

index ab95280..8e6614c 100644 (file)
@@ -121,6 +121,8 @@ void AliAnalysisTaskPt::Terminate(Option_t *)
 {
   // Processing when the event loop is ended
 
+  Bool_t problem=kFALSE;
+
   AliInfo(Form(" *** %s Report:", GetName())) ; 
 
   TCanvas *c1 = new TCanvas("c1","Pt",10,10,310,310);
@@ -143,5 +145,13 @@ void AliAnalysisTaskPt::Terminate(Option_t *)
   sprintf(line, ".!rm -fR *.eps"); 
   gROOT->ProcessLine(line);
 
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;
+  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
+  char * report ; 
+  if(problem)
+    report="Problems found, please check!!!";  
+  else 
+    report="OK";
+  
+  AliInfo(Form("*** %s Summary Report: %s \n",GetName(), report)) ; 
 }
index 045aa7f..bd37807 100644 (file)
@@ -211,6 +211,7 @@ void AliEMCALQATask::Terminate(Option_t *)
   fhEMCALInvariantMass = (TH1D*)fOutputContainer->At(6);
   fhEMCALDigitsEvent = (TH1I*)fOutputContainer->At(7);
  
+  Bool_t problem = kFALSE ; 
   AliInfo(Form(" *** %s Report:", GetName())) ; 
   printf("        EMCALEnergy Mean        : %5.3f , RMS : %5.3f \n", fhEMCALEnergy->GetMean(),        fhEMCALEnergy->GetRMS()        ) ;
   printf("        EMCALDigits Mean        : %5.3f , RMS : %5.3f \n", fhEMCALDigits->GetMean(),        fhEMCALDigits->GetRMS()        ) ;
@@ -269,5 +270,13 @@ void AliEMCALQATask::Terminate(Option_t *)
   sprintf(line, ".!rm -fR *.eps"); 
   gROOT->ProcessLine(line);
  
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;
+  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
+
+  char * report ; 
+  if(problem)
+    report="Problems found, please check!!!";  
+  else 
+    report="OK";
+
+  AliInfo(Form("*** %s Summary Report: %s \n",GetName(), report)) ; 
 }
index 2e0b6e2..4da33f2 100644 (file)
@@ -184,6 +184,7 @@ void AliHMPIDQATask::Terminate(Option_t *)
   fhHMPIDProb[3] = (TH1F*)fOutputContainer->At(7);
   fhHMPIDProb[4] = (TH1F*)fOutputContainer->At(8);
 
+  Bool_t problem = kFALSE ; 
   AliInfo(Form(" *** %s Report:", GetName())) ; 
 
   Float_t n = 1.292 ; //mean freon ref idx 
@@ -240,5 +241,13 @@ void AliHMPIDQATask::Terminate(Option_t *)
   sprintf(line, ".!rm -fR *.eps"); 
   gROOT->ProcessLine(line);
   
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;
+  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
+
+  char * report ; 
+  if(problem)
+    report="Problems found, please check!!!";  
+  else 
+    report="OK";
+
+  AliInfo(Form("*** %s Summary Report: %s \n",GetName(), report)) ; 
 }
index 0d9f4fe..137c679 100644 (file)
@@ -279,95 +279,104 @@ void AliMUONQATask::Terminate(Option_t *)
       effMatch = 100 * fnTrackTrig / ftracktot ;
       fheffMatchT->Fill(effMatch);}
 
-  AliInfo(Form(" *** %s Report:", GetName())) ; 
+    Bool_t problem = kFALSE ; 
+    AliInfo(Form(" *** %s Report:", GetName())) ; 
 
-  fOutputContainer = (TObjArray*)GetOutputData(0);
-  fhMUONVertex = (TH1F*)fOutputContainer->At(0);
-  fhMUONMult   = (TH1F*)fOutputContainer->At(1); 
-  fhPt  = (TH1F*)fOutputContainer->At(2); 
-  fhY  = (TH1F*)fOutputContainer->At(3); 
-  fheffMatchT=(TH1F*)fOutputContainer->At(4); 
-  fhSLowpt=(TH1F*)fOutputContainer->At(5); 
-  fhUSLowpt=(TH1F*)fOutputContainer->At(6); 
-  fhUSHighpt=(TH1F*)fOutputContainer->At(7);
-  fhLSLowpt=(TH1F*)fOutputContainer->At(8); 
-  fhLSHighpt=(TH1F*)fOutputContainer->At(9);
-
-  printf("         Total number of processed events  %d      \n", fnevents) ;
-  printf("     \n")  ;
-  printf("     \n")  ;
-  printf("     Table 1:                                         \n") ;
-   printf("    ===================================================\n") ;
- printf("      Global Trigger output       Low pt  High pt \n") ;
-  printf("     number of Single      :\t");
-  printf("     %i\t", fSLowpt) ;
-  printf("\n");
-  printf("     number of UnlikeSign pair  :\t"); 
-  printf("     %i\t%i\t", fUSLowpt, fUSHighpt) ;
-  printf("\n");
-  printf("     number of LikeSign pair    :\t");  
-  printf("     %i\t%i\t", fLSLowpt, fLSHighpt) ;
-  printf("\n");
-  printf("     matching efficiency with the trigger for single tracks = %2d %% \n", effMatch);
-  printf("\n") ;
-  
-TCanvas * cMUON1 = new TCanvas("cMUON1", "MUON ESD Vert & Mult", 400, 10, 600, 700) ;
-  cMUON1->Divide(1,2) ;
-  cMUON1->cd(1) ;
- fhMUONVertex->SetXTitle("Vz (cm)");
-  fhMUONVertex->Draw() ;
-  cMUON1->cd(2) ;
-  fhMUONMult->SetXTitle(" Track Multiplicity");
-  fhMUONMult->Draw() ;
-  cMUON1->Print("MUON1.eps") ; 
-
-  TCanvas * cMUON2 = new TCanvas("cMUON2", "MUON ESD Pt & Y", 400, 10, 600, 700) ;
-  cMUON2->Divide(1,2) ;
-  cMUON2->cd(1) ;
-  fhPt->SetXTitle("Pt (GeV)");
-  fhPt->Draw() ;
-  cMUON2->cd(2) ;
-  fhY->SetXTitle("Y");
-  fhY->Draw() ;
-  cMUON2->Print("MUON2.eps") ;
-  
-  TCanvas * cMUON3 = new TCanvas("cMUON3", "Track Chi2 by dof and Chi2 of trigger/track matching ", 400, 10, 600, 700) ;
-  cMUON3->Divide(1,2) ;
-  cMUON3->cd(1) ;
-  fhChi2->SetXTitle("Chi2 by d.o.f.");
-  fhChi2->Draw();
-  cMUON3->cd(2) ;
-  fhChi2match->SetXTitle("Chi2 of trig/track matching");
-  fhChi2match->Draw();
-  cMUON3->Print("MUON3.eps") ;
-  
-  TCanvas * cMUON4 = new TCanvas("cMUON4", "Trigger Matching and Trigger Response (%)", 400, 10, 600, 700) ;
-  cMUON4->Divide(2,3) ;
-  cMUON4->cd(1) ;
-  fheffMatchT->SetXTitle("%");
-  fheffMatchT->Draw() ;
-  cMUON4->cd(2) ;
-  fhSLowpt->SetXTitle("%");
-  fhSLowpt->Draw() ;
-  cMUON4->cd(3) ;
-  fhUSLowpt->SetXTitle("%");
-  fhUSLowpt->Draw() ;
-  cMUON4->cd(4) ;
-  fhUSHighpt->SetXTitle("%");
-  fhUSHighpt->Draw() ;
-  cMUON4->cd(5) ;
-  fhLSLowpt->SetXTitle("%");
-  fhLSLowpt->Draw() ;
-  cMUON4->cd(6) ;
-  fhLSHighpt->SetXTitle("%");
-  fhLSHighpt->Draw() ;
-  cMUON4->Print("MUON4.eps") ;
-  char line[1024] ; 
-  sprintf(line, ".!tar -zcf %s.tar.gz *.eps", GetName()) ; 
-  gROOT->ProcessLine(line);
-  sprintf(line, ".!rm -fR *.eps"); 
-  gROOT->ProcessLine(line);
+    fOutputContainer = (TObjArray*)GetOutputData(0);
+    fhMUONVertex = (TH1F*)fOutputContainer->At(0);
+    fhMUONMult   = (TH1F*)fOutputContainer->At(1); 
+    fhPt  = (TH1F*)fOutputContainer->At(2); 
+    fhY  = (TH1F*)fOutputContainer->At(3); 
+    fheffMatchT=(TH1F*)fOutputContainer->At(4); 
+    fhSLowpt=(TH1F*)fOutputContainer->At(5); 
+    fhUSLowpt=(TH1F*)fOutputContainer->At(6); 
+    fhUSHighpt=(TH1F*)fOutputContainer->At(7);
+    fhLSLowpt=(TH1F*)fOutputContainer->At(8); 
+    fhLSHighpt=(TH1F*)fOutputContainer->At(9);
+    
+    printf("         Total number of processed events  %d      \n", fnevents) ;
+    printf("     \n")  ;
+    printf("     \n")  ;
+    printf("     Table 1:                                         \n") ;
+    printf("    ===================================================\n") ;
+    printf("      Global Trigger output       Low pt  High pt \n") ;
+    printf("     number of Single      :\t");
+    printf("     %i\t", fSLowpt) ;
+    printf("\n");
+    printf("     number of UnlikeSign pair  :\t"); 
+    printf("     %i\t%i\t", fUSLowpt, fUSHighpt) ;
+    printf("\n");
+    printf("     number of LikeSign pair    :\t");  
+    printf("     %i\t%i\t", fLSLowpt, fLSHighpt) ;
+    printf("\n");
+    printf("     matching efficiency with the trigger for single tracks = %2d %% \n", effMatch);
+    printf("\n") ;
+    
+    TCanvas * cMUON1 = new TCanvas("cMUON1", "MUON ESD Vert & Mult", 400, 10, 600, 700) ;
+    cMUON1->Divide(1,2) ;
+    cMUON1->cd(1) ;
+    fhMUONVertex->SetXTitle("Vz (cm)");
+    fhMUONVertex->Draw() ;
+    cMUON1->cd(2) ;
+    fhMUONMult->SetXTitle(" Track Multiplicity");
+    fhMUONMult->Draw() ;
+    cMUON1->Print("MUON1.eps") ; 
+    
+    TCanvas * cMUON2 = new TCanvas("cMUON2", "MUON ESD Pt & Y", 400, 10, 600, 700) ;
+    cMUON2->Divide(1,2) ;
+    cMUON2->cd(1) ;
+    fhPt->SetXTitle("Pt (GeV)");
+    fhPt->Draw() ;
+    cMUON2->cd(2) ;
+    fhY->SetXTitle("Y");
+    fhY->Draw() ;
+    cMUON2->Print("MUON2.eps") ;
+    
+    TCanvas * cMUON3 = new TCanvas("cMUON3", "Track Chi2 by dof and Chi2 of trigger/track matching ", 400, 10, 600, 700) ;
+    cMUON3->Divide(1,2) ;
+    cMUON3->cd(1) ;
+    fhChi2->SetXTitle("Chi2 by d.o.f.");
+    fhChi2->Draw();
+    cMUON3->cd(2) ;
+    fhChi2match->SetXTitle("Chi2 of trig/track matching");
+    fhChi2match->Draw();
+    cMUON3->Print("MUON3.eps") ;
+    
+    TCanvas * cMUON4 = new TCanvas("cMUON4", "Trigger Matching and Trigger Response (%)", 400, 10, 600, 700) ;
+    cMUON4->Divide(2,3) ;
+    cMUON4->cd(1) ;
+    fheffMatchT->SetXTitle("%");
+    fheffMatchT->Draw() ;
+    cMUON4->cd(2) ;
+    fhSLowpt->SetXTitle("%");
+    fhSLowpt->Draw() ;
+    cMUON4->cd(3) ;
+    fhUSLowpt->SetXTitle("%");
+    fhUSLowpt->Draw() ;
+    cMUON4->cd(4) ;
+    fhUSHighpt->SetXTitle("%");
+    fhUSHighpt->Draw() ;
+    cMUON4->cd(5) ;
+    fhLSLowpt->SetXTitle("%");
+    fhLSLowpt->Draw() ;
+    cMUON4->cd(6) ;
+    fhLSHighpt->SetXTitle("%");
+    fhLSHighpt->Draw() ;
+    cMUON4->Print("MUON4.eps") ;
+    
+    char line[1024] ; 
+    sprintf(line, ".!tar -zcf %s.tar.gz *.eps", GetName()) ; 
+    gROOT->ProcessLine(line);
+    sprintf(line, ".!rm -fR *.eps"); 
+    gROOT->ProcessLine(line);
+    
+    AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
  
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;
+   char * report ; 
+   if(problem)
+      report="Problems found, please check!!!";  
+    else 
+      report="OK";
+    
+    AliInfo(Form("*** %s Summary Report: %s \n",GetName(), report)) ; 
 }
index a2dfdd9..5063d3c 100644 (file)
@@ -212,6 +212,7 @@ void AliPHOSQATask::Terminate(Option_t *)
   fhPHOSInvariantMass  = (TH1D*)fOutputContainer->At(6);
   fhPHOSDigitsEvent    = (TH1I*)fOutputContainer->At(7);
 
+  Bool_t problem = kFALSE ; 
   AliInfo(Form(" *** %s Report:", GetName())) ; 
   printf("        PHOSEnergy Mean         : %5.3f , RMS : %5.3f \n", fhPHOSEnergy->GetMean(),         fhPHOSEnergy->GetRMS()         ) ;
   printf("        PHOSDigits Mean         : %5.3f , RMS : %5.3f \n", fhPHOSDigits->GetMean(),         fhPHOSDigits->GetRMS()         ) ;
@@ -268,5 +269,13 @@ void AliPHOSQATask::Terminate(Option_t *)
   sprintf(line, ".!rm -fR *.eps"); 
   gROOT->ProcessLine(line);
  
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;
+  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
+
+  char * report ; 
+  if(problem)
+    report="Problems found, please check!!!";  
+  else 
+    report="OK";
+
+  AliInfo(Form("*** %s Summary Report: %s \n",GetName(), report)) ; 
 }
index 91a4c93..1533932 100644 (file)
@@ -474,6 +474,7 @@ void AliPMDQATask::Terminate(Option_t *)
   fhPMDSM24 = (TH2F*)fOutputContainer->At(36);
   fhPMDSM   = (TH1F*)fOutputContainer->At(37);
 
+  Bool_t problem = kFALSE ; 
   AliInfo(Form(" *** %s Report:", GetName())) ; 
 
   gStyle->SetOptStat(110000);
@@ -586,8 +587,15 @@ void AliPMDQATask::Terminate(Option_t *)
   sprintf(line, ".!tar -zcf %s.tar.gz *.eps", GetName()) ; 
   gROOT->ProcessLine(line);
   
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;
+  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
   
+  char * report ; 
+  if(problem)
+    report="Problems found, please check!!!";  
+  else 
+    report="OK";
+
+  AliInfo(Form("*** %s Summary Report: %s \n",GetName(), report)) ; 
 }
 
 //______________________________________________________________________________
index 451ef5a..56db7fd 100644 (file)
@@ -142,15 +142,17 @@ void AliT0QATask::Terminate(Option_t *)
   fhT02 = (TH1F*)fOutputContainer->At(1);
   fhT03 = (TH1F*)fOutputContainer->At(2);
 
+  Bool_t problem = kFALSE ; 
   AliInfo(Form(" *** %s Report:", GetName())) ; 
 
   Float_t mean = fhT02->GetMean();
 
   printf ("mean time T0 ps %f\n", mean) ;
 
-  if ( mean > 12600 || mean < 12400 ) 
+  if ( mean > 12600 || mean < 12400 ) {
    AliWarning (" !!!!!!!!!!-----events sample is WRONG - T0 unreal -------");  
-
+   problem = kTRUE ;
+  }
   TCanvas  * cTO1 = new TCanvas("cT01", "T0 ESD Test", 400, 10, 600, 700) ;
   cTO1->Divide(2, 2) ;
 
@@ -172,5 +174,13 @@ void AliT0QATask::Terminate(Option_t *)
   sprintf(line, ".!rm -fR *.eps"); 
   gROOT->ProcessLine(line);
  
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;
+  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
+
+  char * report ; 
+  if(problem)
+    report="Problems found, please check!!!";  
+  else 
+    report="OK";
+
+  AliInfo(Form("*** %s Summary Report: %s\n",GetName(), report)) ; 
 }
index 5a1ff1d..132308d 100644 (file)
 #include <TGaxis.h>
 #include <TLatex.h>
 #include <TPad.h>
+#include <TSpectrum.h>
+#include <TF1.h>
 #include <TROOT.h>
 
 #include "AliTOFQATask.h" 
 #include "AliESD.h" 
 #include "AliESDtrack.h" 
 #include "AliLog.h"
-#include "Riostream.h"
 
 //______________________________________________________________________________
 AliTOFQATask::AliTOFQATask(const char *name) : 
@@ -59,7 +60,11 @@ AliTOFQATask::AliTOFQATask(const char *name) :
   fhTOFDeltaTimeMT(0),
   fhTOFIDSpecies(0),
   fhTOFMassVsMom(0),
-  fhTOFMass(0)
+  fhTOFMass(0),
+  fmatchFracMin(0.15),
+  fmatchEffMin(0.28),
+  ftimePeakMax(0.05),
+  fmassPeakMax(0.05)
 {
   // Constructor.
   // Input slot #0 works with an Ntuple
@@ -91,7 +96,11 @@ AliTOFQATask::AliTOFQATask(const AliTOFQATask &qatask) :
   fhTOFDeltaTimeMT(0),
   fhTOFIDSpecies(0),
   fhTOFMassVsMom(0),
-  fhTOFMass(0)
+  fhTOFMass(0),
+  fmatchFracMin(0.15),
+  fmatchEffMin(0.28),
+  ftimePeakMax(0.05),
+  fmassPeakMax(0.05)
 {
   // Copy Constructor.
   fChain=qatask.fChain;
@@ -115,6 +124,10 @@ AliTOFQATask::AliTOFQATask(const AliTOFQATask &qatask) :
   fhTOFIDSpecies=qatask.fhTOFIDSpecies;
   fhTOFMassVsMom=qatask.fhTOFMassVsMom;
   fhTOFMass=qatask.fhTOFMass;
+  fmatchFracMin=qatask.fmatchFracMin;
+  fmatchEffMin=qatask.fmatchEffMin;
+  ftimePeakMax=qatask.ftimePeakMax;
+  fmassPeakMax=qatask.fmassPeakMax;
 }
 //______________________________________________________________________________
 AliTOFQATask:: ~AliTOFQATask() 
@@ -164,6 +177,10 @@ AliTOFQATask& AliTOFQATask::operator=(const AliTOFQATask &qatask)
   this->fhTOFIDSpecies=qatask.fhTOFIDSpecies;
   this->fhTOFMassVsMom=qatask.fhTOFMassVsMom;
   this->fhTOFMass=qatask.fhTOFMass;
+  this->fmatchFracMin=qatask.fmatchFracMin;
+  this->fmatchEffMin=qatask.fmatchEffMin;
+  this->ftimePeakMax=qatask.ftimePeakMax;
+  this->fmassPeakMax=qatask.fmassPeakMax;
   return *this;
 }
 //______________________________________________________________________________
@@ -181,22 +198,15 @@ void AliTOFQATask::ConnectInputData(const Option_t*)
   }
   
   // One should first check if the branch address was taken by some other task
-  char ** address = (char **)GetBranchAddress(0, "ESD");
-  if (address) {
-    fESD = (AliESD*)(*address);
-  else {
-    fESD = new AliESD();
-    SetBranchAddress(0, "ESD", &fESD);
+  char ** address = (char **)GetBranchAddress(0, "ESD") ;
+  if (address) 
+    fESD = (AliESD *)(*address) ; 
+  else {
+    fESD = new AliESD() ; 
+    SetBranchAddress(0, "ESD", &fESD) ;  
   }
 }
 
-//________________________________________________________________________
-void AliTOFQATask::CreateOutputObjects()
-{
-// Create histograms
-  BookHistos();
-}
-
 //______________________________________________________________________________
 void AliTOFQATask::Exec(Option_t *) 
 {
@@ -208,7 +218,7 @@ void AliTOFQATask::Exec(Option_t *)
   Int_t npidok=0;
   Int_t pisel=0,kasel=0,prsel=0,elsel=0,musel=0;
   //Set equal a-priori weights (just charged hadrions)
-  Int_t nCalinSec=8736;
+  const Int_t nCalinSec=8736;
   Double_t c[5]={0, 0, 1, 1, 1};
   // Processing of one event
   Long64_t entry = fChain->GetReadEntry() ;  
@@ -326,11 +336,10 @@ void AliTOFQATask::Exec(Option_t *)
   fhTOFMatch->Fill(fracM);
 
   PostData(0, fOutputContainer);  
-  // AliInfo("Finishing event processing...") ; 
 
 }
 //______________________________________________________________________________
-void AliTOFQATask::BookHistos()
+void AliTOFQATask::CreateOutputObjects()
 {  
   // Construct histograms:
   
@@ -420,15 +429,18 @@ void AliTOFQATask::GetEfficiency()
 }
 
 //______________________________________________________________________________
-void AliTOFQATask::DrawHistos() 
+Bool_t AliTOFQATask::DrawHistos() 
 {
-  // Makes a few plots
 
-  AliInfo("Plotting....") ; 
+
+  Int_t TOFsectors[18]={0,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,1};//TOF sectors which are supposed to be present
+  const char* part[3]={"pions","kaons","protons"};// pi,ka,pr
+  const Float_t masses[3]={0.1396,0.494,0.938};// particle masses pi,ka,pr
+  // Makes a few plots
 
   gROOT->SetStyle("Plain");
   gStyle->SetPalette(1);
-  gStyle->SetOptStat(110010);
+  gStyle->SetOptStat(111110);
   gStyle->SetPalette(1);
   gStyle->SetCanvasColor(0);
   gStyle->SetFrameFillColor(0);
@@ -466,6 +478,8 @@ void AliTOFQATask::DrawHistos()
   fhTOFeffMom->GetYaxis()->SetTitle("Fraction of matched ESD tracks");
   fhTOFeffMom->SetFillColor(4);
   fhTOFeffMom->Draw();
+  fhTOFeffMom->Fit("pol0","Q","",0.5,3.);
+  TF1 *fitMom = fhTOFeffMom->GetFunction("pol0");
   fhTOFeffMom->Draw("histo,same");
   
   cTOFeff->Print("TOF_eff.eps");
@@ -475,18 +489,21 @@ void AliTOFQATask::DrawHistos()
   TCanvas * cTOFtime = new TCanvas("cTOFtime", "TOF measured Times ", 400, 30, 550, 630) ;  
   cTOFtime->Divide(1,2) ;
   cTOFtime->cd(1);
-  if ( fhTOFTime->GetMaximum() > 0 )  
+  if ( fhTOFTime->GetMaximum() > 0 ) 
     cTOFtime->GetPad(1)->SetLogy(1);
   fhTOFTime->GetXaxis()->SetTitle("TOF time (ns)");
   fhTOFTime->GetYaxis()->SetTitle("Entries");
   fhTOFTime->SetFillColor(4);
   fhTOFTime->Draw();
   cTOFtime->cd(2);
-  if ( fhTOFDeltaTime->GetMaximum() > 0 )  
+  if ( fhTOFDeltaTime->GetMaximum() > 0 ) 
     cTOFtime->GetPad(2)->SetLogy(1);
   fhTOFDeltaTime->GetXaxis()->SetTitle("t^{TOF}-t^{exp}_{#pi} (ns)");
   fhTOFDeltaTime->GetYaxis()->SetTitle("Entries");
   fhTOFDeltaTime->SetFillColor(4);
+  Int_t ntimepeak=1;
+  TSpectrum *timeDiff = new TSpectrum(2*ntimepeak);
+  Int_t ntime = timeDiff->Search(fhTOFDeltaTime,ntimepeak," ",0.1);
   fhTOFDeltaTime->Draw();
 
   cTOFtime->Print("TOF_time.eps");
@@ -495,13 +512,17 @@ void AliTOFQATask::DrawHistos()
   TCanvas * cTOFpid = new TCanvas("cTOFpid", "TOF PID ", 400, 30, 550, 630) ;  
   cTOFpid->Divide(1,3) ;
   cTOFpid->cd(1);
-  if ( fhTOFMass->GetMaximum() > 0 )  
+  if ( fhTOFMass->GetMaximum() > 0 ) 
     cTOFpid->SetLogy(1);
   fhTOFMass->GetXaxis()->SetTitle("Reconstructed Mass (GeV/c^{2})");
   fhTOFMass->GetYaxis()->SetTitle("Entries");
   fhTOFMass->SetFillColor(4);
+  Int_t npmass=1;
+  if(fhTOFMass->GetEntries()>1000)npmass=3;
+  TSpectrum *mass = new TSpectrum(2*npmass);
+  Int_t nmass = mass->Search(fhTOFMass,npmass," ",0.02);
   fhTOFMass->Draw();
-  if ( fhTOFMassVsMom->GetMaximum() > 0 )  
+  if ( fhTOFMassVsMom->GetMaximum() > 0 ) 
     cTOFpid->SetLogy(0);
   cTOFpid->cd(2);
   fhTOFMassVsMom->GetYaxis()->SetRange(0,400);
@@ -537,19 +558,19 @@ void AliTOFQATask::DrawHistos()
   Float_t kafrac=fhTOFIDSpecies->GetBinContent(4);
   Float_t prfrac=fhTOFIDSpecies->GetBinContent(5);
 
-  sprintf(ch,"pion fraction   = %5.3f",pifrac);    
+  sprintf(ch,"[2]:pion fraction   = %5.3f",pifrac);    
   TLatex *   texpi = new TLatex(-0.3, 0.9, ch);
   texpi->SetTextColor(1);
   texpi->SetTextSize(0.05);
   texpi->SetLineWidth(2);
   texpi->Draw();
-  sprintf(ch,"kaon fraction   = %5.3f",kafrac);    
+  sprintf(ch,"[3]:kaon fraction   = %5.3f",kafrac);    
   TLatex *   texka = new TLatex(-0.3, 0.8, ch);
   texka->SetTextColor(1);
   texka->SetTextSize(0.05);
   texka->SetLineWidth(2);
   texka->Draw();
-  sprintf(ch,"proton fraction = %5.3f",prfrac);    
+  sprintf(ch,"[4]:proton fraction = %5.3f",prfrac);    
   TLatex *   texpr = new TLatex(-0.3, 0.7, ch);
   texpr->SetTextColor(1);
   texpr->SetTextSize(0.05);
@@ -559,49 +580,104 @@ void AliTOFQATask::DrawHistos()
 
   cTOFpid->Print("TOF_pid.eps");
 
-  // draw all 
-  //The General
+  char line[1024] ; 
+  sprintf(line, ".!tar -zcf %s.tar.gz *.eps", GetName()) ; 
+  gROOT->ProcessLine(line);
+  sprintf(line, ".!rm -fR *.eps"); 
+  gROOT->ProcessLine(line);
+  AliInfo(Form("*** TOF QA plots saved in %s.tar.gz...", GetName())) ;
+
+  Bool_t problem=kFALSE;
+  //------------------------------Matching Efficiency
+
+  //Overall Fraction:
+  Float_t matchFrac= fhTOFMatch->GetMean();
+  if(matchFrac<fmatchFracMin){
+    AliWarning(Form("*** Overall Fraction of matched tracks too low! Fraction = %f", matchFrac)) ;
+    problem=kTRUE;
+  }else{
+    AliInfo(Form("*** Fraction of matched tracks  = %f", matchFrac)) ; 
+  } 
+
+  if(fhTOFeffMom->GetEntries()<1.){
+    AliWarning(Form("*** No tracks matching with TOF! Fraction is = %f", matchFrac)) ; 
+    problem=kTRUE;
+  }
+
   
+  //The efficiency as a function of momentum:
+  Float_t eff=  fitMom->GetParameter(0);
+  Float_t deff=  fitMom->GetParError(0);
+  if(eff+3*deff<fmatchEffMin){
+    AliWarning(Form("*** Fraction of matched tracks vs Momentum is too low! Fraction= %f", eff)) ;
+    problem=kTRUE;
+  }else{
+    AliInfo(Form("*** Fraction of matched tracks for p>0.5 GeV is = %f", eff)) ;
+  } 
+
+  //Matched tracks vs TOF Sector:
+  for(Int_t isec=1;isec<=18;isec++){
+    if(fhTOFsector->GetBinContent(isec)<1 && TOFsectors[isec-1]>0){
+      AliWarning(Form("*** Missing Entries in sector %i", isec)); 
+      problem=kTRUE;
+    }
+    if(fhTOFsector->GetBinContent(isec)>0 && TOFsectors[isec-1]==0){
+      AliWarning(Form("*** Unexpected Entries in sector %i", isec)); 
+      problem=kTRUE;
+    }
+  }
+
+  //-----------------------------Pid Quality
+
+  // Look at the time - expected time: 
+  if(ntime==0)AliWarning("*** No peak was found in time difference spectrum!");
+  Float_t *timePos = timeDiff->GetPositionX();
+  if(TMath::Abs(timePos[0])>ftimePeakMax){
+    AliWarning(Form("*** Main Peak position in tTOF-TEXP spectrum is sitting far from where expected! Tpeak = %f ps",timePos[0]*1.E3));  
+    problem=kTRUE;
+  }else{
+    AliInfo(Form("*** Main Peak position in tTOF-TEXP found at = %f ps",timePos[0]*1.E3));  
+  }
+  // Look at the Mass Spectrum: 
+  if(nmass==0)AliWarning("*** No peak was found in Mass difference spectrum!");
+  Float_t *massPos = mass->GetPositionX();
+  for(Int_t imass=0;imass<nmass;imass++){   
+    AliInfo(Form("*** the Mass peak for %s found at  = %f GeV/c^2",part[imass],massPos[imass]));
+    if(TMath::Abs( massPos[imass]-masses[imass])> fmassPeakMax){
+      AliWarning(Form("*** the Mass peak position for %s is not in the right place, found at  = %f GeV/c^2",part[imass],massPos[imass]));
+      problem=kTRUE;
+    }
+  }
 
-  //The efficiency  
+  // Look at the ID Species: 
+
+  if(fhTOFIDSpecies->GetEntries()>1000){
+    if(pifrac<0.8 || (kafrac<0.01 || kafrac>0.2) || (prfrac<0.01 || prfrac>0.2)){
+      AliWarning(Form("*** Unexpected Id fractions: pions = %f, kaons = %f, protons %f", pifrac,kafrac,prfrac));
+      problem=kTRUE;
+    }
+  }
+
+  delete mass;
+  delete timeDiff;
+  return problem ; 
 }
 
 //______________________________________________________________________________
 void AliTOFQATask::Terminate(Option_t *)
 {
-  // Processing when the event loop is ended
+  // Processing when the event loop is ended, some plots+checks
   
-  // some plots
-
-  fOutputContainer = (TObjArray*)GetOutputData(0);
-  fhTOFMatch       = (TH1F*)fOutputContainer->At(0);
-  fhESDeffPhi      = (TH1F*)fOutputContainer->At(1);
-  fhESDeffTheta    = (TH1F*)fOutputContainer->At(2);
-  fhESDeffMom      = (TH1F*)fOutputContainer->At(3);
-  fhTOFeffPhi      = (TH1F*)fOutputContainer->At(4);
-  fhTOFeffPhiMT    = (TH1F*)fOutputContainer->At(5);
-  fhTOFeffTheta    = (TH1F*)fOutputContainer->At(6);
-  fhTOFeffThetaMT  = (TH1F*)fOutputContainer->At(7);
-  fhTOFeffMom      = (TH1F*)fOutputContainer->At(8);
-  fhTOFeffMomMT    = (TH1F*)fOutputContainer->At(9);
-  fhTOFsector      = (TH1F*)fOutputContainer->At(10);
-  fhTOFsectorMT    = (TH1F*)fOutputContainer->At(11);
-  fhTOFTime        = (TH1F*)fOutputContainer->At(12);
-  fhTOFDeltaTime   = (TH1F*)fOutputContainer->At(13);
-  fhTOFDeltaTimeMT = (TH1F*)fOutputContainer->At(14);
-  fhTOFIDSpecies   = (TH1F*)fOutputContainer->At(15);
-  fhTOFMassVsMom   = (TH2F*)fOutputContainer->At(16);
-  fhTOFMass        = (TH1F*)fOutputContainer->At(17);
-
-  AliInfo(Form(" *** %s Report:", GetName())) ; 
-
+  AliInfo(Form("*** %s Report:", GetName())) ; 
   GetEfficiency();
-//  PostData(0, fOutputContainer);
-  DrawHistos() ; 
+  Bool_t problem = DrawHistos() ; 
 
-  char line[1024] ; 
-  sprintf(line, ".!tar -zcf %s.tar.gz *.eps", GetName()) ; 
-  gROOT->ProcessLine(line);
+  char * report ; 
+  if(problem)
+    report="Problems found, please check!!!";  
+  else 
+    report="OK";
+
+  AliInfo(Form("*** %s Summary Report: %s\n",GetName(), report)) ; 
   
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;
 }
index fb796d0..3c3e16d 100644 (file)
@@ -24,13 +24,12 @@ public:
   AliTOFQATask& operator=(const AliTOFQATask & qatask); // assignment operator
   virtual ~AliTOFQATask(); //dtor
   virtual void Exec(Option_t * opt = "") ;
-  virtual void ConnectInputData(Option_t *);
-  virtual void CreateOutputObjects();
+  virtual void ConnectInputData(Option_t *) ;
+  virtual void CreateOutputObjects() ; 
   virtual void Terminate(Option_t * opt = "") ;
 
 private:
-  void BookHistos() ;
-  void DrawHistos() ;
+  Bool_t DrawHistos() ;
   void GetEfficiency() ;
   TTree   * fChain ;            //!pointer to the analyzed TTree or TChain
   AliESD  * fESD ;              //! Declaration of leave types
@@ -57,6 +56,12 @@ private:
   TH2F    * fhTOFMassVsMom; //Mass vs Momentum correlation
   TH1F    * fhTOFMass;      //reconstructed Mass from TOF
    
-  ClassDef(AliTOFQATask, 0); //  TOF Quality Assurance analysis task 
+  // Some QA parameters
+
+  Float_t fmatchFracMin;       //Thresholds for QA checks (matched tracks)
+  Float_t fmatchEffMin;        //Thresholds for QA checks (matched tracks)
+  Float_t ftimePeakMax;        //Thresholds for QA checks (time spectrum)
+  Float_t fmassPeakMax;        //Thresholds for QA checks (mass spectrum)
+  ClassDef(AliTOFQATask, 1); //  TOF Quality Assurance analysis task 
 };
 #endif // ALITOFQATASK_H
index e0798e9..87962af 100644 (file)
@@ -398,6 +398,7 @@ void AliTRDQATask::Terminate(Option_t *)
   }
 
   // create efficiency histograms
+  Bool_t problem = kFALSE ; 
   AliInfo(Form(" *** %s Report:", GetName())) ; 
   
   CalculateEff();
@@ -411,7 +412,15 @@ void AliTRDQATask::Terminate(Option_t *)
   sprintf(line, ".!tar -zcf %s.tar.gz *.eps", GetName()) ; 
   gROOT->ProcessLine(line);
   
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;
+  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!!", GetName())) ;
+
+  char * report ; 
+  if(problem)
+    report="Problems found, please check!!!";  
+  else 
+    report="OK";
+
+  AliInfo(Form("*** %s Summary Report: %s\n",GetName(), report)) ; 
 
 }
 
index cbce7da..8ef800b 100644 (file)
@@ -150,6 +150,7 @@ void AliVZEROQATask::Terminate(Option_t *)
   fhVZEROMultA     = (TH1I*)fOutputContainer->At(2);
   fhVZEROMultC     = (TH1I*)fOutputContainer->At(3);
   
+  Bool_t problem = kFALSE ; 
   AliInfo(Form(" *** %s Report:", GetName())) ; 
   printf("        V0A Multiplicity Mean : %5.3f , RMS : %5.3f \n",fhVZEROMultA->GetMean(),fhVZEROMultA->GetRMS());
   printf("        V0C Multiplicity Mean : %5.3f , RMS : %5.3f \n",fhVZEROMultC->GetMean(),fhVZEROMultC->GetRMS());
@@ -189,6 +190,14 @@ void AliVZEROQATask::Terminate(Option_t *)
   sprintf(line, ".!rm -fR *.eps"); 
   gROOT->ProcessLine(line);
  
-  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! \n", GetName())) ;c4->Print("NumberPMsV0C.eps");
+  AliInfo(Form("!!! All the eps files are in %s.tar.gz !!! ", GetName())) ;
+  
+  char * report ; 
+  if(problem)
+    report="Problems found, please check!!!";  
+  else 
+    report="OK";
+  
+  AliInfo(Form("*** %s Summary Report: %s\n",GetName(), report)) ; 
   
 }
index 1772456..0e16723 100644 (file)
@@ -59,7 +59,7 @@ $(PARFILE): $(patsubst %,$(PACKAGE)/%,$(filter-out G__%, $(HDRS_AnalysisCheck) $
        @echo "Creating archive" $@ ...
        @tar cfzh $@ $(PACKAGE)
        @rm -rf $(PACKAGE)
-       @echo "done"
+       @echo $@ "done"
 
 $(PACKAGE)/Makefile: Makefile #.$(PACKAGE)
        @echo Copying $< to $@ with transformations
index d6f22ee..9f1c0c4 100644 (file)
@@ -37,17 +37,21 @@ Bool_t LoadLib( const char* pararchivename)
 
   if ( strstr(pararchivename, "ESD") ) {
     //gSystem->Load("libVMC.so");
-    gSystem->Load("libESD.so");
-    //gSystem->Load("libRAliEn.so") ;
+    //gSystem->Load("libRAliEn.so");
+    gSystem->Load("libESD.so") ;
     //gSystem->Load("libProof.so") ;
   }
 
-  printf("*** %s library loaded *** %s **\n", pararchivename);
+  if ( strstr(pararchivename, "AnalysisCheck") ) {
+    gSystem->Load("libSpectrum.so");
+  }
+  
+  printf("lib%s done\n", pararchivename);
 
   gSystem->ChangeDirectory(cdir);
 
   gIsAnalysisLoaded = kTRUE ; 
-  return rv ;  ; 
+  return rv ; 
 }
 
 //______________________________________________________________________
@@ -148,6 +152,7 @@ void ana()
     analysisChain->AddFile(input);
     ag->Process(analysisChain) ; 
   }
+  return ;
 }
 
 //______________________________________________________________________
@@ -160,17 +165,3 @@ void Merge(const char * xml, const char * sub, const char * out)
   ag->Merge(xml, sub, out) ;
 }
 
-//______________________________________________________________________
-void test(const char * fcollection1) 
-{
-  AliXMLCollection collection1(fcollection1);
- TChain* analysisChain = new TChain("esdTree");
- collection1.Reset();
- while (collection1.Next()) {
-   cout<<"Adding "<<collection1.GetTURL()<<endl;
-   analysisChain->Add(collection1.GetTURL());
- }
- return ;
-}