]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
-loading of eff maps and pid corrections on grid
authorJulian Book <Julian>
Wed, 18 Dec 2013 09:27:53 +0000 (10:27 +0100)
committerJulian Book <jbook@cern.ch>
Wed, 18 Dec 2013 09:27:53 +0000 (10:27 +0100)
PWGDQ/dielectron/AliDielectron.cxx
PWGDQ/dielectron/AliDielectron.h
PWGDQ/dielectron/AliDielectronPID.cxx
PWGDQ/dielectron/AliDielectronPID.h

index 6eca5d5180f6545b621ed50468302fd684831de6..3d78d940821ddd5cdee766a8b7133ec1e22292e7 100644 (file)
@@ -67,6 +67,7 @@ The names are available via the function PairClassName(Int_t i)
 #include "AliDielectronSignalMC.h"
 #include "AliDielectronMixingHandler.h"
 #include "AliDielectronV0Cuts.h"
+#include "AliDielectronPID.h"
 
 #include "AliDielectron.h"
 
@@ -98,6 +99,8 @@ AliDielectron::AliDielectron() :
   TNamed("AliDielectron","AliDielectron"),
   fCutQA(kFALSE),
   fQAmonitor(0x0),
+  fPostPIDCntrdCorr(0x0),
+  fPostPIDWdthCorr(0x0),
   fEventFilter("EventFilter"),
   fTrackFilter("TrackFilter"),
   fPairPreFilter("PairPreFilter"),
@@ -142,6 +145,8 @@ AliDielectron::AliDielectron(const char* name, const char* title) :
   TNamed(name,title),
   fCutQA(kFALSE),
   fQAmonitor(0x0),
+  fPostPIDCntrdCorr(0x0),
+  fPostPIDWdthCorr(0x0),
   fEventFilter("EventFilter"),
   fTrackFilter("TrackFilter"),
   fPairPreFilter("PairPreFilter"),
@@ -188,6 +193,8 @@ AliDielectron::~AliDielectron()
   // Default destructor
   //
   if (fQAmonitor) delete fQAmonitor;
+  if (fPostPIDCntrdCorr) delete fPostPIDCntrdCorr;
+  if (fPostPIDWdthCorr) delete fPostPIDWdthCorr;
   if (fHistos) delete fHistos;
   if (fPairCandidates) delete fPairCandidates;
   if (fDebugTree) delete fDebugTree;
@@ -217,14 +224,20 @@ void AliDielectron::Init()
     fTrackRotator->SetPdgLegs(fPdgLeg1,fPdgLeg2);
   }
   if (fDebugTree) fDebugTree->SetDielectron(this);
-  if(fEstimatorFilename.Contains(".root")) AliDielectronVarManager::InitEstimatorAvg(fEstimatorFilename.Data());
+
+  TString allfiles = fEstimatorFilename;
+  allfiles+=fTRDpidCorrectionFilename;
+  allfiles+=fVZEROCalibrationFilename;
+  allfiles+=fVZERORecenteringFilename;
+  allfiles+=fEffMapFilename;
+  if(allfiles.Contains("alien://")) TGrid::Connect("alien://",0,0,"t");
+
+  if(fEstimatorFilename.Contains(".root"))        AliDielectronVarManager::InitEstimatorAvg(fEstimatorFilename.Data());
   if(fTRDpidCorrectionFilename.Contains(".root")) AliDielectronVarManager::InitTRDpidEffHistograms(fTRDpidCorrectionFilename.Data());
   if(fVZEROCalibrationFilename.Contains(".root")) AliDielectronVarManager::SetVZEROCalibrationFile(fVZEROCalibrationFilename.Data());
   if(fVZERORecenteringFilename.Contains(".root")) AliDielectronVarManager::SetVZERORecenteringFile(fVZERORecenteringFilename.Data());
-  if(fEffMapFilename.Contains(".root")) {
-    if(fEffMapFilename.Contains("alien://")) TGrid::Connect("alien://",0,0,"t");
-    AliDielectronVarManager::InitEffMap(fEffMapFilename.Data());
-  }
+  if(fEffMapFilename.Contains(".root"))           AliDielectronVarManager::InitEffMap(fEffMapFilename.Data());
+
 
   if (fMixing) fMixing->Init(this);
   if (fHistoArray) {
@@ -232,6 +245,9 @@ void AliDielectron::Init()
     fHistoArray->Init();
   }
 
