]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveDet/AliEveITSScaledModule.cxx
Coverity
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveITSScaledModule.cxx
index b3938041e5ac10ade47d8c7cb1f8c533ae0cae68..7df803e1c75aecac15b5e6ede514642bb514a4f5 100644 (file)
@@ -9,7 +9,6 @@
 
 #include "AliEveITSScaledModule.h"
 
-#include <AliITSgeom.h>
 #include <AliITSsegmentationSPD.h>
 #include <AliITSsegmentationSDD.h>
 #include <AliITSsegmentationSSD.h>
 #include <AliITSdigitSSD.h>
 
 #include <TMath.h>
+#include <TClonesArray.h>
 
-//______________________________________________________________________________
+//==============================================================================
+//==============================================================================
 // AliEveDigitScaleInfo
+//==============================================================================
+
+//______________________________________________________________________________
 //
+// Encapsulates current state of scaling and agglomeration.
 
 ClassImp(AliEveDigitScaleInfo)
 
 AliEveDigitScaleInfo::AliEveDigitScaleInfo():
   fScale(1),
-  fStatType (kST_Average),
+  fStatType (kSTAverage),
   fSyncPalette(kFALSE)
 {
 }
@@ -38,10 +43,18 @@ void AliEveDigitScaleInfo::ScaleChanged(Int_t s)
   fScale = s;
 
   AliEveITSScaledModule* sm;
+#if ROOT_VERSION_CODE >= 334599 
+  RefMap_i i = fBackRefs.begin();
+#else
   std::list<TEveElement*>::iterator i = fBackRefs.begin();
+#endif
   while (i != fBackRefs.end())
   {
+#if ROOT_VERSION_CODE >= 334599 
+    sm = dynamic_cast<AliEveITSScaledModule*>((*i).first);
+#else
     sm = dynamic_cast<AliEveITSScaledModule*>(*i);
+#endif
     if(sm) sm->LoadQuads();
     ++i;
   }
@@ -53,44 +66,53 @@ void AliEveDigitScaleInfo::StatTypeChanged(Int_t t)
   fSyncPalette = kTRUE;
 
   AliEveITSScaledModule* sm;
+#if ROOT_VERSION_CODE >= 334599 
+  RefMap_i i = fBackRefs.begin();
+#else
   std::list<TEveElement*>::iterator i = fBackRefs.begin();
+#endif
   while (i != fBackRefs.end())
   {
+#if ROOT_VERSION_CODE >= 334599 
+    sm = dynamic_cast<AliEveITSScaledModule*>((*i).first);
+#else
     sm = dynamic_cast<AliEveITSScaledModule*>(*i);
-    if(sm) sm->SetQuadValues();
+#endif
+    if (sm) sm->SetQuadValues();
     ++i;
   }
 }
 
 //______________________________________________________________________________
-// ScaledDigit
+// ScaledDigit_t
 //
 
-AliEveITSScaledModule::ScaledDigit::ScaledDigit() :
+AliEveITSScaledModule::ScaledDigit_t::ScaledDigit_t() :
   TObject(),
-  N(0),
-  sum(0), sqr_sum(0),
-  min_i(-1), min_j(-1), max_i(-1), max_j(-1)
+  fN(0),
+  fSum(0), fSqrSum(0),
+  fMinI(-1), fMinJ(-1), fMaxI(-1), fMaxJ(-1)
 {
 }
 
-AliEveITSScaledModule::ScaledDigit::ScaledDigit(Int_t di, Int_t dj) :
+AliEveITSScaledModule::ScaledDigit_t::ScaledDigit_t(Int_t di, Int_t dj) :
   TObject(),
-  N(0),
-  sum(0), sqr_sum(0),
-  min_i(di), min_j(dj), max_i(di), max_j(dj)
+  fN(0),
+  fSum(0), fSqrSum(0),
+  fMinI(di), fMinJ(dj), fMaxI(di), fMaxJ(dj)
 {
 }
 
