16 AliFMDGeometry* geom = AliFMDGeometry::Instance();
17 AliFMDParameters* pars = AliFMDParameters::Instance();
19 UShort_t nS = (r ==
'I' || r ==
'i' ? 20 : 40);
20 UShort_t nT = (r ==
'I' || r ==
'i' ? 512 : 256);
23 TH2D* hAll =
new TH2D(
"all",
"All",200,-4,6,nS,0,2*TMath::Pi());
24 hAll->SetXTitle(
"#eta");
25 hAll->SetYTitle(
"#phi");
27 hAll->SetDirectory(0);
28 TH2D* hOK =
static_cast<TH2D*
>(hAll->Clone());
34 Int_t nPhi = hAll->GetNbinsY();
41 geom->Detector2XYZ(d, r, s, t, x, y, z);
44 AliFMDGeometry::XYZ2REtaPhiTheta(x, y, z, q, eta, phi, theta);
45 if (phi < 0) phi += 2*TMath::Pi();
48 Bool_t isDead = pars->IsDead(d, r, s, t);
52 if(d==2 && r==
'I' && VA>1 && (s==16 || s==17)) isDead =
true;
55 Int_t etaBin = hAll->GetXaxis()->FindBin(eta);
56 Int_t ovrBin = hAll->GetBin(etaBin, nPhi+1);
60 hAll->AddBinContent(ovrBin);
66 hOK->AddBinContent(ovrBin);
75 hOK->Divide(hOK,hAll,1,1,
"B");
80 Info(
"ExtractAcceptances",
"Made correction for FMD%d%c at vz=%f - " 81 "%d strips out of %d OK", d, r, vz, nOK, nAll);
110 gSystem->Load(
"libANALYSISalice");
111 gSystem->Load(
"libPWGLFforward2");
115 Bool_t kGridOnline = kTRUE;
116 if(!(TGrid::Connect(
"alien://",0,0,
"t")))
117 kGridOnline = kFALSE;
121 Info(
"ExtractAcceptances",
"Setting up OCDB");
123 AliCDBManager* cdb = AliCDBManager::Instance();
125 cdb->SetDefaultStorage(
"alien://Folder=/alice/data/2012/OCDB");
127 cdb->SetDefaultStorage(
"local://$(ALICE_PHYSICS)/OCDB");
131 Info(
"ExtractAcceptances",
"Loading geometry");
132 AliGeomManager::LoadGeometry();
135 Info(
"ExtractAcceptances",
"Intialising parameters");
136 AliFMDParameters* pars = AliFMDParameters::Instance();
140 Info(
"ExtractAcceptances",
"Initialising geomtry");
141 AliFMDGeometry* geom = AliFMDGeometry::Instance();
143 geom->InitTransformations();
152 Float_t dV = (vtxHigh - vtxLow) / nVtxBins;
153 for (
Double_t v = vtxLow+dV/2; v < vtxHigh; v += dV) {
157 Char_t r = (q == 0 ?
'I' :
'O');
161 if (!ratio)
continue;
170 Info(
"ExtractAcceptances",
"Writing to disk");
173 system,
energy, field,
false);
174 TFile* out = TFile::Open(fname.Data(),
"RECREATE");
180 std::ofstream f(
"Upload.C");
182 Error(
"ExtractELoss",
"Failed to open Upload.C");
185 f <<
"// Generated by ExtractAcceptance.C\n" 186 <<
"void Upload(const TUrl& url)\n" 188 <<
" if (TString(\"alien\").EqualTo(url.GetProtocol())) {\n" 189 <<
" if (!TGrid::Connect(\"alien://\")) {\n" 190 <<
" Error(\"Upload\", \"Failed to connect to AliEn\");\n" 197 sys, sNN, field,
false));
199 sys, sNN, field,
false));
200 f <<
" TString src = \"" << fef <<
"\";\n" 201 <<
" TString dest = \"" << fep <<
"\";\n" 202 <<
" TString out; out.Form(\"%s%s\",url.GetUrl(),dest.Data());\n\n" 203 <<
" TString dir(gSystem->DirName(out));\n" 204 <<
" if (gSystem->AccessPathName(dir)) {\n" 205 <<
" if (gSystem->mkdir(dir, true) < 0) {\n" 206 <<
" Warning(\"Upload\",\"Failed to make directory %s\"," 211 <<
" if (!TFile::Cp(src,out)) \n" 212 <<
" Warning(\"Upload\",\"Failed to upload %s -> %s\",\n" 213 <<
" src.Data(), out.Data());\n" 219 Info(
"ExtracAcceptance",
220 "Run generated Upload.C(DEST) script to copy files in place");
void ExtractAcceptance(Int_t runNo=121526, Int_t system=1, Float_t energy=900, Float_t field=5, Int_t nVtxBins=10, Float_t vtxLow=-10, Float_t vtxHigh=10)
TH2D * MakeOneRing(UShort_t d, Char_t r, Double_t vz, Int_t &nDead)
void SetVertexAxis(const TAxis &axis)
const char * GetObjectName(Int_t what) const
void SetHasOverflow(Bool_t present=true)
Bool_t SetCorrection(UShort_t d, Char_t r, Double_t v, TH2D *h)
static AliForwardCorrectionManager & Instance()