#include <TObject.h>
#include "AliITSLoader.h"
#include "AliITSSimuParam.h"
+#include "AliITSFOGeneratorSPD.h"
class TObjArray;
class TClonesArray;
class AliITSGainSSDv2;
class AliITSBadChannelsSSDv2;
class AliITSNoiseSSDv2;
+class AliITSresponseSDD;
class AliITSDDLModuleMapSDD;
class AliITSCalibration;
class AliITSgeom;
+class AliITSFOSignalsSPD;
+class AliITSTriggerConditions;
class AliITSDetTypeSim : public TObject {
public:
virtual AliITSsegmentation* GetSegmentationModelByModule(Int_t module) const;
virtual void SetCalibrationModel(Int_t iMod,AliITSCalibration *resp);
+ virtual void SetSPDNoisyModel(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;
}
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();
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();
TObjArray *fSegmentation; //! [NDet]
TObjArray *fCalibration; //! [NMod]
AliITSCalibrationSSD* fSSDCalibration; //! SSD calibration object
+ TObjArray *fSPDNoisy; //! [fgkDefaultNModulesSPD]
Int_t fNSDigits; //! number of SDigits
TClonesArray fSDigits; //! Summable digits
Int_t* fNDigits; //! [NDet] number of Digits for det.
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,13) // ITS Simulation structure
};