New ITS Digitizer/merger with two macros. One to make SDigits (old way) and
[u/mrichter/AliRoot.git] / ITS / AliITSDigitizer.h
1 #ifndef ALIITSDIGITZER_H
2 #define ALIITSDIGITZER_H
3 /* Copyright (c) 1998-2001, ALICE Experiment at CERN, All rights reserved *
4  * See cxx source for full Copyright notice                               */
5
6 /*
7   $Id$
8  */
9
10 class TObjArray;
11 class TTree;
12
13 #include <TClonesArray.h> // function of this class used in inline functions.
14
15 class AliRunDigitizer;
16
17 #include "AliDigitizer.h" // Base class from which this one is derived
18 #include "AliITS.h"   // ITS class functions used in inline functions.
19 class AliITSmodule;
20
21 class AliITSDigitizer : public AliDigitizer{
22  public:
23     AliITSDigitizer();
24     AliITSDigitizer(AliRunDigitizer *manager);
25     virtual ~AliITSDigitizer();
26     // Standard routines.
27     virtual Bool_t Init();
28     // Perform SDigits to Digits, with or without merging, depending on the
29     // number of files.
30     virtual void Exec(Option_t* opt=0);
31     // Sets a particular module active
32     virtual void SetModuleActive(Int_t i){if(fActive) fActive[i] = kTRUE;}
33     // Sets a particular module inactive
34     virtual void SetModuleInActive(Int_t i){if(fActive) fActive[i] = kFALSE;}
35     // Sets Region of Interst Flag. if fRiof=0 then no Region of Interest
36     // cut applyed
37     virtual void SetByRegionOfInterestFlag(Int_t i=0){fRoif = i;};
38     // Sets the SDigits file number to  be used to define the region of 
39     // interest. Default is file=-1, assumed that a region of interest
40     // cut will be applied. A value of 0 means no cut to be applyed. Other
41     // values have yet to be defined.
42     virtual void SetByRegionOfFileNumber(Int_t i=-1){fRoiifile = i;};
43     // Clears the region of interest flag. Calling this implies that a
44     // Region of interest cut will not be made.
45     virtual void ClearByRegionOfInterestFlag(){fRoif = 0;};
46  private:
47     // Routines used internaly
48     // Returns a pointer to the TObjecArray of Modules.
49     TObjArray* GetModules(){return fITS->GetModules();}
50     // Returns a pointer to a  specific module.
51     AliITSmodule* GetModule(Int_t i){return fITS->GetModule(i);}
52     // Returns a pointer to the manager
53     AliRunDigitizer* GetManager(){return fManager;}
54     // Sets the region of Interest based on which module have SDigits
55     // Defined (non-noise SDigits).
56     virtual void SetByRegionOfInterest(TTree *ts);
57  private:
58     AliITS *fITS;      //! local pointer to ITS
59     Bool_t *fActive;   //! flag to indicate which module to digitize.
60     Bool_t  fInit;     //! flag to indecate Initilization when well.
61     Int_t   fRoif;     //! Region of interest flag.
62     Int_t   fRoiifile; //! The file number with which to determing the region
63                        // of interest from.
64
65     ClassDef(AliITSDigitizer,1) // Task to Digitize ITS from summable hits.
66 };
67 #endif