ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/

// $Id$

#include "AliMUONPreClusterFinderV3.h"

#include "AliLog.h"
#include "AliMUONCluster.h"
#include "AliMpVSegmentation.h"
#include "TObjArray.h"
#include "AliMpArea.h"
#include "TVector2.h"
#include "AliMUONPad.h"
#include "AliMUONVDigit.h"
#include "AliMUONVDigitStore.h"
#include <Riostream.h>
//#include "AliCodeTimer.h"

//-----------------------------------------------------------------------------
/// \class AliMUONPreClusterFinderV3
///
/// Implementation of AliMUONVClusterFinder
///
/// This version uses a 2 steps approach :
///
/// we first clusterize each cathode independently to form proto-preclusters, 
/// and then we try to "merge" proto-preclusters from the two cathodes
/// when thoses proto-preclusters overlap, thus ending up with preclusters
/// spanning the two cathodes.
///
/// This implementation, on the contrary to PreClusterFinder or PreClusterFinderV2
/// should not depend on the order of the input digits.
///
/// \author Laurent Aphecetche
//-----------------------------------------------------------------------------

using std::endl;
using std::cout;
ClassImp(AliMUONPreClusterFinderV3)

//_____________________________________________________________________________
AliMUONPreClusterFinderV3::AliMUONPreClusterFinderV3()
: AliMUONVClusterFinder(),
  fClusters(new TClonesArray("AliMUONCluster",10)),
  fkSegmentations(0x0),
  fPads(0x0),
  fDetElemId(0),
  fIterator(0x0)
{
    /// ctor
  AliInfo("");
  for ( Int_t i = 0; i < 2; ++i )
  {
    fPreClusters[i] = new TClonesArray("AliMUONCluster",10);
  } 
}

//_____________________________________________________________________________
AliMUONPreClusterFinderV3::~AliMUONPreClusterFinderV3()
{
  /// dtor
  delete fClusters;
  for ( Int_t i = 0; i < 2; ++i )
  {
    delete fPreClusters[i];
  } 
}

//_____________________________________________________________________________
Bool_t
AliMUONPreClusterFinderV3::UsePad(const AliMUONPad& pad)
{
  /// Add a pad to the list of pads to be considered
  if ( pad.DetElemId() != fDetElemId )
  {
    AliError(Form("Cannot add pad from DE %d to this cluster finder which is "
                  "currently dealing with DE %d",pad.DetElemId(),fDetElemId));
    return kFALSE;
  }
  
  AliMUONPad* p = new AliMUONPad(pad); 
  p->SetClusterId(-1);
  fPads[pad.Cathode()]->Add(p); 
  return kTRUE;
}

//_____________________________________________________________________________
Bool_t
AliMUONPreClusterFinderV3::Prepare(Int_t detElemId,
                                   TObjArray* pads[2],
                                   const AliMpArea& area,
                                   const AliMpVSegmentation* seg[2])
{
  /// Prepare for clustering, by giving access to segmentations and digit lists
  
  if ( area.IsValid() ) 
  {
    AliError("Handling of area not yet implemented for this class. Please check.");
  }
  
  fkSegmentations = seg;
  fPads = pads;
  
  fClusters->Clear("C");
  for ( Int_t i = 0; i < 2; ++i )
  {
    fPreClusters[i]->Clear("C");
  }
  
  fDetElemId = detElemId;
  
  if ( fPads[0]->GetLast() < 0 && fPads[1]->GetLast() < 0 )
  {
    // no pad at all, nothing to do...
    return kFALSE;
  }
  
  MakeCathodePreClusters(0);  
  MakeCathodePreClusters(1);  
  MakeClusters();
  
  delete fIterator;
  fIterator = fClusters->MakeIterator();
  
  return kTRUE;
}

//_____________________________________________________________________________
void
AliMUONPreClusterFinderV3::DumpPreClusters() const
{
  /// Dump preclusters 
  AliMUONCluster *c;
  TIter next0(fPreClusters[0]);
  TIter next1(fPreClusters[1]);
  cout << "Cath0" << endl;
  while ( ( c = static_cast<AliMUONCluster*>(next0())) ) 
  {
    cout << c->AsString().Data() << endl;
  }
  cout << "Cath1" << endl;
  while ( ( c = static_cast<AliMUONCluster*>(next1())) ) 
  {
    cout << c->AsString().Data() << endl;
  }
}

