#include "TFile.h"
#include "TH2.h"
#include "AliQuarkoniaEfficiency.h"
#include "AliLog.h"
AliQuarkoniaEfficiency::AliQuarkoniaEfficiency(Int_t quarkoniaResonance, Int_t decayChannel,
Int_t simParameterization):
fEfficiencyFileName("QuarkoniaEfficiency.root"),
fQuarkoniaResonance(quarkoniaResonance),
fDecayChannel(decayChannel),
fParameterization(simParameterization),
fTriggerType(kPairUnlikeApt),
fTrigger(kFALSE),
fEfficiency(0x0)
{
}
AliQuarkoniaEfficiency::~AliQuarkoniaEfficiency()
{
delete fEfficiency;
}
void AliQuarkoniaEfficiency::Init()
{
switch (fQuarkoniaResonance) {
case kJpsi:
SetTitle("Jpsi");
break;
case kPsiP:
SetTitle("PsiP");
break;
case kUpsilon:
SetTitle("Upsilon");
break;
case kUpsilonP:
SetTitle("UpsilonP");
break;
case kUpsilonPP:
SetTitle("UpsilonPP");
break;
case kOmega:
SetTitle("Omega");
break;
case kPhi:
SetTitle("Phi");
break;
}
switch (fDecayChannel) {
case kDimuon:
SetName("Dimuon");
break;
case kDielectron:
SetName("Dielectron");
break;
}
const char *param=0;
switch (fParameterization){
case kFlat:
param = "Flat";
break;
case kCDFscaled:
param = "CDFscaled";
break;
case kCDFscaledPP:
param = "CDFscaledPP";
break;
}
const char *trig=0;
switch (fTriggerType){
case kSinglePlusLpt:
trig = "SinglePlusLpt";
break;
case kSinglePlusHpt:
trig = "SinglePlusHpt";
break;
case kSinglePlusApt:
trig = "SinglePlusApt";
break;
case kSingleMinusLpt:
trig = "SingleMinusLpt";
break;
case kSingleMinusHpt:
trig = "SingleMinusHpt";
break;
case kSingleMinusApt:
trig = "SingleMinusApt";
break;
case kSingleUndefLpt:
trig = "SingleUndefLpt";
break;
case kSingleUndefHpt:
trig = "SingleUndefHpt";
break;
case kSingleUndefApt:
trig = "SingleUndefApt";
break;
case kPairUnlikeLpt:
trig = "PairUnlikeLpt";
break;
case kPairUnlikeHpt:
trig = "PairUnlikeHpt";
break;
case kPairUnlikeApt:
trig = "PairUnlikeApt";
break;
case kPairLikeLpt:
trig = "PairLikeLpt";
break;
case kPairLikeHpt:
trig = "PairLikeHpt";
break;
case kPairLikeApt:
trig = "PairLikeApt";
break;
}
if(!fEfficiency) delete fEfficiency;
TFile efficiencyFile(fEfficiencyFileName);
if ( efficiencyFile.IsOpen() ) {
char quarkoniaDir[15];
snprintf(quarkoniaDir,15,"%s",GetTitle());
if (! efficiencyFile.cd(quarkoniaDir) ){
AliError(Form("Directory %s not found in file %s \n Efficiency data for quarkonia %s and channel %s not found ",
quarkoniaDir,fEfficiencyFileName.Data(),GetTitle(),GetName() ));
return;
}
char histosDir[30];
snprintf(histosDir,30,"%s/%s_%s_%s",quarkoniaDir,GetTitle(),GetName(),param);
if(! efficiencyFile.cd(histosDir) ){
AliError(Form("Subdirectory %s/%s not found in file %s \n Efficiency data for quarkonia %s and channel %s not found ",
quarkoniaDir,histosDir,fEfficiencyFileName.Data(),GetTitle(),GetName() ));
return;
}
char histoname[50];
if(fTrigger) snprintf(histoname,50,"h%sEfficiencyPtRap_%s",GetTitle(),trig);
else snprintf(histoname,50,"h%sEfficiencyPtRap",GetTitle());
char histonameposition[99];
snprintf(histonameposition,99,"%s/%s",histosDir,histoname);
fEfficiency = (TH2F*)efficiencyFile.Get(histonameposition);
if ( !fEfficiency ) {
AliError(Form("Histo %s not found in file %s \n Efficiency data for quarkonia %s and channel %s not found",
histoname, fEfficiencyFileName.Data(), GetTitle(), GetName() ));
}
else {
fEfficiency->SetDirectory(0);
}
efficiencyFile.Close();
}
else {
AliError(Form("File %s not found",fEfficiencyFileName.Data()));
}
}
TH2F* AliQuarkoniaEfficiency::GetEfficiencyHisto() const
{
if (fEfficiency) return fEfficiency;
else {
AliError(Form("Efficiency data for quarkonia %s and channel %s not found",GetTitle(),GetName()));
return 0x0;
}
}
void AliQuarkoniaEfficiency::GetEfficiency(Float_t rap, Float_t pT, Double_t &eff, Double_t &error)
{
Int_t binx=0;
Int_t biny=0;
if (!fEfficiency) {
AliError(Form("Efficiency data for quarkonia %s and channel %s not found",GetTitle(),GetName()));
}
else {
if ( rap < (fEfficiency->GetXaxis())->GetXmin() ||
rap > (fEfficiency->GetXaxis())->GetXmax() ||
pT < (fEfficiency->GetYaxis())->GetXmin() ||
pT > (fEfficiency->GetYaxis())->GetXmax() ) {
AliInfo("Values out of range");
eff = 0.;
error = 0.;
}
else {
binx = fEfficiency->GetXaxis()->FindBin(rap);
biny = fEfficiency->GetYaxis()->FindBin(pT);
eff = fEfficiency->GetBinContent(binx,biny);
error = fEfficiency->GetBinError(binx,biny);
}
}
}
AliQuarkoniaEfficiency.cxx:1 AliQuarkoniaEfficiency.cxx:2 AliQuarkoniaEfficiency.cxx:3 AliQuarkoniaEfficiency.cxx:4 AliQuarkoniaEfficiency.cxx:5 AliQuarkoniaEfficiency.cxx:6 AliQuarkoniaEfficiency.cxx:7 AliQuarkoniaEfficiency.cxx:8 AliQuarkoniaEfficiency.cxx:9 AliQuarkoniaEfficiency.cxx:10 AliQuarkoniaEfficiency.cxx:11 AliQuarkoniaEfficiency.cxx:12 AliQuarkoniaEfficiency.cxx:13 AliQuarkoniaEfficiency.cxx:14 AliQuarkoniaEfficiency.cxx:15 AliQuarkoniaEfficiency.cxx:16 AliQuarkoniaEfficiency.cxx:17 AliQuarkoniaEfficiency.cxx:18 AliQuarkoniaEfficiency.cxx:19 AliQuarkoniaEfficiency.cxx:20 AliQuarkoniaEfficiency.cxx:21 AliQuarkoniaEfficiency.cxx:22 AliQuarkoniaEfficiency.cxx:23 AliQuarkoniaEfficiency.cxx:24 AliQuarkoniaEfficiency.cxx:25 AliQuarkoniaEfficiency.cxx:26 AliQuarkoniaEfficiency.cxx:27 AliQuarkoniaEfficiency.cxx:28 AliQuarkoniaEfficiency.cxx:29 AliQuarkoniaEfficiency.cxx:30 AliQuarkoniaEfficiency.cxx:31 AliQuarkoniaEfficiency.cxx:32 AliQuarkoniaEfficiency.cxx:33 AliQuarkoniaEfficiency.cxx:34 AliQuarkoniaEfficiency.cxx:35 AliQuarkoniaEfficiency.cxx:36 AliQuarkoniaEfficiency.cxx:37 AliQuarkoniaEfficiency.cxx:38 AliQuarkoniaEfficiency.cxx:39 AliQuarkoniaEfficiency.cxx:40 AliQuarkoniaEfficiency.cxx:41 AliQuarkoniaEfficiency.cxx:42 AliQuarkoniaEfficiency.cxx:43 AliQuarkoniaEfficiency.cxx:44 AliQuarkoniaEfficiency.cxx:45 AliQuarkoniaEfficiency.cxx:46 AliQuarkoniaEfficiency.cxx:47 AliQuarkoniaEfficiency.cxx:48 AliQuarkoniaEfficiency.cxx:49 AliQuarkoniaEfficiency.cxx:50 AliQuarkoniaEfficiency.cxx:51 AliQuarkoniaEfficiency.cxx:52 AliQuarkoniaEfficiency.cxx:53 AliQuarkoniaEfficiency.cxx:54 AliQuarkoniaEfficiency.cxx:55 AliQuarkoniaEfficiency.cxx:56 AliQuarkoniaEfficiency.cxx:57 AliQuarkoniaEfficiency.cxx:58 AliQuarkoniaEfficiency.cxx:59 AliQuarkoniaEfficiency.cxx:60 AliQuarkoniaEfficiency.cxx:61 AliQuarkoniaEfficiency.cxx:62 AliQuarkoniaEfficiency.cxx:63 AliQuarkoniaEfficiency.cxx:64 AliQuarkoniaEfficiency.cxx:65 AliQuarkoniaEfficiency.cxx:66 AliQuarkoniaEfficiency.cxx:67 AliQuarkoniaEfficiency.cxx:68 AliQuarkoniaEfficiency.cxx:69 AliQuarkoniaEfficiency.cxx:70 AliQuarkoniaEfficiency.cxx:71 AliQuarkoniaEfficiency.cxx:72 AliQuarkoniaEfficiency.cxx:73 AliQuarkoniaEfficiency.cxx:74 AliQuarkoniaEfficiency.cxx:75 AliQuarkoniaEfficiency.cxx:76 AliQuarkoniaEfficiency.cxx:77 AliQuarkoniaEfficiency.cxx:78 AliQuarkoniaEfficiency.cxx:79 AliQuarkoniaEfficiency.cxx:80 AliQuarkoniaEfficiency.cxx:81 AliQuarkoniaEfficiency.cxx:82 AliQuarkoniaEfficiency.cxx:83 AliQuarkoniaEfficiency.cxx:84 AliQuarkoniaEfficiency.cxx:85 AliQuarkoniaEfficiency.cxx:86 AliQuarkoniaEfficiency.cxx:87 AliQuarkoniaEfficiency.cxx:88 AliQuarkoniaEfficiency.cxx:89 AliQuarkoniaEfficiency.cxx:90 AliQuarkoniaEfficiency.cxx:91 AliQuarkoniaEfficiency.cxx:92 AliQuarkoniaEfficiency.cxx:93 AliQuarkoniaEfficiency.cxx:94 AliQuarkoniaEfficiency.cxx:95 AliQuarkoniaEfficiency.cxx:96 AliQuarkoniaEfficiency.cxx:97 AliQuarkoniaEfficiency.cxx:98 AliQuarkoniaEfficiency.cxx:99 AliQuarkoniaEfficiency.cxx:100 AliQuarkoniaEfficiency.cxx:101 AliQuarkoniaEfficiency.cxx:102 AliQuarkoniaEfficiency.cxx:103 AliQuarkoniaEfficiency.cxx:104 AliQuarkoniaEfficiency.cxx:105 AliQuarkoniaEfficiency.cxx:106 AliQuarkoniaEfficiency.cxx:107 AliQuarkoniaEfficiency.cxx:108 AliQuarkoniaEfficiency.cxx:109 AliQuarkoniaEfficiency.cxx:110 AliQuarkoniaEfficiency.cxx:111 AliQuarkoniaEfficiency.cxx:112 AliQuarkoniaEfficiency.cxx:113 AliQuarkoniaEfficiency.cxx:114 AliQuarkoniaEfficiency.cxx:115 AliQuarkoniaEfficiency.cxx:116 AliQuarkoniaEfficiency.cxx:117 AliQuarkoniaEfficiency.cxx:118 AliQuarkoniaEfficiency.cxx:119 AliQuarkoniaEfficiency.cxx:120 AliQuarkoniaEfficiency.cxx:121 AliQuarkoniaEfficiency.cxx:122 AliQuarkoniaEfficiency.cxx:123 AliQuarkoniaEfficiency.cxx:124 AliQuarkoniaEfficiency.cxx:125 AliQuarkoniaEfficiency.cxx:126 AliQuarkoniaEfficiency.cxx:127 AliQuarkoniaEfficiency.cxx:128 AliQuarkoniaEfficiency.cxx:129 AliQuarkoniaEfficiency.cxx:130 AliQuarkoniaEfficiency.cxx:131 AliQuarkoniaEfficiency.cxx:132 AliQuarkoniaEfficiency.cxx:133 AliQuarkoniaEfficiency.cxx:134 AliQuarkoniaEfficiency.cxx:135 AliQuarkoniaEfficiency.cxx:136 AliQuarkoniaEfficiency.cxx:137 AliQuarkoniaEfficiency.cxx:138 AliQuarkoniaEfficiency.cxx:139 AliQuarkoniaEfficiency.cxx:140 AliQuarkoniaEfficiency.cxx:141 AliQuarkoniaEfficiency.cxx:142 AliQuarkoniaEfficiency.cxx:143 AliQuarkoniaEfficiency.cxx:144 AliQuarkoniaEfficiency.cxx:145 AliQuarkoniaEfficiency.cxx:146 AliQuarkoniaEfficiency.cxx:147 AliQuarkoniaEfficiency.cxx:148 AliQuarkoniaEfficiency.cxx:149 AliQuarkoniaEfficiency.cxx:150 AliQuarkoniaEfficiency.cxx:151 AliQuarkoniaEfficiency.cxx:152 AliQuarkoniaEfficiency.cxx:153 AliQuarkoniaEfficiency.cxx:154 AliQuarkoniaEfficiency.cxx:155 AliQuarkoniaEfficiency.cxx:156 AliQuarkoniaEfficiency.cxx:157 AliQuarkoniaEfficiency.cxx:158 AliQuarkoniaEfficiency.cxx:159 AliQuarkoniaEfficiency.cxx:160 AliQuarkoniaEfficiency.cxx:161 AliQuarkoniaEfficiency.cxx:162 AliQuarkoniaEfficiency.cxx:163 AliQuarkoniaEfficiency.cxx:164 AliQuarkoniaEfficiency.cxx:165 AliQuarkoniaEfficiency.cxx:166 AliQuarkoniaEfficiency.cxx:167 AliQuarkoniaEfficiency.cxx:168 AliQuarkoniaEfficiency.cxx:169 AliQuarkoniaEfficiency.cxx:170 AliQuarkoniaEfficiency.cxx:171 AliQuarkoniaEfficiency.cxx:172 AliQuarkoniaEfficiency.cxx:173 AliQuarkoniaEfficiency.cxx:174 AliQuarkoniaEfficiency.cxx:175 AliQuarkoniaEfficiency.cxx:176 AliQuarkoniaEfficiency.cxx:177 AliQuarkoniaEfficiency.cxx:178 AliQuarkoniaEfficiency.cxx:179 AliQuarkoniaEfficiency.cxx:180 AliQuarkoniaEfficiency.cxx:181 AliQuarkoniaEfficiency.cxx:182 AliQuarkoniaEfficiency.cxx:183 AliQuarkoniaEfficiency.cxx:184 AliQuarkoniaEfficiency.cxx:185 AliQuarkoniaEfficiency.cxx:186 AliQuarkoniaEfficiency.cxx:187 AliQuarkoniaEfficiency.cxx:188 AliQuarkoniaEfficiency.cxx:189 AliQuarkoniaEfficiency.cxx:190 AliQuarkoniaEfficiency.cxx:191 AliQuarkoniaEfficiency.cxx:192 AliQuarkoniaEfficiency.cxx:193 AliQuarkoniaEfficiency.cxx:194 AliQuarkoniaEfficiency.cxx:195 AliQuarkoniaEfficiency.cxx:196 AliQuarkoniaEfficiency.cxx:197 AliQuarkoniaEfficiency.cxx:198 AliQuarkoniaEfficiency.cxx:199 AliQuarkoniaEfficiency.cxx:200 AliQuarkoniaEfficiency.cxx:201 AliQuarkoniaEfficiency.cxx:202 AliQuarkoniaEfficiency.cxx:203 AliQuarkoniaEfficiency.cxx:204 AliQuarkoniaEfficiency.cxx:205 AliQuarkoniaEfficiency.cxx:206 AliQuarkoniaEfficiency.cxx:207 AliQuarkoniaEfficiency.cxx:208 AliQuarkoniaEfficiency.cxx:209 AliQuarkoniaEfficiency.cxx:210 AliQuarkoniaEfficiency.cxx:211 AliQuarkoniaEfficiency.cxx:212 AliQuarkoniaEfficiency.cxx:213 AliQuarkoniaEfficiency.cxx:214 AliQuarkoniaEfficiency.cxx:215 AliQuarkoniaEfficiency.cxx:216 AliQuarkoniaEfficiency.cxx:217 AliQuarkoniaEfficiency.cxx:218 AliQuarkoniaEfficiency.cxx:219 AliQuarkoniaEfficiency.cxx:220 AliQuarkoniaEfficiency.cxx:221 AliQuarkoniaEfficiency.cxx:222 AliQuarkoniaEfficiency.cxx:223 AliQuarkoniaEfficiency.cxx:224 AliQuarkoniaEfficiency.cxx:225 AliQuarkoniaEfficiency.cxx:226 AliQuarkoniaEfficiency.cxx:227 AliQuarkoniaEfficiency.cxx:228 AliQuarkoniaEfficiency.cxx:229 AliQuarkoniaEfficiency.cxx:230 AliQuarkoniaEfficiency.cxx:231 AliQuarkoniaEfficiency.cxx:232 AliQuarkoniaEfficiency.cxx:233 AliQuarkoniaEfficiency.cxx:234 AliQuarkoniaEfficiency.cxx:235 AliQuarkoniaEfficiency.cxx:236 AliQuarkoniaEfficiency.cxx:237 AliQuarkoniaEfficiency.cxx:238 AliQuarkoniaEfficiency.cxx:239 AliQuarkoniaEfficiency.cxx:240 AliQuarkoniaEfficiency.cxx:241 AliQuarkoniaEfficiency.cxx:242 AliQuarkoniaEfficiency.cxx:243