-void AliEveITSScaledModule::ScaledDigit::Dump() const
+void AliEveITSScaledModule::ScaledDigit_t::Dump() const
 {
-  printf("N %d, sum %f, sqr_sum %f",N, sum, sqr_sum);
+  printf("N %d, sum %f, sqr_sum %f", fN, fSum, fSqrSum);
 }
 
 
-//______________________________________________________________________________
-
+//==============================================================================
+//==============================================================================
 // AliEveITSScaledModule
+//==============================================================================
 
 //______________________________________________________________________________
 //
@@ -101,12 +123,12 @@ ClassImp(AliEveITSScaledModule)
 
 AliEveITSScaledModule::AliEveITSScaledModule(Int_t gid, AliEveITSDigitsInfo* info, AliEveDigitScaleInfo* si):
   AliEveITSModule("AliEveITSScaledModule", "AliEveITSScaledModule"),
-  fDigitsMap(),
   fNx(-1),
   fNz(-1),
   fNCx(-1),
   fNCz(-1),
-  fScaleInfo(si)
+  fScaleInfo(si),
+  fDigitsMap()
 {
   SetOwnIds(kTRUE);
 
@@ -129,18 +151,19 @@ void AliEveITSScaledModule::LoadQuads()
   // We need this as TEveQuadSet offers optimized treatment for
   // quads in the x-y plane.
 
-  TClonesArray *digits;
+  TClonesArray *digits = fInfo->GetDigits(fID, fDetID);
+  if (!digits) return;
+
+  Int_t ndigits = digits->GetEntriesFast();
+
   Float_t       x, z, zo, dpx, dpz; // orig cells size, pos
-  Int_t         i, j, ndigits;   // orig cells idx
-  Int_t         c1, c2;          // original coordinates
+  Int_t         i, j;               // orig cells idx
+  Int_t         c1, c2;             // original coordinates
 
   Int_t id;
   std::map<Int_t, Int_t> dmap;
   std::map<Int_t, Int_t>::iterator miter;
-  digits  = fInfo->GetDigits(fID, fDetID);
-  ndigits = digits->GetEntriesFast();
 
-  ScaledDigit* sd;
   Int_t scale = fScaleInfo->GetScale() -1;
   switch(fDetID)
   {
@@ -164,10 +187,11 @@ void AliEveITSScaledModule::LoadQuads()
 
        fInfo->GetSPDLocalZ(od->GetCoord1(),zo);
         c1 = od->GetCoord1(); c2 = od->GetCoord2();
-       i = Int_t((zo+fDz)/dpz);
-       j = Int_t((od->GetCoord2()*fNx)/fInfo->fSegSPD->Npx());
+       i  = Int_t((zo+fDz)/dpz);
+       j  = Int_t((od->GetCoord2()*fNx)/fInfo->fSegSPD->Npx());
        id = j*fNx + i;
 
+        ScaledDigit_t* sd = 0;
         miter = dmap.find(id);
        if(miter == dmap.end())
        {
@@ -175,26 +199,26 @@ void AliEveITSScaledModule::LoadQuads()
           z = dpz*(i) - fDz;
           x = dpx*(j) - fDx;
           AddQuad(x, z, dpx, dpz);
-          sd = new ScaledDigit(c1, c2);
+          sd = new ScaledDigit_t(c1, c2);
          QuadId(sd);
        }
         else
        {
-         sd = dynamic_cast<ScaledDigit*>(GetId(miter->second));
-          if(c1 < sd->min_i)
-           sd->min_i = c1;
-         else if( c1 > sd->max_i)
-            sd->max_i = c1;
-
-          if(c2 < sd->min_j)
-           sd->min_j = c2;
-         else if( c2 > sd->max_j)
-           sd->max_j = c2;
+         sd = dynamic_cast<ScaledDigit_t*>(GetId(miter->second));
+          if(c1 < sd->fMinI)
+           sd->fMinI = c1;
+         else if( c1 > sd->fMaxI)
+            sd->fMaxI = c1;
+
+          if(c2 < sd->fMinJ)
+           sd->fMinJ = c2;
+         else if( c2 > sd->fMaxJ)
+           sd->fMaxJ = c2;
        }
 
-       sd->N++;
-       sd->sum  += od->GetSignal();
-       sd->sqr_sum += od->GetSignal()*od->GetSignal();
+       sd->fN++;
+       sd->fSum  += od->GetSignal();
+       sd->fSqrSum += od->GetSignal()*od->GetSignal();
       }
       break;
     }
