fScale = s;
AliEveITSScaledModule* sm;
- std::list<TEveElement*>::iterator i = fBackRefs.begin();
+ RefMap_i i = fBackRefs.begin();
+ // #endif
while (i != fBackRefs.end())
{
- sm = dynamic_cast<AliEveITSScaledModule*>(*i);
+ sm = dynamic_cast<AliEveITSScaledModule*>(i->first);
+ // #endif
if(sm) sm->LoadQuads();
++i;
}
fSyncPalette = kTRUE;
AliEveITSScaledModule* sm;
- std::list<TEveElement*>::iterator i = fBackRefs.begin();
+ RefMap_i i = fBackRefs.begin();
+ // #endif
while (i != fBackRefs.end())
{
- sm = dynamic_cast<AliEveITSScaledModule*>(*i);
+ sm = dynamic_cast<AliEveITSScaledModule*>(i->first);
+ // #endif
if (sm) sm->SetQuadValues();
++i;
}
AliEveITSScaledModule::AliEveITSScaledModule(Int_t gid, AliEveITSDigitsInfo* info, AliEveDigitScaleInfo* si):
AliEveITSModule("AliEveITSScaledModule", "AliEveITSScaledModule"),
- fDigitsMap(),
fNx(-1),
fNz(-1),
fNCx(-1),
fNCz(-1),
- fScaleInfo(si)
+ fScaleInfo(si),
+ fDigitsMap()
{
SetOwnIds(kTRUE);
// We need this as TEveQuadSet offers optimized treatment for
// quads in the x-y plane.
- TClonesArray *digits;
+ TClonesArray *digits = fInfo->GetDigits(fID, fDetID);
+ if (!digits) return;
+
+ Int_t ndigits = digits->GetEntriesFast();
+
Float_t x, z, zo, dpx, dpz; // orig cells size, pos
- Int_t i, j, ndigits; // orig cells idx
- Int_t c1, c2; // original coordinates
+ Int_t i, j; // orig cells idx
+ Int_t c1, c2; // original coordinates
Int_t id;
std::map<Int_t, Int_t> dmap;
std::map<Int_t, Int_t>::iterator miter;
- digits = fInfo->GetDigits(fID, fDetID);
- ndigits = digits->GetEntriesFast();
- ScaledDigit_t* sd;
Int_t scale = fScaleInfo->GetScale() -1;
switch(fDetID)
{
fInfo->GetSPDLocalZ(od->GetCoord1(),zo);
c1 = od->GetCoord1(); c2 = od->GetCoord2();
- i = Int_t((zo+fDz)/dpz);
- j = Int_t((od->GetCoord2()*fNx)/fInfo->fSegSPD->Npx());
+ i = Int_t((zo+fDz)/dpz);
+ j = Int_t((od->GetCoord2()*fNx)/fInfo->fSegSPD->Npx());
id = j*fNx + i;
+ ScaledDigit_t* sd = 0;
miter = dmap.find(id);
if(miter == dmap.end())
{
}
else
{
- sd = dynamic_cast<ScaledDigit_t*>(GetId(miter->second));
+ sd = static_cast<ScaledDigit_t*>(GetId(miter->second));
if(c1 < sd->fMinI)
sd->fMinI = c1;
else if( c1 > sd->fMaxI)
fNCx = fInfo->fSDDScaleX[scale];
fNz = Int_t(fInfo->fSegSDD->Npz()/fNCz);
fNx = Int_t(fInfo->fSegSDD->Npx()/fNCx);
- dpz = 2*fDz/fNz;
- dpx = 2*fDx/fNx;
+ dpz = 2*fDz/fNz;
+ dpx = 2*fDx/fNx;
- AliITSdigitSDD *od=0;
- for (Int_t k=0; k<ndigits; k++) {
- od=(AliITSdigitSDD*)digits->UncheckedAt(k);
+ AliITSdigitSDD *od = 0;
+ for (Int_t k = 0; k < ndigits; ++k)
+ {
+ od = (AliITSdigitSDD*)digits->UncheckedAt(k);
fInfo->fSegSDD->DetToLocal(od->GetCoord2(), od->GetCoord1(),x,z);
- z+= fDz;
- x+= fDx;
- i = Int_t(z/dpz);
- j = Int_t(x/dpx);
+ z += fDz;
+ x += fDx;
+ i = Int_t(z/dpz);
+ j = Int_t(x/dpx);
//printf("Mod %d coord %d,%d out of %d,%d :: ORIG coord %d,%d out of %d,%d \n",fID,
// i,j,Nz,Nx,od->GetCoord1(),od->GetCoord2(),fInfo->fSegSDD->Npz(),fInfo->fSegSDD->Npx());
id = j*fNx + i;
c1 = od->GetCoord1(); c2 = od->GetCoord2();
+ ScaledDigit_t* sd = 0;
miter = dmap.find(id);
if(miter == dmap.end())
{
}
else
{
- sd = dynamic_cast<ScaledDigit_t*>(GetId(miter->second));
+ sd = static_cast<ScaledDigit_t*>(GetId(miter->second));
if(c1 < sd->fMinI)
sd->fMinI = c1;
else if( c1 > sd->fMaxI)
dpz = 2*fDz/fNz;
dpx = 2*fDx/fNx;
- AliITSdigitSSD *od=0;
+ AliITSdigitSSD *od = 0;
for (Int_t k=0; k<ndigits; k++) {
od=(AliITSdigitSSD*)digits->UncheckedAt(k);
if(od->GetCoord1() == 1)
c1 = od->GetCoord1(); c2 = od->GetCoord2();
id = j*i;
+ ScaledDigit_t* sd = 0;
miter = dmap.find(id);
- ScaledDigit_t* sd;
if(miter == dmap.end())
{
// printf("orig digit %d,%d scaled %d,%d \n",od->GetCoord1(),od->GetCoord2(),i,j);
}
else
{
- sd = dynamic_cast<ScaledDigit_t*>(GetId(miter->second));
+ sd = static_cast<ScaledDigit_t*>(GetId(miter->second));
if(c1 < sd->fMinI)
sd->fMinI = c1;
else if( c1 > sd->fMaxI)
Int_t num = fPlex.Size();
for (Int_t i = 0 ; i < num; i++)
{
- ScaledDigit_t* sd = dynamic_cast<ScaledDigit_t*>(GetId(i));
+ ScaledDigit_t* sd = static_cast<ScaledDigit_t*>(GetId(i));
Int_t v = 0;
switch(fScaleInfo->GetStatType())
{
// Override control-click from TEveQuadSet
printf("AliEveITSScaledModule::DigitSelected "); Print();
- DigitBase_t* qb = GetDigit(idx);
- TObject* obj = qb->fId.GetObject();
- ScaledDigit_t* sd = dynamic_cast<ScaledDigit_t*>(obj);
+ // DigitBase_t *qb = GetDigit(idx);
+ TObject *obj = GetId(idx);
+ ScaledDigit_t *sd = static_cast<ScaledDigit_t*>(obj);
TClonesArray *digits = fInfo->GetDigits(fID, fDetID);
Int_t ndigits = digits->GetEntriesFast();