]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG1/AliComparisonEff.cxx
Fixing warnings
[u/mrichter/AliRoot.git] / PWG1 / AliComparisonEff.cxx
index 747b2600eb4c5cdb84286e010b68fb9fbe2a7069..07dc6bfbf0a2109fa948e4a37879d4bec4e3da72 100644 (file)
 /*\r
  \r
   // after running comparison task, read the file, and get component\r
-  gSystem->Load("libPWG1.so");\r
+  gROOT->LoadMacro("$ALICE_ROOT/PWG1/Macros/LoadMyLibs.C");\r
+  LoadMyLibs();\r
   TFile f("Output.root");\r
   AliComparisonEff * compObj = (AliComparisonEff*)f.Get("AliComparisonEff");\r
 \r
-  // analyse comparison data\r
+  // Analyse comparison data\r
   compObj->Analyse();\r
 \r
   // the output histograms/graphs will be stored in the folder "folderEff" \r
@@ -133,6 +134,7 @@ AliComparisonEff::AliComparisonEff():
        fTPCPtDCAXYPid[i]=0;   \r
        fTPCPtDCAZPid[i]=0; \r
   }\r
+\r
   Init();\r
 }\r
 \r
@@ -348,10 +350,10 @@ void AliComparisonEff::Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC)
 \r
   // systematics\r
   const Double_t kSigma2Full_xy  = 0.25; // ExB full systematics  [cm]\r
-  const Double_t kSigma2Full_z  =  5.0;  // [cm] \r
+  const Double_t kSigma2Full_z  =  5.0;  // drift velocity (goofie) [cm] \r
 \r
   const Double_t kSigma2Day0_xy  = 0.02; //  ExB  [cm]\r
-  const Double_t kSigma2Day0_z  =  0.1; //  [cm] goofie  \r
+  const Double_t kSigma2Day0_z  =  0.1;  //   drift velocity (goofie) [cm]  \r
 \r
   //  \r
   Double_t     DCASigmaIdeal=0;\r
@@ -674,12 +676,7 @@ void AliComparisonEff::Analyse()
   TH1::AddDirectory(kFALSE);\r
 \r
   AliComparisonEff * comp=this;\r
-  TFolder *folder = comp->GetAnalysisFolder();\r
-\r
-  // recreate folder every time\r
-  if(folder) delete folder;\r
-  folder = CreateFolder("folderEff","Analysis Eff Folder");\r
-  folder->SetOwner();\r
+  TObjArray *aFolderObj = new TObjArray;\r
 \r
   // calculate efficiency and contamination (4 sigma) \r
   TH1 *h_sigmaidealpid[20];\r
@@ -758,94 +755,180 @@ void AliComparisonEff::Analyse()
   h_sigmaday0pidtot[3]->Divide(h_sigmaday0pidtot[2]);\r
 \r
   // calculate efficiency pid wise\r
-  for(Int_t idx = 0; idx<5; idx++)\r
+  for(Int_t jdx = 0; jdx<5; jdx++)\r
   {\r
-    h_sigmaidealpid[idx]->Sumw2();\r
-    h_sigmaidealpid[idx+5]->Divide(h_sigmaidealpid[idx]);\r
+    h_sigmaidealpid[jdx]->Sumw2();\r
+    h_sigmaidealpid[jdx+5]->Divide(h_sigmaidealpid[jdx]);\r
 \r
-    h_sigmafullpid[idx]->Sumw2();\r
-    h_sigmafullpid[idx+5]->Divide(h_sigmafullpid[idx]);\r
+    h_sigmafullpid[jdx]->Sumw2();\r
+    h_sigmafullpid[jdx+5]->Divide(h_sigmafullpid[jdx]);\r
 \r
-    h_sigmaday0pid[idx]->Sumw2();\r
-    h_sigmaday0pid[idx+5]->Divide(h_sigmaday0pid[idx]);\r
+    h_sigmaday0pid[jdx]->Sumw2();\r
+    h_sigmaday0pid[jdx+5]->Divide(h_sigmaday0pid[jdx]);\r
   }\r
 \r
   // calculate cont. pid wise\r
-  for(Int_t idx = 0; idx<5; idx++)\r
+  for(Int_t jdx = 0; jdx<5; jdx++)\r
   {\r
-    h_sigmaidealpid[idx+15]->Divide(h_sigmaidealpidtot[2]);\r
-    h_sigmafullpid[idx+15]->Divide(h_sigmafullpidtot[2]);\r
-    h_sigmaday0pid[idx+15]->Divide(h_sigmaday0pidtot[2]);\r
+    h_sigmaidealpid[jdx+15]->Divide(h_sigmaidealpidtot[2]);\r
+    h_sigmafullpid[jdx+15]->Divide(h_sigmafullpidtot[2]);\r
+    h_sigmaday0pid[jdx+15]->Divide(h_sigmaday0pidtot[2]);\r
   }\r
 \r
   TCanvas * c = new TCanvas("Efficiency","Track efficiency");\r
   c->cd();\r
+  c->Divide(1,2);\r
 \r
   //\r
+  c->cd(1);\r
   comp->fEffTPCTanF->SetXTitle("Tan(#theta)");\r
   comp->fEffTPCTanF->SetYTitle("eff_{findable}");\r
   comp->fEffTPCTanF->SetName("EffTanFindable");\r
+  comp->fEffTPCTanF->Draw();\r
   //\r
+  c->cd(2);\r
   comp->fEffTPCTan->SetXTitle("Tan(#theta)");\r
   comp->fEffTPCTan->SetYTitle("eff_{all}");\r
   comp->fEffTPCTan->SetName("EffTanAll");\r
+  comp->fEffTPCTan->Draw();\r
 \r
-  if(folder) folder->Add(comp->fEffTPCTanF);\r
-  if(folder) folder->Add(comp->fEffTPCTan);\r
+  aFolderObj->Add(comp->fEffTPCTanF);\r
+  aFolderObj->Add(comp->fEffTPCTan);\r
 \r
+  h_sigmaidealpidtot[1]->SetXTitle("p_{t}");\r
+  h_sigmaidealpidtot[1]->SetYTitle("efficiency");\r
+  h_sigmaidealpidtot[1]->SetTitle("Eff_SigmaIdeal");\r
   h_sigmaidealpidtot[1]->SetName("Eff_SigmaIdeal");\r
+\r
+  h_sigmaidealpidtot[3]->SetXTitle("p_{t}");\r
+  h_sigmaidealpidtot[3]->SetYTitle("contamination");\r
+  h_sigmaidealpidtot[3]->SetTitle("Cont_SigmaIdeal");\r
   h_sigmaidealpidtot[3]->SetName("Cont_SigmaIdeal");\r
 \r
-  if(folder) folder->Add(h_sigmaidealpidtot[1]);\r
-  if(folder) folder->Add(h_sigmaidealpidtot[3]);\r
+  aFolderObj->Add(h_sigmaidealpidtot[1]);\r
+  aFolderObj->Add(h_sigmaidealpidtot[3]);\r
 \r
+  h_sigmafullpidtot[1]->SetXTitle("p_{t}");\r
+  h_sigmafullpidtot[1]->SetYTitle("efficiency");\r
+  h_sigmafullpidtot[1]->SetTitle("Eff_SigmaFull");\r
   h_sigmafullpidtot[1]->SetName("Eff_SigmaFull");\r
+\r
+  h_sigmafullpidtot[3]->SetXTitle("p_{t}");\r
+  h_sigmafullpidtot[3]->SetYTitle("contamination");\r
+  h_sigmafullpidtot[3]->SetTitle("Cont_SigmaFull");\r
   h_sigmafullpidtot[3]->SetName("Cont_SigmaFull");\r
 \r
-  if(folder) folder->Add(h_sigmafullpidtot[1]);\r
-  if(folder) folder->Add(h_sigmafullpidtot[3]);\r
+  aFolderObj->Add(h_sigmafullpidtot[1]);\r
+  aFolderObj->Add(h_sigmafullpidtot[3]);\r
 \r
+  h_sigmaday0pidtot[1]->SetXTitle("p_{t}");\r
+  h_sigmaday0pidtot[1]->SetYTitle("efficiency");\r
+  h_sigmaday0pidtot[1]->SetTitle("Eff_SigmaDay0");\r
   h_sigmaday0pidtot[1]->SetName("Eff_SigmaDay0");\r
+\r
+  h_sigmaday0pidtot[3]->SetXTitle("p_{t}");\r
+  h_sigmaday0pidtot[3]->SetYTitle("contamination");\r
+  h_sigmaday0pidtot[3]->SetTitle("Cont_SigmaDay0");\r
   h_sigmaday0pidtot[3]->SetName("Cont_SigmaDay0");\r
 \r
-  if(folder) folder->Add(h_sigmaday0pidtot[1]);\r
-  if(folder) folder->Add(h_sigmaday0pidtot[3]);\r
+  aFolderObj->Add(h_sigmaday0pidtot[1]);\r
+  aFolderObj->Add(h_sigmaday0pidtot[3]);\r
 \r
-  for(Int_t idx = 0; idx<5; idx++)\r
+  for(Int_t jdx = 0; jdx<5; jdx++)\r
   {\r
-    sprintf(name,"Eff_SigmaIdeal_%d",idx);\r
-    sprintf(name1,"Cont_SigmaIdeal_%d",idx);\r
+    sprintf(name,"Eff_SigmaIdeal_%d",jdx);\r
+    sprintf(name1,"Cont_SigmaIdeal_%d",jdx);\r
+\r
 \r
-    h_sigmaidealpid[idx+5]->SetName(name);\r
-    h_sigmaidealpid[idx+15]->SetName(name1);\r
+    h_sigmaidealpid[jdx+5]->SetXTitle("p_{t}");\r
+    h_sigmaidealpid[jdx+5]->SetYTitle("efficiency");\r
+    h_sigmaidealpid[jdx+5]->SetTitle(name);\r
+    h_sigmaidealpid[jdx+5]->SetName(name);\r
 \r
-       if(folder) folder->Add(h_sigmaidealpid[idx+5]);\r
-       if(folder) folder->Add(h_sigmaidealpid[idx+15]);\r
+    h_sigmaidealpid[jdx+15]->SetXTitle("p_{t}");\r
+    h_sigmaidealpid[jdx+15]->SetYTitle("contamination");\r
+    h_sigmaidealpid[jdx+15]->SetTitle(name1);\r
+    h_sigmaidealpid[jdx+15]->SetName(name1);\r
 \r
-    sprintf(name,"Eff_SigmaFull_%d",idx);\r
-    sprintf(name1,"Cont_SigmaFull_%d",idx);\r
+       aFolderObj->Add(h_sigmaidealpid[jdx+5]);\r
+       aFolderObj->Add(h_sigmaidealpid[jdx+15]);\r
 \r
-    h_sigmafullpid[idx+5]->SetName(name);\r
-    h_sigmafullpid[idx+15]->SetName(name1);\r
+    sprintf(name,"Eff_SigmaFull_%d",jdx);\r
+    sprintf(name1,"Cont_SigmaFull_%d",jdx);\r
 \r
-       if(folder) folder->Add(h_sigmafullpid[idx+5]);\r
-       if(folder) folder->Add(h_sigmafullpid[idx+15]);\r
+    h_sigmafullpid[jdx+5]->SetXTitle("p_{t}");\r
+    h_sigmafullpid[jdx+5]->SetYTitle("efficiency");\r
+    h_sigmafullpid[jdx+5]->SetTitle(name);\r
+    h_sigmafullpid[jdx+5]->SetName(name);\r
 \r
-    sprintf(name,"Eff_SigmaDay0_%d",idx);\r
-    sprintf(name1,"Cont_SigmaDay0_%d",idx);\r
+    h_sigmafullpid[jdx+15]->SetXTitle("p_{t}");\r
+    h_sigmafullpid[jdx+15]->SetYTitle("contamination");\r
+    h_sigmafullpid[jdx+15]->SetTitle(name1);\r
+    h_sigmafullpid[jdx+15]->SetName(name1);\r
 \r
-    h_sigmaday0pid[idx+5]->SetName(name);\r
-    h_sigmaday0pid[idx+15]->SetName(name1);\r
+       aFolderObj->Add(h_sigmafullpid[jdx+5]);\r
+       aFolderObj->Add(h_sigmafullpid[jdx+15]);\r
 \r
-       if(folder) folder->Add(h_sigmaday0pid[idx+5]);\r
-       if(folder) folder->Add(h_sigmaday0pid[idx+15]);\r
+    sprintf(name,"Eff_SigmaDay0_%d",jdx);\r
+    sprintf(name1,"Cont_SigmaDay0_%d",jdx);\r
+\r
+    h_sigmaday0pid[jdx+5]->SetXTitle("p_{t}");\r
+    h_sigmaday0pid[jdx+5]->SetYTitle("efficiency");\r
+    h_sigmaday0pid[jdx+5]->SetTitle(name);\r
+    h_sigmaday0pid[jdx+5]->SetName(name);\r
+\r
+    h_sigmaday0pid[jdx+15]->SetXTitle("p_{t}");\r
+    h_sigmaday0pid[jdx+15]->SetYTitle("contamination");\r
+    h_sigmaday0pid[jdx+15]->SetTitle(name1);\r
+    h_sigmaday0pid[jdx+15]->SetName(name1);\r
+\r
+       aFolderObj->Add(h_sigmaday0pid[jdx+5]);\r
+       aFolderObj->Add(h_sigmaday0pid[jdx+15]);\r
   }\r
 \r
-  // set pointer to fAnalysisFolder\r
-  fAnalysisFolder = folder;\r
+  // export objects to analysis folder\r
+  fAnalysisFolder = ExportToFolder(aFolderObj);\r
 \r
+  // delete only TObjArray\r
+  if(aFolderObj) delete aFolderObj;\r
 }\r
 \r
+//_____________________________________________________________________________\r
+TFolder* AliComparisonEff::ExportToFolder(TObjArray * array) \r
+{\r
+  // recreate folder avery time and export objects to new one\r
+  //\r
+  AliComparisonEff * comp=this;\r
+  TFolder *folder = comp->GetAnalysisFolder();\r
+\r
+  TString name, title;\r
+  TFolder *newFolder = 0;\r
+  Int_t i = 0;\r
+  Int_t size = array->GetSize();\r
+\r
+  if(folder) { \r
+     // get name and title from old folder\r
+     name = folder->GetName();  \r
+     title = folder->GetTitle();  \r
+\r
+        // delete old one\r
+     delete folder;\r
+\r
+        // create new one\r
+     newFolder = CreateFolder(name.Data(),title.Data());\r
+     newFolder->SetOwner();\r
+\r
+        // add objects to folder\r
+     while(i < size) {\r
+          newFolder->Add(array->At(i));\r
+          i++;\r
+        }\r
+  }\r
+\r
+return newFolder;\r
+}\r
+\r
+\r
 //_____________________________________________________________________________\r
 TFolder* AliComparisonEff::CreateFolder(TString name,TString title) { \r
 // create folder for analysed histograms\r