]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITS.h
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / ITS / AliITS.h
index eb39b9c8ae5788b738da4f5bf0b1565d549fa2de..3524e46c8fcf2e764177ac34a37f56048d8e5d00 100644 (file)
@@ -27,13 +27,15 @@ class AliITShit;
 class AliITSgeom;
 class AliITSdigit;
 class AliITSmodule;
-class AliDigitizer;
-class AliRunDigitizer;
-
+class AliDigitizationInput;
+class TArrayI;
 
 class AliITS : public AliDetector {
 
  public:
+  enum {kSPD,kSDD,kSSD};
+  enum {kMaxLabel=3141593};  // default track label assigned to digits/clusters
+
     //================= Standard Classes ===============================
     AliITS();  // Default creator.
     AliITS(const Char_t *title); // standard Creator
@@ -59,6 +61,11 @@ class AliITS : public AliDetector {
 
     AliITSmodule *GetModule(Int_t index){
         return (AliITSmodule*)(fITSmodules->At(index));}
+    virtual void SetSimuParam(AliITSSimuParam *sp){
+      fSimuParam=sp;
+      fDetTypeSim->SetSimuParam(sp);
+    }
+    AliITSSimuParam* GetSimuParam() const {return fSimuParam;}
 
     virtual void SetDetTypeSim(AliITSDetTypeSim* dts) {fDetTypeSim=dts;}
     AliITSDetTypeSim* GetDetTypeSim() const {return fDetTypeSim;}
@@ -94,17 +101,16 @@ class AliITS : public AliDetector {
     //=================== Hits =========================================
     virtual void StepManager() {} // See Step Manager for specific geometry.
     //------------ sort hits by module for Digitisation ----------------
-    virtual void FillModules(Int_t evnt,Int_t bgrev,Int_t nmodules,
+    virtual void FillModules(Int_t /* evnt */,Int_t bgrev,Int_t /* nmodules */,
                             Option_t *opt, const char *filename); 
     virtual Bool_t InitModules(Int_t size,Int_t &nmodules);  
     virtual void FillModules(TTree *treeH, Int_t mask = 0);
     virtual void ClearModules(){if(fITSmodules) fITSmodules->Delete();}
     virtual void AddHit(Int_t track, Int_t *vol, Float_t *hits);
    // Trigger
-    virtual AliTriggerDetector* CreateTriggerDetector() const
-       { return new AliITSTrigger(); }
+    virtual AliTriggerDetector* CreateTriggerDetector() const;
 
-    AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
+    AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const;
     virtual void UpdateInternalGeometry();
     virtual void SDigitsToDigits(Option_t *opt="All");
     virtual void SDigits2Digits(){SDigitsToDigits("All");}
@@ -141,8 +147,13 @@ class AliITS : public AliDetector {
     //===================== Raw Data IO ================================
     // Write digits into raw data format
     virtual void   Digits2Raw();
-    virtual Bool_t Raw2SDigits(AliRawReader*);
+    virtual Bool_t Raw2SDigits(AliRawReader*  rawReader);
     
+    //===================== FO signals ================================
+    // Write FO signals in UserInfo of SDigits/Digits tree
+    void WriteFOSignals();
+    void     SetRawID2ClusID(const TArrayI* arr, Int_t iDet) { if (iDet>-1&&iDet<fgkNTYPES) fkRawID2ClusID[iDet] = arr;}
+    const TArrayI* GetRawID2ClusID(Int_t iDet) const {return (iDet>-1&&iDet<fgkNTYPES) ? fkRawID2ClusID[iDet]:0;}
 
  protected:
     static const Int_t fgkNTYPES=3; //number of detector types
@@ -155,11 +166,14 @@ class AliITS : public AliDetector {
     TString      *fIdName;     //[fIdN] layer identifier
     TObjArray    *fITSmodules; //! Pointer to ITS modules
     Bool_t        fTiming;     // flag to turn on/off timers.
-
+    AliITSSimuParam* fSimuParam; //simulation parameters
+    TClonesArray** fModA;      //! Used by Raw2SDigits (one TC per module)
+    TClonesArray* fpSDigits;   //! Branch address to build SD from raw data 
+    const TArrayI* fkRawID2ClusID[fgkNTYPES]; //! optional array for SDigit->Cluster assingment in Raw2SDigit (for embedding)
  private:
     AliITS(const AliITS &source); // copy constructor. Not to be used!
     AliITS& operator=(const AliITS &source); // = operator. Not to be used!
-    ClassDef(AliITS,7) // Base class for ITS
+    ClassDef(AliITS,9) // Base class for ITS
 
 };