//_____________________________________________________________________________
void
AliMUONPreClusterFinderV3::AddPreCluster(AliMUONCluster& cluster, AliMUONCluster* preCluster)
{
  /// Add a pad to a cluster

  AliMUONCluster a(*preCluster);

  Int_t cathode = preCluster->Cathode();
  if ( cathode < 0 ) {
    AliError(Form("Cathod undefined: %d",cathode));
    AliFatal("");
    return;
  }
  
  if ( cathode <=1 && !fPreClusters[cathode]->Remove(preCluster) ) 
  {
    AliError(Form("Could not remove %s from preclusters[%d]",
                  preCluster->AsString().Data(),cathode));
    StdoutToAliDebug(1,DumpPreClusters());
    AliFatal("");
    return;
  }
             
  cluster.AddCluster(a);
  
  // loop on the *other* cathode
  TIter next(fPreClusters[1-cathode]);
  AliMUONCluster* testCluster;
  
  while ( ( testCluster = static_cast<AliMUONCluster*>(next())))
  {
    if ( AliMUONCluster::AreOverlapping(a,*testCluster) )
    {
      AddPreCluster(cluster,testCluster);
    }
  }
}


//_____________________________________________________________________________
void
AliMUONPreClusterFinderV3::AddPad(AliMUONCluster& cluster, AliMUONPad* pad)
{
  /// Add a pad to a cluster
  AliMUONPad* addedPad = cluster.AddPad(*pad);
  
  Int_t cathode = pad->Cathode();
  TObjArray& padArray = *fPads[cathode];
  delete padArray.Remove(pad);
  
  TIter next(&padArray);
  AliMUONPad* testPad;
  
  while ( ( testPad = static_cast<AliMUONPad*>(next())))
  {
    if ( AliMUONPad::AreNeighbours(*testPad,*addedPad) )
    {
      AddPad(cluster,testPad);
    }
  }
}

//_____________________________________________________________________________
AliMUONCluster* 
AliMUONPreClusterFinderV3::NextCluster()
{
  /// Returns the next cluster
  
  return static_cast<AliMUONCluster*>(fIterator->Next());
}

//_____________________________________________________________________________
void
AliMUONPreClusterFinderV3::MakeClusters()
{
  /// Associate (proto)preclusters to form (pre)clusters
  
//  AliCodeTimerAuto("",0)
  
  for ( Int_t cathode = 0; cathode < 2; ++cathode ) 
  {
    TClonesArray& preclusters = *(fPreClusters[cathode]);
    
    TIter next(&preclusters);
    AliMUONCluster* preCluster(0x0);
    
    while ( ( preCluster = static_cast<AliMUONCluster*>(next()) ) )
    {
      Int_t id(fClusters->GetLast()+1);
      AliMUONCluster* cluster = new((*fClusters)[id]) AliMUONCluster;
      cluster->SetUniqueID(id);      
      AddPreCluster(*cluster,preCluster);
    }
  }
}

