]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCAnalysisTaskcalib.cxx
Removing coverity reports
[u/mrichter/AliRoot.git] / TPC / AliTPCAnalysisTaskcalib.cxx
index c46b0ee27f05484bf8c3b1c574f542800828ee53..cbbaef4a093801312276cf3ae29671cd329ebe86 100644 (file)
@@ -16,7 +16,8 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
-// blaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa //
+// ANALYSIS task to perrorm TPC calibration                                  //
+
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 #include "AliTPCAnalysisTaskcalib.h"
@@ -29,6 +30,9 @@
 #include "AliTPCseed.h"
 #include "AliESDInputHandler.h"
 #include "AliAnalysisManager.h"
+#include "TFile.h"
+#include "TSystem.h"
+#include "TTimeStamp.h"
 
 ClassImp(AliTPCAnalysisTaskcalib)
 
@@ -38,7 +42,7 @@ AliTPCAnalysisTaskcalib::AliTPCAnalysisTaskcalib()
    fCalibJobs(0),
    fESD(0),
    fESDfriend(0),
-   fDebugOutputPath()
+   fDebugOutputPath("")
 {
   //
   // default constructor
@@ -52,7 +56,7 @@ AliTPCAnalysisTaskcalib::AliTPCAnalysisTaskcalib(const char *name)
    fCalibJobs(0),
    fESD(0),
    fESDfriend(0),
-   fDebugOutputPath()
+   fDebugOutputPath("")
 {
   //
   // Constructor
@@ -60,7 +64,7 @@ AliTPCAnalysisTaskcalib::AliTPCAnalysisTaskcalib(const char *name)
   DefineInput(0, TChain::Class());
   DefineOutput(0, TObjArray::Class());
   fCalibJobs = new TObjArray(0);
-  fCalibJobs->SetOwner(kFALSE);
+  fCalibJobs->SetOwner(kTRUE);
 }
 
 AliTPCAnalysisTaskcalib::~AliTPCAnalysisTaskcalib() {
@@ -68,7 +72,7 @@ AliTPCAnalysisTaskcalib::~AliTPCAnalysisTaskcalib() {
   // destructor
   //
   printf("AliTPCAnalysisTaskcalib::~AliTPCAnalysisTaskcalib");
-  //fCalibJobs->Delete();
+  fCalibJobs->Delete();
 }
 
 void AliTPCAnalysisTaskcalib::Exec(Option_t *) {
@@ -76,12 +80,12 @@ void AliTPCAnalysisTaskcalib::Exec(Option_t *) {
   // Exec function
   // Loop over tracks and call  Process function
   if (!fESD) {
-    Printf("ERROR: fESD not available");
+    //Printf("ERROR: fESD not available");
     return;
   }
   fESDfriend=static_cast<AliESDfriend*>(fESD->FindListObject("AliESDfriend"));
   if (!fESDfriend) {
-    Printf("ERROR: fESDfriend not available");
+    //Printf("ERROR: fESDfriend not available");
     return;
   }
   Int_t n=fESD->GetNumberOfTracks();
@@ -92,6 +96,7 @@ void AliTPCAnalysisTaskcalib::Exec(Option_t *) {
     AliESDtrack *track=fESD->GetTrack(i);
     TObject *calibObject=0;
     AliTPCseed *seed=0;
+    if (!friendTrack) continue;
     for (Int_t j=0;(calibObject=friendTrack->GetCalibObject(j));++j)
       if ((seed=dynamic_cast<AliTPCseed*>(calibObject)))
        break;
@@ -108,16 +113,16 @@ void AliTPCAnalysisTaskcalib::ConnectInputData(Option_t *) {
   //
   TTree* tree=dynamic_cast<TTree*>(GetInputData(0));
   if (!tree) {
-    Printf("ERROR: Could not read chain from input slot 0");
+    //Printf("ERROR: Could not read chain from input slot 0");
   } 
   else {
     AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
     if (!esdH) {
-      Printf("ERROR: Could not get ESDInputHandler");
+      //Printf("ERROR: Could not get ESDInputHandler");
     } 
     else {
       fESD = esdH->GetEvent();
-      Printf("*** CONNECTED NEW EVENT ****");
+      //Printf("*** CONNECTED NEW EVENT ****");
     }
   }
 }
@@ -126,6 +131,7 @@ void AliTPCAnalysisTaskcalib::CreateOutputObjects() {
   //
   //
   //
+  //OpenFile(0, "RECREATE");
 }
 void AliTPCAnalysisTaskcalib::Terminate(Option_t */*option*/) {
   //
@@ -137,6 +143,7 @@ void AliTPCAnalysisTaskcalib::Terminate(Option_t */*option*/) {
     job = (AliTPCcalibBase*)fCalibJobs->UncheckedAt(i);
     if (job) job->Terminate();
   }
+  
 }
 
 void AliTPCAnalysisTaskcalib::FinishTaskOutput()
@@ -146,7 +153,10 @@ void AliTPCAnalysisTaskcalib::FinishTaskOutput()
   // on the slaves before sending data
   //
   Terminate("slave");
-  RegisterDebugOutput();
+  if(!fDebugOutputPath.IsNull()) { 
+    RegisterDebugOutput();
+  }
+  
 }
 
 
@@ -158,7 +168,11 @@ void AliTPCAnalysisTaskcalib::Process(AliESDEvent *event) {
   Int_t njobs = fCalibJobs->GetEntriesFast();
   for (Int_t i=0;i<njobs;i++){
     job = (AliTPCcalibBase*)fCalibJobs->UncheckedAt(i);
-    if (job) job->Process(event);
+    if (job) {
+      job->UpdateEventInfo(event);
+      if (job->AcceptTrigger())
+       job->Process(event);
+    }
   }
 }
 
@@ -170,7 +184,9 @@ void AliTPCAnalysisTaskcalib::Process(AliTPCseed *track) {
   Int_t njobs = fCalibJobs->GetEntriesFast();
   for (Int_t i=0;i<njobs;i++){
     job = (AliTPCcalibBase*)fCalibJobs->UncheckedAt(i);
-    if (job) job->Process(track);
+    if (job)  
+      if (job->AcceptTrigger())
+       job->Process(track);
   }
 }
 
@@ -182,7 +198,9 @@ void AliTPCAnalysisTaskcalib::Process(AliESDtrack *track, Int_t run) {
   Int_t njobs = fCalibJobs->GetEntriesFast();
   for (Int_t i=0;i<njobs;i++){
     job = (AliTPCcalibBase*)fCalibJobs->UncheckedAt(i);
-    if (job) job->Process(track,run);
+    if (job) 
+      if (job->AcceptTrigger())
+       job->Process(track,run);
   }
 }
 
@@ -218,4 +236,26 @@ void AliTPCAnalysisTaskcalib::RegisterDebugOutput(){
     job = (AliTPCcalibBase*)fCalibJobs->UncheckedAt(i);
     if (job) job->RegisterDebugOutput(fDebugOutputPath.Data());
   }
+  TString dsName=GetName();
+  dsName+=".root";
+  TFile fff(dsName.Data(),"recreate");
+  fCalibJobs->Write("TPCCalib",TObject::kSingleKey);
+  fff.Close();
+  //
+  // store  - copy debug output to the destination position
+  // currently ONLY for local copy
+  TString dsName2=fDebugOutputPath.Data();
+  gSystem->MakeDirectory(dsName2.Data());
+  dsName2+=gSystem->HostName();
+  gSystem->MakeDirectory(dsName2.Data());
+  dsName2+="/";
+  TTimeStamp s;
+  dsName2+=Int_t(s.GetNanoSec());
+  dsName2+="/";
+  gSystem->MakeDirectory(dsName2.Data());
+  dsName2+=dsName;
+  AliInfo(Form("copy %s\t%s\n",dsName.Data(),dsName2.Data()));
+  printf("copy %s\t%s\n",dsName.Data(),dsName2.Data());
+  TFile::Cp(dsName.Data(),dsName2.Data());
+
 }