X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONClusterFinderPeakCOG.cxx;h=6b7d1543aadcac28b41dd0f4d772642005939b11;hb=628fd563c0c306fe9eec1b03c4d083a2fa9570d5;hp=0790944bda20d5b9bd94be836b77ce753404bb90;hpb=7deb8eb0d0ea5ba9863775c928d3303faef4da8d;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONClusterFinderPeakCOG.cxx b/MUON/AliMUONClusterFinderPeakCOG.cxx index 0790944bda2..6b7d1543aad 100644 --- a/MUON/AliMUONClusterFinderPeakCOG.cxx +++ b/MUON/AliMUONClusterFinderPeakCOG.cxx @@ -34,6 +34,7 @@ #include "AliMpPad.h" #include "AliMpVSegmentation.h" +#include "AliMpEncodePair.h" #include "AliLog.h" #include "AliRunLoader.h" @@ -80,7 +81,7 @@ fNAddVirtualPads(0) { /// Constructor - fSegmentation[1] = fSegmentation[0] = 0x0; + fkSegmentation[1] = fkSegmentation[0] = 0x0; if (fPlot) fDebug = 1; } @@ -101,18 +102,18 @@ AliMUONClusterFinderPeakCOG::Prepare(Int_t detElemId, TClonesArray* pads[2], const AliMpArea& area, const AliMpVSegmentation* seg[2]) { /// Prepare for clustering -// AliCodeTimerAuto("") +// AliCodeTimerAuto("",0) for ( Int_t i = 0; i < 2; ++i ) { - fSegmentation[i] = seg[i]; + fkSegmentation[i] = seg[i]; } // Find out the DetElemId fDetElemId = detElemId; // find out current event number, and reset the cluster number - AliRunLoader *runLoader = AliRunLoader::GetRunLoader(); + AliRunLoader *runLoader = AliRunLoader::Instance(); fEventNumber = runLoader ? runLoader->GetEventNumber() : 0; fClusterNumber = -1; fClusterList.Delete(); @@ -134,7 +135,7 @@ AliMUONCluster* AliMUONClusterFinderPeakCOG::NextCluster() { /// Return next cluster -// AliCodeTimerAuto("") +// AliCodeTimerAuto("",0) // if the list of clusters is not void, pick one from there TObject* o = fClusterList.At(++fClusterNumber); @@ -183,7 +184,7 @@ AliMUONClusterFinderPeakCOG::WorkOnPreCluster() /// Starting from a precluster, builds a pixel array, and then /// extract clusters from this array - // AliCodeTimerAuto("") + // AliCodeTimerAuto("",0) if (fDebug) { cout << " *** Event # " << fEventNumber @@ -249,7 +250,7 @@ AliMUONClusterFinderPeakCOG::CheckPrecluster(const AliMUONCluster& origCluster) /// Check precluster in order to attempt to simplify it (mostly for /// two-cathode preclusters) - // AliCodeTimerAuto("") + // AliCodeTimerAuto("",0) // Disregard small clusters (leftovers from splitting or noise) if ((origCluster.Multiplicity()==1 || origCluster.Multiplicity()==2) && @@ -319,7 +320,8 @@ AliMUONClusterFinderPeakCOG::CheckPreclusterTwoCathodes(AliMUONCluster* cluster) Int_t cath = pad->Cathode(); Int_t cath1 = TMath::Even(cath); // Check for edge effect (missing pads on the _other_ cathode) - AliMpPad mpPad = fSegmentation[cath1]->PadByPosition(pad->Position(),kFALSE); + AliMpPad mpPad + = fkSegmentation[cath1]->PadByPosition(pad->Position().X(),pad->Position().Y(),kFALSE); if (!mpPad.IsValid()) continue; //if (nFlags == 1 && pad->Charge() < fgkZeroSuppression * 3) continue; if (nFlags == 1 && pad->Charge() < 20) continue; @@ -547,19 +549,21 @@ void AliMUONClusterFinderPeakCOG::BuildPixArrayOneCathode(AliMUONCluster& cluste if (cluster.Multiplicity(0) == 0) cath0 = 1; else if (cluster.Multiplicity(1) == 0) cath1 = 0; - TVector2 leftDown = cluster.Area(cath0).LeftDownCorner(); - TVector2 rightUp = cluster.Area(cath0).RightUpCorner(); - min[0] = leftDown.X(); - min[1] = leftDown.Y(); - max[0] = rightUp.X(); - max[1] = rightUp.Y(); + Double_t leftDownX, leftDownY; + cluster.Area(cath0).LeftDownCorner(leftDownX, leftDownY); + Double_t rightUpX, rightUpY; + cluster.Area(cath0).RightUpCorner(rightUpX, rightUpY); + min[0] = leftDownX; + min[1] = leftDownY; + max[0] = rightUpX; + max[1] = rightUpY; if (cath1 != cath0) { - leftDown = cluster.Area(cath1).LeftDownCorner(); - rightUp = cluster.Area(cath1).RightUpCorner(); - min[0] = TMath::Max (min[0], leftDown.X()); - min[1] = TMath::Max (min[1], leftDown.Y()); - max[0] = TMath::Min (max[0], rightUp.X()); - max[1] = TMath::Min (max[1], rightUp.Y()); + cluster.Area(cath1).LeftDownCorner(leftDownX, leftDownY); + cluster.Area(cath1).RightUpCorner(rightUpX, rightUpY); + min[0] = TMath::Max (min[0], leftDownX); + min[1] = TMath::Max (min[1], leftDownY); + max[0] = TMath::Min (max[0], rightUpX); + max[1] = TMath::Min (max[1], rightUpY); } // Adjust limits @@ -775,7 +779,7 @@ void AliMUONClusterFinderPeakCOG::FlagLocalMax(TH2D *hist, Int_t i, Int_t j, Int //_____________________________________________________________________________ void AliMUONClusterFinderPeakCOG::FindCluster(AliMUONCluster& cluster, - Int_t *localMax, Int_t iMax) + const Int_t *localMax, Int_t iMax) { /// Find pixel cluster around local maximum \a iMax and pick up pads /// overlapping with it @@ -941,10 +945,10 @@ void AliMUONClusterFinderPeakCOG::PadsInXandY(AliMUONCluster& cluster, Bool_t mustMatch(kTRUE); - AliMpIntPair cn = cluster.NofPads(statusToTest,mustMatch); + Long_t cn = cluster.NofPads(statusToTest,mustMatch); - nInX = cn.GetFirst(); - nInY = cn.GetSecond(); + nInX = AliMp::PairFirst(cn); + nInY = AliMp::PairSecond(cn); } //_____________________________________________________________________________