From: ssakai Date: Wed, 24 Apr 2013 15:57:57 +0000 (+0000) Subject: add functions for an easy access to HFE results in AliHFEtools, allow for asymmetric... X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;ds=sidebyside;h=cddc311daa09c8aecc987f13d1575547df814903;hp=e9b09fa2ee73ec63403bab7d266e6e1daa28b388;p=u%2Fmrichter%2FAliRoot.git add functions for an easy access to HFE results in AliHFEtools, allow for asymmetric eta range in HFE cuts --- diff --git a/PWGHF/hfe/AliHFEcuts.cxx b/PWGHF/hfe/AliHFEcuts.cxx index 2aecc5047b3..58df04b9e54 100644 --- a/PWGHF/hfe/AliHFEcuts.cxx +++ b/PWGHF/hfe/AliHFEcuts.cxx @@ -114,7 +114,6 @@ AliHFEcuts::AliHFEcuts(): fRequirements(0), fTPCclusterDef(0), fTPCratioDef(0), - fEtaRange(0.8), fMinClustersTPC(0), fMinClustersTPCPID(0), fMinClustersITS(0), @@ -157,7 +156,7 @@ AliHFEcuts::AliHFEcuts(): memset(fPtRange, 0, sizeof(Double_t) * 2); memset(fIPCutParams, 0, sizeof(Float_t) * 4); memset(fSigmaToVtx, 0, sizeof(Double_t) * 3); - + fEtaRange[0] = -0.8; fEtaRange[1] = 0.8; } //__________________________________________________________________ @@ -166,7 +165,6 @@ AliHFEcuts::AliHFEcuts(const Char_t *name, const Char_t *title): fRequirements(0), fTPCclusterDef(0), fTPCratioDef(0), - fEtaRange(0.8), fMinClustersTPC(0), fMinClustersTPCPID(0), fMinClustersITS(0), @@ -209,6 +207,7 @@ AliHFEcuts::AliHFEcuts(const Char_t *name, const Char_t *title): memset(fPtRange, 0, sizeof(Double_t) * 2); memset(fIPCutParams, 0, sizeof(Float_t) * 4); memset(fSigmaToVtx, 0, sizeof(Double_t) * 3); + fEtaRange[0] = -0.8; fEtaRange[1] = 0.8; } //__________________________________________________________________ @@ -217,7 +216,6 @@ AliHFEcuts::AliHFEcuts(const AliHFEcuts &c): fRequirements(c.fRequirements), fTPCclusterDef(c.fTPCclusterDef), fTPCratioDef(c.fTPCratioDef), - fEtaRange(c.fEtaRange), fMinClustersTPC(0), fMinClustersTPCPID(0), fMinClustersITS(0), @@ -277,7 +275,6 @@ void AliHFEcuts::Copy(TObject &c) const { target.fRequirements = fRequirements; target.fTPCclusterDef = fTPCclusterDef; target.fTPCratioDef = fTPCratioDef; - target.fEtaRange = fEtaRange; target.fMinClustersTPC = fMinClustersTPC; target.fMinClustersTPCPID = fMinClustersTPCPID; target.fMinClustersITS = fMinClustersITS; @@ -314,6 +311,7 @@ void AliHFEcuts::Copy(TObject &c) const { memcpy(target.fPtRange, fPtRange, sizeof(Double_t) *2); memcpy(target.fIPCutParams, fIPCutParams, sizeof(Float_t) * 4); memcpy(target.fSigmaToVtx, fSigmaToVtx, sizeof(Double_t) * 3); + memcpy(target.fEtaRange, fEtaRange, sizeof(Double_t) * 2); // Copy cut List if(target.fCutList){ @@ -559,7 +557,7 @@ void AliHFEcuts::SetParticleGenCutList(){ AliCFTrackKineCuts *kineMCcuts = new AliCFTrackKineCuts((Char_t *)"fCutsKineMC", (Char_t *)"MC Kine Cuts"); kineMCcuts->SetPtRange(fPtRange[0], fPtRange[1]); //kineMCcuts->SetEtaRange(-0.8, 0.8); - kineMCcuts->SetEtaRange(-TMath::Abs(fEtaRange),TMath::Abs(fEtaRange)); + kineMCcuts->SetEtaRange(fEtaRange[0],fEtaRange[1]); if(IsQAOn()) kineMCcuts->SetQAOn(fHistQA); mcCuts->AddLast(kineMCcuts); } @@ -640,7 +638,7 @@ void AliHFEcuts::SetRecKineITSTPCCutList(){ AliCFTrackKineCuts *kineCuts = new AliCFTrackKineCuts((Char_t *)"fCutsKineRec", (Char_t *)"REC Kine Cuts"); kineCuts->SetPtRange(fPtRange[0], fPtRange[1]); //kineCuts->SetEtaRange(-0.8, 0.8); - kineCuts->SetEtaRange(-TMath::Abs(fEtaRange),TMath::Abs(fEtaRange)); + kineCuts->SetEtaRange(fEtaRange[0],fEtaRange[1]); if(IsQAOn()){ trackQuality->SetQAOn(fHistQA); diff --git a/PWGHF/hfe/AliHFEcuts.h b/PWGHF/hfe/AliHFEcuts.h index 53e152d456e..c6cb106c9b1 100644 --- a/PWGHF/hfe/AliHFEcuts.h +++ b/PWGHF/hfe/AliHFEcuts.h @@ -160,7 +160,8 @@ class AliHFEcuts : public TNamed{ fTPCclusterDef= clusterDef; fTPCratioDef = ratioDef; } - void SetEtaRange(Double_t etaRange){fEtaRange = etaRange;}; + void SetEtaRange(Double_t etaRange){fEtaRange[0] = -etaRange; fEtaRange[1] = etaRange;}; + void SetEtaRange(Double_t etamin, Double_t etamax){fEtaRange[0] = etamin; fEtaRange[1] = etamax;}; void SetVertexRange(Double_t zrange){fVertexRangeZ = zrange;}; void SetTOFPIDStep(Bool_t tofPidStep) {fTOFPIDStep = tofPidStep;}; void SetTOFMISMATCHStep(Bool_t tofMismatchStep) {fTOFMISMATCHStep = tofMismatchStep;}; @@ -226,7 +227,7 @@ class AliHFEcuts : public TNamed{ ULong64_t fRequirements; // Bitmap for requirements UChar_t fTPCclusterDef; // TPC cluster definition UChar_t fTPCratioDef; // TPC cluster ratio Definition - Double_t fEtaRange; // Eta range + Double_t fEtaRange[2]; // Eta range Double_t fDCAtoVtx[2]; // DCA to Vertex Double_t fProdVtx[4]; // Production Vertex Double_t fPtRange[2]; // pt range diff --git a/PWGHF/hfe/AliHFEtools.cxx b/PWGHF/hfe/AliHFEtools.cxx index 0bb7b5d2ad9..48f955acfd9 100644 --- a/PWGHF/hfe/AliHFEtools.cxx +++ b/PWGHF/hfe/AliHFEtools.cxx @@ -33,6 +33,9 @@ #include "TAxis.h" #include "TMath.h" #include "TString.h" +#include "TFile.h" +#include "TKey.h" +#include "TROOT.h" #include "AliAODMCParticle.h" #include "AliAODpidUtil.h" @@ -455,3 +458,33 @@ void AliHFEtools::BinParameterisation(const TF1 &fun, const TArrayD &xbins, TArr bincontent[ib] = (helper.Integral(xmin, xmax))/(xmax - xmin); } } + + + + +//_________________________________________________________________________ +//Function AliHFEtools::GetHFEResultList() - opens file from argument and returns TList Object containing String "Results" +//_________________________________________________________________________ +TList *AliHFEtools::GetHFEResultList(const TString str){ + + TFile *f = TFile::Open(str.Data()); + if(!f || f->IsZombie()){ + printf("Could not read file %s\n",str.Data()); + return NULL ; + } + gROOT->cd(); + TKey *k; + TIter next(f->GetListOfKeys()); + while ((k = dynamic_cast(next()))){ + TString s(k->GetName()); + if(s.Contains("Results")) break; + } + if(!k){ + printf("Output container not found\n"); + f->Close(); delete f; + return NULL; + } + TList *returnlist = dynamic_cast(k->ReadObj()); + f->Close(); delete f; + return returnlist; +} diff --git a/PWGHF/hfe/AliHFEtools.h b/PWGHF/hfe/AliHFEtools.h index 7780c2bfe30..968c7b5d838 100644 --- a/PWGHF/hfe/AliHFEtools.h +++ b/PWGHF/hfe/AliHFEtools.h @@ -55,6 +55,7 @@ class AliHFEtools : public TObject{ static Bool_t ExchangeXYGraph(TGraph* g = 0); static Bool_t ExchangeXYGraphErrors(TGraphErrors* g = 0); static void BinParameterisation(const TF1 &fun, const TArrayD &xbins, TArrayD &bincontent); + static TList *GetHFEResultList(const TString str); private: AliHFEtools(const AliHFEtools &);