//_____________________________________________________________________________
void
AliMUONPreClusterFinderV3::MakeCathodePreClusters(Int_t cathode)
{
  /// Build (proto)preclusters from digits on a given cathode
  
//  AliCodeTimerAuto(Form("Cathode %d",cathode),0)
  
  while ( fPads[cathode]->GetLast() > 0  )
  {  
    TIter next(fPads[cathode]);
    AliMUONPad* pad = static_cast<AliMUONPad*>(next());
  
    if (!pad) AliFatal("");

    Int_t id = fPreClusters[cathode]->GetLast()+1;
    AliMUONCluster* cluster = new ((*fPreClusters[cathode])[id]) AliMUONCluster;
    cluster->SetUniqueID(id);
    
    // Builds (recursively) a cluster on first cathode only
    AddPad(*cluster,pad);
    
    if ( cluster->Multiplicity() <= 1 )
    {
      if ( cluster->Multiplicity() == 0 ) 
      {
        // no pad is suspicious
        AliWarning("Got an empty cluster...");
      }
      // else only 1 pad (not suspicious, but kind of useless, probably noise)
      // so we remove it from our list
      fPreClusters[cathode]->Remove(cluster);
      // then proceed further
    }
  }
  
}
 AliMUONPreClusterFinderV3.cxx:1
 AliMUONPreClusterFinderV3.cxx:2
 AliMUONPreClusterFinderV3.cxx:3
 AliMUONPreClusterFinderV3.cxx:4
 AliMUONPreClusterFinderV3.cxx:5
 AliMUONPreClusterFinderV3.cxx:6
 AliMUONPreClusterFinderV3.cxx:7
 AliMUONPreClusterFinderV3.cxx:8
 AliMUONPreClusterFinderV3.cxx:9
 AliMUONPreClusterFinderV3.cxx:10
 AliMUONPreClusterFinderV3.cxx:11
 AliMUONPreClusterFinderV3.cxx:12
 AliMUONPreClusterFinderV3.cxx:13
 AliMUONPreClusterFinderV3.cxx:14
 AliMUONPreClusterFinderV3.cxx:15
 AliMUONPreClusterFinderV3.cxx:16
 AliMUONPreClusterFinderV3.cxx:17
 AliMUONPreClusterFinderV3.cxx:18
 AliMUONPreClusterFinderV3.cxx:19
 AliMUONPreClusterFinderV3.cxx:20
 AliMUONPreClusterFinderV3.cxx:21
 AliMUONPreClusterFinderV3.cxx:22
 AliMUONPreClusterFinderV3.cxx:23
 AliMUONPreClusterFinderV3.cxx:24
 AliMUONPreClusterFinderV3.cxx:25
 AliMUONPreClusterFinderV3.cxx:26
 AliMUONPreClusterFinderV3.cxx:27
 AliMUONPreClusterFinderV3.cxx:28
 AliMUONPreClusterFinderV3.cxx:29
 AliMUONPreClusterFinderV3.cxx:30
 AliMUONPreClusterFinderV3.cxx:31
 AliMUONPreClusterFinderV3.cxx:32
 AliMUONPreClusterFinderV3.cxx:33
 AliMUONPreClusterFinderV3.cxx:34
 AliMUONPreClusterFinderV3.cxx:35
 AliMUONPreClusterFinderV3.cxx:36
 AliMUONPreClusterFinderV3.cxx:37
 AliMUONPreClusterFinderV3.cxx:38
 AliMUONPreClusterFinderV3.cxx:39
 AliMUONPreClusterFinderV3.cxx:40
 AliMUONPreClusterFinderV3.cxx:41
 AliMUONPreClusterFinderV3.cxx:42
 AliMUONPreClusterFinderV3.cxx:43
 AliMUONPreClusterFinderV3.cxx:44
 AliMUONPreClusterFinderV3.cxx:45
 AliMUONPreClusterFinderV3.cxx:46
 AliMUONPreClusterFinderV3.cxx:47
 AliMUONPreClusterFinderV3.cxx:48
 AliMUONPreClusterFinderV3.cxx:49
 AliMUONPreClusterFinderV3.cxx:50
 AliMUONPreClusterFinderV3.cxx:51
 AliMUONPreClusterFinderV3.cxx:52
 AliMUONPreClusterFinderV3.cxx:53
 AliMUONPreClusterFinderV3.cxx:54
 AliMUONPreClusterFinderV3.cxx:55
 AliMUONPreClusterFinderV3.cxx:56
 AliMUONPreClusterFinderV3.cxx:57
 AliMUONPreClusterFinderV3.cxx:58
 AliMUONPreClusterFinderV3.cxx:59
 AliMUONPreClusterFinderV3.cxx:60
 AliMUONPreClusterFinderV3.cxx:61
 AliMUONPreClusterFinderV3.cxx:62
 AliMUONPreClusterFinderV3.cxx:63
 AliMUONPreClusterFinderV3.cxx:64
 AliMUONPreClusterFinderV3.cxx:65
 AliMUONPreClusterFinderV3.cxx:66
 AliMUONPreClusterFinderV3.cxx:67
 AliMUONPreClusterFinderV3.cxx:68
 AliMUONPreClusterFinderV3.cxx:69
 AliMUONPreClusterFinderV3.cxx:70
 AliMUONPreClusterFinderV3.cxx:71
 AliMUONPreClusterFinderV3.cxx:72
 AliMUONPreClusterFinderV3.cxx:73
 AliMUONPreClusterFinderV3.cxx:74
 AliMUONPreClusterFinderV3.cxx:75
 AliMUONPreClusterFinderV3.cxx:76
 AliMUONPreClusterFinderV3.cxx:77
 AliMUONPreClusterFinderV3.cxx:78
 AliMUONPreClusterFinderV3.cxx:79
 AliMUONPreClusterFinderV3.cxx:80
 AliMUONPreClusterFinderV3.cxx:81
 AliMUONPreClusterFinderV3.cxx:82
 AliMUONPreClusterFinderV3.cxx:83
 AliMUONPreClusterFinderV3.cxx:84
 AliMUONPreClusterFinderV3.cxx:85
 AliMUONPreClusterFinderV3.cxx:86
 AliMUONPreClusterFinderV3.cxx:87
 AliMUONPreClusterFinderV3.cxx:88
 AliMUONPreClusterFinderV3.cxx:89
 AliMUONPreClusterFinderV3.cxx:90
 AliMUONPreClusterFinderV3.cxx:91
 AliMUONPreClusterFinderV3.cxx:92
 AliMUONPreClusterFinderV3.cxx:93
 AliMUONPreClusterFinderV3.cxx:94
 AliMUONPreClusterFinderV3.cxx:95
 AliMUONPreClusterFinderV3.cxx:96
 AliMUONPreClusterFinderV3.cxx:97
 AliMUONPreClusterFinderV3.cxx:98
 AliMUONPreClusterFinderV3.cxx:99
 AliMUONPreClusterFinderV3.cxx:100
 AliMUONPreClusterFinderV3.cxx:101
 AliMUONPreClusterFinderV3.cxx:102
 AliMUONPreClusterFinderV3.cxx:103
 AliMUONPreClusterFinderV3.cxx:104
 AliMUONPreClusterFinderV3.cxx:105
 AliMUONPreClusterFinderV3.cxx:106
 AliMUONPreClusterFinderV3.cxx:107
 AliMUONPreClusterFinderV3.cxx:108
 AliMUONPreClusterFinderV3.cxx:109
 AliMUONPreClusterFinderV3.cxx:110
 AliMUONPreClusterFinderV3.cxx:111
 AliMUONPreClusterFinderV3.cxx:112
 AliMUONPreClusterFinderV3.cxx:113
 AliMUONPreClusterFinderV3.cxx:114
 AliMUONPreClusterFinderV3.cxx:115
 AliMUONPreClusterFinderV3.cxx:116
 AliMUONPreClusterFinderV3.cxx:117
 AliMUONPreClusterFinderV3.cxx:118
 AliMUONPreClusterFinderV3.cxx:119
 AliMUONPreClusterFinderV3.cxx:120
 AliMUONPreClusterFinderV3.cxx:121
 AliMUONPreClusterFinderV3.cxx:122
 AliMUONPreClusterFinderV3.cxx:123
 AliMUONPreClusterFinderV3.cxx:124
 AliMUONPreClusterFinderV3.cxx:125
 AliMUONPreClusterFinderV3.cxx:126
 AliMUONPreClusterFinderV3.cxx:127
 AliMUONPreClusterFinderV3.cxx:128
 AliMUONPreClusterFinderV3.cxx:129
 AliMUONPreClusterFinderV3.cxx:130
 AliMUONPreClusterFinderV3.cxx:131
 AliMUONPreClusterFinderV3.cxx:132
 AliMUONPreClusterFinderV3.cxx:133
 AliMUONPreClusterFinderV3.cxx:134
 AliMUONPreClusterFinderV3.cxx:135
 AliMUONPreClusterFinderV3.cxx:136
 AliMUONPreClusterFinderV3.cxx:137
 AliMUONPreClusterFinderV3.cxx:138
 AliMUONPreClusterFinderV3.cxx:139
 AliMUONPreClusterFinderV3.cxx:140
 AliMUONPreClusterFinderV3.cxx:141
 AliMUONPreClusterFinderV3.cxx:142
 AliMUONPreClusterFinderV3.cxx:143
 AliMUONPreClusterFinderV3.cxx:144
 AliMUONPreClusterFinderV3.cxx:145
 AliMUONPreClusterFinderV3.cxx:146
 AliMUONPreClusterFinderV3.cxx:147
 AliMUONPreClusterFinderV3.cxx:148
 AliMUONPreClusterFinderV3.cxx:149
 AliMUONPreClusterFinderV3.cxx:150
 AliMUONPreClusterFinderV3.cxx:151
 AliMUONPreClusterFinderV3.cxx:152
 AliMUONPreClusterFinderV3.cxx:153
 AliMUONPreClusterFinderV3.cxx:154
 AliMUONPreClusterFinderV3.cxx:155
 AliMUONPreClusterFinderV3.cxx:156
 AliMUONPreClusterFinderV3.cxx:157
 AliMUONPreClusterFinderV3.cxx:158
 AliMUONPreClusterFinderV3.cxx:159
 AliMUONPreClusterFinderV3.cxx:160
 AliMUONPreClusterFinderV3.cxx:161
 AliMUONPreClusterFinderV3.cxx:162
 AliMUONPreClusterFinderV3.cxx:163
 AliMUONPreClusterFinderV3.cxx:164
 AliMUONPreClusterFinderV3.cxx:165
 AliMUONPreClusterFinderV3.cxx:166
 AliMUONPreClusterFinderV3.cxx:167
 AliMUONPreClusterFinderV3.cxx:168
 AliMUONPreClusterFinderV3.cxx:169
 AliMUONPreClusterFinderV3.cxx:170
 AliMUONPreClusterFinderV3.cxx:171
 AliMUONPreClusterFinderV3.cxx:172
 AliMUONPreClusterFinderV3.cxx:173
 AliMUONPreClusterFinderV3.cxx:174
 AliMUONPreClusterFinderV3.cxx:175
 AliMUONPreClusterFinderV3.cxx:176
 AliMUONPreClusterFinderV3.cxx:177
 AliMUONPreClusterFinderV3.cxx:178
 AliMUONPreClusterFinderV3.cxx:179
 AliMUONPreClusterFinderV3.cxx:180
 AliMUONPreClusterFinderV3.cxx:181
 AliMUONPreClusterFinderV3.cxx:182
 AliMUONPreClusterFinderV3.cxx:183
 AliMUONPreClusterFinderV3.cxx:184
 AliMUONPreClusterFinderV3.cxx:185
 AliMUONPreClusterFinderV3.cxx:186
 AliMUONPreClusterFinderV3.cxx:187
 AliMUONPreClusterFinderV3.cxx:188
 AliMUONPreClusterFinderV3.cxx:189
 AliMUONPreClusterFinderV3.cxx:190
 AliMUONPreClusterFinderV3.cxx:191
 AliMUONPreClusterFinderV3.cxx:192
 AliMUONPreClusterFinderV3.cxx:193
 AliMUONPreClusterFinderV3.cxx:194
 AliMUONPreClusterFinderV3.cxx:195
 AliMUONPreClusterFinderV3.cxx:196
 AliMUONPreClusterFinderV3.cxx:197
 AliMUONPreClusterFinderV3.cxx:198
 AliMUONPreClusterFinderV3.cxx:199
 AliMUONPreClusterFinderV3.cxx:200
 AliMUONPreClusterFinderV3.cxx:201
 AliMUONPreClusterFinderV3.cxx:202
 AliMUONPreClusterFinderV3.cxx:203
 AliMUONPreClusterFinderV3.cxx:204
 AliMUONPreClusterFinderV3.cxx:205
 AliMUONPreClusterFinderV3.cxx:206
 AliMUONPreClusterFinderV3.cxx:207
 AliMUONPreClusterFinderV3.cxx:208
 AliMUONPreClusterFinderV3.cxx:209
 AliMUONPreClusterFinderV3.cxx:210
 AliMUONPreClusterFinderV3.cxx:211
 AliMUONPreClusterFinderV3.cxx:212
 AliMUONPreClusterFinderV3.cxx:213
 AliMUONPreClusterFinderV3.cxx:214
 AliMUONPreClusterFinderV3.cxx:215
 AliMUONPreClusterFinderV3.cxx:216
 AliMUONPreClusterFinderV3.cxx:217
 AliMUONPreClusterFinderV3.cxx:218
 AliMUONPreClusterFinderV3.cxx:219
 AliMUONPreClusterFinderV3.cxx:220
 AliMUONPreClusterFinderV3.cxx:221
 AliMUONPreClusterFinderV3.cxx:222
 AliMUONPreClusterFinderV3.cxx:223
 AliMUONPreClusterFinderV3.cxx:224
 AliMUONPreClusterFinderV3.cxx:225
 AliMUONPreClusterFinderV3.cxx:226
 AliMUONPreClusterFinderV3.cxx:227
 AliMUONPreClusterFinderV3.cxx:228
 AliMUONPreClusterFinderV3.cxx:229
 AliMUONPreClusterFinderV3.cxx:230
 AliMUONPreClusterFinderV3.cxx:231
 AliMUONPreClusterFinderV3.cxx:232
 AliMUONPreClusterFinderV3.cxx:233
 AliMUONPreClusterFinderV3.cxx:234
 AliMUONPreClusterFinderV3.cxx:235
 AliMUONPreClusterFinderV3.cxx:236
 AliMUONPreClusterFinderV3.cxx:237
 AliMUONPreClusterFinderV3.cxx:238
 AliMUONPreClusterFinderV3.cxx:239
 AliMUONPreClusterFinderV3.cxx:240
 AliMUONPreClusterFinderV3.cxx:241
 AliMUONPreClusterFinderV3.cxx:242
 AliMUONPreClusterFinderV3.cxx:243
 AliMUONPreClusterFinderV3.cxx:244
 AliMUONPreClusterFinderV3.cxx:245
 AliMUONPreClusterFinderV3.cxx:246
 AliMUONPreClusterFinderV3.cxx:247
 AliMUONPreClusterFinderV3.cxx:248
 AliMUONPreClusterFinderV3.cxx:249
 AliMUONPreClusterFinderV3.cxx:250
 AliMUONPreClusterFinderV3.cxx:251
 AliMUONPreClusterFinderV3.cxx:252
 AliMUONPreClusterFinderV3.cxx:253
 AliMUONPreClusterFinderV3.cxx:254
 AliMUONPreClusterFinderV3.cxx:255
 AliMUONPreClusterFinderV3.cxx:256
 AliMUONPreClusterFinderV3.cxx:257
 AliMUONPreClusterFinderV3.cxx:258
 AliMUONPreClusterFinderV3.cxx:259
 AliMUONPreClusterFinderV3.cxx:260
 AliMUONPreClusterFinderV3.cxx:261
 AliMUONPreClusterFinderV3.cxx:262
 AliMUONPreClusterFinderV3.cxx:263
 AliMUONPreClusterFinderV3.cxx:264
 AliMUONPreClusterFinderV3.cxx:265
 AliMUONPreClusterFinderV3.cxx:266
 AliMUONPreClusterFinderV3.cxx:267
 AliMUONPreClusterFinderV3.cxx:268
 AliMUONPreClusterFinderV3.cxx:269
 AliMUONPreClusterFinderV3.cxx:270
 AliMUONPreClusterFinderV3.cxx:271
 AliMUONPreClusterFinderV3.cxx:272
 AliMUONPreClusterFinderV3.cxx:273
 AliMUONPreClusterFinderV3.cxx:274
 AliMUONPreClusterFinderV3.cxx:275
 AliMUONPreClusterFinderV3.cxx:276
 AliMUONPreClusterFinderV3.cxx:277
 AliMUONPreClusterFinderV3.cxx:278
 AliMUONPreClusterFinderV3.cxx:279
 AliMUONPreClusterFinderV3.cxx:280
 AliMUONPreClusterFinderV3.cxx:281
 AliMUONPreClusterFinderV3.cxx:282
 AliMUONPreClusterFinderV3.cxx:283
 AliMUONPreClusterFinderV3.cxx:284
 AliMUONPreClusterFinderV3.cxx:285
 AliMUONPreClusterFinderV3.cxx:286
 AliMUONPreClusterFinderV3.cxx:287
 AliMUONPreClusterFinderV3.cxx:288
 AliMUONPreClusterFinderV3.cxx:289
 AliMUONPreClusterFinderV3.cxx:290
 AliMUONPreClusterFinderV3.cxx:291
 AliMUONPreClusterFinderV3.cxx:292
 AliMUONPreClusterFinderV3.cxx:293
 AliMUONPreClusterFinderV3.cxx:294