@@ -207,23 +231,25 @@ void AliEveITSScaledModule::LoadQuads()
       fNCx = fInfo->fSDDScaleX[scale];
       fNz  = Int_t(fInfo->fSegSDD->Npz()/fNCz);
       fNx  = Int_t(fInfo->fSegSDD->Npx()/fNCx);
-      dpz = 2*fDz/fNz;
-      dpx = 2*fDx/fNx;
+      dpz  = 2*fDz/fNz;
+      dpx  = 2*fDx/fNx;
 
-      AliITSdigitSDD *od=0;
-      for (Int_t k=0; k<ndigits; k++) {
-       od=(AliITSdigitSDD*)digits->UncheckedAt(k);
+      AliITSdigitSDD *od = 0;
+      for (Int_t k = 0; k < ndigits; ++k)
+      {
+       od = (AliITSdigitSDD*)digits->UncheckedAt(k);
        fInfo->fSegSDD->DetToLocal(od->GetCoord2(), od->GetCoord1(),x,z);
-       z+= fDz;
-       x+= fDx;
-       i = Int_t(z/dpz);
-       j = Int_t(x/dpx);
+       z += fDz;
+       x += fDx;
+       i  = Int_t(z/dpz);
+       j  = Int_t(x/dpx);
        //printf("Mod %d coord %d,%d out of %d,%d :: ORIG coord %d,%d out of %d,%d \n",fID,
        //       i,j,Nz,Nx,od->GetCoord1(),od->GetCoord2(),fInfo->fSegSDD->Npz(),fInfo->fSegSDD->Npx());
 
        id = j*fNx + i;
        c1 = od->GetCoord1(); c2 = od->GetCoord2();
 
+       ScaledDigit_t* sd = 0;
        miter = dmap.find(id);
        if(miter == dmap.end())
        {
@@ -231,25 +257,25 @@ void AliEveITSScaledModule::LoadQuads()
          z = dpz*(i) - fDz;
          x = dpx*(j) - fDx;
          AddQuad(x, z, dpx, dpz);
-         sd = new ScaledDigit(od->GetCoord1(),od->GetCoord2());
+         sd = new ScaledDigit_t(od->GetCoord1(),od->GetCoord2());
          QuadId(sd);
        }
        else
        {
-         sd = dynamic_cast<ScaledDigit*>(GetId(miter->second));
-         if(c1 < sd->min_i)
-           sd->min_i = c1;
-         else if( c1 > sd->max_i)
-           sd->max_i = c1;
-
-         if(c2 < sd->min_j)
-           sd->min_j = c2;
-         else if( c2 > sd->max_j)
-           sd->max_j = c2;
+         sd = dynamic_cast<ScaledDigit_t*>(GetId(miter->second));
+         if(c1 < sd->fMinI)
+           sd->fMinI = c1;
+         else if( c1 > sd->fMaxI)
+           sd->fMaxI = c1;
+
+         if(c2 < sd->fMinJ)
+           sd->fMinJ = c2;
+         else if( c2 > sd->fMaxJ)
+           sd->fMaxJ = c2;
        }
-       sd->N++;
-       sd->sum  += od->GetSignal();
-       sd->sqr_sum += od->GetSignal()*od->GetSignal();
+       sd->fN++;
+       sd->fSum  += od->GetSignal();
+       sd->fSqrSum += od->GetSignal()*od->GetSignal();
       }
       break;
     }
@@ -270,7 +296,7 @@ void AliEveITSScaledModule::LoadQuads()
       dpz = 2*fDz/fNz;
       dpx = 2*fDx/fNx;
 
