From: abercuci Date: Wed, 5 May 2010 06:14:58 +0000 (+0000) Subject: update task to read results from AnalysisResults.root file X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=97d0ccba96a13281292fd7efd95a2332a91e83be;p=u%2Fmrichter%2FAliRoot.git update task to read results from AnalysisResults.root file --- diff --git a/PWG1/TRD/AliTRDcheckESD.cxx b/PWG1/TRD/AliTRDcheckESD.cxx index 8910eeab086..4a1be79f224 100644 --- a/PWG1/TRD/AliTRDcheckESD.cxx +++ b/PWG1/TRD/AliTRDcheckESD.cxx @@ -508,22 +508,28 @@ TObjArray* AliTRDcheckESD::Histos() } //____________________________________________________________________ -Bool_t AliTRDcheckESD::Load(const Char_t *filename, const Char_t *name) +Bool_t AliTRDcheckESD::Load(const Char_t *file, const Char_t *dir, const Char_t *name) { // Load data from performance file - if(!TFile::Open(filename)){ - AliWarning(Form("Couldn't open file %s.", filename)); + if(!TFile::Open(file)){ + AliWarning(Form("Couldn't open file %s.", file)); return kFALSE; } - TObjArray *o = NULL; - if(!(o = (TObjArray*)gFile->Get(name ? name : GetName()))){ - AliWarning("Missing histogram container."); + if(dir){ + if(!gFile->cd(dir)){ + AliWarning(Form("Couldn't cd to %s in %s.", dir, file)); + return kFALSE; + } + } + TObjArray *o(NULL); + const Char_t *tn=(name ? name : GetName()); + if(!(o = (TObjArray*)gDirectory->Get(tn))){ + AliWarning(Form("Missing histogram container %s.", tn)); return kFALSE; } fHistos = (TObjArray*)o->Clone(GetName()); gFile->Close(); - SETBIT(fStatus, kLoad); return kTRUE; } @@ -543,7 +549,7 @@ Bool_t AliTRDcheckESD::PutTrendValue(const Char_t *name, Double_t val) void AliTRDcheckESD::Terminate(Option_t *) { // Steer post-processing - if(!IsLoad()){ + if(!fHistos){ fHistos = dynamic_cast(GetOutputData(1)); if(!fHistos){ AliError("Histogram container not found in output"); diff --git a/PWG1/TRD/AliTRDcheckESD.h b/PWG1/TRD/AliTRDcheckESD.h index 88416d37e9c..8eeb2c2d80c 100644 --- a/PWG1/TRD/AliTRDcheckESD.h +++ b/PWG1/TRD/AliTRDcheckESD.h @@ -29,8 +29,7 @@ class AliTRDcheckESD : public AliAnalysisTaskSE { public: enum ETRDcheckESDstatus { kMC = BIT(0) // use MC info - ,kLoad = BIT(1) // container from file - ,kCollision = BIT(2) // + ,kCollision = BIT(1) // }; enum ETRDcheckESDhistos { kNCl = 0 // number of clusters per track @@ -59,9 +58,8 @@ public: Bool_t HasMC() const { return TESTBIT(fStatus, kMC);} Bool_t IsCollision() const {return TESTBIT(fStatus, kCollision);} void SetCollision(Bool_t set=kTRUE) {set ? SETBIT(fStatus, kCollision) : CLRBIT(fStatus, kCollision);} - Bool_t IsLoad() const { return TESTBIT(fStatus, kLoad);} TObjArray* Histos(); - Bool_t Load(const Char_t *fn="TRD.Performance.root", const Char_t *name=NULL); + Bool_t Load(const Char_t *fn="AnalysisResults.root", const Char_t *dir="TRD_Performance", const Char_t *name=NULL); void SetMC(Bool_t mc = kTRUE) { mc ? SETBIT(fStatus, kMC) : CLRBIT(fStatus, kMC);} Bool_t PutTrendValue(const Char_t *name, Double_t val); void Terminate(Option_t *); @@ -94,6 +92,7 @@ private: static const Int_t fgkNclTPC; // N clusters TPC static const Float_t fgkPt; // min. pt static const Float_t fgkEta; // eta range + ClassDef(AliTRDcheckESD, 5) // user oriented TRD analysis based on ESD-MC data }; #endif diff --git a/PWG1/TRD/macros/makeResults.C b/PWG1/TRD/macros/makeResults.C index f004a3f99ba..ed67783266c 100644 --- a/PWG1/TRD/macros/makeResults.C +++ b/PWG1/TRD/macros/makeResults.C @@ -98,7 +98,7 @@ void makeResults(Char_t *opt = "ALL", const Char_t *files=0x0, Char_t *cid = "", gStyle->SetOptStat(0); gStyle->SetOptFit(0); - if(files) mergeProd("TRD.Performance.root", files); + if(files) mergeProd("AnalysisResults.root", files); Int_t fSteerTask = ParseOptions(opt); if(!c) c=new TCanvas("c", "Performance", 10, 10, 800, 500); @@ -121,7 +121,7 @@ void makeResults(Char_t *opt = "ALL", const Char_t *files=0x0, Char_t *cid = "", //______________________________________________________ void processTRD(TNamed *otask) { - printf("processTRD %s %s\n", otask->GetName(), otask->GetTitle()); + printf("process[%s] : %s\n", otask->GetName(), otask->GetTitle()); Int_t debug(0); AliTRDrecoTask *task = dynamic_cast(otask); task->SetDebugLevel(debug); @@ -129,7 +129,7 @@ void processTRD(TNamed *otask) task->SetMCdata(mc); task->SetFriends(friends); - if(!task->Load(Form("%s/TRD.Performance.root", gSystem->ExpandPathName("$PWD")))){ + if(!task->Load(Form("%s/AnalysisResults.root", gSystem->ExpandPathName("$PWD")))){ Error("makeResults.C", Form("Load data container for task %s failed.", task->GetName())); delete task; return; @@ -151,7 +151,7 @@ void processTRD(TNamed *otask) //______________________________________________________ void processESD(TNamed *otask) { - printf("processESD %s %s\n", otask->GetName(), otask->GetTitle()); + printf("process[%s] : %s\n", otask->GetName(), otask->GetTitle()); AliTRDcheckESD *esd = dynamic_cast(otask); if(!esd){ @@ -159,8 +159,7 @@ void processESD(TNamed *otask) delete otask; return; } - printf("esd[%p]\n", (void*)esd); - if(!esd->Load(Form("%s/TRD.Performance.root", gSystem->ExpandPathName("$PWD")))){ + if(!esd->Load(Form("%s/AnalysisResults.root", gSystem->ExpandPathName("$PWD")), "TRD_Performance")){ Error("makeResults.C", Form("Load data container for task %s failed.", esd->GetName())); delete esd; return;