}
//____________________________________________________________________
-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;
}
void AliTRDcheckESD::Terminate(Option_t *)
{
// Steer post-processing
- if(!IsLoad()){
+ if(!fHistos){
fHistos = dynamic_cast<TObjArray *>(GetOutputData(1));
if(!fHistos){
AliError("Histogram container not found in output");
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
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 *);
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
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);
//______________________________________________________
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<AliTRDrecoTask*>(otask);
task->SetDebugLevel(debug);
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;
//______________________________________________________
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<AliTRDcheckESD*>(otask);
if(!esd){
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;