X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCAnalysisTaskcalib.cxx;h=cd45550adedb44b37a46304f9d01beaaaf52bb46;hb=6deef1fab212488c11df4dcb7fbf1d8827e1b85d;hp=aa0cd235fb4ea42350490deef1c5c83a52ea4fd6;hpb=fc492d0d02be95cbdb2649a8e44dc66ac4ffe003;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCAnalysisTaskcalib.cxx b/TPC/AliTPCAnalysisTaskcalib.cxx index aa0cd235fb4..cd45550aded 100644 --- a/TPC/AliTPCAnalysisTaskcalib.cxx +++ b/TPC/AliTPCAnalysisTaskcalib.cxx @@ -30,6 +30,9 @@ #include "AliTPCseed.h" #include "AliESDInputHandler.h" #include "AliAnalysisManager.h" +#include "TFile.h" +#include "TSystem.h" +#include "TTimeStamp.h" ClassImp(AliTPCAnalysisTaskcalib) @@ -39,7 +42,7 @@ AliTPCAnalysisTaskcalib::AliTPCAnalysisTaskcalib() fCalibJobs(0), fESD(0), fESDfriend(0), - fDebugOutputPath() + fDebugOutputPath("") { // // default constructor @@ -53,7 +56,7 @@ AliTPCAnalysisTaskcalib::AliTPCAnalysisTaskcalib(const char *name) fCalibJobs(0), fESD(0), fESDfriend(0), - fDebugOutputPath() + fDebugOutputPath("") { // // Constructor @@ -61,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() { @@ -69,7 +72,7 @@ AliTPCAnalysisTaskcalib::~AliTPCAnalysisTaskcalib() { // destructor // printf("AliTPCAnalysisTaskcalib::~AliTPCAnalysisTaskcalib"); - //fCalibJobs->Delete(); + fCalibJobs->Delete(); } void AliTPCAnalysisTaskcalib::Exec(Option_t *) { @@ -85,6 +88,7 @@ void AliTPCAnalysisTaskcalib::Exec(Option_t *) { //Printf("ERROR: fESDfriend not available"); return; } + if (fESDfriend->TestSkipBit()) return; Int_t n=fESD->GetNumberOfTracks(); Process(fESD); Int_t run = fESD->GetRunNumber(); @@ -93,6 +97,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(calibObject))) break; @@ -127,7 +132,11 @@ void AliTPCAnalysisTaskcalib::CreateOutputObjects() { // // // + //OpenFile(0, "RECREATE"); + + PostData(0,fCalibJobs); } + void AliTPCAnalysisTaskcalib::Terminate(Option_t */*option*/) { // // Terminate @@ -138,6 +147,7 @@ void AliTPCAnalysisTaskcalib::Terminate(Option_t */*option*/) { job = (AliTPCcalibBase*)fCalibJobs->UncheckedAt(i); if (job) job->Terminate(); } + } void AliTPCAnalysisTaskcalib::FinishTaskOutput() @@ -147,7 +157,10 @@ void AliTPCAnalysisTaskcalib::FinishTaskOutput() // on the slaves before sending data // Terminate("slave"); - RegisterDebugOutput(); + if(!fDebugOutputPath.IsNull()) { + RegisterDebugOutput(); + } + } @@ -159,7 +172,11 @@ void AliTPCAnalysisTaskcalib::Process(AliESDEvent *event) { Int_t njobs = fCalibJobs->GetEntriesFast(); for (Int_t i=0;iUncheckedAt(i); - if (job) job->Process(event); + if (job) { + job->UpdateEventInfo(event); + if (job->AcceptTrigger()) + job->Process(event); + } } } @@ -171,7 +188,9 @@ void AliTPCAnalysisTaskcalib::Process(AliTPCseed *track) { Int_t njobs = fCalibJobs->GetEntriesFast(); for (Int_t i=0;iUncheckedAt(i); - if (job) job->Process(track); + if (job) + if (job->AcceptTrigger()) + job->Process(track); } } @@ -183,7 +202,9 @@ void AliTPCAnalysisTaskcalib::Process(AliESDtrack *track, Int_t run) { Int_t njobs = fCalibJobs->GetEntriesFast(); for (Int_t i=0;iUncheckedAt(i); - if (job) job->Process(track,run); + if (job) + if (job->AcceptTrigger()) + job->Process(track,run); } } @@ -219,4 +240,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()); + }