From 569587685d4f721ad8acae023ea6bc576fa7ecba Mon Sep 17 00:00:00 2001 From: jotwinow Date: Mon, 8 Aug 2011 17:02:42 +0000 Subject: [PATCH] THnSpase merging switch added in AliPerformanceObject (Michael Knichel) --- PWG1/TPC/AliPerformanceDEdx.cxx | 11 +++++++++-- PWG1/TPC/AliPerformanceDEdx.h | 3 ++- PWG1/TPC/AliPerformanceMatch.cxx | 11 +++++++++-- PWG1/TPC/AliPerformanceMatch.h | 4 +++- PWG1/TPC/AliPerformanceObject.cxx | 2 ++ PWG1/TPC/AliPerformanceObject.h | 9 ++++++++- PWG1/TPC/AliPerformanceTPC.cxx | 11 +++++++++-- PWG1/TPC/AliPerformanceTPC.h | 4 +++- 8 files changed, 45 insertions(+), 10 deletions(-) diff --git a/PWG1/TPC/AliPerformanceDEdx.cxx b/PWG1/TPC/AliPerformanceDEdx.cxx index 0b9e3cb195e..fb3590568a4 100644 --- a/PWG1/TPC/AliPerformanceDEdx.cxx +++ b/PWG1/TPC/AliPerformanceDEdx.cxx @@ -65,6 +65,7 @@ using namespace std; ClassImp(AliPerformanceDEdx) Bool_t AliPerformanceDEdx::fgMergeTHnSparse = kFALSE; +Bool_t AliPerformanceDEdx::fgUseMergeTHnSparse = kFALSE; //_____________________________________________________________________________ AliPerformanceDEdx::AliPerformanceDEdx(): @@ -179,6 +180,10 @@ void AliPerformanceDEdx::Init() // init folder fAnalysisFolder = CreateFolder("folderDEdx","Analysis de/dx Folder"); + + // save merge status in object + fMergeTHnSparseObj = fgMergeTHnSparse; + } //_____________________________________________________________________________ @@ -285,6 +290,8 @@ Long64_t AliPerformanceDEdx::Merge(TCollection* const list) if (list->IsEmpty()) return 1; + + Bool_t merge = ((fgUseMergeTHnSparse && fgMergeTHnSparse) || (!fgUseMergeTHnSparse && fMergeTHnSparseObj)); TIterator* iter = list->MakeIterator(); TObject* obj = 0; @@ -297,7 +304,7 @@ Long64_t AliPerformanceDEdx::Merge(TCollection* const list) { AliPerformanceDEdx* entry = dynamic_cast(obj); if (entry == 0) continue; - if (fgMergeTHnSparse) { + if (merge) { if ((fDeDxHisto) && (entry->fDeDxHisto)) { fDeDxHisto->Add(entry->fDeDxHisto); } } // the analysisfolder is only merged if present @@ -307,7 +314,7 @@ Long64_t AliPerformanceDEdx::Merge(TCollection* const list) } if (fFolderObj) { fFolderObj->Merge(objArrayList); } // to signal that track histos were not merged: reset - if (!fgMergeTHnSparse) { fDeDxHisto->Reset(); } + if (!merge) { fDeDxHisto->Reset(); } // delete if (objArrayList) delete objArrayList; objArrayList=0; diff --git a/PWG1/TPC/AliPerformanceDEdx.h b/PWG1/TPC/AliPerformanceDEdx.h index 0fdc086fac7..ba3cb065165 100644 --- a/PWG1/TPC/AliPerformanceDEdx.h +++ b/PWG1/TPC/AliPerformanceDEdx.h @@ -48,7 +48,7 @@ public : virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;} static Bool_t GetMergeTHnSparse() { return fgMergeTHnSparse; } - static void SetMergeTHnSparse(Bool_t mergeTHnSparse) { fgMergeTHnSparse = mergeTHnSparse; } + static void SetMergeTHnSparse(Bool_t mergeTHnSparse) {fgUseMergeTHnSparse = kTRUE; fgMergeTHnSparse = mergeTHnSparse; } // Create folder for analysed histograms TFolder *CreateFolder(TString folder = "folderDEdx",TString title = "Analysed DEdx histograms"); @@ -82,6 +82,7 @@ public : private: static Bool_t fgMergeTHnSparse; + static Bool_t fgUseMergeTHnSparse; // TPC dE/dx THnSparseF *fDeDxHisto; //-> signal:phi:y:z:snp:tgl:ncls:p diff --git a/PWG1/TPC/AliPerformanceMatch.cxx b/PWG1/TPC/AliPerformanceMatch.cxx index d49a3da0aad..aa3f918eb2b 100644 --- a/PWG1/TPC/AliPerformanceMatch.cxx +++ b/PWG1/TPC/AliPerformanceMatch.cxx @@ -66,6 +66,7 @@ using namespace std; ClassImp(AliPerformanceMatch) Bool_t AliPerformanceMatch::fgMergeTHnSparse = kFALSE; +Bool_t AliPerformanceMatch::fgUseMergeTHnSparse = kFALSE; //_____________________________________________________________________________ AliPerformanceMatch::AliPerformanceMatch(): @@ -205,6 +206,10 @@ void AliPerformanceMatch::Init(){ // init folder fAnalysisFolder = CreateFolder("folderMatch","Analysis Matching Folder"); + + // save merge status in object + fMergeTHnSparseObj = fgMergeTHnSparse; + } //_____________________________________________________________________________ @@ -583,6 +588,8 @@ Long64_t AliPerformanceMatch::Merge(TCollection* const list) if (list->IsEmpty()) return 1; + + Bool_t merge = ((fgUseMergeTHnSparse && fgMergeTHnSparse) || (!fgUseMergeTHnSparse && fMergeTHnSparseObj)); TIterator* iter = list->MakeIterator(); TObject* obj = 0; @@ -595,7 +602,7 @@ Long64_t AliPerformanceMatch::Merge(TCollection* const list) { AliPerformanceMatch* entry = dynamic_cast(obj); if (entry == 0) continue; - if (fgMergeTHnSparse) { + if (merge) { if ((fResolHisto) && (entry->fResolHisto)) { fResolHisto->Add(entry->fResolHisto); } if ((fPullHisto) && (entry->fPullHisto)) { fPullHisto->Add(entry->fPullHisto); } if ((fTrackingEffHisto) && (entry->fTrackingEffHisto)) { fTrackingEffHisto->Add(entry->fTrackingEffHisto); } @@ -607,7 +614,7 @@ Long64_t AliPerformanceMatch::Merge(TCollection* const list) } if (fFolderObj) { fFolderObj->Merge(objArrayList); } // to signal that track histos were not merged: reset - if (!fgMergeTHnSparse) { fResolHisto->Reset(); fPullHisto->Reset(); fTrackingEffHisto->Reset(); } + if (!merge) { fResolHisto->Reset(); fPullHisto->Reset(); fTrackingEffHisto->Reset(); } // delete if (objArrayList) delete objArrayList; objArrayList=0; return count; diff --git a/PWG1/TPC/AliPerformanceMatch.h b/PWG1/TPC/AliPerformanceMatch.h index d718b043d89..fcf5a30c588 100644 --- a/PWG1/TPC/AliPerformanceMatch.h +++ b/PWG1/TPC/AliPerformanceMatch.h @@ -88,13 +88,15 @@ public : TObjArray* GetHistos() const { return fFolderObj; } static Bool_t GetMergeTHnSparse() { return fgMergeTHnSparse; } - static void SetMergeTHnSparse(Bool_t mergeTHnSparse) { fgMergeTHnSparse = mergeTHnSparse; } + static void SetMergeTHnSparse(Bool_t mergeTHnSparse) {fgUseMergeTHnSparse = kTRUE; fgMergeTHnSparse = mergeTHnSparse; } + void SetUseHLT(Bool_t useHLT = kTRUE) {fUseHLT = useHLT;} Bool_t GetUseHLT() { return fUseHLT; } private: static Bool_t fgMergeTHnSparse; + static Bool_t fgUseMergeTHnSparse; // // Control histograms diff --git a/PWG1/TPC/AliPerformanceObject.cxx b/PWG1/TPC/AliPerformanceObject.cxx index 7a52b241347..dc13d9fd232 100644 --- a/PWG1/TPC/AliPerformanceObject.cxx +++ b/PWG1/TPC/AliPerformanceObject.cxx @@ -43,6 +43,7 @@ ClassImp(AliPerformanceObject) //_____________________________________________________________________________ AliPerformanceObject::AliPerformanceObject(): TNamed("AliPerformanceObject","AliPerformanceObject"), + fMergeTHnSparseObj(kFALSE), fAnalysisMode(-1), fRunNumber(-1), fHptGenerator(kFALSE), @@ -59,6 +60,7 @@ AliPerformanceObject::AliPerformanceObject(): //_____________________________________________________________________________ AliPerformanceObject::AliPerformanceObject(const char* name, const char* title, Int_t run, Bool_t highMult): TNamed(name,title), + fMergeTHnSparseObj(kFALSE), fAnalysisMode(-1), fRunNumber(run), fHptGenerator(kFALSE), diff --git a/PWG1/TPC/AliPerformanceObject.h b/PWG1/TPC/AliPerformanceObject.h index 920d5c44294..7a16f7b0893 100644 --- a/PWG1/TPC/AliPerformanceObject.h +++ b/PWG1/TPC/AliPerformanceObject.h @@ -86,6 +86,10 @@ public : Bool_t IsHighMultiplicity() { return fHighMultiplicity; } + // merging of thnsparse + Bool_t GetMergeTHnSparseObj() { return fMergeTHnSparseObj; } + void SetMergeTHnSparseObj(Bool_t merge) {fMergeTHnSparseObj = merge; } + void SetRunNumber(Int_t run) { fRunNumber = run; } Int_t GetRunNumber() const { return fRunNumber; } @@ -107,6 +111,9 @@ protected: void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, Int_t yDim, TString* selString = 0); void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, Int_t yDim, Int_t zDim, TString* selString = 0); + // merge THnSparse + Bool_t fMergeTHnSparseObj; + // analysis mode Int_t fAnalysisMode; // 0-TPC, 1-TPCITS, 2-Constrained, 3-TPC inner wall, 4-TPC outer wall @@ -133,7 +140,7 @@ protected: AliPerformanceObject(const AliPerformanceObject&); // not implemented AliPerformanceObject& operator=(const AliPerformanceObject&); // not implemented - ClassDef(AliPerformanceObject,6); + ClassDef(AliPerformanceObject,7); }; #endif diff --git a/PWG1/TPC/AliPerformanceTPC.cxx b/PWG1/TPC/AliPerformanceTPC.cxx index f8e25ae88bc..f730be2c007 100644 --- a/PWG1/TPC/AliPerformanceTPC.cxx +++ b/PWG1/TPC/AliPerformanceTPC.cxx @@ -72,6 +72,7 @@ using namespace std; ClassImp(AliPerformanceTPC) Bool_t AliPerformanceTPC::fgMergeTHnSparse = kFALSE; +Bool_t AliPerformanceTPC::fgUseMergeTHnSparse = kFALSE; //_____________________________________________________________________________ @@ -267,6 +268,10 @@ void AliPerformanceTPC::Init() fAnalysisFolder = CreateFolder("folderTPC","Analysis Resolution Folder"); //delete []binsCOverPt; + + // save merge status in object + fMergeTHnSparseObj = fgMergeTHnSparse; + } @@ -774,6 +779,8 @@ Long64_t AliPerformanceTPC::Merge(TCollection* const list) if (list->IsEmpty()) return 1; + + Bool_t merge = ((fgUseMergeTHnSparse && fgMergeTHnSparse) || (!fgUseMergeTHnSparse && fMergeTHnSparseObj)); TIterator* iter = list->MakeIterator(); TObject* obj = 0; @@ -786,7 +793,7 @@ Long64_t AliPerformanceTPC::Merge(TCollection* const list) { AliPerformanceTPC* entry = dynamic_cast(obj); if (entry == 0) continue; - if (fgMergeTHnSparse) { + if (merge) { if ((fTPCClustHisto) && (entry->fTPCClustHisto)) { fTPCClustHisto->Add(entry->fTPCClustHisto); } if ((fTPCEventHisto) && (entry->fTPCEventHisto)) { fTPCEventHisto->Add(entry->fTPCEventHisto); } if ((fTPCTrackHisto) && (entry->fTPCTrackHisto)) { fTPCTrackHisto->Add(entry->fTPCTrackHisto); } @@ -798,7 +805,7 @@ Long64_t AliPerformanceTPC::Merge(TCollection* const list) } if (fFolderObj) { fFolderObj->Merge(objArrayList); } // to signal that track histos were not merged: reset - if (!fgMergeTHnSparse) { fTPCTrackHisto->Reset(); fTPCClustHisto->Reset(); fTPCEventHisto->Reset(); } + if (!merge) { fTPCTrackHisto->Reset(); fTPCClustHisto->Reset(); fTPCEventHisto->Reset(); } // delete if (objArrayList) delete objArrayList; objArrayList=0; return count; diff --git a/PWG1/TPC/AliPerformanceTPC.h b/PWG1/TPC/AliPerformanceTPC.h index 60490d252be..31890f40e4b 100644 --- a/PWG1/TPC/AliPerformanceTPC.h +++ b/PWG1/TPC/AliPerformanceTPC.h @@ -79,7 +79,8 @@ public : TObjArray* GetHistos() const { return fFolderObj; } static Bool_t GetMergeTHnSparse() { return fgMergeTHnSparse; } - static void SetMergeTHnSparse(Bool_t mergeTHnSparse) { fgMergeTHnSparse = mergeTHnSparse; } + static void SetMergeTHnSparse(Bool_t mergeTHnSparse) {fgUseMergeTHnSparse = kTRUE; fgMergeTHnSparse = mergeTHnSparse; } + void SetUseHLT(Bool_t useHLT = kTRUE) {fUseHLT = useHLT;} Bool_t GetUseHLT() { return fUseHLT; } @@ -87,6 +88,7 @@ public : private: static Bool_t fgMergeTHnSparse; + static Bool_t fgUseMergeTHnSparse; // TPC histogram THnSparseF *fTPCClustHisto; //-> padRow:phi:TPCside -- 2.43.0