#include "AliEveTPCSectorViz.h"
#include <EveDet/AliEveTPCData.h>
#include <EveDet/AliEveTPCSectorData.h>
#include <TEveTrans.h>
#include <TStyle.h>
#include <TMath.h>
ClassImp(AliEveTPCSectorViz)
AliEveTPCSectorViz::AliEveTPCSectorViz(const Text_t* n, const Text_t* t) :
TEveElement(fFrameColor),
TNamed(n, t),
fTPCData (0),
fSectorID (0),
fMinTime (0),
fMaxTime (1000),
fThreshold (5),
fMaxVal (128),
fRnrInn (kTRUE),
fRnrOut1 (kTRUE),
fRnrOut2 (kTRUE),
fFrameColor (4),
fRnrFrame (kTRUE),
fAutoTrans (kFALSE),
fRTS (1),
fColorArray (0)
{
InitMainTrans();
}
AliEveTPCSectorViz::~AliEveTPCSectorViz()
{
if (fTPCData) fTPCData->DecRefCount();
delete [] fColorArray;
}
void AliEveTPCSectorViz::CopyVizParams(const TEveElement* el)
{
const AliEveTPCSectorViz* v = dynamic_cast<const AliEveTPCSectorViz*>(el);
if (v) {
fMinTime = v->fMinTime;
fMaxTime = v->fMaxTime;
fThreshold = v->fThreshold;
fMaxVal = v->fMaxVal;
fRnrInn = v->fRnrInn;
fRnrOut1 = v->fRnrOut1;
fRnrOut2 = v->fRnrOut2;
}
}
void AliEveTPCSectorViz::SetDataSource(AliEveTPCData* data)
{
if (data == fTPCData) return;
if (fTPCData) fTPCData->DecRefCount();
fTPCData = data;
if (fTPCData) fTPCData->IncRefCount();
IncRTS();
}
void AliEveTPCSectorViz::SetSectorID(Int_t id)
{
if (id < 0) id = 0;
if (id > 35) id = 35;
fSectorID = id;
if (fAutoTrans)
SetAutoTrans(kTRUE);
IncRTS();
}
AliEveTPCSectorData* AliEveTPCSectorViz::GetSectorData() const
{
return fTPCData ? fTPCData->GetSectorData(fSectorID) : 0;
}
void AliEveTPCSectorViz::SetThreshold(Short_t t)
{
fThreshold = TMath::Min(t, (Short_t)(fMaxVal - 1));
ClearColorArray();
IncRTS();
}
void AliEveTPCSectorViz::SetMaxVal(Int_t mv)
{
fMaxVal = TMath::Max(mv, (Int_t)(fThreshold + 1));
ClearColorArray();
IncRTS();
}
void AliEveTPCSectorViz::SetAutoTrans(Bool_t trans)
{
fAutoTrans = trans;
if (fAutoTrans)
{
using namespace TMath;
Float_t c = Cos((fSectorID + 0.5)*20*Pi()/180 - PiOver2());
Float_t s = Sin((fSectorID + 0.5)*20*Pi()/180 - PiOver2());
Float_t z = AliEveTPCSectorData::GetZLength();
InitMainTrans();
TEveTrans& t = RefMainTrans();
if (fSectorID < 18) {
t[0] = -c; t[1] = -s;
t[4] = -s; t[5] = c;
t[10] = -1;
t[14] = z;
} else {
t[0] = c; t[1] = s;
t[4] = -s; t[5] = c;
t[10] = 1;
t[14] = -z;
}
}
}
void AliEveTPCSectorViz::SetUseTrans(Bool_t t)
{
RefMainTrans().SetUseTrans(t);
}
void AliEveTPCSectorViz::SetupColor(Int_t val, UChar_t* pixel) const
{
Float_t div = TMath::Max(1, fMaxVal - fThreshold);
Int_t nCol = gStyle->GetNumberOfColors();
Int_t cBin = TMath::Nint(nCol*(val - fThreshold)/div);
TEveUtil::ColorFromIdx(gStyle->GetColorPalette(TMath::Min(nCol - 1, cBin)), pixel);
}
void AliEveTPCSectorViz::ClearColorArray()
{
if (fColorArray) {
delete [] fColorArray;
fColorArray = 0;
}
}
void AliEveTPCSectorViz::SetupColorArray() const
{
if (fColorArray)
return;
fColorArray = new UChar_t [4 * (fMaxVal - fThreshold + 1)];
UChar_t* p = fColorArray;
for (Int_t v=fThreshold; v<=fMaxVal; ++v, p+=4)
SetupColor(v, p);
}
AliEveTPCSectorViz.cxx:10 AliEveTPCSectorViz.cxx:11 AliEveTPCSectorViz.cxx:12 AliEveTPCSectorViz.cxx:13 AliEveTPCSectorViz.cxx:14 AliEveTPCSectorViz.cxx:15 AliEveTPCSectorViz.cxx:16 AliEveTPCSectorViz.cxx:17 AliEveTPCSectorViz.cxx:18 AliEveTPCSectorViz.cxx:19 AliEveTPCSectorViz.cxx:20 AliEveTPCSectorViz.cxx:21 AliEveTPCSectorViz.cxx:22 AliEveTPCSectorViz.cxx:23 AliEveTPCSectorViz.cxx:24 AliEveTPCSectorViz.cxx:25 AliEveTPCSectorViz.cxx:26 AliEveTPCSectorViz.cxx:27 AliEveTPCSectorViz.cxx:28 AliEveTPCSectorViz.cxx:29 AliEveTPCSectorViz.cxx:30 AliEveTPCSectorViz.cxx:31 AliEveTPCSectorViz.cxx:32 AliEveTPCSectorViz.cxx:33 AliEveTPCSectorViz.cxx:34 AliEveTPCSectorViz.cxx:35 AliEveTPCSectorViz.cxx:36 AliEveTPCSectorViz.cxx:37 AliEveTPCSectorViz.cxx:38 AliEveTPCSectorViz.cxx:39 AliEveTPCSectorViz.cxx:40 AliEveTPCSectorViz.cxx:41 AliEveTPCSectorViz.cxx:42 AliEveTPCSectorViz.cxx:43 AliEveTPCSectorViz.cxx:44 AliEveTPCSectorViz.cxx:45 AliEveTPCSectorViz.cxx:46 AliEveTPCSectorViz.cxx:47 AliEveTPCSectorViz.cxx:48 AliEveTPCSectorViz.cxx:49 AliEveTPCSectorViz.cxx:50 AliEveTPCSectorViz.cxx:51 AliEveTPCSectorViz.cxx:52 AliEveTPCSectorViz.cxx:53 AliEveTPCSectorViz.cxx:54 AliEveTPCSectorViz.cxx:55 AliEveTPCSectorViz.cxx:56 AliEveTPCSectorViz.cxx:57 AliEveTPCSectorViz.cxx:58 AliEveTPCSectorViz.cxx:59 AliEveTPCSectorViz.cxx:60 AliEveTPCSectorViz.cxx:61 AliEveTPCSectorViz.cxx:62 AliEveTPCSectorViz.cxx:63 AliEveTPCSectorViz.cxx:64 AliEveTPCSectorViz.cxx:65 AliEveTPCSectorViz.cxx:66 AliEveTPCSectorViz.cxx:67 AliEveTPCSectorViz.cxx:68 AliEveTPCSectorViz.cxx:69 AliEveTPCSectorViz.cxx:70 AliEveTPCSectorViz.cxx:71 AliEveTPCSectorViz.cxx:72 AliEveTPCSectorViz.cxx:73 AliEveTPCSectorViz.cxx:74 AliEveTPCSectorViz.cxx:75 AliEveTPCSectorViz.cxx:76 AliEveTPCSectorViz.cxx:77 AliEveTPCSectorViz.cxx:78 AliEveTPCSectorViz.cxx:79 AliEveTPCSectorViz.cxx:80 AliEveTPCSectorViz.cxx:81 AliEveTPCSectorViz.cxx:82 AliEveTPCSectorViz.cxx:83 AliEveTPCSectorViz.cxx:84 AliEveTPCSectorViz.cxx:85 AliEveTPCSectorViz.cxx:86 AliEveTPCSectorViz.cxx:87 AliEveTPCSectorViz.cxx:88 AliEveTPCSectorViz.cxx:89 AliEveTPCSectorViz.cxx:90 AliEveTPCSectorViz.cxx:91 AliEveTPCSectorViz.cxx:92 AliEveTPCSectorViz.cxx:93 AliEveTPCSectorViz.cxx:94 AliEveTPCSectorViz.cxx:95 AliEveTPCSectorViz.cxx:96 AliEveTPCSectorViz.cxx:97 AliEveTPCSectorViz.cxx:98 AliEveTPCSectorViz.cxx:99 AliEveTPCSectorViz.cxx:100 AliEveTPCSectorViz.cxx:101 AliEveTPCSectorViz.cxx:102 AliEveTPCSectorViz.cxx:103 AliEveTPCSectorViz.cxx:104 AliEveTPCSectorViz.cxx:105 AliEveTPCSectorViz.cxx:106 AliEveTPCSectorViz.cxx:107 AliEveTPCSectorViz.cxx:108 AliEveTPCSectorViz.cxx:109 AliEveTPCSectorViz.cxx:110 AliEveTPCSectorViz.cxx:111 AliEveTPCSectorViz.cxx:112 AliEveTPCSectorViz.cxx:113 AliEveTPCSectorViz.cxx:114 AliEveTPCSectorViz.cxx:115 AliEveTPCSectorViz.cxx:116 AliEveTPCSectorViz.cxx:117 AliEveTPCSectorViz.cxx:118 AliEveTPCSectorViz.cxx:119 AliEveTPCSectorViz.cxx:120 AliEveTPCSectorViz.cxx:121 AliEveTPCSectorViz.cxx:122 AliEveTPCSectorViz.cxx:123 AliEveTPCSectorViz.cxx:124 AliEveTPCSectorViz.cxx:125 AliEveTPCSectorViz.cxx:126 AliEveTPCSectorViz.cxx:127 AliEveTPCSectorViz.cxx:128 AliEveTPCSectorViz.cxx:129 AliEveTPCSectorViz.cxx:130 AliEveTPCSectorViz.cxx:131 AliEveTPCSectorViz.cxx:132 AliEveTPCSectorViz.cxx:133 AliEveTPCSectorViz.cxx:134 AliEveTPCSectorViz.cxx:135 AliEveTPCSectorViz.cxx:136 AliEveTPCSectorViz.cxx:137 AliEveTPCSectorViz.cxx:138 AliEveTPCSectorViz.cxx:139 AliEveTPCSectorViz.cxx:140 AliEveTPCSectorViz.cxx:141 AliEveTPCSectorViz.cxx:142 AliEveTPCSectorViz.cxx:143 AliEveTPCSectorViz.cxx:144 AliEveTPCSectorViz.cxx:145 AliEveTPCSectorViz.cxx:146 AliEveTPCSectorViz.cxx:147 AliEveTPCSectorViz.cxx:148 AliEveTPCSectorViz.cxx:149 AliEveTPCSectorViz.cxx:150 AliEveTPCSectorViz.cxx:151 AliEveTPCSectorViz.cxx:152 AliEveTPCSectorViz.cxx:153 AliEveTPCSectorViz.cxx:154 AliEveTPCSectorViz.cxx:155 AliEveTPCSectorViz.cxx:156 AliEveTPCSectorViz.cxx:157 AliEveTPCSectorViz.cxx:158 AliEveTPCSectorViz.cxx:159 AliEveTPCSectorViz.cxx:160 AliEveTPCSectorViz.cxx:161 AliEveTPCSectorViz.cxx:162 AliEveTPCSectorViz.cxx:163 AliEveTPCSectorViz.cxx:164 AliEveTPCSectorViz.cxx:165 AliEveTPCSectorViz.cxx:166 AliEveTPCSectorViz.cxx:167 AliEveTPCSectorViz.cxx:168 AliEveTPCSectorViz.cxx:169 AliEveTPCSectorViz.cxx:170 AliEveTPCSectorViz.cxx:171 AliEveTPCSectorViz.cxx:172 AliEveTPCSectorViz.cxx:173 AliEveTPCSectorViz.cxx:174 AliEveTPCSectorViz.cxx:175 AliEveTPCSectorViz.cxx:176 AliEveTPCSectorViz.cxx:177 AliEveTPCSectorViz.cxx:178 AliEveTPCSectorViz.cxx:179 AliEveTPCSectorViz.cxx:180 AliEveTPCSectorViz.cxx:181 AliEveTPCSectorViz.cxx:182 AliEveTPCSectorViz.cxx:183 AliEveTPCSectorViz.cxx:184 AliEveTPCSectorViz.cxx:185 AliEveTPCSectorViz.cxx:186 AliEveTPCSectorViz.cxx:187 AliEveTPCSectorViz.cxx:188 AliEveTPCSectorViz.cxx:189 AliEveTPCSectorViz.cxx:190 AliEveTPCSectorViz.cxx:191 AliEveTPCSectorViz.cxx:192 AliEveTPCSectorViz.cxx:193 AliEveTPCSectorViz.cxx:194 AliEveTPCSectorViz.cxx:195 AliEveTPCSectorViz.cxx:196 AliEveTPCSectorViz.cxx:197 AliEveTPCSectorViz.cxx:198 AliEveTPCSectorViz.cxx:199 AliEveTPCSectorViz.cxx:200 AliEveTPCSectorViz.cxx:201 AliEveTPCSectorViz.cxx:202 AliEveTPCSectorViz.cxx:203 AliEveTPCSectorViz.cxx:204 AliEveTPCSectorViz.cxx:205 AliEveTPCSectorViz.cxx:206 AliEveTPCSectorViz.cxx:207 AliEveTPCSectorViz.cxx:208 AliEveTPCSectorViz.cxx:209 AliEveTPCSectorViz.cxx:210 AliEveTPCSectorViz.cxx:211 AliEveTPCSectorViz.cxx:212