X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONPreClusterFinderV3.cxx;h=83f3cefc0c25859327fe17308d6fd8cca0faf49b;hb=257f0eee1768a2fce3261c00d1abba5bec687da0;hp=d95f815c5ee6a40b8e20f83c6f2ca645190dc216;hpb=72dae9fff6e7e1656e0f9069eb01b49bbd1f3040;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONPreClusterFinderV3.cxx b/MUON/AliMUONPreClusterFinderV3.cxx index d95f815c5ee..83f3cefc0c2 100644 --- a/MUON/AliMUONPreClusterFinderV3.cxx +++ b/MUON/AliMUONPreClusterFinderV3.cxx @@ -20,7 +20,7 @@ #include "AliLog.h" #include "AliMUONCluster.h" #include "AliMpVSegmentation.h" -#include "TClonesArray.h" +#include "TObjArray.h" #include "AliMpArea.h" #include "TVector2.h" #include "AliMUONPad.h" @@ -47,35 +47,10 @@ /// \author Laurent Aphecetche //----------------------------------------------------------------------------- +using std::endl; +using std::cout; ClassImp(AliMUONPreClusterFinderV3) -namespace -{ - //___________________________________________________________________________ - Bool_t - AreOverlapping(const AliMUONPad& pad, const AliMUONCluster& cluster) - { - /// Whether the pad overlaps with the cluster - - static Double_t precision = 1E-4; // cm - static TVector2 precisionAdjustment(precision,precision);//-precision,-precision); - for ( Int_t i = 0; i < cluster.Multiplicity(); ++i ) - { - AliMUONPad* testPad = cluster.Pad(i); - // Note: we use negative precision numbers, meaning - // the area of the pads will be *increased* by these small numbers - // prior to check the overlap by the AreOverlapping method, - // so pads touching only by the corners will be considered as - // overlapping. - if ( AliMUONPad::AreOverlapping(*testPad,pad,precisionAdjustment) ) - { - return kTRUE; - } - } - return kFALSE; - } -} - //_____________________________________________________________________________ AliMUONPreClusterFinderV3::AliMUONPreClusterFinderV3() : AliMUONVClusterFinder(), @@ -86,7 +61,7 @@ AliMUONPreClusterFinderV3::AliMUONPreClusterFinderV3() fIterator(0x0) { /// ctor - AliInfo("") + AliInfo(""); for ( Int_t i = 0; i < 2; ++i ) { fPreClusters[i] = new TClonesArray("AliMUONCluster",10); @@ -116,15 +91,16 @@ AliMUONPreClusterFinderV3::UsePad(const AliMUONPad& pad) return kFALSE; } - AliMUONPad* p = new ((*fPads[pad.Cathode()])[fPads[pad.Cathode()]->GetLast()+1]) AliMUONPad(pad); + AliMUONPad* p = new AliMUONPad(pad); p->SetClusterId(-1); + fPads[pad.Cathode()]->Add(p); return kTRUE; } //_____________________________________________________________________________ Bool_t AliMUONPreClusterFinderV3::Prepare(Int_t detElemId, - TClonesArray* pads[2], + TObjArray* pads[2], const AliMpArea& area, const AliMpVSegmentation* seg[2]) { @@ -191,12 +167,19 @@ AliMUONPreClusterFinderV3::AddPreCluster(AliMUONCluster& cluster, AliMUONCluster 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); @@ -223,8 +206,9 @@ AliMUONPreClusterFinderV3::AddPad(AliMUONCluster& cluster, AliMUONPad* pad) AliMUONPad* addedPad = cluster.AddPad(*pad); Int_t cathode = pad->Cathode(); - TClonesArray& padArray = *fPads[cathode]; - padArray.Remove(pad); + TObjArray& padArray = *fPads[cathode]; + delete padArray.Remove(pad); + TIter next(&padArray); AliMUONPad* testPad; @@ -252,7 +236,7 @@ AliMUONPreClusterFinderV3::MakeClusters() { /// Associate (proto)preclusters to form (pre)clusters -// AliCodeTimerAuto("") +// AliCodeTimerAuto("",0) for ( Int_t cathode = 0; cathode < 2; ++cathode ) { @@ -277,7 +261,7 @@ AliMUONPreClusterFinderV3::MakeCathodePreClusters(Int_t cathode) { /// Build (proto)preclusters from digits on a given cathode -// AliCodeTimerAuto(Form("Cathode %d",cathode)) +// AliCodeTimerAuto(Form("Cathode %d",cathode),0) while ( fPads[cathode]->GetLast() > 0 ) {