-      AliITSdigitSSD *od=0;
+      AliITSdigitSSD *od = 0;
       for (Int_t k=0; k<ndigits; k++) {
        od=(AliITSdigitSSD*)digits->UncheckedAt(k);
        if(od->GetCoord1() == 1)
@@ -281,8 +307,8 @@ void AliEveITSScaledModule::LoadQuads()
        c1 = od->GetCoord1(); c2 = od->GetCoord2();
        id = j*i;
 
+       ScaledDigit_t* sd = 0;
        miter = dmap.find(id);
-       ScaledDigit* sd;
        if(miter == dmap.end())
        {
          // printf("orig digit %d,%d scaled %d,%d \n",od->GetCoord1(),od->GetCoord2(),i,j);
@@ -292,25 +318,25 @@ void AliEveITSScaledModule::LoadQuads()
          Float_t a = ( od->GetCoord1() == 1) ? ap : an;
          AddLine(x-a, -fDz, 2*a, 2*fDz);
 
-         sd = new ScaledDigit(c1, c2);
+         sd = new ScaledDigit_t(c1, c2);
          QuadId(sd);
        }
        else
        {
-         sd = dynamic_cast<ScaledDigit*>(GetId(miter->second));
-         if(c1 < sd->min_i)
-           sd->min_i = c1;
-         else if( c1 > sd->max_i)
-           sd->max_i = c1;
-
-         if(c2 < sd->min_j)
-           sd->min_j = c2;
-         else if( c2 > sd->max_j)
-           sd->max_j = c2;
+         sd = dynamic_cast<ScaledDigit_t*>(GetId(miter->second));
+         if(c1 < sd->fMinI)
+           sd->fMinI = c1;
+         else if( c1 > sd->fMaxI)
+           sd->fMaxI = c1;
+
+         if(c2 < sd->fMinJ)
+           sd->fMinJ = c2;
+         else if( c2 > sd->fMaxJ)
+           sd->fMaxJ = c2;
        }
-       sd->N++;
-       sd->sum  += od->GetSignal();
-       sd->sqr_sum += od->GetSignal()*od->GetSignal();
+       sd->fN++;
+       sd->fSum  += od->GetSignal();
+       sd->fSqrSum += od->GetSignal()*od->GetSignal();
       } // for digits
       break;
     } // end case 2
