#include <AliFMDESDRevertexer.h>
#include <AliFMDGeometry.h>
#include <AliESDFMD.h>
#include <TMath.h>
#include <AliLog.h>
ClassImp(AliFMDESDRevertexer)
#if 0 // for emacs
;
#endif
AliFMDESDRevertexer::AliFMDESDRevertexer()
{
AliFMDGeometry* geom = AliFMDGeometry::Instance();
geom->Init();
geom->InitTransformations();
}
Bool_t
AliFMDESDRevertexer::Revertex(AliESDFMD* fmdEsd, Double_t vz) const
{
if (!fmdEsd) return kFALSE;
Bool_t ret = kTRUE;
for (UShort_t det = 1; det <= 3; det++) {
UShort_t nrng = (det == 1 ? 1 : 2);
for (UShort_t ir = 0; ir < nrng; ir++) {
Char_t rng = (ir == 0 ? 'I' : 'O');
UShort_t nsec = (ir == 0 ? 20 : 40);
UShort_t nstr = (ir == 0 ? 512 : 256);
for (UShort_t str = 0; str < nstr; str++) {
Double_t phi, r, theta;
Double_t eta = AliESDFMD::kInvalidEta;
Double_t oldEta = fmdEsd->Eta(det, rng, 0, str);
Double_t oldTheta = Eta2Theta(oldEta);
Bool_t ret1 = PhysicalCoordinates(det, rng, 0, str, vz,
eta, phi, r, theta);
fmdEsd->SetEta(det, rng, 0, str, eta);
if (!ret1) {
AliWarning(Form("Failed to calculate eta, phi for "
"FMD%d%c[%02d,%03d] with v_z=%9.4f",
det, rng, 0, str, vz));
ret = kFALSE;
continue;
}
Double_t corr = TMath::Abs(TMath::Cos(theta));
if (fmdEsd->IsAngleCorrected()) {
if (oldEta != AliESDFMD::kInvalidMult)
corr /= TMath::Abs(TMath::Cos(oldTheta));
for (UShort_t sec = 0; sec < nsec; sec++) {
Double_t mult = fmdEsd->Multiplicity(det, rng, sec, str);
if (mult == AliESDFMD::kInvalidMult) continue;
fmdEsd->SetMultiplicity(det, rng, sec, str, corr * mult);
}
}
}
}
}
return ret;
}
Double_t
AliFMDESDRevertexer::Eta2Theta(Double_t eta) const
{
if (eta == AliESDFMD::kInvalidEta) return 0;
return 2 * TMath::ATan(TMath::Exp(-eta));
}
Bool_t
AliFMDESDRevertexer::PhysicalCoordinates(UShort_t det,
Char_t rng,
UShort_t sec,
UShort_t str,
Double_t vz,
Double_t& eta,
Double_t& phi,
Double_t& r,
Double_t& theta) const
{
AliFMDGeometry* geom = AliFMDGeometry::Instance();
Double_t x=0, y=0, z=0;
geom->Detector2XYZ(det, rng, sec, str, x, y, z);
return AliFMDGeometry::XYZ2REtaPhiTheta(x, y, z-vz, r, eta, phi, theta);
}
AliFMDESDRevertexer.cxx:1 AliFMDESDRevertexer.cxx:2 AliFMDESDRevertexer.cxx:3 AliFMDESDRevertexer.cxx:4 AliFMDESDRevertexer.cxx:5 AliFMDESDRevertexer.cxx:6 AliFMDESDRevertexer.cxx:7 AliFMDESDRevertexer.cxx:8 AliFMDESDRevertexer.cxx:9 AliFMDESDRevertexer.cxx:10 AliFMDESDRevertexer.cxx:11 AliFMDESDRevertexer.cxx:12 AliFMDESDRevertexer.cxx:13 AliFMDESDRevertexer.cxx:14 AliFMDESDRevertexer.cxx:15 AliFMDESDRevertexer.cxx:16 AliFMDESDRevertexer.cxx:17 AliFMDESDRevertexer.cxx:18 AliFMDESDRevertexer.cxx:19 AliFMDESDRevertexer.cxx:20 AliFMDESDRevertexer.cxx:21 AliFMDESDRevertexer.cxx:22 AliFMDESDRevertexer.cxx:23 AliFMDESDRevertexer.cxx:24 AliFMDESDRevertexer.cxx:25 AliFMDESDRevertexer.cxx:26 AliFMDESDRevertexer.cxx:27 AliFMDESDRevertexer.cxx:28 AliFMDESDRevertexer.cxx:29 AliFMDESDRevertexer.cxx:30 AliFMDESDRevertexer.cxx:31 AliFMDESDRevertexer.cxx:32 AliFMDESDRevertexer.cxx:33 AliFMDESDRevertexer.cxx:34 AliFMDESDRevertexer.cxx:35 AliFMDESDRevertexer.cxx:36 AliFMDESDRevertexer.cxx:37 AliFMDESDRevertexer.cxx:38 AliFMDESDRevertexer.cxx:39 AliFMDESDRevertexer.cxx:40 AliFMDESDRevertexer.cxx:41 AliFMDESDRevertexer.cxx:42 AliFMDESDRevertexer.cxx:43 AliFMDESDRevertexer.cxx:44 AliFMDESDRevertexer.cxx:45 AliFMDESDRevertexer.cxx:46 AliFMDESDRevertexer.cxx:47 AliFMDESDRevertexer.cxx:48 AliFMDESDRevertexer.cxx:49 AliFMDESDRevertexer.cxx:50 AliFMDESDRevertexer.cxx:51 AliFMDESDRevertexer.cxx:52 AliFMDESDRevertexer.cxx:53 AliFMDESDRevertexer.cxx:54 AliFMDESDRevertexer.cxx:55 AliFMDESDRevertexer.cxx:56 AliFMDESDRevertexer.cxx:57 AliFMDESDRevertexer.cxx:58 AliFMDESDRevertexer.cxx:59 AliFMDESDRevertexer.cxx:60 AliFMDESDRevertexer.cxx:61 AliFMDESDRevertexer.cxx:62 AliFMDESDRevertexer.cxx:63 AliFMDESDRevertexer.cxx:64 AliFMDESDRevertexer.cxx:65 AliFMDESDRevertexer.cxx:66 AliFMDESDRevertexer.cxx:67 AliFMDESDRevertexer.cxx:68 AliFMDESDRevertexer.cxx:69 AliFMDESDRevertexer.cxx:70 AliFMDESDRevertexer.cxx:71 AliFMDESDRevertexer.cxx:72 AliFMDESDRevertexer.cxx:73 AliFMDESDRevertexer.cxx:74 AliFMDESDRevertexer.cxx:75 AliFMDESDRevertexer.cxx:76 AliFMDESDRevertexer.cxx:77 AliFMDESDRevertexer.cxx:78 AliFMDESDRevertexer.cxx:79 AliFMDESDRevertexer.cxx:80 AliFMDESDRevertexer.cxx:81 AliFMDESDRevertexer.cxx:82 AliFMDESDRevertexer.cxx:83 AliFMDESDRevertexer.cxx:84 AliFMDESDRevertexer.cxx:85 AliFMDESDRevertexer.cxx:86 AliFMDESDRevertexer.cxx:87 AliFMDESDRevertexer.cxx:88 AliFMDESDRevertexer.cxx:89 AliFMDESDRevertexer.cxx:90 AliFMDESDRevertexer.cxx:91 AliFMDESDRevertexer.cxx:92 AliFMDESDRevertexer.cxx:93 AliFMDESDRevertexer.cxx:94 AliFMDESDRevertexer.cxx:95 AliFMDESDRevertexer.cxx:96 AliFMDESDRevertexer.cxx:97 AliFMDESDRevertexer.cxx:98 AliFMDESDRevertexer.cxx:99 AliFMDESDRevertexer.cxx:100 AliFMDESDRevertexer.cxx:101 AliFMDESDRevertexer.cxx:102 AliFMDESDRevertexer.cxx:103 AliFMDESDRevertexer.cxx:104 AliFMDESDRevertexer.cxx:105 AliFMDESDRevertexer.cxx:106 AliFMDESDRevertexer.cxx:107 AliFMDESDRevertexer.cxx:108 AliFMDESDRevertexer.cxx:109 AliFMDESDRevertexer.cxx:110 AliFMDESDRevertexer.cxx:111 AliFMDESDRevertexer.cxx:112 AliFMDESDRevertexer.cxx:113 AliFMDESDRevertexer.cxx:114