]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
add functions for an easy access to HFE results in AliHFEtools, allow for asymmetric...
authorssakai <ssakai@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 24 Apr 2013 15:57:57 +0000 (15:57 +0000)
committerssakai <ssakai@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 24 Apr 2013 15:57:57 +0000 (15:57 +0000)
PWGHF/hfe/AliHFEcuts.cxx
PWGHF/hfe/AliHFEcuts.h
PWGHF/hfe/AliHFEtools.cxx
PWGHF/hfe/AliHFEtools.h

index 2aecc5047b3882b91ae14e545b0f08ac4d165ac0..58df04b9e5401122a4ce1321ef3a23ffc89e83af 100644 (file)
@@ -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);
index 53e152d456ed7bc69d582527eec1cb672e988fd3..c6cb106c9b1743c0b1541fdd56fac41a6c24655c 100644 (file)
@@ -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
index 0bb7b5d2ad993aa6981b87d2a2e06dea47367161..48f955acfd98eea04ef90d92cb08a8e11fa6010a 100644 (file)
@@ -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<TKey *>(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<TList *>(k->ReadObj());
+    f->Close(); delete f;
+    return returnlist;
+}
index 7780c2bfe30c0a4decfd9a5ae3ac8bf3753e7641..968c7b5d83872cb4f6e6610171688ca5fc348559 100644 (file)
@@ -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 &);