#include "AliEveITSModuleStepper.h"
#include "AliEveITSDigitsInfo.h"
#include "AliEveITSScaledModule.h"
#include <TEveManager.h>
#include <TEveGedEditor.h>
#include <TEveGridStepper.h>
#include <TEveTrans.h>
#include <TGLRnrCtx.h>
#include <TGLIncludes.h>
#include <TGLSelectRecord.h>
#include <TGLUtil.h>
#include <TGLViewer.h>
#include <TGLAxis.h>
#include <TMath.h>
#include <THLimitsFinder.h>
#include <TVirtualPad.h>
#include <RVersion.h>
ClassImp(AliEveITSModuleStepper)
AliEveITSModuleStepper::AliEveITSModuleStepper(AliEveITSDigitsInfo* di) :
TEveElementList("ITS 2DStore", "AliEveITSModuleStepper", kTRUE),
fDigitsInfo(di),
fScaleInfo(0),
fStepper(0),
fModuleIDs(),
fPosition(0),
fSubDet(-1),
fModuleFont(), fTextFont(), fSymbolFont(),
fAxis(0),
fMenuHeight(0.13),
fTextSize(64),
fTextCol(kGray+1),
fActiveCol(kRed-4),
fActiveID(-1)
{
SetMainColorPtr(&fTextCol);
fAxis = new TGLAxis();
fChildClass = AliEveITSScaledModule::Class();
fDigitsInfo->IncRefCount();
fStepper = new TEveGridStepper();
fStepper->SetNs(5, 4);
fScaleInfo = new AliEveDigitScaleInfo();
fScaleInfo->IncRefCount();
gEve->GetDefaultGLViewer()->AddOverlayElement(this);
}
AliEveITSModuleStepper::~AliEveITSModuleStepper()
{
gEve->GetDefaultGLViewer()->RemoveOverlayElement(this);
fScaleInfo->DecRefCount();
fDigitsInfo->DecRefCount();
delete fStepper;
delete fAxis;
}
void AliEveITSModuleStepper::Capacity()
{
Int_t n = fStepper->GetNx()*fStepper->GetNy();
if (n != NumChildren())
{
DestroyElements();
for (Int_t m=0; m<n; ++m)
{
AddElement(new AliEveITSScaledModule(m, fDigitsInfo, fScaleInfo));
}
}
}
void AliEveITSModuleStepper::SetFirst(Int_t first)
{
Int_t lastpage = fModuleIDs.size()/Nxy();
if (fModuleIDs.size() % Nxy() ) lastpage++;
Int_t firstLastpage = (lastpage - 1)*Nxy();
if (first > firstLastpage) first = firstLastpage;
if (first < 0) first = 0;
fPosition = first;
Apply();
}
void AliEveITSModuleStepper::Start()
{
fPosition = 0;
Apply();
}
void AliEveITSModuleStepper::Next()
{
SetFirst(fPosition + Nxy());
}
void AliEveITSModuleStepper::Previous()
{
SetFirst(fPosition - Nxy());
}
void AliEveITSModuleStepper::End()
{
Int_t lastpage = fModuleIDs.size()/Nxy();
if (fModuleIDs.size() % Nxy()) lastpage++;
fPosition = (lastpage - 1)*Nxy();
fStepper->Reset();
Apply();
}
void AliEveITSModuleStepper::DisplayDet(Int_t det, Int_t layer)
{
fSubDet = det;
fModuleIDs.clear();
AliEveITSModuleSelection sel = AliEveITSModuleSelection();
sel.SetType (det);
sel.SetLayer(layer);
fDigitsInfo->GetModuleIDs(&sel, fModuleIDs);
Start();
}
Int_t AliEveITSModuleStepper::GetCurrentPage() const
{
Int_t idx = fPosition + 1;
Int_t n = idx/Nxy();
if (idx % Nxy()) n++;
return n;
}
Int_t AliEveITSModuleStepper::GetPages()
{
Int_t n = fModuleIDs.size()/Nxy();
if (fModuleIDs.size() % Nxy()) n++;
return n;
}
void AliEveITSModuleStepper::Apply()
{
gEve->DisableRedraw();
Capacity();
UInt_t idx = fPosition;
for(List_i childit=fChildren.begin(); childit!=fChildren.end(); ++childit)
{
if (idx < fModuleIDs.size())
{
AliEveITSScaledModule* mod = static_cast<AliEveITSScaledModule*>(*childit);
mod->SetID(fModuleIDs[idx], kFALSE);
TEveTrans& tr = mod->RefMainTrans();
tr.UnitTrans();
tr.RotateLF(3,2,TMath::PiOver2());
tr.RotateLF(1,3,TMath::PiOver2());
Float_t mz, mx;
Float_t* fp = mod->GetFrame()->GetFramePoints();
mx = -2*fp[0];
mz = -2*fp[2];
Double_t sx = fStepper->GetDx();
Double_t sy = (mx*fStepper->GetDx())/mz;
if (sy > fStepper->GetDy())
{
sy = fStepper->GetDy();
sx = (mz*fStepper->GetDx())/mx;
}
Float_t scale = (0.85*sx)/mz;
tr.Scale(scale, scale, scale);
Float_t p[3];
fStepper->GetPosition(p);
tr.SetPos(p[0]+0.5*fStepper->GetDx(), p[1]+0.5*fStepper->GetDy(), p[2]+0.5*fStepper->GetDz());
if (mod->GetSubDetID() == 2)
mod->SetName(Form("SSD %d", idx));
else if (mod->GetSubDetID() == 1)
mod->SetName(Form("SDD %d", idx));
else
mod->SetName(Form("SPD %d", idx));
mod->SetRnrSelf(kTRUE);
fStepper->Step();
idx++;
}
else {
(*childit)->SetRnrSelf(kFALSE);
}
}
fStepper->Reset();
ElementChanged();
gEve->EnableRedraw();
}
Bool_t AliEveITSModuleStepper::Handle(TGLRnrCtx & ,
TGLOvlSelectRecord & rec,
Event_t * event)
{
switch (event->fType)
{
case kMotionNotify:
{
Int_t item = rec.GetN() < 2 ? -1 : (Int_t)rec.GetItem(1);
if (fActiveID != item) {
fActiveID = item;
return kTRUE;
} else {
return kFALSE;
}
break;
}
case kButtonPress:
{
if (event->fCode != kButton1) {
return kFALSE;
}
switch (rec.GetItem(1))
{
case 1:
Previous();
break;
case 2:
Start();
break;
case 3:
Next();
break;
case 4:
End();
break;
case 5:
{
AliEveDigitScaleInfo* si = fScaleInfo;
if (si->GetScale() < 5)
{
si->ScaleChanged(si->GetScale() + 1);
ElementChanged(kTRUE, kTRUE);
}
break;
}
case 6:
{
AliEveDigitScaleInfo* si = fScaleInfo;
if (si->GetScale() > 1)
{
si->ScaleChanged(si->GetScale() - 1);
ElementChanged(kTRUE, kTRUE);
}
break;
}
case 7:
gEve->GetEditor()->DisplayElement(*BeginChildren());
break;
case 8:
DisplayDet(0, -1);
break;
case 9:
DisplayDet(1, -1);
break;
case 10:
DisplayDet(2, -1);
break;
default:
break;
}
return kTRUE;
break;
}
default:
break;
}
return kFALSE;
}
Bool_t AliEveITSModuleStepper::MouseEnter(TGLOvlSelectRecord& )
{
return kTRUE;
}
void AliEveITSModuleStepper::MouseLeave()
{
fActiveID = -1;
}
void AliEveITSModuleStepper::RenderText(const char* txt, Int_t id, const TGLFont &font, Float_t step)
{
Float_t llx, lly, llz, urx, ury, urz;
font.BBox(txt, llx, lly, llz, urx, ury, urz);
(fActiveID == id && id > 0) ? TGLUtil::Color(fActiveCol) :TGLUtil::Color(fTextCol);
if (step > 0)
{
glPushMatrix();
if (step>urx)
glTranslatef((step-urx+llx)*0.5f-llx, 0, 0);
glLoadName(id);
font.Render(txt);
glPopMatrix();
glTranslatef(step, 0, 0);
}
else
{
glLoadName(id);
glPushMatrix();
font.Render(txt);
glPopMatrix();
glTranslatef(urx, 0, 0);
}
}
void AliEveITSModuleStepper::RenderPalette(TEveRGBAPalette* p)
{
Float_t length = 7*fTextSize;
Float_t x = 1.5*fTextSize;
Float_t y = 0.2*fTextSize;
glTranslatef(x, 0.8*fTextSize, 0);
TGLCapabilitySwitch lights_off(GL_LIGHTING, kFALSE);
glPushAttrib(GL_ENABLE_BIT | GL_POLYGON_BIT);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glDisable(GL_CULL_FACE);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_QUAD_STRIP);
TGLUtil::Color4ubv(p->ColorFromValue(p->GetMinVal()));
glVertex2f(0, 0);
glVertex2f(0, y);
if (p->GetMaxVal() > p->GetMinVal() + 1)
{
Float_t xs = length/(p->GetMaxVal() - p->GetMinVal());
Float_t x0 = xs;
for(Int_t i=p->GetMinVal() + 1; i<p->GetMaxVal(); i++)
{
TGLUtil::Color4ubv(p->ColorFromValue(i));
glVertex2f(x0, 0);
glVertex2f(x0, y);
x0+=xs;
}
}
TGLUtil::Color4ubv(p->ColorFromValue(p->GetMaxVal()));
glVertex2f(length, 0);
glVertex2f(length, y);
glEnd();
glRotatef(-90, 1, 0, 0 );
Double_t v1[3] = {0., 0., 0.};
Double_t v2[3] = {length, 0, 0.};
fAxis->SetTextColor(kGray+1);
fAxis->SetLineColor(kGray+1);
fAxis->PaintGLAxis(v1, v2, p->GetMinVal(), p->GetMaxVal(), 5);
glPopAttrib();
}
void AliEveITSModuleStepper::RenderMenu(Int_t curP, Int_t maxP, Int_t scaleX, Int_t scaleZ)
{
TGLUtil::Color(fTextCol);
fTextFont.PreRender();
glTranslatef(0, fTextSize*0.3, 0);
{
glTranslatef(fTextSize*0.2, 0 , 0);
RenderText("9", 2, fSymbolFont);
RenderText("3", 1, fSymbolFont);
RenderText(Form("%d/%d", curP, maxP),-1, fTextFont, 2.7*fTextSize);
{
Float_t llx, lly, llz, urx, ury, urz;
fSymbolFont.BBox("4", llx, lly, llz, urx, ury, urz);
glTranslatef(-llx, 0, 0);
}
RenderText("4", 3, fSymbolFont);
RenderText(":",4, fSymbolFont);
}
{
glTranslatef(fTextSize,0, 0);
RenderText(Form("Zoom:"), -1, fTextFont);
RenderText("6", 6, fSymbolFont);
RenderText("5", 5, fSymbolFont);
RenderText(Form("%dx%d", scaleX, scaleZ), -1, fTextFont, 2*fTextSize);
}
{
glTranslatef(fTextSize, 0, 0);
RenderText("SPD ", 8, fTextFont);
RenderText("SDD ", 9, fTextFont);
RenderText("SSD ", 10, fTextFont);
fTextFont.PostRender();
}
}
void AliEveITSModuleStepper::RenderModuleIDs()
{
Double_t x, y, z;
UInt_t idx = fPosition;
Float_t llx, lly, llz, urx, ury, urz;
fModuleFont.PreRender();
TGLUtil::Color(kWhite);
for (List_i childit=fChildren.begin(); childit!=fChildren.end(); ++childit)
{
if (idx < fModuleIDs.size())
{
AliEveITSScaledModule* mod = static_cast<AliEveITSScaledModule*>(*childit);
TEveTrans& tr = mod->RefMainTrans();
tr.GetPos(x,y,z);
x += fStepper->GetDx()*0.5;
y -= fStepper->GetDy()*0.5;
z += 0.4;
const char* txt = Form("%d",mod->GetID());
fModuleFont.BBox(txt, llx, lly, llz, urx, ury, urz);
glRasterPos3f(x, y, z);
glBitmap(0, 0, 0, 0,-urx, 0, 0);
fModuleFont.Render(txt);
idx++;
}
}
fModuleFont.PostRender();
}
void AliEveITSModuleStepper::Render(TGLRnrCtx& rnrCtx)
{
AliEveITSScaledModule* sm = static_cast<AliEveITSScaledModule*>(*BeginChildren());
Int_t scaleIdx = fScaleInfo->GetScale() - 1;
Int_t cnx = 0, cnz = 0;
switch(sm->GetSubDetID())
{
case 0:
cnx = fDigitsInfo->fSPDScaleX[scaleIdx];
cnz = fDigitsInfo->fSPDScaleZ[scaleIdx];
break;
case 1:
cnx = fDigitsInfo->fSDDScaleX[scaleIdx];
cnz = fDigitsInfo->fSDDScaleZ[scaleIdx];
break;
case 2:
cnx = fDigitsInfo->fSSDScale[scaleIdx];
cnz = 1;
break;
}
if (fTextFont.GetMode() == TGLFont::kUndef)
{
#if ROOT_VERSION_CODE >= 332547
rnrCtx.RegisterFont(fTextSize, 4, TGLFont::kTexture, fTextFont);
rnrCtx.RegisterFont(72, 31, TGLFont::kTexture, fSymbolFont);
rnrCtx.RegisterFont(14, 4, TGLFont::kPixmap, fModuleFont);
#else
fTextFont = rnrCtx.GetFont(fTextSize, 4, TGLFont::kTexture);
fSymbolFont = rnrCtx.GetFont(72, 31, TGLFont::kTexture);
fModuleFont = rnrCtx.GetFont(14, 4, TGLFont::kPixmap);
#endif
}
{
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
if (rnrCtx.Selection())
{
TGLRect rect(*rnrCtx.GetPickRectangle());
rnrCtx.GetCamera()->WindowToViewport(rect);
gluPickMatrix(rect.X(), rect.Y(), rect.Width(), rect.Height(),
(Int_t*) rnrCtx.GetCamera()->RefViewport().CArr());
}
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glTranslatef(-1, -1, 0);
Float_t txtScale = fMenuHeight/fTextSize*0.5;
glScalef(txtScale, txtScale, 1.);
glPushName(0);
RenderMenu(GetCurrentPage(), GetPages(), cnx, cnz);
glPopName();
Double_t labelSize = 1.6*txtScale*fTextSize;
fAxis->SetLabelsSize(labelSize);
fAxis->SetLabelsOffset(1.2*labelSize);
RenderPalette(sm->GetPalette());
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
}
RenderModuleIDs();
}
AliEveITSModuleStepper.cxx:1 AliEveITSModuleStepper.cxx:2 AliEveITSModuleStepper.cxx:3 AliEveITSModuleStepper.cxx:4 AliEveITSModuleStepper.cxx:5 AliEveITSModuleStepper.cxx:6 AliEveITSModuleStepper.cxx:7 AliEveITSModuleStepper.cxx:8 AliEveITSModuleStepper.cxx:9 AliEveITSModuleStepper.cxx:10 AliEveITSModuleStepper.cxx:11 AliEveITSModuleStepper.cxx:12 AliEveITSModuleStepper.cxx:13 AliEveITSModuleStepper.cxx:14 AliEveITSModuleStepper.cxx:15 AliEveITSModuleStepper.cxx:16 AliEveITSModuleStepper.cxx:17 AliEveITSModuleStepper.cxx:18 AliEveITSModuleStepper.cxx:19 AliEveITSModuleStepper.cxx:20 AliEveITSModuleStepper.cxx:21 AliEveITSModuleStepper.cxx:22 AliEveITSModuleStepper.cxx:23 AliEveITSModuleStepper.cxx:24 AliEveITSModuleStepper.cxx:25 AliEveITSModuleStepper.cxx:26 AliEveITSModuleStepper.cxx:27 AliEveITSModuleStepper.cxx:28 AliEveITSModuleStepper.cxx:29 AliEveITSModuleStepper.cxx:30 AliEveITSModuleStepper.cxx:31 AliEveITSModuleStepper.cxx:32 AliEveITSModuleStepper.cxx:33 AliEveITSModuleStepper.cxx:34 AliEveITSModuleStepper.cxx:35 AliEveITSModuleStepper.cxx:36 AliEveITSModuleStepper.cxx:37 AliEveITSModuleStepper.cxx:38 AliEveITSModuleStepper.cxx:39 AliEveITSModuleStepper.cxx:40 AliEveITSModuleStepper.cxx:41 AliEveITSModuleStepper.cxx:42 AliEveITSModuleStepper.cxx:43 AliEveITSModuleStepper.cxx:44 AliEveITSModuleStepper.cxx:45 AliEveITSModuleStepper.cxx:46 AliEveITSModuleStepper.cxx:47 AliEveITSModuleStepper.cxx:48 AliEveITSModuleStepper.cxx:49 AliEveITSModuleStepper.cxx:50 AliEveITSModuleStepper.cxx:51 AliEveITSModuleStepper.cxx:52 AliEveITSModuleStepper.cxx:53 AliEveITSModuleStepper.cxx:54 AliEveITSModuleStepper.cxx:55 AliEveITSModuleStepper.cxx:56 AliEveITSModuleStepper.cxx:57 AliEveITSModuleStepper.cxx:58 AliEveITSModuleStepper.cxx:59 AliEveITSModuleStepper.cxx:60 AliEveITSModuleStepper.cxx:61 AliEveITSModuleStepper.cxx:62 AliEveITSModuleStepper.cxx:63 AliEveITSModuleStepper.cxx:64 AliEveITSModuleStepper.cxx:65 AliEveITSModuleStepper.cxx:66 AliEveITSModuleStepper.cxx:67 AliEveITSModuleStepper.cxx:68 AliEveITSModuleStepper.cxx:69 AliEveITSModuleStepper.cxx:70 AliEveITSModuleStepper.cxx:71 AliEveITSModuleStepper.cxx:72 AliEveITSModuleStepper.cxx:73 AliEveITSModuleStepper.cxx:74 AliEveITSModuleStepper.cxx:75 AliEveITSModuleStepper.cxx:76 AliEveITSModuleStepper.cxx:77 AliEveITSModuleStepper.cxx:78 AliEveITSModuleStepper.cxx:79 AliEveITSModuleStepper.cxx:80 AliEveITSModuleStepper.cxx:81 AliEveITSModuleStepper.cxx:82 AliEveITSModuleStepper.cxx:83 AliEveITSModuleStepper.cxx:84 AliEveITSModuleStepper.cxx:85 AliEveITSModuleStepper.cxx:86 AliEveITSModuleStepper.cxx:87 AliEveITSModuleStepper.cxx:88 AliEveITSModuleStepper.cxx:89 AliEveITSModuleStepper.cxx:90 AliEveITSModuleStepper.cxx:91 AliEveITSModuleStepper.cxx:92 AliEveITSModuleStepper.cxx:93 AliEveITSModuleStepper.cxx:94 AliEveITSModuleStepper.cxx:95 AliEveITSModuleStepper.cxx:96 AliEveITSModuleStepper.cxx:97 AliEveITSModuleStepper.cxx:98 AliEveITSModuleStepper.cxx:99 AliEveITSModuleStepper.cxx:100 AliEveITSModuleStepper.cxx:101 AliEveITSModuleStepper.cxx:102 AliEveITSModuleStepper.cxx:103 AliEveITSModuleStepper.cxx:104 AliEveITSModuleStepper.cxx:105 AliEveITSModuleStepper.cxx:106 AliEveITSModuleStepper.cxx:107 AliEveITSModuleStepper.cxx:108 AliEveITSModuleStepper.cxx:109 AliEveITSModuleStepper.cxx:110 AliEveITSModuleStepper.cxx:111 AliEveITSModuleStepper.cxx:112 AliEveITSModuleStepper.cxx:113 AliEveITSModuleStepper.cxx:114 AliEveITSModuleStepper.cxx:115 AliEveITSModuleStepper.cxx:116 AliEveITSModuleStepper.cxx:117 AliEveITSModuleStepper.cxx:118 AliEveITSModuleStepper.cxx:119 AliEveITSModuleStepper.cxx:120 AliEveITSModuleStepper.cxx:121 AliEveITSModuleStepper.cxx:122 AliEveITSModuleStepper.cxx:123 AliEveITSModuleStepper.cxx:124 AliEveITSModuleStepper.cxx:125 AliEveITSModuleStepper.cxx:126 AliEveITSModuleStepper.cxx:127 AliEveITSModuleStepper.cxx:128 AliEveITSModuleStepper.cxx:129 AliEveITSModuleStepper.cxx:130 AliEveITSModuleStepper.cxx:131 AliEveITSModuleStepper.cxx:132 AliEveITSModuleStepper.cxx:133 AliEveITSModuleStepper.cxx:134 AliEveITSModuleStepper.cxx:135 AliEveITSModuleStepper.cxx:136 AliEveITSModuleStepper.cxx:137 AliEveITSModuleStepper.cxx:138 AliEveITSModuleStepper.cxx:139 AliEveITSModuleStepper.cxx:140 AliEveITSModuleStepper.cxx:141 AliEveITSModuleStepper.cxx:142 AliEveITSModuleStepper.cxx:143 AliEveITSModuleStepper.cxx:144 AliEveITSModuleStepper.cxx:145 AliEveITSModuleStepper.cxx:146 AliEveITSModuleStepper.cxx:147 AliEveITSModuleStepper.cxx:148 AliEveITSModuleStepper.cxx:149 AliEveITSModuleStepper.cxx:150 AliEveITSModuleStepper.cxx:151 AliEveITSModuleStepper.cxx:152 AliEveITSModuleStepper.cxx:153 AliEveITSModuleStepper.cxx:154 AliEveITSModuleStepper.cxx:155 AliEveITSModuleStepper.cxx:156 AliEveITSModuleStepper.cxx:157 AliEveITSModuleStepper.cxx:158 AliEveITSModuleStepper.cxx:159 AliEveITSModuleStepper.cxx:160 AliEveITSModuleStepper.cxx:161 AliEveITSModuleStepper.cxx:162 AliEveITSModuleStepper.cxx:163 AliEveITSModuleStepper.cxx:164 AliEveITSModuleStepper.cxx:165 AliEveITSModuleStepper.cxx:166 AliEveITSModuleStepper.cxx:167 AliEveITSModuleStepper.cxx:168 AliEveITSModuleStepper.cxx:169 AliEveITSModuleStepper.cxx:170 AliEveITSModuleStepper.cxx:171 AliEveITSModuleStepper.cxx:172 AliEveITSModuleStepper.cxx:173 AliEveITSModuleStepper.cxx:174 AliEveITSModuleStepper.cxx:175 AliEveITSModuleStepper.cxx:176 AliEveITSModuleStepper.cxx:177 AliEveITSModuleStepper.cxx:178 AliEveITSModuleStepper.cxx:179 AliEveITSModuleStepper.cxx:180 AliEveITSModuleStepper.cxx:181 AliEveITSModuleStepper.cxx:182 AliEveITSModuleStepper.cxx:183 AliEveITSModuleStepper.cxx:184 AliEveITSModuleStepper.cxx:185 AliEveITSModuleStepper.cxx:186 AliEveITSModuleStepper.cxx:187 AliEveITSModuleStepper.cxx:188 AliEveITSModuleStepper.cxx:189 AliEveITSModuleStepper.cxx:190 AliEveITSModuleStepper.cxx:191 AliEveITSModuleStepper.cxx:192 AliEveITSModuleStepper.cxx:193 AliEveITSModuleStepper.cxx:194 AliEveITSModuleStepper.cxx:195 AliEveITSModuleStepper.cxx:196 AliEveITSModuleStepper.cxx:197 AliEveITSModuleStepper.cxx:198 AliEveITSModuleStepper.cxx:199 AliEveITSModuleStepper.cxx:200 AliEveITSModuleStepper.cxx:201 AliEveITSModuleStepper.cxx:202 AliEveITSModuleStepper.cxx:203 AliEveITSModuleStepper.cxx:204 AliEveITSModuleStepper.cxx:205 AliEveITSModuleStepper.cxx:206 AliEveITSModuleStepper.cxx:207 AliEveITSModuleStepper.cxx:208 AliEveITSModuleStepper.cxx:209 AliEveITSModuleStepper.cxx:210 AliEveITSModuleStepper.cxx:211 AliEveITSModuleStepper.cxx:212 AliEveITSModuleStepper.cxx:213 AliEveITSModuleStepper.cxx:214 AliEveITSModuleStepper.cxx:215 AliEveITSModuleStepper.cxx:216 AliEveITSModuleStepper.cxx:217 AliEveITSModuleStepper.cxx:218 AliEveITSModuleStepper.cxx:219 AliEveITSModuleStepper.cxx:220 AliEveITSModuleStepper.cxx:221 AliEveITSModuleStepper.cxx:222 AliEveITSModuleStepper.cxx:223 AliEveITSModuleStepper.cxx:224 AliEveITSModuleStepper.cxx:225 AliEveITSModuleStepper.cxx:226 AliEveITSModuleStepper.cxx:227 AliEveITSModuleStepper.cxx:228 AliEveITSModuleStepper.cxx:229 AliEveITSModuleStepper.cxx:230 AliEveITSModuleStepper.cxx:231 AliEveITSModuleStepper.cxx:232 AliEveITSModuleStepper.cxx:233 AliEveITSModuleStepper.cxx:234 AliEveITSModuleStepper.cxx:235 AliEveITSModuleStepper.cxx:236 AliEveITSModuleStepper.cxx:237 AliEveITSModuleStepper.cxx:238 AliEveITSModuleStepper.cxx:239 AliEveITSModuleStepper.cxx:240 AliEveITSModuleStepper.cxx:241 AliEveITSModuleStepper.cxx:242 AliEveITSModuleStepper.cxx:243 AliEveITSModuleStepper.cxx:244 AliEveITSModuleStepper.cxx:245 AliEveITSModuleStepper.cxx:246 AliEveITSModuleStepper.cxx:247 AliEveITSModuleStepper.cxx:248 AliEveITSModuleStepper.cxx:249 AliEveITSModuleStepper.cxx:250 AliEveITSModuleStepper.cxx:251 AliEveITSModuleStepper.cxx:252 AliEveITSModuleStepper.cxx:253 AliEveITSModuleStepper.cxx:254 AliEveITSModuleStepper.cxx:255 AliEveITSModuleStepper.cxx:256 AliEveITSModuleStepper.cxx:257 AliEveITSModuleStepper.cxx:258 AliEveITSModuleStepper.cxx:259 AliEveITSModuleStepper.cxx:260 AliEveITSModuleStepper.cxx:261 AliEveITSModuleStepper.cxx:262 AliEveITSModuleStepper.cxx:263 AliEveITSModuleStepper.cxx:264 AliEveITSModuleStepper.cxx:265 AliEveITSModuleStepper.cxx:266 AliEveITSModuleStepper.cxx:267 AliEveITSModuleStepper.cxx:268 AliEveITSModuleStepper.cxx:269 AliEveITSModuleStepper.cxx:270 AliEveITSModuleStepper.cxx:271 AliEveITSModuleStepper.cxx:272 AliEveITSModuleStepper.cxx:273 AliEveITSModuleStepper.cxx:274 AliEveITSModuleStepper.cxx:275 AliEveITSModuleStepper.cxx:276 AliEveITSModuleStepper.cxx:277 AliEveITSModuleStepper.cxx:278 AliEveITSModuleStepper.cxx:279 AliEveITSModuleStepper.cxx:280 AliEveITSModuleStepper.cxx:281 AliEveITSModuleStepper.cxx:282 AliEveITSModuleStepper.cxx:283 AliEveITSModuleStepper.cxx:284 AliEveITSModuleStepper.cxx:285 AliEveITSModuleStepper.cxx:286 AliEveITSModuleStepper.cxx:287 AliEveITSModuleStepper.cxx:288 AliEveITSModuleStepper.cxx:289 AliEveITSModuleStepper.cxx:290 AliEveITSModuleStepper.cxx:291 AliEveITSModuleStepper.cxx:292 AliEveITSModuleStepper.cxx:293 AliEveITSModuleStepper.cxx:294 AliEveITSModuleStepper.cxx:295 AliEveITSModuleStepper.cxx:296 AliEveITSModuleStepper.cxx:297 AliEveITSModuleStepper.cxx:298 AliEveITSModuleStepper.cxx:299 AliEveITSModuleStepper.cxx:300 AliEveITSModuleStepper.cxx:301 AliEveITSModuleStepper.cxx:302 AliEveITSModuleStepper.cxx:303 AliEveITSModuleStepper.cxx:304 AliEveITSModuleStepper.cxx:305 AliEveITSModuleStepper.cxx:306 AliEveITSModuleStepper.cxx:307 AliEveITSModuleStepper.cxx:308 AliEveITSModuleStepper.cxx:309 AliEveITSModuleStepper.cxx:310 AliEveITSModuleStepper.cxx:311 AliEveITSModuleStepper.cxx:312 AliEveITSModuleStepper.cxx:313 AliEveITSModuleStepper.cxx:314 AliEveITSModuleStepper.cxx:315 AliEveITSModuleStepper.cxx:316 AliEveITSModuleStepper.cxx:317 AliEveITSModuleStepper.cxx:318 AliEveITSModuleStepper.cxx:319 AliEveITSModuleStepper.cxx:320 AliEveITSModuleStepper.cxx:321 AliEveITSModuleStepper.cxx:322 AliEveITSModuleStepper.cxx:323 AliEveITSModuleStepper.cxx:324 AliEveITSModuleStepper.cxx:325 AliEveITSModuleStepper.cxx:326 AliEveITSModuleStepper.cxx:327 AliEveITSModuleStepper.cxx:328 AliEveITSModuleStepper.cxx:329 AliEveITSModuleStepper.cxx:330 AliEveITSModuleStepper.cxx:331 AliEveITSModuleStepper.cxx:332 AliEveITSModuleStepper.cxx:333 AliEveITSModuleStepper.cxx:334 AliEveITSModuleStepper.cxx:335 AliEveITSModuleStepper.cxx:336 AliEveITSModuleStepper.cxx:337 AliEveITSModuleStepper.cxx:338 AliEveITSModuleStepper.cxx:339 AliEveITSModuleStepper.cxx:340 AliEveITSModuleStepper.cxx:341 AliEveITSModuleStepper.cxx:342 AliEveITSModuleStepper.cxx:343 AliEveITSModuleStepper.cxx:344 AliEveITSModuleStepper.cxx:345 AliEveITSModuleStepper.cxx:346 AliEveITSModuleStepper.cxx:347 AliEveITSModuleStepper.cxx:348 AliEveITSModuleStepper.cxx:349 AliEveITSModuleStepper.cxx:350 AliEveITSModuleStepper.cxx:351 AliEveITSModuleStepper.cxx:352 AliEveITSModuleStepper.cxx:353 AliEveITSModuleStepper.cxx:354 AliEveITSModuleStepper.cxx:355 AliEveITSModuleStepper.cxx:356 AliEveITSModuleStepper.cxx:357 AliEveITSModuleStepper.cxx:358 AliEveITSModuleStepper.cxx:359 AliEveITSModuleStepper.cxx:360 AliEveITSModuleStepper.cxx:361 AliEveITSModuleStepper.cxx:362 AliEveITSModuleStepper.cxx:363 AliEveITSModuleStepper.cxx:364 AliEveITSModuleStepper.cxx:365 AliEveITSModuleStepper.cxx:366 AliEveITSModuleStepper.cxx:367 AliEveITSModuleStepper.cxx:368 AliEveITSModuleStepper.cxx:369 AliEveITSModuleStepper.cxx:370 AliEveITSModuleStepper.cxx:371 AliEveITSModuleStepper.cxx:372 AliEveITSModuleStepper.cxx:373 AliEveITSModuleStepper.cxx:374 AliEveITSModuleStepper.cxx:375 AliEveITSModuleStepper.cxx:376 AliEveITSModuleStepper.cxx:377 AliEveITSModuleStepper.cxx:378 AliEveITSModuleStepper.cxx:379 AliEveITSModuleStepper.cxx:380 AliEveITSModuleStepper.cxx:381 AliEveITSModuleStepper.cxx:382 AliEveITSModuleStepper.cxx:383 AliEveITSModuleStepper.cxx:384 AliEveITSModuleStepper.cxx:385 AliEveITSModuleStepper.cxx:386 AliEveITSModuleStepper.cxx:387 AliEveITSModuleStepper.cxx:388 AliEveITSModuleStepper.cxx:389 AliEveITSModuleStepper.cxx:390 AliEveITSModuleStepper.cxx:391 AliEveITSModuleStepper.cxx:392 AliEveITSModuleStepper.cxx:393 AliEveITSModuleStepper.cxx:394 AliEveITSModuleStepper.cxx:395 AliEveITSModuleStepper.cxx:396 AliEveITSModuleStepper.cxx:397 AliEveITSModuleStepper.cxx:398 AliEveITSModuleStepper.cxx:399 AliEveITSModuleStepper.cxx:400 AliEveITSModuleStepper.cxx:401 AliEveITSModuleStepper.cxx:402 AliEveITSModuleStepper.cxx:403 AliEveITSModuleStepper.cxx:404 AliEveITSModuleStepper.cxx:405 AliEveITSModuleStepper.cxx:406 AliEveITSModuleStepper.cxx:407 AliEveITSModuleStepper.cxx:408 AliEveITSModuleStepper.cxx:409 AliEveITSModuleStepper.cxx:410 AliEveITSModuleStepper.cxx:411 AliEveITSModuleStepper.cxx:412 AliEveITSModuleStepper.cxx:413 AliEveITSModuleStepper.cxx:414 AliEveITSModuleStepper.cxx:415 AliEveITSModuleStepper.cxx:416 AliEveITSModuleStepper.cxx:417 AliEveITSModuleStepper.cxx:418 AliEveITSModuleStepper.cxx:419 AliEveITSModuleStepper.cxx:420 AliEveITSModuleStepper.cxx:421 AliEveITSModuleStepper.cxx:422 AliEveITSModuleStepper.cxx:423 AliEveITSModuleStepper.cxx:424 AliEveITSModuleStepper.cxx:425 AliEveITSModuleStepper.cxx:426 AliEveITSModuleStepper.cxx:427 AliEveITSModuleStepper.cxx:428 AliEveITSModuleStepper.cxx:429 AliEveITSModuleStepper.cxx:430 AliEveITSModuleStepper.cxx:431 AliEveITSModuleStepper.cxx:432 AliEveITSModuleStepper.cxx:433 AliEveITSModuleStepper.cxx:434 AliEveITSModuleStepper.cxx:435 AliEveITSModuleStepper.cxx:436 AliEveITSModuleStepper.cxx:437 AliEveITSModuleStepper.cxx:438 AliEveITSModuleStepper.cxx:439 AliEveITSModuleStepper.cxx:440 AliEveITSModuleStepper.cxx:441 AliEveITSModuleStepper.cxx:442 AliEveITSModuleStepper.cxx:443 AliEveITSModuleStepper.cxx:444 AliEveITSModuleStepper.cxx:445 AliEveITSModuleStepper.cxx:446 AliEveITSModuleStepper.cxx:447 AliEveITSModuleStepper.cxx:448 AliEveITSModuleStepper.cxx:449 AliEveITSModuleStepper.cxx:450 AliEveITSModuleStepper.cxx:451 AliEveITSModuleStepper.cxx:452 AliEveITSModuleStepper.cxx:453 AliEveITSModuleStepper.cxx:454 AliEveITSModuleStepper.cxx:455 AliEveITSModuleStepper.cxx:456 AliEveITSModuleStepper.cxx:457 AliEveITSModuleStepper.cxx:458 AliEveITSModuleStepper.cxx:459 AliEveITSModuleStepper.cxx:460 AliEveITSModuleStepper.cxx:461 AliEveITSModuleStepper.cxx:462 AliEveITSModuleStepper.cxx:463 AliEveITSModuleStepper.cxx:464 AliEveITSModuleStepper.cxx:465 AliEveITSModuleStepper.cxx:466 AliEveITSModuleStepper.cxx:467 AliEveITSModuleStepper.cxx:468 AliEveITSModuleStepper.cxx:469 AliEveITSModuleStepper.cxx:470 AliEveITSModuleStepper.cxx:471 AliEveITSModuleStepper.cxx:472 AliEveITSModuleStepper.cxx:473 AliEveITSModuleStepper.cxx:474 AliEveITSModuleStepper.cxx:475 AliEveITSModuleStepper.cxx:476 AliEveITSModuleStepper.cxx:477 AliEveITSModuleStepper.cxx:478 AliEveITSModuleStepper.cxx:479 AliEveITSModuleStepper.cxx:480 AliEveITSModuleStepper.cxx:481 AliEveITSModuleStepper.cxx:482 AliEveITSModuleStepper.cxx:483 AliEveITSModuleStepper.cxx:484 AliEveITSModuleStepper.cxx:485 AliEveITSModuleStepper.cxx:486 AliEveITSModuleStepper.cxx:487 AliEveITSModuleStepper.cxx:488 AliEveITSModuleStepper.cxx:489 AliEveITSModuleStepper.cxx:490 AliEveITSModuleStepper.cxx:491 AliEveITSModuleStepper.cxx:492 AliEveITSModuleStepper.cxx:493 AliEveITSModuleStepper.cxx:494 AliEveITSModuleStepper.cxx:495 AliEveITSModuleStepper.cxx:496 AliEveITSModuleStepper.cxx:497 AliEveITSModuleStepper.cxx:498 AliEveITSModuleStepper.cxx:499 AliEveITSModuleStepper.cxx:500 AliEveITSModuleStepper.cxx:501 AliEveITSModuleStepper.cxx:502 AliEveITSModuleStepper.cxx:503 AliEveITSModuleStepper.cxx:504 AliEveITSModuleStepper.cxx:505 AliEveITSModuleStepper.cxx:506 AliEveITSModuleStepper.cxx:507 AliEveITSModuleStepper.cxx:508 AliEveITSModuleStepper.cxx:509 AliEveITSModuleStepper.cxx:510 AliEveITSModuleStepper.cxx:511 AliEveITSModuleStepper.cxx:512 AliEveITSModuleStepper.cxx:513 AliEveITSModuleStepper.cxx:514 AliEveITSModuleStepper.cxx:515 AliEveITSModuleStepper.cxx:516 AliEveITSModuleStepper.cxx:517 AliEveITSModuleStepper.cxx:518 AliEveITSModuleStepper.cxx:519 AliEveITSModuleStepper.cxx:520 AliEveITSModuleStepper.cxx:521 AliEveITSModuleStepper.cxx:522 AliEveITSModuleStepper.cxx:523 AliEveITSModuleStepper.cxx:524 AliEveITSModuleStepper.cxx:525 AliEveITSModuleStepper.cxx:526 AliEveITSModuleStepper.cxx:527 AliEveITSModuleStepper.cxx:528 AliEveITSModuleStepper.cxx:529 AliEveITSModuleStepper.cxx:530 AliEveITSModuleStepper.cxx:531 AliEveITSModuleStepper.cxx:532 AliEveITSModuleStepper.cxx:533 AliEveITSModuleStepper.cxx:534 AliEveITSModuleStepper.cxx:535 AliEveITSModuleStepper.cxx:536 AliEveITSModuleStepper.cxx:537 AliEveITSModuleStepper.cxx:538 AliEveITSModuleStepper.cxx:539 AliEveITSModuleStepper.cxx:540 AliEveITSModuleStepper.cxx:541 AliEveITSModuleStepper.cxx:542 AliEveITSModuleStepper.cxx:543 AliEveITSModuleStepper.cxx:544 AliEveITSModuleStepper.cxx:545 AliEveITSModuleStepper.cxx:546 AliEveITSModuleStepper.cxx:547 AliEveITSModuleStepper.cxx:548 AliEveITSModuleStepper.cxx:549 AliEveITSModuleStepper.cxx:550 AliEveITSModuleStepper.cxx:551 AliEveITSModuleStepper.cxx:552 AliEveITSModuleStepper.cxx:553 AliEveITSModuleStepper.cxx:554 AliEveITSModuleStepper.cxx:555 AliEveITSModuleStepper.cxx:556 AliEveITSModuleStepper.cxx:557 AliEveITSModuleStepper.cxx:558 AliEveITSModuleStepper.cxx:559 AliEveITSModuleStepper.cxx:560 AliEveITSModuleStepper.cxx:561 AliEveITSModuleStepper.cxx:562 AliEveITSModuleStepper.cxx:563 AliEveITSModuleStepper.cxx:564 AliEveITSModuleStepper.cxx:565 AliEveITSModuleStepper.cxx:566 AliEveITSModuleStepper.cxx:567 AliEveITSModuleStepper.cxx:568 AliEveITSModuleStepper.cxx:569 AliEveITSModuleStepper.cxx:570 AliEveITSModuleStepper.cxx:571 AliEveITSModuleStepper.cxx:572 AliEveITSModuleStepper.cxx:573 AliEveITSModuleStepper.cxx:574 AliEveITSModuleStepper.cxx:575 AliEveITSModuleStepper.cxx:576 AliEveITSModuleStepper.cxx:577 AliEveITSModuleStepper.cxx:578 AliEveITSModuleStepper.cxx:579 AliEveITSModuleStepper.cxx:580 AliEveITSModuleStepper.cxx:581 AliEveITSModuleStepper.cxx:582 AliEveITSModuleStepper.cxx:583 AliEveITSModuleStepper.cxx:584 AliEveITSModuleStepper.cxx:585 AliEveITSModuleStepper.cxx:586 AliEveITSModuleStepper.cxx:587 AliEveITSModuleStepper.cxx:588 AliEveITSModuleStepper.cxx:589 AliEveITSModuleStepper.cxx:590 AliEveITSModuleStepper.cxx:591 AliEveITSModuleStepper.cxx:592 AliEveITSModuleStepper.cxx:593 AliEveITSModuleStepper.cxx:594 AliEveITSModuleStepper.cxx:595 AliEveITSModuleStepper.cxx:596 AliEveITSModuleStepper.cxx:597 AliEveITSModuleStepper.cxx:598 AliEveITSModuleStepper.cxx:599 AliEveITSModuleStepper.cxx:600 AliEveITSModuleStepper.cxx:601 AliEveITSModuleStepper.cxx:602