]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSMapA1.cxx
Coverity - bug fix
[u/mrichter/AliRoot.git] / ITS / AliITSMapA1.cxx
index 78ac731fad6480c282534f2606256ca24d26eacc..4e6bb6f091490dce9b0c84d5248624960a12f108 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 #include <TObjArray.h>
-#include <TMath.h>
-
 #include "AliITSMapA1.h"
 #include "AliITSsegmentation.h"
-#include "AliITSresponse.h"
 #include "AliITSdigit.h"
 
 ////////////////////////////////////////////////////////////////////////
 
 ClassImp(AliITSMapA1)
 //______________________________________________________________________
-AliITSMapA1::AliITSMapA1(){
+AliITSMapA1::AliITSMapA1():
+fSegmentation(0),
+fNpx(0),
+fNpz(0),
+fObjects(0),
+fNobjects(0),
+fMaxIndex(0),
+fMapThresholdArr(0),
+fHitMap(0),
+fMapThreshold(0){
     // default constructor
 
-    fSegmentation = 0;
-    fNpz          = 0;
-    fNpx          = 0;
-    fMaxIndex     = 0;
-    fHitMap       = 0;
-    fObjects      = 0;
-    fNobjects     = 0;
-    fMapThreshold = 0;
 }
 //______________________________________________________________________
-AliITSMapA1::AliITSMapA1(AliITSsegmentation *seg){
+AliITSMapA1::AliITSMapA1(AliITSsegmentation *seg):
+fSegmentation(seg),
+fNpx(0),
+fNpz(0),
+fObjects(0),
+fNobjects(0),
+fMaxIndex(0),
+fMapThresholdArr(0),
+fHitMap(0),
+fMapThreshold(0){
     //constructor
 
-    fSegmentation = seg;
     fNpz          = fSegmentation->Npz();
     fNpx          = fSegmentation->Npx();
     fMaxIndex     = fNpz*fNpx+fNpx;             // 2 halves of detector
     fHitMap       = new Int_t[fMaxIndex];
-    fObjects      = 0;
-    fNobjects     = 0;
-    fMapThreshold = 0;
     ClearMap();
 }
 //______________________________________________________________________
-AliITSMapA1::AliITSMapA1(AliITSsegmentation *seg, TObjArray *obj){
+AliITSMapA1::AliITSMapA1(AliITSsegmentation *seg, TObjArray *obj):
+fSegmentation(seg),
+fNpx(0),
+fNpz(0),
+fObjects(obj),
+fNobjects(0),
+fMaxIndex(0),
+fMapThresholdArr(0),
+fHitMap(0),
+fMapThreshold(0){
     //constructor
 
-    fNobjects     = 0;
-    fSegmentation = seg;
-    fNpz          = fSegmentation->Npz();
-    fNpx          = fSegmentation->Npx();
-    fMaxIndex     = fNpz*fNpx+fNpx;             // 2 halves of detector
-    fHitMap       = new Int_t[fMaxIndex];
-    fObjects      =  obj;
-    if(fObjects) fNobjects = fObjects->GetEntriesFast();
-    fMapThreshold = 0;
-    ClearMap();
-}
-//______________________________________________________________________
-AliITSMapA1::AliITSMapA1(AliITSsegmentation *seg, TObjArray *obj, Int_t thr){
+  fNpz          = fSegmentation->Npz();
+  fNpx          = fSegmentation->Npx();
+  fMaxIndex     = fNpz*fNpx+fNpx;             // 2 halves of detector
+  fHitMap       = new Int_t[fMaxIndex];
+  if(fObjects) fNobjects = fObjects->GetEntriesFast();
+  ClearMap();
+}
+//______________________________________________________________________
+AliITSMapA1::AliITSMapA1(AliITSsegmentation *seg, TObjArray *obj, Int_t thr):
+fSegmentation(seg),
+fNpx(0),
+fNpz(0),
+fObjects(obj),
+fNobjects(0),
+fMaxIndex(0),
+fMapThresholdArr(0),
+fHitMap(0),
+fMapThreshold(thr){
     //constructor
 
-    fNobjects     = 0;
-    fSegmentation = seg;
-    fNpz          = fSegmentation->Npz();
-    fNpx          = fSegmentation->Npx();
-    fMaxIndex     = fNpz*fNpx+fNpx;             // 2 halves of detector
-    fHitMap       = new Int_t[fMaxIndex];
-    fObjects      =  obj;
-    if(fObjects) fNobjects = fObjects->GetEntriesFast();
-    fMapThreshold = thr;
-    ClearMap();
+  fNpz          = fSegmentation->Npz();
+  fNpx          = fSegmentation->Npx();
+  fMaxIndex     = fNpz*fNpx+fNpx;             // 2 halves of detector
+  fHitMap       = new Int_t[fMaxIndex];
+  if(fObjects) fNobjects = fObjects->GetEntriesFast();
+  ClearMap();
+}
+//______________________________________________________________________
+AliITSMapA1::AliITSMapA1(AliITSsegmentation *seg, TObjArray *obj, TArrayI thr):
+fSegmentation(seg),
+fNpx(0),
+fNpz(0),
+fObjects(obj),
+fNobjects(0),
+fMaxIndex(0),
+fMapThresholdArr(thr),
+fHitMap(0),
+fMapThreshold(0){
+    //constructor
+
+  fNpz          = fSegmentation->Npz();
+  fNpx          = fSegmentation->Npx();
+  fMaxIndex     = fNpz*fNpx+fNpx;             // 2 halves of detector
+  fHitMap       = new Int_t[fMaxIndex];
+  if(fObjects) fNobjects = fObjects->GetEntriesFast();
+  ClearMap();
 }
+
 //______________________________________________________________________
 AliITSMapA1::~AliITSMapA1(){
     //destructor
 
     if(fHitMap) delete[] fHitMap;
 }
-//_________________________________________________________________________
-AliITSMapA1& AliITSMapA1::operator=(const AliITSMapA1 &source) {
-    //    Assignment operator
-
-    if(&source == this) return *this;
-
-    this->fNpx          = source.fNpx;
-    this->fNpz          = source.fNpz;
-    this->fObjects      = source.fObjects;
-    this->fNobjects     = source.fNobjects;
-    this->fMaxIndex     = source.fMaxIndex;
-    this->fHitMap       = source.fHitMap;
-    this->fMapThreshold = source.fMapThreshold;
-    return *this;
-}
-//______________________________________________________________________
-AliITSMapA1::AliITSMapA1(const AliITSMapA1 &source) : AliITSMap(source){
-    //     Copy Constructor
 
-    *this = source;
-}
 //______________________________________________________________________
 void AliITSMapA1::ClearMap(){
     //clear array
@@ -127,7 +141,7 @@ void AliITSMapA1::SetArray(TObjArray *obj){
     if (fObjects) fNobjects = fObjects->GetEntriesFast();
 }
 //______________________________________________________________________
-Int_t AliITSMapA1::CheckedIndex(Int_t iz, Int_t ix){
+Int_t AliITSMapA1::CheckedIndex(Int_t iz, Int_t ix) const {
     //check boundaries and return an index in array
     Int_t index=fNpx*iz+ix;
 
@@ -151,11 +165,27 @@ void  AliITSMapA1::FillMap(){
     AliITSdigit *dig;
     for (Int_t ndig=0; ndig<ndigits; ndig++) {
        dig = (AliITSdigit*)fObjects->UncheckedAt(ndig);
-       if(dig->fSignal > fMapThreshold) {
-           SetHit(dig->fCoord1,dig->fCoord2,ndig);
+       if(dig->GetSignal() > fMapThreshold) {
+           SetHit(dig->GetCoord1(),dig->GetCoord2(),ndig);
        } // end if fSignal > fMapthreshold
     } // end for ndig
 }
+//______________________________________________________________________
+void  AliITSMapA1::FillMap2(){
+    // fill array with digits indices
+
+    Int_t ndigits = fObjects->GetEntriesFast();
+    if (!ndigits) return;
+
+    AliITSdigit *dig;
+    for (Int_t ndig=0; ndig<ndigits; ndig++) {
+       dig = (AliITSdigit*)fObjects->UncheckedAt(ndig);
+       if(dig->GetSignal() > fMapThresholdArr[dig->GetCoord1()]) {
+           SetHit(dig->GetCoord1(),dig->GetCoord2(),ndig);
+       } // end if fSignal > fMapthreshold
+    } // end for ndig
+}
+
 //______________________________________________________________________
 void  AliITSMapA1::SetHit(Int_t iz, Int_t ix, Int_t idigit){
     // set the digit index at a certain position in array
@@ -175,13 +205,13 @@ void AliITSMapA1::FlagHit(Int_t iz, Int_t ix){
     fHitMap[CheckedIndex(iz, ix)] = -TMath::Abs(fHitMap[CheckedIndex(iz, ix)]);
 }
 //______________________________________________________________________
-Int_t AliITSMapA1::GetHitIndex(Int_t iz, Int_t ix){
+Int_t AliITSMapA1::GetHitIndex(Int_t iz, Int_t ix) const {
     // return the digit index from a specific entry in array
 
     return TMath::Abs(fHitMap[CheckedIndex(iz, ix)])-1;
 }
 //______________________________________________________________________
-TObject* AliITSMapA1::GetHit(Int_t iz, Int_t ix){
+TObject* AliITSMapA1::GetHit(Int_t iz, Int_t ix) const {
     // return the pointer to the digit 
 
     Int_t index=GetHitIndex(iz,ix);
@@ -189,17 +219,17 @@ TObject* AliITSMapA1::GetHit(Int_t iz, Int_t ix){
     return (index <0) ? 0 : fObjects->UncheckedAt(GetHitIndex(iz,ix));
 }
 //______________________________________________________________________
-Double_t AliITSMapA1::GetSignal(Int_t iz, Int_t ix){
+Double_t AliITSMapA1::GetSignal(Int_t iz, Int_t ix) const{
     // get a pad signal
     Double_t signal;
 
     AliITSdigit *dig = (AliITSdigit*)GetHit(iz,ix);
-    if(dig) signal=(Double_t)dig->fSignal;
+    if(dig) signal=(Double_t)dig->GetSignal();
     else signal=0.;
     return signal;
 }
 //______________________________________________________________________
-FlagType AliITSMapA1::TestHit(Int_t iz, Int_t ix){
+FlagType AliITSMapA1::TestHit(Int_t iz, Int_t ix)  {
     // check whether the digit has already been flagged
 
     if (CheckedIndex(iz, ix) < 0) return kEmpty;