+  if(fPostPIDCntrdCorr) AliDielectronPID::SetCentroidCorrFunction(fPostPIDCntrdCorr);
+  if(fPostPIDWdthCorr)  AliDielectronPID::SetWidthCorrFunction(fPostPIDWdthCorr);
+
   if (fCutQA) {
     fQAmonitor = new AliDielectronCutQA(Form("QAcuts_%s",GetName()),"QAcuts");
     fQAmonitor->AddTrackFilter(&fTrackFilter);
@@ -1364,3 +1380,20 @@ void AliDielectron::FillMCHistograms(const AliVEvent *ev) {
   } //loop: MCsignals
 
 }
+
+//______________________________________________
+void AliDielectron::SetCentroidCorrFunction(TF1 *fun, UInt_t varx, UInt_t vary, UInt_t varz)
+{
+  fun->GetHistogram()->GetXaxis()->SetUniqueID(varx);
+  fun->GetHistogram()->GetYaxis()->SetUniqueID(vary);
+  fun->GetHistogram()->GetZaxis()->SetUniqueID(varz);
+  fPostPIDCntrdCorr=fun;
+}
+//______________________________________________
+void AliDielectron::SetWidthCorrFunction(TF1 *fun, UInt_t varx, UInt_t vary, UInt_t varz)
+{
+  fun->GetHistogram()->GetXaxis()->SetUniqueID(varx);
+  fun->GetHistogram()->GetYaxis()->SetUniqueID(vary);
+  fun->GetHistogram()->GetZaxis()->SetUniqueID(varz);
+  fPostPIDWdthCorr=fun;
+}
index bdbcbd7677e99eb7c6eef651d7c9e94eb9486b52..184dde24edf521185fc667823fd8d4a3b09b75e7 100644 (file)
@@ -131,12 +131,17 @@ public:
   void SetVZERORecenteringFilename(const Char_t* filename) {fVZERORecenteringFilename = filename;}
   void SetEffMapFilename(const Char_t* filename) {fEffMapFilename = filename;}
 
+  void SetCentroidCorrFunction(TF1 *fun, UInt_t varx, UInt_t vary=0, UInt_t varz=0);
+  void SetWidthCorrFunction(TF1 *fun, UInt_t varx, UInt_t vary=0, UInt_t varz=0);
+
   void SaveDebugTree();
 
 private:
 
   Bool_t fCutQA;                    // monitor cuts
   AliDielectronCutQA *fQAmonitor;   // monitoring of cuts
+  TF1 *fPostPIDCntrdCorr;   // post pid correction object for centroids
+  TF1 *fPostPIDWdthCorr;    // post pid correction object for widths
   AliAnalysisFilter fEventFilter;    // Event cuts
   AliAnalysisFilter fTrackFilter;    // leg cuts
   AliAnalysisFilter fPairPreFilter;  // pair prefilter cuts
@@ -217,7 +222,7 @@ private:
   AliDielectron(const AliDielectron &c);
   AliDielectron &operator=(const AliDielectron &c);
   
-  ClassDef(AliDielectron,6);
+  ClassDef(AliDielectron,7);
 };
 
 inline void AliDielectron::InitPairCandidateArrays()
index 0253771885b0c88ee38f61c8d88193b364e1c5e9..059cda48c56d6357f050c878f18e375f5702b71e 100644 (file)
@@ -46,13 +46,13 @@ Detailed description
 
 ClassImp(AliDielectronPID)
 
-TGraph *AliDielectronPID::fgFitCorr=0x0;
+TGraph  *AliDielectronPID::fgFitCorr=0x0;
 Double_t AliDielectronPID::fgCorr=0.0;
 Double_t AliDielectronPID::fgCorrdEdx=1.0;
