]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis2/scripts/ExtractELoss.C
883646d47901f75ce8172e97010182ecfd67dfa1
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / scripts / ExtractELoss.C
1 /**
2  * Script to draw the energy loss fits 
3  * 
4  * @ingroup pwg2_forward_analysis_scripts
5  */
6 #ifndef __CINT__
7 #include <TFile.h>
8 #include <TList.h>
9 #include <TError.h>
10 #include "AliFMDCorrELossFit.h"
11 #include "AliForwardCorrectionManager.h"
12 #endif 
13
14 //____________________________________________________________________
15 /** 
16  * Extract the energy loss correction object from file and rename it 
17  * according to the settings 
18  * 
19  * @param fname  File to extract from 
20  * @param sys    Collision system (pp, PbPb)
21  * @param sNN    Center of mass energy (in GeV) per nucleon
22  * @param field  L3 magnetic field (-5,0,5) in kGaus
23  * @param mc     Whether this is from MC data or not 
24  * 
25  * @ingroup pwg2_forward_analysis_scripts
26  */
27 void
28 ExtractELoss(const char* fname="forward_eloss.root", 
29              UShort_t sys=1, UShort_t sNN=900, Short_t field=5, Bool_t mc=false)
30 {
31 #ifdef __CINT__
32   gROOT->Macro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadLibs.C");
33 #endif
34
35   TFile* file = TFile::Open(fname, "READ");
36   if (!file) {
37     Error("ExtractELoss", "Couldn't open %s", fname);
38     return;
39   }
40     
41   TList* forward = static_cast<TList*>(file->Get("ForwardResults"));
42   // static_cast<TList*>(file->Get("PWG2forwardDnDeta/Forward"));
43   if (!forward) { 
44     Error("ExtractELoss", "Couldn't get forward list from %s", fname);
45     return;
46   }
47   
48   TList* fitter = static_cast<TList*>(forward->FindObject("fmdEnergyFitter"));
49   if (!fitter) { 
50     Error("ExtractELoss", "Couldn't get fitter folder");
51     return;
52   }
53
54   TString cName(AliFMDCorrELossFit::Class()->GetName());
55
56   AliFMDCorrELossFit* obj = 
57     static_cast<AliFMDCorrELossFit*>(fitter->FindObject(cName));
58   if (!obj) {
59     Error("ExtractELoss", "Couldn't get %s correction object", cName.Data());
60     return;
61   }
62
63   AliForwardCorrectionManager& mgr = AliForwardCorrectionManager::Instance();
64   mgr.WriteFile(AliForwardCorrectionManager::kELossFits, 
65                 sys, sNN, field, mc, obj, false);
66 }
67
68     
69   
70 //____________________________________________________________________
71 /** 
72  * Extract the energy loss correction object from file and rename it 
73  * according to the settings 
74  * 
75  * @param fname  File to extract from 
76  * @param sys    Collision system (pp, PbPb)
77  * @param sNN    Center of mass energy (in GeV) per nucleon
78  * @param field  L3 magnetic field (-5,0,5) in kGaus
79  * @param mc     Whether this is from MC data or not 
80  * 
81  * @ingroup pwg2_forward_analysis_scripts
82  */
83 void
84 ExtractELoss(const char* fname="energyFits.root", 
85              const char* sys="p-p", 
86              Float_t     sNN=900, 
87              Float_t     field=5,
88              Bool_t      mc=false)
89 {
90   UShort_t uSys   = AliForwardUtil::ParseCollisionSystem(sys);
91   UShort_t usNN   = AliForwardUtil::ParseCenterOfMassEnergy(uSys,sNN);
92   Short_t  sField = AliForwardUtil::ParseMagneticField(field);
93
94   ExtractELoss(fname, uSys, usNN, sField, mc);
95 }
96
97 //____________________________________________________________________
98 //
99 // EOF
100 //