00001 #include <iomanip>
00002
00003 #include "StGammaTower.h"
00004 #include "StBarrelEmcCluster.h"
00005
00006 ClassImp(StBarrelEmcCluster);
00007
00008 ostream& operator<<(ostream& out, const StBarrelEmcCluster& cluster)
00009 {
00010
00011 out << "Energy [GeV]:\t" << cluster.energy() << '\n';
00012 out << "Transverse energy [GeV]:\t" << cluster.momentum().Pt() << '\n';
00013 out << "Eta:\t" << cluster.momentum().Eta() << '\n';
00014 out << "Phi [radians]:\t" << cluster.momentum().Phi() << '\n';
00015 out << "Position [cm]: [ x = " << cluster.position().x() << ", y = "
00016 << cluster.position().y() << ", z = " << cluster.position().z() << " ]\n";
00017
00018 out << "Tower id:\n";
00019 for (int dphi = 1; dphi >= -1; --dphi)
00020 {
00021
00022 out << "+------+------+------+\n";
00023 out << "| ";
00024
00025 for (int deta = -1; deta <= 1; ++deta)
00026 {
00027 StGammaTower* tower = cluster.tower(deta, dphi);
00028 int id = tower ? tower->id : 0;
00029 out << setw(4) << id << " | ";
00030 }
00031
00032 out << '\n';
00033
00034 }
00035
00036 out << "+------+------+------+\n";
00037
00038 out << "Energy [GeV]:\n";
00039 for (int dphi = 1; dphi >= -1; --dphi)
00040 {
00041
00042 out << "+--------+--------+--------+\n";
00043 out << "| ";
00044
00045 for (int deta = -1; deta <= 1; ++deta)
00046 {
00047
00048 StGammaTower* tower = cluster.tower(deta, dphi);
00049 float energy = tower ? tower->energy : 0;
00050 out << fixed << setprecision(3) << setw(6) << energy << " | ";
00051
00052 }
00053
00054 out << '\n';
00055 }
00056 out << "+--------+--------+--------+\n";
00057
00058 return out;
00059 }