-TF1 *AliDielectronPID::fgFunEtaCorr=0x0;
-TF1 *AliDielectronPID::fgFunCntrdCorr=0x0;
-TF1 *AliDielectronPID::fgFunWdthCorr=0x0;
-TGraph *AliDielectronPID::fgdEdxRunCorr=0x0;
+TF1     *AliDielectronPID::fgFunEtaCorr=0x0;
+TF1     *AliDielectronPID::fgFunCntrdCorr=0x0;
+TF1     *AliDielectronPID::fgFunWdthCorr=0x0;
+TGraph  *AliDielectronPID::fgdEdxRunCorr=0x0;
 
 AliDielectronPID::AliDielectronPID() :
   AliAnalysisCuts(),
@@ -659,23 +659,6 @@ Double_t AliDielectronPID::GetEtaCorr(const AliVTrack *track)
   return fgFunEtaCorr->Eval(track->Eta());
 }
 
-//______________________________________________
-void AliDielectronPID::SetCentroidCorrFunction(TF1 *fun, UInt_t varx, UInt_t vary, UInt_t varz)
-{
-  fun->GetHistogram()->GetXaxis()->SetUniqueID(varx);
-  fun->GetHistogram()->GetYaxis()->SetUniqueID(vary);
-  fun->GetHistogram()->GetZaxis()->SetUniqueID(varz);
-  fgFunCntrdCorr=fun;
-}
-//______________________________________________
-void AliDielectronPID::SetWidthCorrFunction(TF1 *fun, UInt_t varx, UInt_t vary, UInt_t varz)
-{
-  fun->GetHistogram()->GetXaxis()->SetUniqueID(varx);
-  fun->GetHistogram()->GetYaxis()->SetUniqueID(vary);
-  fun->GetHistogram()->GetZaxis()->SetUniqueID(varz);
-  fgFunWdthCorr=fun;
-}
-
 //______________________________________________
 Double_t AliDielectronPID::GetPIDCorr(const AliVTrack *track, TF1 *fun)
 {
@@ -693,6 +676,6 @@ Double_t AliDielectronPID::GetPIDCorr(const AliVTrack *track, TF1 *fun)
   if(dim>1) var[1] = values[fun->GetHistogram()->GetYaxis()->GetUniqueID()];
   if(dim>2) var[2] = values[fun->GetHistogram()->GetZaxis()->GetUniqueID()];
   Double_t corr = fun->Eval(var[0],var[1],var[2]);
-  // printf(" %d-dim CORR value: %f (track %p) \n",dim,corr,track);
+  //  printf("%d-dim CORR value: %f (track %p) \n",dim,corr,track);
   return corr;
 }
index cc99ac86628164160850aa0c26e3392ee6031340..459724126d467b5cf17be09dfa6416ca338917d0 100644 (file)
@@ -79,8 +79,8 @@ public:
   static TGraph *GetCorrGraphdEdx()  { return fgdEdxRunCorr; }
 
   static void SetEtaCorrFunction(TF1 *fun) {fgFunEtaCorr=fun;}
-  static void SetCentroidCorrFunction(TF1 *fun, UInt_t varx, UInt_t vary=0, UInt_t varz=0);
-  static void SetWidthCorrFunction(TF1 *fun, UInt_t varx, UInt_t vary=0, UInt_t varz=0);
+  static void SetCentroidCorrFunction(TF1 *fun) { fgFunCntrdCorr=fun; }
+  static void SetWidthCorrFunction(TF1 *fun) { fgFunWdthCorr=fun; }
   static TF1* GetEtaCorrFunction() { return fgFunEtaCorr; }
   static TF1* GetCentroidCorrFunction() { return fgFunCntrdCorr; }
   static TF1* GetWidthCorrFunction() { return fgFunWdthCorr; }
@@ -117,8 +117,8 @@ private:
   static Double_t fgCorrdEdx;     //!dEdx correction value for current run. Set if fgFitCorr is set and SetCorrVal(run)
                                   // was called
   static TF1    *fgFunEtaCorr;    //function for eta correction of electron sigma
-  static TF1    *fgFunCntrdCorr;  //!function for correction of electron sigma (centroid)
-  static TF1    *fgFunWdthCorr;   //!function for correction of electron sigma (width)
+  static TF1    *fgFunCntrdCorr;  //function for correction of electron sigma (centroid)
+  static TF1    *fgFunWdthCorr;   //function for correction of electron sigma (width)
   static TGraph *fgdEdxRunCorr;   //run by run correction for dEdx
 
   static Double_t GetPIDCorr(const AliVTrack *track, TF1 *fun);