ROOT logo
#ifndef ALIITSMAPA2_H
#define ALIITSMAPA2_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice     */
/* $Id$ */

////////////////////////////////////////////////////////////////////////
//  Map Class for ITS. Implementation A2. In this implementation, the //
// 2 dimensional (iz,ix) map is filled with Double precision floating //
// point values. For each cell a corresponding TObject, a hit, can    //
// also be stored. This class is derived from AliITSMapA1 so that is  //
// retains all of the functionality of that map class as well.        //
////////////////////////////////////////////////////////////////////////

#include "AliITSMapA1.h"

class AliITSMapA2 : public AliITSMapA1{

 public:
    AliITSMapA2(); // default creator
    // Standard reator using only a segmentation class
    AliITSMapA2(AliITSsegmentation *seg);
    // Standard reator using only a segmentation class and X and Z scale sizes
    AliITSMapA2(AliITSsegmentation *seg,Int_t scalesizeX,Int_t scalesizeZ);
    // Standard reator using only a segmentation class pointer to hits, and
    // a threshold value
    AliITSMapA2(AliITSsegmentation *seg, TObjArray *hist,Double_t thresh);
    virtual ~AliITSMapA2(); // destructor
    // fill pad signals into map 
    virtual void FillMap();
    // clear map
    virtual void ClearMap();    
    // set hit. Over written with a null function. See Double version below.
    virtual void SetHit(Int_t,Int_t,Int_t){}
    // set signal at a certain position in array
    void  SetHit(Int_t iz, Int_t ix, Double_t signal){
	fHitMapD[CheckedIndex(iz, ix)]=signal;}
    // set signal at a certain position in array
    void  SetHit(Int_t index, Double_t signal){fHitMapD[index]=signal;}
    // Flag a hit as used
    // Set threshold for the signal
    virtual void SetThreshold(Int_t thresh) {fMapThresholdD=(Double_t)thresh;}
    // flags hit in map
    virtual  void  FlagHit(Int_t iz, Int_t ix);
    //set the entry value to zero
    virtual  void  DeleteHit(Int_t iz, Int_t ix){
	fHitMapD[CheckedIndex(iz, ix)]=0;}
    //return the index of an entry in array
    virtual Int_t  GetHitIndex(Int_t iz, Int_t ix) const {
	return CheckedIndex(iz, ix);};
    // Get object (1D histogram)
    virtual TObject *GetHit(Int_t iz, Int_t /* dummy */) const;
    // Test hit status
    virtual FlagTypeITS TestHit(Int_t iz, Int_t ix);
    // Get signal using two dim. index
    virtual Double_t GetSignal(Int_t iz, Int_t ix) const
	{return GetSignal(GetHitIndex(iz,ix));}
    // Get signal
    Double_t GetSignal(Int_t index) const ;
    // Add new value to Map at cell
    virtual void AddSignal(Int_t iz, Int_t ix, Double_t sig);

 private:
    AliITSMapA2(const AliITSMapA2 &source); // copy constructor
    // assignment operator
    AliITSMapA2& operator=(const AliITSMapA2 &source);
    void  FillMapFromHist(); // fills the map from a historgram
    void  FillHist(); // fills a histogram from the map
    void  ResetHist(); // resets the histogram

    Double_t *fHitMapD;         //! [fMaxIndex]
    Double_t fMapThresholdD;    // threshold for signal
    Int_t    fScaleSizeX;       // scale factor on x
    Int_t    fScaleSizeZ;       // scale factor on z

    ClassDef(AliITSMapA2,1) // Implements Signal Map
};

#endif	
 AliITSMapA2.h:1
 AliITSMapA2.h:2
 AliITSMapA2.h:3
 AliITSMapA2.h:4
 AliITSMapA2.h:5
 AliITSMapA2.h:6
 AliITSMapA2.h:7
 AliITSMapA2.h:8
 AliITSMapA2.h:9
 AliITSMapA2.h:10
 AliITSMapA2.h:11
 AliITSMapA2.h:12
 AliITSMapA2.h:13
 AliITSMapA2.h:14
 AliITSMapA2.h:15
 AliITSMapA2.h:16
 AliITSMapA2.h:17
 AliITSMapA2.h:18
 AliITSMapA2.h:19
 AliITSMapA2.h:20
 AliITSMapA2.h:21
 AliITSMapA2.h:22
 AliITSMapA2.h:23
 AliITSMapA2.h:24
 AliITSMapA2.h:25
 AliITSMapA2.h:26
 AliITSMapA2.h:27
 AliITSMapA2.h:28
 AliITSMapA2.h:29
 AliITSMapA2.h:30
 AliITSMapA2.h:31
 AliITSMapA2.h:32
 AliITSMapA2.h:33
 AliITSMapA2.h:34
 AliITSMapA2.h:35
 AliITSMapA2.h:36
 AliITSMapA2.h:37
 AliITSMapA2.h:38
 AliITSMapA2.h:39
 AliITSMapA2.h:40
 AliITSMapA2.h:41
 AliITSMapA2.h:42
 AliITSMapA2.h:43
 AliITSMapA2.h:44
 AliITSMapA2.h:45
 AliITSMapA2.h:46
 AliITSMapA2.h:47
 AliITSMapA2.h:48
 AliITSMapA2.h:49
 AliITSMapA2.h:50
 AliITSMapA2.h:51
 AliITSMapA2.h:52
 AliITSMapA2.h:53
 AliITSMapA2.h:54
 AliITSMapA2.h:55
 AliITSMapA2.h:56
 AliITSMapA2.h:57
 AliITSMapA2.h:58
 AliITSMapA2.h:59
 AliITSMapA2.h:60
 AliITSMapA2.h:61
 AliITSMapA2.h:62
 AliITSMapA2.h:63
 AliITSMapA2.h:64
 AliITSMapA2.h:65
 AliITSMapA2.h:66
 AliITSMapA2.h:67
 AliITSMapA2.h:68
 AliITSMapA2.h:69
 AliITSMapA2.h:70
 AliITSMapA2.h:71
 AliITSMapA2.h:72
 AliITSMapA2.h:73
 AliITSMapA2.h:74
 AliITSMapA2.h:75
 AliITSMapA2.h:76
 AliITSMapA2.h:77
 AliITSMapA2.h:78
 AliITSMapA2.h:79