#ifndef ALIITSSIMULATIONSDD_H
#define ALIITSSIMULATIONSDD_H
#include <TNtuple.h>
#include "AliITSsimulation.h"
#include "AliITSsegmentationSDD.h"
class TH1F;
class TFile;
class TArrayI;
class TArrayF;
class AliITS;
class AliITSpList;
class AliITSMap;
class AliITSMapA1;
class AliITSMapA2;
class AliITSetfSDD;
class AliITSCalibration;
class AliITSCalibrationSDD;
class AliITSsimulationSDD : public AliITSsimulation {
public:
AliITSsimulationSDD();
AliITSsimulationSDD(AliITSDetTypeSim* dettyp);
virtual ~AliITSsimulationSDD();
void Init();
virtual AliITSsegmentation* GetSegmentationModel(Int_t ){return fDetType->GetSegmentationModel(1);}
virtual void SetSegmentationModel(Int_t , AliITSsegmentation *seg){fDetType->SetSegmentationModel(1,seg);}
static Int_t ScaleFourier(const AliITSsegmentationSDD* seg)
{if(seg->Npx()==128) {return 8;} else {return 4;}}
virtual void SetPerpendTracksFlag(Bool_t flag=kFALSE) {fFlag=flag;}
Bool_t PerpendTracksFlag() const {return fFlag;}
virtual void SetCrosstalkFlag(Bool_t flag=kFALSE) {fCrosstalkFlag=flag;}
Bool_t CrosstalkFlag() const {return fCrosstalkFlag;}
void FastFourierTransform(Double_t *real, Double_t *imag, Int_t direction);
virtual Int_t Convert10to8(Int_t signal) const;
virtual Int_t Convert8to10(Int_t signal) const;
virtual void Compress2D();
virtual void StoreAllDigits();
virtual void AddDigit(Int_t i, Int_t j, Int_t signalc, Int_t signale);
void ChargeToSignal(Int_t mod,Bool_t bAddNoise=kFALSE, Bool_t bAddGain=kTRUE);
void ApplyCrosstalk(Int_t mod);
void InitSimulationModule( Int_t module, Int_t event );
void ClearMaps();
void SDigitiseModule(AliITSmodule *mod,Int_t md,Int_t ev);
Bool_t AddSDigitsToModule( TClonesArray *pItemArray, Int_t mask );
void FinishSDigitiseModule();
void WriteSDigits();
void FinishDigits();
void DigitiseModule(AliITSmodule *mod,Int_t md,Int_t ev);
void HitsToAnalogDigits(AliITSmodule *mod);
void CreateHistograms(Int_t scale);
void FillHistograms();
void ResetHistograms();
TObjArray* GetHistArray() {return fHis;}
void WriteToFile(TFile *fp);
TH1F *GetAnode(Int_t wing, Int_t anode);
void SetDoFFT(Int_t doFFT=1) {fDoFFT=doFFT;}
virtual void PrintStatus() const;
private:
AliITSsimulationSDD(const AliITSsimulationSDD &source);
AliITSsimulationSDD& operator=(const AliITSsimulationSDD &source);
AliITS *fITS;
AliITSMapA2 *fHitMap2;
AliITSMapA2 *fHitSigMap2;
AliITSMapA2 *fHitNoiMap2;
AliITSetfSDD *fElectronics;
Double_t *fInZR;
Double_t *fInZI;
Double_t *fOutZR;
Double_t *fOutZI;
Bool_t *fAnodeFire;
TObjArray *fHis;
Bool_t fFlag;
Bool_t fCrosstalkFlag;
Int_t fDoFFT;
Int_t fNofMaps;
Int_t fMaxNofSamples;
Int_t fScaleSize;
ClassDef(AliITSsimulationSDD,3)
};
#endif
AliITSsimulationSDD.h:100 AliITSsimulationSDD.h:101 AliITSsimulationSDD.h:102 AliITSsimulationSDD.h:103 AliITSsimulationSDD.h:104 AliITSsimulationSDD.h:105 AliITSsimulationSDD.h:106 AliITSsimulationSDD.h:107 AliITSsimulationSDD.h:108 AliITSsimulationSDD.h:109 AliITSsimulationSDD.h:110 AliITSsimulationSDD.h:111 AliITSsimulationSDD.h:112 AliITSsimulationSDD.h:113 AliITSsimulationSDD.h:114 AliITSsimulationSDD.h:115 AliITSsimulationSDD.h:116 AliITSsimulationSDD.h:117 AliITSsimulationSDD.h:118 AliITSsimulationSDD.h:119 AliITSsimulationSDD.h:120 AliITSsimulationSDD.h:121 AliITSsimulationSDD.h:122 AliITSsimulationSDD.h:123 AliITSsimulationSDD.h:124 AliITSsimulationSDD.h:125 AliITSsimulationSDD.h:126 AliITSsimulationSDD.h:127 AliITSsimulationSDD.h:128 AliITSsimulationSDD.h:129 AliITSsimulationSDD.h:130 AliITSsimulationSDD.h:131 AliITSsimulationSDD.h:132 AliITSsimulationSDD.h:133 AliITSsimulationSDD.h:134 AliITSsimulationSDD.h:135 AliITSsimulationSDD.h:136 AliITSsimulationSDD.h:137 AliITSsimulationSDD.h:138 AliITSsimulationSDD.h:139 AliITSsimulationSDD.h:140 AliITSsimulationSDD.h:141 AliITSsimulationSDD.h:142 AliITSsimulationSDD.h:143 AliITSsimulationSDD.h:144 AliITSsimulationSDD.h:145 AliITSsimulationSDD.h:146