* 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"
////////////////////////////////////////////////////////////////////////
fObjects = 0;
fNobjects = 0;
fMapThreshold = 0;
+ fMapThresholdArr = 0;
}
//______________________________________________________________________
AliITSMapA1::AliITSMapA1(AliITSsegmentation *seg){
fObjects = 0;
fNobjects = 0;
fMapThreshold = 0;
+ fMapThresholdArr = 0;
ClearMap();
}
//______________________________________________________________________
fObjects = obj;
if(fObjects) fNobjects = fObjects->GetEntriesFast();
fMapThreshold = 0;
+ fMapThresholdArr = 0;
ClearMap();
}
//______________________________________________________________________
fMapThreshold = thr;
ClearMap();
}
+//______________________________________________________________________
+AliITSMapA1::AliITSMapA1(AliITSsegmentation *seg, TObjArray *obj, TArrayI 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 = 0;
+ fMapThresholdArr = thr;
+ ClearMap();
+}
+
//______________________________________________________________________
AliITSMapA1::~AliITSMapA1(){
//destructor
this->fMaxIndex = source.fMaxIndex;
this->fHitMap = source.fHitMap;
this->fMapThreshold = source.fMapThreshold;
+ this->fMapThresholdArr = source.fMapThresholdArr;
return *this;
}
//______________________________________________________________________
-AliITSMapA1::AliITSMapA1(const AliITSMapA1 &source){
+AliITSMapA1::AliITSMapA1(const AliITSMapA1 &source) : AliITSMap(source){
// Copy Constructor
*this = source;
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;
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
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;
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;