]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSDetTypeSim.h
added slewing correction by data
[u/mrichter/AliRoot.git] / ITS / AliITSDetTypeSim.h
index d007ceefed773eb22e456cc6caa383a2246550f5..410ec2e038999ff24c71f4b47a1008d5847475b1 100644 (file)
@@ -15,6 +15,7 @@ $Id$
 #include <TObject.h>
 #include "AliITSLoader.h"
 #include "AliITSSimuParam.h"
+#include "AliITSFOGeneratorSPD.h"
 
 class TObjArray;
 class TClonesArray;
@@ -30,17 +31,18 @@ class AliITSCalibrationSSD;
 class AliITSGainSSDv2;
 class AliITSBadChannelsSSDv2;
 class AliITSNoiseSSDv2;
+class AliITSresponseSDD;
 class AliITSDDLModuleMapSDD;
 class AliITSCalibration;
 class AliITSgeom;
+class AliITSFOSignalsSPD;
+class AliITSTriggerConditions;
 
 class AliITSDetTypeSim : public TObject {
  public:
   
     AliITSDetTypeSim();
     virtual ~AliITSDetTypeSim(); 
-    AliITSDetTypeSim(const AliITSDetTypeSim &source);
-    AliITSDetTypeSim& operator=(const AliITSDetTypeSim &source);
     AliITSgeom *GetITSgeom() const {
         if(fLoader)return ((AliITSLoader*)fLoader)->GetITSgeom();
        else return 0;}
@@ -55,7 +57,12 @@ class AliITSDetTypeSim : public TObject {
     virtual AliITSsegmentation* GetSegmentationModelByModule(Int_t module) const;
 
     virtual void SetCalibrationModel(Int_t iMod,AliITSCalibration *resp);
+    virtual void SetSPDNoisyModel(Int_t iMod, AliITSCalibration *cal);
+    virtual void SetSPDSparseDeadModel(Int_t iMod, AliITSCalibration *cal);
+
     virtual AliITSCalibration* GetCalibrationModel(Int_t iMod) const;
+    virtual AliITSCalibration* GetSPDNoisyModel(Int_t iMod) const;
+    virtual AliITSTriggerConditions* GetTriggerConditions();
 
     virtual void SetSimuParam(const AliITSSimuParam* spar){
       if(fSimuPar) delete fSimuPar;
@@ -63,8 +70,8 @@ class AliITSDetTypeSim : public TObject {
     }
     virtual AliITSSimuParam* GetSimuParam() const {return fSimuPar;}
 
-    virtual Bool_t IsHLTmodeC() const {return fIsHLTmodeC;}
     virtual AliITSDDLModuleMapSDD* GetDDLModuleMapSDD()const { return fDDLMapSDD;}
+    virtual AliITSresponseSDD* GetResponseSDD() const { return fRespSDD;}
     TObjArray* GetCalibrationArray() const {return fCalibration;}
     TObjArray* GetSegmentation() const {return fSegmentation;}
     void ResetCalibrationArray();
@@ -100,11 +107,24 @@ class AliITSDetTypeSim : public TObject {
        fkDigClassName[i]=name;}
     const Char_t* GetDigitClassName(Int_t i) const {return fkDigClassName[i];}
 
+    virtual void ResetFOSignals() {fFOGenerator.ResetSignals();}
+    virtual void ProcessSPDDigitForFastOr(UInt_t module, UInt_t colM, UInt_t rowM);
+    virtual void ProcessNoiseForFastOr() {fFOGenerator.ProcessNoise();}
+    virtual AliITSFOSignalsSPD* GetFOSignals() {return fFOGenerator.GetFOSignals();}
+    virtual void WriteFOSignals();
+    virtual Float_t GetAverageGainSDD() const {
+      if(fAveGainSDD>0.) return fAveGainSDD;
+      else return 1.;
+    }
+
+
  protected:
     virtual void CreateCalibrationArray(); 
     virtual Bool_t GetCalibration();
     
  private:
+    AliITSDetTypeSim(const AliITSDetTypeSim &source);
+    AliITSDetTypeSim& operator=(const AliITSDetTypeSim &source);
     void SetDefaultSegmentation(Int_t idet);  // creates def segm.
 
     //conversion of the old SSD calibration objects tothe new ones
@@ -119,12 +139,13 @@ class AliITSDetTypeSim : public TObject {
     static const Int_t fgkDefaultNModulesSPD; // Total numbers of SPD modules by default
     static const Int_t fgkDefaultNModulesSDD; // Total numbers of SDD modules by default
     static const Int_t fgkDefaultNModulesSSD; // Total numbers of SSD modules by default
-    Int_t fNMod[3];                           // numbers of modules from different types
 
     TObjArray    *fSimulation;   //! [NDet]
     TObjArray    *fSegmentation; //! [NDet]
     TObjArray    *fCalibration;  //! [NMod]
     AliITSCalibrationSSD* fSSDCalibration;  //! SSD calibration object
+    TObjArray    *fSPDNoisy;     //! [fgkDefaultNModulesSPD]
+    TObjArray    *fSPDSparseDead;//! [fgkDefaultNModulesSPD]
     Int_t         fNSDigits;     //! number of SDigits
     TClonesArray  fSDigits;      //! Summable digits
     Int_t*        fNDigits;      //! [NDet] number of Digits for det.
@@ -132,12 +153,15 @@ class AliITSDetTypeSim : public TObject {
     TObjArray     *fDigits;      //! [NMod][NDigits]
     AliITSSimuParam *fSimuPar;   //! detector simulation parameters
     AliITSDDLModuleMapSDD *fDDLMapSDD; //! mapping DDL/module -> SDD module number
+    AliITSresponseSDD *fRespSDD;  //! SDD response parameters 
+    Float_t       fAveGainSDD;    //! Average gain of SDD good anodes
     const Char_t*       fkDigClassName[3]; //! String with digit class name.
     AliITSLoader* fLoader;          //! loader  
     Bool_t        fFirstcall;       //! flag
-    Bool_t        fIsHLTmodeC;    //! flag for HLT mode C status (used by SDD)
-    
-    ClassDef(AliITSDetTypeSim,9) // ITS Simulation structure
+    AliITSFOGeneratorSPD fFOGenerator; //! Fast-OR generator object
+    AliITSTriggerConditions* fTriggerConditions; //! Trigger conditions 
+       
+    ClassDef(AliITSDetTypeSim,15) // ITS Simulation structure
  
 };