@@ -326,23 +352,23 @@ void AliEveITSScaledModule::SetQuadValues()
 {
   if(fScaleInfo->GetSyncPalette()) SyncPalette();
 
-  Int_t N = fPlex.Size();
-  for (Int_t i = 0 ; i< N; i++)
+  Int_t num = fPlex.Size();
+  for (Int_t i = 0 ; i < num; i++)
   {
-    ScaledDigit* sd = dynamic_cast<ScaledDigit*>(GetId(i));
+    ScaledDigit_t* sd = dynamic_cast<ScaledDigit_t*>(GetId(i));
     Int_t v = 0;
     switch(fScaleInfo->GetStatType())
     {
       using namespace TMath;
 
-      case AliEveDigitScaleInfo::kST_Occup:
-       v = Nint((100.0*sd->N) / (fNCx*fNCz));
+      case AliEveDigitScaleInfo::kSTOccup:
+       v = Nint((100.0*sd->fN) / (fNCx*fNCz));
        break;
-      case AliEveDigitScaleInfo::kST_Average:
-       v = Nint((Double_t) sd->sum / sd->N);
+      case AliEveDigitScaleInfo::kSTAverage:
+       v = Nint((Double_t) sd->fSum / sd->fN);
        break;
-      case AliEveDigitScaleInfo::kST_Rms:
-       v = Nint(Sqrt(sd->sqr_sum) / sd->N);
+      case AliEveDigitScaleInfo::kSTRms:
+       v = Nint(Sqrt(sd->fSqrSum) / sd->fN);
        break;
     }
     DigitBase_t* qb = GetDigit(i);
@@ -355,7 +381,7 @@ void AliEveITSScaledModule::SetQuadValues()
 void AliEveITSScaledModule::SyncPalette()
 {
   // printf("AliEveITSScaledModule::SyncPalette()\n");
-  if(fScaleInfo->GetStatType() == AliEveDigitScaleInfo::kST_Occup)
+  if(fScaleInfo->GetStatType() == AliEveDigitScaleInfo::kSTOccup)
   {
     // SPD
     AliEveITSModule::fgSPDPalette->SetLimits(0, 100);
@@ -371,18 +397,18 @@ void AliEveITSScaledModule::SyncPalette()
   }
   else
   {
-    AliEveITSDigitsInfo& DI = *fInfo;
+    AliEveITSDigitsInfo& di = *fInfo;
     // SPD
-    AliEveITSModule::fgSPDPalette->SetLimits(0, DI.fSPDHighLim);
-    AliEveITSModule::fgSPDPalette->SetMinMax(DI.fSPDMinVal, DI.fSPDMaxVal);
+    AliEveITSModule::fgSPDPalette->SetLimits(0, di.fSPDHighLim);
+    AliEveITSModule::fgSPDPalette->SetMinMax(di.fSPDMinVal, di.fSPDMaxVal);
 
     // SDD
-    AliEveITSModule::fgSDDPalette->SetLimits(0, DI.fSDDHighLim);
-    AliEveITSModule::fgSDDPalette->SetMinMax(DI.fSDDMinVal, DI.fSDDMaxVal);
+    AliEveITSModule::fgSDDPalette->SetLimits(0, di.fSDDHighLim);
+    AliEveITSModule::fgSDDPalette->SetMinMax(di.fSDDMinVal, di.fSDDMaxVal);
 
     // SSD
-    AliEveITSModule::fgSSDPalette->SetLimits(0, DI.fSSDHighLim);
-    AliEveITSModule::fgSSDPalette->SetMinMax(DI.fSSDMinVal, DI.fSSDMaxVal);
+    AliEveITSModule::fgSSDPalette->SetLimits(0, di.fSSDHighLim);
+    AliEveITSModule::fgSSDPalette->SetMinMax(di.fSSDMinVal, di.fSSDMaxVal);
   }
 
   fScaleInfo->SetSyncPalette(kFALSE);
@@ -390,10 +416,10 @@ void AliEveITSScaledModule::SyncPalette()
 
 /******************************************************************************/
 
-void AliEveITSScaledModule::GetScaleData(Int_t& cnx, Int_t& cnz, Int_t& total)
+void AliEveITSScaledModule::GetScaleData(Int_t& cnx, Int_t& cnz, Int_t& total) const
 {
-  cnx =fNx;
-  cnz =fNz;
+  cnx   = fNx;
+  cnz   = fNz;
   total = cnx*cnz;
 }
 
@@ -404,21 +430,21 @@ void  AliEveITSScaledModule::DigitSelected(Int_t idx)
   // Override control-click from TEveQuadSet
   printf("AliEveITSScaledModule::DigitSelected "); Print();
 
-  DigitBase_t* qb  = GetDigit(idx);
-  TObject* obj  = qb->fId.GetObject();
-  ScaledDigit* sd = dynamic_cast<ScaledDigit*>(obj);
+  // DigitBase_t *qb  = GetDigit(idx);
+  TObject     *obj = GetId(idx);
+  ScaledDigit_t *sd = dynamic_cast<ScaledDigit_t*>(obj);
   TClonesArray *digits = fInfo->GetDigits(fID, fDetID);
   Int_t ndigits = digits->GetEntriesFast();
 
-  printf("%d digits in cell scaleX = %d,  scaleZ = %d \n", sd->N, fNCx, fNCz);
+  printf("%d digits in cell scaleX = %d,  scaleZ = %d \n", sd->fN, fNCx, fNCz);
 
   Int_t il = 0;
   for(Int_t k=0; k<ndigits; k++)
   {
     AliITSdigit *d = (AliITSdigit*) digits->UncheckedAt(k);
 
-    if(d->GetCoord1()>=sd->min_i && d->GetCoord1()<=sd->max_i &&
-       d->GetCoord2()>=sd->min_j && d->GetCoord2()<=sd->max_j)
+    if(d->GetCoord1()>=sd->fMinI && d->GetCoord1()<=sd->fMaxI &&
+       d->GetCoord2()>=sd->fMinJ && d->GetCoord2()<=sd->fMaxJ)
     {
       printf("%3d, %3d: %3d", d->GetCoord1(), d->GetCoord2(), d->GetSignal());
       printf(" | ");