#include "AliMpFastSegmentation.h"
#include "AliCodeTimer.h"
#include "AliLog.h"
#include "AliMpConnection.h"
#include "AliMpConstants.h"
#include "AliMpMotifMap.h"
#include "AliMpMotifPosition.h"
#include "AliMpMotifType.h"
#include "AliMpPad.h"
#include "AliMpSector.h"
#include "AliMpSlat.h"
#include "AliMpVPadIterator.h"
#include "AliMpEncodePair.h"
#include <TArrayI.h>
ClassImp(AliMpFastSegmentation)
#ifdef CHECK
#include <cassert>
#endif
namespace
{
Int_t Encode(Int_t a, Int_t b)
{
return a*1009 + b;
}
Int_t Encode2(Int_t a)
{
return ( a ^ (1<<10) ) << 16 ;
}
}
AliMpFastSegmentation::AliMpFastSegmentation(AliMpVSegmentation* vseg)
: AliMpVSegmentation(),
fHelper(vseg),
fMotifPositions(),
fIxIy(),
fManuId(),
fPositionX(0.),
fPositionY(0.)
{
if (!vseg)
{
AliError("Will get a hard time working with a NULL vseg !");
return;
}
AliCodeTimerAuto(vseg->ClassName(),0);
fPositionX = vseg->GetPositionX();
fPositionY = vseg->GetPositionY();
TArrayI manus;
vseg->GetAllElectronicCardIDs(manus);
for ( Int_t i = 0; i < manus.GetSize(); ++i )
{
Int_t manuId = manus[i];
AliMpMotifPosition* mp = vseg->MotifPosition(manuId);
if ( ! mp ) {
AliFatal("AliMpMotifPosition not found.");
}
Int_t index = 1 + fMotifPositions.GetLast();
fMotifPositions.AddLast(mp);
fManuId.Add(Encode2(manuId),1+index);
for ( Int_t manuChannel = 0; manuChannel < AliMpConstants::ManuNofChannels(); ++manuChannel )
{
if ( vseg->HasPadByLocation(manuId,manuChannel) )
{
AliMpPad pad = vseg->PadByLocation(manuId,manuChannel);
fIxIy.Add(Encode(pad.GetIx(),pad.GetIy()),1+index);
}
}
}
}
AliMpFastSegmentation::~AliMpFastSegmentation()
{
delete fHelper;
}
AliMpVPadIterator*
AliMpFastSegmentation::CreateIterator(const AliMpArea& area) const
{
return fHelper->CreateIterator(area);
}
AliMpVPadIterator*
AliMpFastSegmentation::CreateIterator() const
{
return fHelper->CreateIterator();
}
Int_t
AliMpFastSegmentation::GetNeighbours(const AliMpPad& pad, TObjArray& neighbours,
Bool_t includeSelf,
Bool_t includeVoid) const
{
return AliMpVSegmentation::GetNeighbours(pad,neighbours,includeSelf,includeVoid);
}
AliMpPad
AliMpFastSegmentation::PadByLocation(Int_t manuId, Int_t manuChannel,
Bool_t warning) const
{
Int_t index = fManuId.GetValue(Encode2(manuId));
if (!index)
{
if (warning)
{
AliWarning(Form("Manu ID %d not found",manuId));
Print();
}
return AliMpPad::Invalid();
}
AliMpMotifPosition* motifPos = InternalMotifPosition(index);
if (!motifPos)
{
AliError(Form("InternalMotifPosition(%d) failed",index));
Print();
return AliMpPad::Invalid();
}
AliMpVMotif* motif = motifPos->GetMotif();
MpPair_t localIndices
= motif->GetMotifType()->FindLocalIndicesByGassiNum(manuChannel);
if ( localIndices < 0 )
{
if (warning)
{
AliWarning(Form("The pad number %d doesn't exists", manuChannel));
Print();
}
return AliMpPad::Invalid();
}
#ifdef CHECK
Double_t posx, posy;
motif->PadPositionLocal(localIndices, posx, posy);
posx += motifPos->GetPositionX() - fPositionX;
posy += motifPos->GetPositionY() - fPositionY;
Double_t dx, dy;
motif->GetPadDimensionsByIndices(localIndices, dx, dy);
AliMpPad pad1 = AliMpPad(manuId, manuChannel,
motifPos->GlobalIndices(localIndices),
posx, posy, dx, dy);
AliMpPad pad2 = fHelper->PadByLocation(manuId, manuChannel,warning);
if ( pad1 != pad2 )
{
Print();
pad1.Print();
pad2.Print();
assert(pad1==pad2);
}
#endif
Double_t posx, posy;
motif->PadPositionLocal(localIndices, posx, posy);
posx += motifPos->GetPositionX() - fPositionX;
posy += motifPos->GetPositionY() - fPositionY;
Double_t dx, dy;
motif->GetPadDimensionsByIndices(localIndices, dx, dy);
return AliMpPad(manuId, manuChannel,
motifPos->GlobalIndices(localIndices),
posx, posy, dx, dy);
}
AliMpMotifPosition*
AliMpFastSegmentation::InternalMotifPosition(Int_t index) const
{
return static_cast<AliMpMotifPosition*>(fMotifPositions.UncheckedAt(index-1));
}
AliMpPad
AliMpFastSegmentation::PadByIndices (Int_t ix, Int_t iy, Bool_t warning) const
{
Int_t index = fIxIy.GetValue(Encode(ix, iy));
if ( !index )
{
if (warning)
{
AliWarning(Form("ManuID not found for pad indices (%d,%d)", ix, iy));
Print();
}
return AliMpPad::Invalid();
}
AliMpMotifPosition* motifPos = InternalMotifPosition(index);
if (!motifPos)
{
AliError(Form("InternalMotifPosition(%d) failed",index));
Print();
return AliMpPad::Invalid();
}
AliMpVMotif* motif = motifPos->GetMotif();
AliMpMotifType* motifType = motif->GetMotifType();
MpPair_t localIndices(AliMp::Pair(ix, iy) - motifPos->GetLowIndicesLimit());
AliMpConnection* connection = motifType->FindConnectionByLocalIndices(localIndices);
if (!connection)
{
if ( warning )
{
AliWarning(Form("No connection for pad indices (%d,%d)", ix, iy));
}
return AliMpPad::Invalid();
}
#ifdef CHECK
AliMpPad pad2 = fHelper->PadByIndices(ix, iy, warning);
Double_t posx, posy;
motif->PadPositionLocal(localIndices, posx, posy);
posx += motifPos->GetPositionX() - fPositionX;
posy += motifPos->GetPositionY() - fPositionY;
Double_t dx, dy;
motif->GetPadDimensionsByIndices(localIndices, dx, dy);
AliMpPad pad1 = AliMpPad(motifPos->GetID(),connection->GetManuChannel(),
ix, iy, posx, posy, dx, dy);
assert(pad1==pad2);
#endif
Double_t posx, posy;
motif->PadPositionLocal(localIndices, posx, posy);
posx += motifPos->GetPositionX() - fPositionX;
posy += motifPos->GetPositionY() - fPositionY;
Double_t dx, dy;
motif->GetPadDimensionsByIndices(localIndices, dx, dy);
return AliMpPad(motifPos->GetID(),connection->GetManuChannel(),
ix, iy, posx, posy, dx, dy);
}
AliMpPad
AliMpFastSegmentation::PadByPosition(Double_t x, Double_t y, Bool_t warning ) const
{
return fHelper->PadByPosition(x, y, warning);
}
Int_t
AliMpFastSegmentation::MaxPadIndexX() const
{
return fHelper->MaxPadIndexX();
}
Int_t
AliMpFastSegmentation::MaxPadIndexY() const
{
return fHelper->MaxPadIndexY();
}
Int_t
AliMpFastSegmentation::NofPads() const
{
return fHelper->NofPads();
}
Int_t
AliMpFastSegmentation::GetNofElectronicCards() const
{
return fHelper->GetNofElectronicCards();
}
void
AliMpFastSegmentation::GetAllElectronicCardIDs(TArrayI& ecn) const
{
fHelper->GetAllElectronicCardIDs(ecn);
}
Bool_t
AliMpFastSegmentation::HasPadByIndices(Int_t ix, Int_t iy) const
{
Int_t index = fIxIy.GetValue(Encode(ix, iy));
if ( !index ) return kFALSE;
AliMpMotifPosition* mp = InternalMotifPosition(index);
Bool_t r1 = mp->HasPadByIndices(AliMp::Pair(ix, iy));
#ifdef CHECK
Bool_t r2 = fHelper->HasPadByIndices(ix, iy);
assert(r1==r2);
#endif
return r1;
}
Bool_t
AliMpFastSegmentation::HasPadByLocation(Int_t manuId, Int_t manuChannel) const
{
Int_t index = fManuId.GetValue(Encode2(manuId));
if (!index) return kFALSE;
AliMpMotifPosition* mp = InternalMotifPosition(index);
Bool_t r1 = mp->HasPadByManuChannel(manuChannel);
#ifdef CHECK
Bool_t r2 = fHelper->HasPadByLocation(manuId, manuChannel);
assert(r1==r2);
#endif
return r1;
}
void
AliMpFastSegmentation::Print(Option_t* opt) const
{
fHelper->Print(opt);
}
AliMp::PlaneType
AliMpFastSegmentation::PlaneType() const
{
return fHelper->PlaneType();
}
Double_t
AliMpFastSegmentation::GetDimensionX() const
{
return fHelper->GetDimensionX();
}
Double_t
AliMpFastSegmentation::GetDimensionY() const
{
return fHelper->GetDimensionY();
}
Double_t
AliMpFastSegmentation::GetPositionX() const
{
return fHelper->GetPositionX();
}
Double_t
AliMpFastSegmentation::GetPositionY() const
{
return fHelper->GetPositionY();
}
Bool_t
AliMpFastSegmentation::HasMotifPosition(Int_t manuId) const
{
return ( fManuId.GetValue(Encode2(manuId)) != 0);
}
AliMpMotifPosition*
AliMpFastSegmentation::MotifPosition(Int_t manuId) const
{
Int_t index = fManuId.GetValue(Encode2(manuId));
if (!index)
{
AliMpVPadIterator* it = CreateIterator();
it->First();
AliMpPad pad = it->CurrentItem();
delete it;
AliWarning(Form("DE %04d Manu ID %04d not found",pad.GetManuId(),manuId));
return 0x0;
}
return InternalMotifPosition(index);
}
AliMpFastSegmentation.cxx:1 AliMpFastSegmentation.cxx:2 AliMpFastSegmentation.cxx:3 AliMpFastSegmentation.cxx:4 AliMpFastSegmentation.cxx:5 AliMpFastSegmentation.cxx:6 AliMpFastSegmentation.cxx:7 AliMpFastSegmentation.cxx:8 AliMpFastSegmentation.cxx:9 AliMpFastSegmentation.cxx:10 AliMpFastSegmentation.cxx:11 AliMpFastSegmentation.cxx:12 AliMpFastSegmentation.cxx:13 AliMpFastSegmentation.cxx:14 AliMpFastSegmentation.cxx:15 AliMpFastSegmentation.cxx:16 AliMpFastSegmentation.cxx:17 AliMpFastSegmentation.cxx:18 AliMpFastSegmentation.cxx:19 AliMpFastSegmentation.cxx:20 AliMpFastSegmentation.cxx:21 AliMpFastSegmentation.cxx:22 AliMpFastSegmentation.cxx:23 AliMpFastSegmentation.cxx:24 AliMpFastSegmentation.cxx:25 AliMpFastSegmentation.cxx:26 AliMpFastSegmentation.cxx:27 AliMpFastSegmentation.cxx:28 AliMpFastSegmentation.cxx:29 AliMpFastSegmentation.cxx:30 AliMpFastSegmentation.cxx:31 AliMpFastSegmentation.cxx:32 AliMpFastSegmentation.cxx:33 AliMpFastSegmentation.cxx:34 AliMpFastSegmentation.cxx:35 AliMpFastSegmentation.cxx:36 AliMpFastSegmentation.cxx:37 AliMpFastSegmentation.cxx:38 AliMpFastSegmentation.cxx:39 AliMpFastSegmentation.cxx:40 AliMpFastSegmentation.cxx:41 AliMpFastSegmentation.cxx:42 AliMpFastSegmentation.cxx:43 AliMpFastSegmentation.cxx:44 AliMpFastSegmentation.cxx:45 AliMpFastSegmentation.cxx:46 AliMpFastSegmentation.cxx:47 AliMpFastSegmentation.cxx:48 AliMpFastSegmentation.cxx:49 AliMpFastSegmentation.cxx:50 AliMpFastSegmentation.cxx:51 AliMpFastSegmentation.cxx:52 AliMpFastSegmentation.cxx:53 AliMpFastSegmentation.cxx:54 AliMpFastSegmentation.cxx:55 AliMpFastSegmentation.cxx:56 AliMpFastSegmentation.cxx:57 AliMpFastSegmentation.cxx:58 AliMpFastSegmentation.cxx:59 AliMpFastSegmentation.cxx:60 AliMpFastSegmentation.cxx:61 AliMpFastSegmentation.cxx:62 AliMpFastSegmentation.cxx:63 AliMpFastSegmentation.cxx:64 AliMpFastSegmentation.cxx:65 AliMpFastSegmentation.cxx:66 AliMpFastSegmentation.cxx:67 AliMpFastSegmentation.cxx:68 AliMpFastSegmentation.cxx:69 AliMpFastSegmentation.cxx:70 AliMpFastSegmentation.cxx:71 AliMpFastSegmentation.cxx:72 AliMpFastSegmentation.cxx:73 AliMpFastSegmentation.cxx:74 AliMpFastSegmentation.cxx:75 AliMpFastSegmentation.cxx:76 AliMpFastSegmentation.cxx:77 AliMpFastSegmentation.cxx:78 AliMpFastSegmentation.cxx:79 AliMpFastSegmentation.cxx:80 AliMpFastSegmentation.cxx:81 AliMpFastSegmentation.cxx:82 AliMpFastSegmentation.cxx:83 AliMpFastSegmentation.cxx:84 AliMpFastSegmentation.cxx:85 AliMpFastSegmentation.cxx:86 AliMpFastSegmentation.cxx:87 AliMpFastSegmentation.cxx:88 AliMpFastSegmentation.cxx:89 AliMpFastSegmentation.cxx:90 AliMpFastSegmentation.cxx:91 AliMpFastSegmentation.cxx:92 AliMpFastSegmentation.cxx:93 AliMpFastSegmentation.cxx:94 AliMpFastSegmentation.cxx:95 AliMpFastSegmentation.cxx:96 AliMpFastSegmentation.cxx:97 AliMpFastSegmentation.cxx:98 AliMpFastSegmentation.cxx:99 AliMpFastSegmentation.cxx:100 AliMpFastSegmentation.cxx:101 AliMpFastSegmentation.cxx:102 AliMpFastSegmentation.cxx:103 AliMpFastSegmentation.cxx:104 AliMpFastSegmentation.cxx:105 AliMpFastSegmentation.cxx:106 AliMpFastSegmentation.cxx:107 AliMpFastSegmentation.cxx:108 AliMpFastSegmentation.cxx:109 AliMpFastSegmentation.cxx:110 AliMpFastSegmentation.cxx:111 AliMpFastSegmentation.cxx:112 AliMpFastSegmentation.cxx:113 AliMpFastSegmentation.cxx:114 AliMpFastSegmentation.cxx:115 AliMpFastSegmentation.cxx:116 AliMpFastSegmentation.cxx:117 AliMpFastSegmentation.cxx:118 AliMpFastSegmentation.cxx:119 AliMpFastSegmentation.cxx:120 AliMpFastSegmentation.cxx:121 AliMpFastSegmentation.cxx:122 AliMpFastSegmentation.cxx:123 AliMpFastSegmentation.cxx:124 AliMpFastSegmentation.cxx:125 AliMpFastSegmentation.cxx:126 AliMpFastSegmentation.cxx:127 AliMpFastSegmentation.cxx:128 AliMpFastSegmentation.cxx:129 AliMpFastSegmentation.cxx:130 AliMpFastSegmentation.cxx:131 AliMpFastSegmentation.cxx:132 AliMpFastSegmentation.cxx:133 AliMpFastSegmentation.cxx:134 AliMpFastSegmentation.cxx:135 AliMpFastSegmentation.cxx:136 AliMpFastSegmentation.cxx:137 AliMpFastSegmentation.cxx:138 AliMpFastSegmentation.cxx:139 AliMpFastSegmentation.cxx:140 AliMpFastSegmentation.cxx:141 AliMpFastSegmentation.cxx:142 AliMpFastSegmentation.cxx:143 AliMpFastSegmentation.cxx:144 AliMpFastSegmentation.cxx:145 AliMpFastSegmentation.cxx:146 AliMpFastSegmentation.cxx:147 AliMpFastSegmentation.cxx:148 AliMpFastSegmentation.cxx:149 AliMpFastSegmentation.cxx:150 AliMpFastSegmentation.cxx:151 AliMpFastSegmentation.cxx:152 AliMpFastSegmentation.cxx:153 AliMpFastSegmentation.cxx:154 AliMpFastSegmentation.cxx:155 AliMpFastSegmentation.cxx:156 AliMpFastSegmentation.cxx:157 AliMpFastSegmentation.cxx:158 AliMpFastSegmentation.cxx:159 AliMpFastSegmentation.cxx:160 AliMpFastSegmentation.cxx:161 AliMpFastSegmentation.cxx:162 AliMpFastSegmentation.cxx:163 AliMpFastSegmentation.cxx:164 AliMpFastSegmentation.cxx:165 AliMpFastSegmentation.cxx:166 AliMpFastSegmentation.cxx:167 AliMpFastSegmentation.cxx:168 AliMpFastSegmentation.cxx:169 AliMpFastSegmentation.cxx:170 AliMpFastSegmentation.cxx:171 AliMpFastSegmentation.cxx:172 AliMpFastSegmentation.cxx:173 AliMpFastSegmentation.cxx:174 AliMpFastSegmentation.cxx:175 AliMpFastSegmentation.cxx:176 AliMpFastSegmentation.cxx:177 AliMpFastSegmentation.cxx:178 AliMpFastSegmentation.cxx:179 AliMpFastSegmentation.cxx:180 AliMpFastSegmentation.cxx:181 AliMpFastSegmentation.cxx:182 AliMpFastSegmentation.cxx:183 AliMpFastSegmentation.cxx:184 AliMpFastSegmentation.cxx:185 AliMpFastSegmentation.cxx:186 AliMpFastSegmentation.cxx:187 AliMpFastSegmentation.cxx:188 AliMpFastSegmentation.cxx:189 AliMpFastSegmentation.cxx:190 AliMpFastSegmentation.cxx:191 AliMpFastSegmentation.cxx:192 AliMpFastSegmentation.cxx:193 AliMpFastSegmentation.cxx:194 AliMpFastSegmentation.cxx:195 AliMpFastSegmentation.cxx:196 AliMpFastSegmentation.cxx:197 AliMpFastSegmentation.cxx:198 AliMpFastSegmentation.cxx:199 AliMpFastSegmentation.cxx:200 AliMpFastSegmentation.cxx:201 AliMpFastSegmentation.cxx:202 AliMpFastSegmentation.cxx:203 AliMpFastSegmentation.cxx:204 AliMpFastSegmentation.cxx:205 AliMpFastSegmentation.cxx:206 AliMpFastSegmentation.cxx:207 AliMpFastSegmentation.cxx:208 AliMpFastSegmentation.cxx:209 AliMpFastSegmentation.cxx:210 AliMpFastSegmentation.cxx:211 AliMpFastSegmentation.cxx:212 AliMpFastSegmentation.cxx:213 AliMpFastSegmentation.cxx:214 AliMpFastSegmentation.cxx:215 AliMpFastSegmentation.cxx:216 AliMpFastSegmentation.cxx:217 AliMpFastSegmentation.cxx:218 AliMpFastSegmentation.cxx:219 AliMpFastSegmentation.cxx:220 AliMpFastSegmentation.cxx:221 AliMpFastSegmentation.cxx:222 AliMpFastSegmentation.cxx:223 AliMpFastSegmentation.cxx:224 AliMpFastSegmentation.cxx:225 AliMpFastSegmentation.cxx:226 AliMpFastSegmentation.cxx:227 AliMpFastSegmentation.cxx:228 AliMpFastSegmentation.cxx:229 AliMpFastSegmentation.cxx:230 AliMpFastSegmentation.cxx:231 AliMpFastSegmentation.cxx:232 AliMpFastSegmentation.cxx:233 AliMpFastSegmentation.cxx:234 AliMpFastSegmentation.cxx:235 AliMpFastSegmentation.cxx:236 AliMpFastSegmentation.cxx:237 AliMpFastSegmentation.cxx:238 AliMpFastSegmentation.cxx:239 AliMpFastSegmentation.cxx:240 AliMpFastSegmentation.cxx:241 AliMpFastSegmentation.cxx:242 AliMpFastSegmentation.cxx:243 AliMpFastSegmentation.cxx:244 AliMpFastSegmentation.cxx:245 AliMpFastSegmentation.cxx:246 AliMpFastSegmentation.cxx:247 AliMpFastSegmentation.cxx:248 AliMpFastSegmentation.cxx:249 AliMpFastSegmentation.cxx:250 AliMpFastSegmentation.cxx:251 AliMpFastSegmentation.cxx:252 AliMpFastSegmentation.cxx:253 AliMpFastSegmentation.cxx:254 AliMpFastSegmentation.cxx:255 AliMpFastSegmentation.cxx:256 AliMpFastSegmentation.cxx:257 AliMpFastSegmentation.cxx:258 AliMpFastSegmentation.cxx:259 AliMpFastSegmentation.cxx:260 AliMpFastSegmentation.cxx:261 AliMpFastSegmentation.cxx:262 AliMpFastSegmentation.cxx:263 AliMpFastSegmentation.cxx:264 AliMpFastSegmentation.cxx:265 AliMpFastSegmentation.cxx:266 AliMpFastSegmentation.cxx:267 AliMpFastSegmentation.cxx:268 AliMpFastSegmentation.cxx:269 AliMpFastSegmentation.cxx:270 AliMpFastSegmentation.cxx:271 AliMpFastSegmentation.cxx:272 AliMpFastSegmentation.cxx:273 AliMpFastSegmentation.cxx:274 AliMpFastSegmentation.cxx:275 AliMpFastSegmentation.cxx:276 AliMpFastSegmentation.cxx:277 AliMpFastSegmentation.cxx:278 AliMpFastSegmentation.cxx:279 AliMpFastSegmentation.cxx:280 AliMpFastSegmentation.cxx:281 AliMpFastSegmentation.cxx:282 AliMpFastSegmentation.cxx:283 AliMpFastSegmentation.cxx:284 AliMpFastSegmentation.cxx:285 AliMpFastSegmentation.cxx:286 AliMpFastSegmentation.cxx:287 AliMpFastSegmentation.cxx:288 AliMpFastSegmentation.cxx:289 AliMpFastSegmentation.cxx:290 AliMpFastSegmentation.cxx:291 AliMpFastSegmentation.cxx:292 AliMpFastSegmentation.cxx:293 AliMpFastSegmentation.cxx:294 AliMpFastSegmentation.cxx:295 AliMpFastSegmentation.cxx:296 AliMpFastSegmentation.cxx:297 AliMpFastSegmentation.cxx:298 AliMpFastSegmentation.cxx:299 AliMpFastSegmentation.cxx:300 AliMpFastSegmentation.cxx:301 AliMpFastSegmentation.cxx:302 AliMpFastSegmentation.cxx:303 AliMpFastSegmentation.cxx:304 AliMpFastSegmentation.cxx:305 AliMpFastSegmentation.cxx:306 AliMpFastSegmentation.cxx:307 AliMpFastSegmentation.cxx:308 AliMpFastSegmentation.cxx:309 AliMpFastSegmentation.cxx:310 AliMpFastSegmentation.cxx:311 AliMpFastSegmentation.cxx:312 AliMpFastSegmentation.cxx:313 AliMpFastSegmentation.cxx:314 AliMpFastSegmentation.cxx:315 AliMpFastSegmentation.cxx:316 AliMpFastSegmentation.cxx:317 AliMpFastSegmentation.cxx:318 AliMpFastSegmentation.cxx:319 AliMpFastSegmentation.cxx:320 AliMpFastSegmentation.cxx:321 AliMpFastSegmentation.cxx:322 AliMpFastSegmentation.cxx:323 AliMpFastSegmentation.cxx:324 AliMpFastSegmentation.cxx:325 AliMpFastSegmentation.cxx:326 AliMpFastSegmentation.cxx:327 AliMpFastSegmentation.cxx:328 AliMpFastSegmentation.cxx:329 AliMpFastSegmentation.cxx:330 AliMpFastSegmentation.cxx:331 AliMpFastSegmentation.cxx:332 AliMpFastSegmentation.cxx:333 AliMpFastSegmentation.cxx:334 AliMpFastSegmentation.cxx:335 AliMpFastSegmentation.cxx:336 AliMpFastSegmentation.cxx:337 AliMpFastSegmentation.cxx:338 AliMpFastSegmentation.cxx:339 AliMpFastSegmentation.cxx:340 AliMpFastSegmentation.cxx:341 AliMpFastSegmentation.cxx:342 AliMpFastSegmentation.cxx:343 AliMpFastSegmentation.cxx:344 AliMpFastSegmentation.cxx:345 AliMpFastSegmentation.cxx:346 AliMpFastSegmentation.cxx:347 AliMpFastSegmentation.cxx:348 AliMpFastSegmentation.cxx:349 AliMpFastSegmentation.cxx:350 AliMpFastSegmentation.cxx:351 AliMpFastSegmentation.cxx:352 AliMpFastSegmentation.cxx:353 AliMpFastSegmentation.cxx:354 AliMpFastSegmentation.cxx:355 AliMpFastSegmentation.cxx:356 AliMpFastSegmentation.cxx:357 AliMpFastSegmentation.cxx:358 AliMpFastSegmentation.cxx:359 AliMpFastSegmentation.cxx:360 AliMpFastSegmentation.cxx:361 AliMpFastSegmentation.cxx:362 AliMpFastSegmentation.cxx:363 AliMpFastSegmentation.cxx:364 AliMpFastSegmentation.cxx:365 AliMpFastSegmentation.cxx:366 AliMpFastSegmentation.cxx:367 AliMpFastSegmentation.cxx:368 AliMpFastSegmentation.cxx:369 AliMpFastSegmentation.cxx:370 AliMpFastSegmentation.cxx:371 AliMpFastSegmentation.cxx:372 AliMpFastSegmentation.cxx:373 AliMpFastSegmentation.cxx:374 AliMpFastSegmentation.cxx:375 AliMpFastSegmentation.cxx:376 AliMpFastSegmentation.cxx:377 AliMpFastSegmentation.cxx:378 AliMpFastSegmentation.cxx:379 AliMpFastSegmentation.cxx:380 AliMpFastSegmentation.cxx:381 AliMpFastSegmentation.cxx:382 AliMpFastSegmentation.cxx:383 AliMpFastSegmentation.cxx:384 AliMpFastSegmentation.cxx:385 AliMpFastSegmentation.cxx:386 AliMpFastSegmentation.cxx:387 AliMpFastSegmentation.cxx:388 AliMpFastSegmentation.cxx:389 AliMpFastSegmentation.cxx:390 AliMpFastSegmentation.cxx:391 AliMpFastSegmentation.cxx:392 AliMpFastSegmentation.cxx:393 AliMpFastSegmentation.cxx:394 AliMpFastSegmentation.cxx:395 AliMpFastSegmentation.cxx:396 AliMpFastSegmentation.cxx:397 AliMpFastSegmentation.cxx:398 AliMpFastSegmentation.cxx:399 AliMpFastSegmentation.cxx:400 AliMpFastSegmentation.cxx:401 AliMpFastSegmentation.cxx:402 AliMpFastSegmentation.cxx:403 AliMpFastSegmentation.cxx:404 AliMpFastSegmentation.cxx:405 AliMpFastSegmentation.cxx:406 AliMpFastSegmentation.cxx:407 AliMpFastSegmentation.cxx:408 AliMpFastSegmentation.cxx:409 AliMpFastSegmentation.cxx:410 AliMpFastSegmentation.cxx:411 AliMpFastSegmentation.cxx:412 AliMpFastSegmentation.cxx:413 AliMpFastSegmentation.cxx:414 AliMpFastSegmentation.cxx:415 AliMpFastSegmentation.cxx:416 AliMpFastSegmentation.cxx:417 AliMpFastSegmentation.cxx:418 AliMpFastSegmentation.cxx:419 AliMpFastSegmentation.cxx:420 AliMpFastSegmentation.cxx:421 AliMpFastSegmentation.cxx:422 AliMpFastSegmentation.cxx:423 AliMpFastSegmentation.cxx:424 AliMpFastSegmentation.cxx:425 AliMpFastSegmentation.cxx:426 AliMpFastSegmentation.cxx:427 AliMpFastSegmentation.cxx:428 AliMpFastSegmentation.cxx:429 AliMpFastSegmentation.cxx:430 AliMpFastSegmentation.cxx:431 AliMpFastSegmentation.cxx:432 AliMpFastSegmentation.cxx:433 AliMpFastSegmentation.cxx:434 AliMpFastSegmentation.cxx:435 AliMpFastSegmentation.cxx:436 AliMpFastSegmentation.cxx:437 AliMpFastSegmentation.cxx:438 AliMpFastSegmentation.cxx:439 AliMpFastSegmentation.cxx:440 AliMpFastSegmentation.cxx:441 AliMpFastSegmentation.cxx:442 AliMpFastSegmentation.cxx:443 AliMpFastSegmentation.cxx:444 AliMpFastSegmentation.cxx:445 AliMpFastSegmentation.cxx:446 AliMpFastSegmentation.cxx:447 AliMpFastSegmentation.cxx:448 AliMpFastSegmentation.cxx:449 AliMpFastSegmentation.cxx:450 AliMpFastSegmentation.cxx:451 AliMpFastSegmentation.cxx:452 AliMpFastSegmentation.cxx:453 AliMpFastSegmentation.cxx:454 AliMpFastSegmentation.cxx:455 AliMpFastSegmentation.cxx:456 AliMpFastSegmentation.cxx:457 AliMpFastSegmentation.cxx:458 AliMpFastSegmentation.cxx:459 AliMpFastSegmentation.cxx:460 AliMpFastSegmentation.cxx:461 AliMpFastSegmentation.cxx:462 AliMpFastSegmentation.cxx:463 AliMpFastSegmentation.cxx:464 AliMpFastSegmentation.cxx:465 AliMpFastSegmentation.cxx:466 AliMpFastSegmentation.cxx:467 AliMpFastSegmentation.cxx:468 AliMpFastSegmentation.cxx:469 AliMpFastSegmentation.cxx:470 AliMpFastSegmentation.cxx:471 AliMpFastSegmentation.cxx:472 AliMpFastSegmentation.cxx:473 AliMpFastSegmentation.cxx:474 AliMpFastSegmentation.cxx:475 AliMpFastSegmentation.cxx:476 AliMpFastSegmentation.cxx:477 AliMpFastSegmentation.cxx:478 AliMpFastSegmentation.cxx:479 AliMpFastSegmentation.cxx:480 AliMpFastSegmentation.cxx:481 AliMpFastSegmentation.cxx:482 AliMpFastSegmentation.cxx:483 AliMpFastSegmentation.cxx:484 AliMpFastSegmentation.cxx:485