3 * Script to test for compatibility to read/write ESD information
6 Float_t EtaValue(UShort_t d, Char_t r, UShort_t t)
8 return (d * 1000 + (r == 'I' || r == 'i' ? 0 : 1) * 100 + 0.001 * t);
10 Float_t MultValue(UShort_t d, Char_t r, UShort_t s, UShort_t t)
12 return (EtaValue(d, r, t) + s);
16 FillESD(AliESDFMD* esd)
18 for (UShort_t d = 1; d <= 3; d++) {
19 UShort_t nRng = (d == 1 ? 1 : 2);
20 for (UShort_t i = 0; i < nRng; i++) {
21 Char_t r = (i == 0 ? 'I' : 'O');
22 UShort_t nSec = (i == 0 ? 20 : 40);
23 UShort_t nStr = (i == 0 ? 512 : 256);
24 for (UShort_t s = 0; s < nSec; s++) {
25 for (UShort_t t = 0; t < nStr; t++) {
26 if (s == 0) esd->SetEta(d, r, 0, t, EtaValue(d, r, t));
27 esd->SetMultiplicity(d, r, s, t, MultValue(d, r, s, t));
35 WriteESD(const char* fileName)
37 TFile* file = TFile::Open(fileName, "RECREATE");
38 TTree* tree = new TTree("T", "T");
39 AliESDFMD* fmd = new AliESDFMD();
40 tree->Branch("FMD", "AliESDFMD", &fmd);
42 for (UShort_t i = 0; i < 10; i++) {
51 PrintOne(UShort_t d, Char_t r, UShort_t s, UShort_t t,
54 Float_t em = MultValue(d, r, s, t);
55 Float_t ee = EtaValue(d, r, t);
56 if (m != em || ee != e) {
57 std::cerr << "FMD" << d << r << '['
58 << std::setw(2) << s << ','
59 << std::setw(3) << t << "]: "
60 << std::setw(8) << m << " ("
61 << std::setw(8) << em << ' '
62 << (m == em ? "ok" : "bad") << ") @ "
63 << std::setw(8) << e << " ("
64 << std::setw(8) << ee << ' '
65 << (ee == e ? "ok" : "bad") << ')' << std::endl;
72 PrintESD(AliESDFMD* esd)
76 for (UShort_t d = 1; d <= 3; d++) {
77 UShort_t nRng = (d == 1 ? 1 : 2);
78 for (UShort_t i = 0; i < nRng; i++) {
79 Char_t r = (i == 0 ? 'I' : 'O');
80 UShort_t nSec = (i == 0 ? 20 : 40);
81 UShort_t nStr = (i == 0 ? 512 : 256);
82 for (UShort_t s = 0; s < nSec; s++) {
83 for (UShort_t t = 0; t < nStr; t++) {
84 Float_t m = esd->Multiplicity(d, r, s, t);
85 Float_t e = esd->Eta(d, r, s, t);
86 if (!PrintOne(d, r, s, t, m, e)) ret = kFALSE;
95 ReadESD(const char* fileName)
97 TFile* file = TFile::Open(fileName, "READ");
98 TTree* tree = static_cast<TTree*>(file->Get("T"));
99 AliESDFMD* fmd = new AliESDFMD();
100 tree->SetBranchAddress("FMD", &fmd);
103 for (UShort_t i = 0; i < 10; i++) {
106 if (!PrintESD(fmd)) ret = kFALSE;
110 std::cerr << "There have been errors!" << std::endl;
112 std::cout << "All correct" << std::endl;
118 TestESDCompat(const char* fileName=0)
121 WriteESD("esd_test.root");