]>
Commit | Line | Data |
---|---|---|
3b9df642 | 1 | #ifndef ALIITSDETTYPESIM_H |
2 | #define ALIITSDETTYPESIM_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* | |
7 | $Id$ | |
8 | */ | |
9 | ||
7d62fb64 | 10 | ///////////////////////////////////////////////////////////////////////// |
11 | // * This class contains all of the "external" information needed to do// | |
12 | // * detector specific simulations for the ITS. // | |
13 | ///////////////////////////////////////////////////////////////////////// | |
14 | ||
3b9df642 | 15 | #include <TObject.h> |
16 | #include <TObjArray.h> | |
17 | #include <TClonesArray.h> | |
18 | ||
7d62fb64 | 19 | class AliITSdigit; |
20 | class AliITSmodule; | |
21 | class AliITSpListItem; | |
3b9df642 | 22 | class AliITSsimulation; |
23 | class AliITSsegmentation; | |
7d62fb64 | 24 | class AliITSresponse; |
25 | class AliLoader; | |
26 | class AliITSgeom; | |
3b9df642 | 27 | |
28 | class AliITSDetTypeSim : public TObject { | |
7d62fb64 | 29 | public: |
30 | ||
31 | AliITSDetTypeSim(); | |
32 | virtual ~AliITSDetTypeSim(); | |
33 | AliITSDetTypeSim(const AliITSDetTypeSim &source); | |
34 | AliITSDetTypeSim& operator=(const AliITSDetTypeSim &source); | |
35 | AliITSgeom *GetITSgeom() const {return fGeom;} | |
3b9df642 | 36 | void SetITSgeom(AliITSgeom *geom){fGeom=geom;} |
7d62fb64 | 37 | |
38 | virtual void SetSimulationModel(Int_t dettype,AliITSsimulation *sim); | |
39 | virtual AliITSsimulation* GetSimulationModel(Int_t dettype); | |
40 | virtual AliITSsimulation* GetSimulationModelByModule(Int_t module); | |
41 | ||
42 | virtual void SetSegmentationModel(Int_t dettype,AliITSsegmentation *seg); | |
43 | virtual AliITSsegmentation* GetSegmentationModel(Int_t dettype); | |
44 | virtual AliITSsegmentation* GetSegmentationModelByModule(Int_t module); | |
45 | ||
46 | virtual void SetResponseModel(Int_t module,AliITSresponse *resp); | |
47 | virtual AliITSresponse* GetResponseModel(Int_t module); | |
48 | ||
49 | TObjArray* GetResponse() const {return fResponse;} | |
50 | TObjArray* GetSegmentation() const {return fSegmentation;} | |
51 | void ResetResponse(); | |
52 | void ResetSegmentation(); | |
53 | ||
54 | virtual void SetLoader(AliLoader* loader) {fLoader=loader;} | |
55 | AliLoader* GetLoader() const {return fLoader;} | |
56 | ||
57 | virtual void SetDefaults(); | |
58 | virtual void SetDefaultSimulation(); | |
59 | virtual void SetTreeAddressS(TTree* treeS, Char_t* name); | |
60 | virtual void SetTreeAddressD(TTree* treeD, Char_t* name); | |
61 | ||
62 | virtual void SetSDigits(TClonesArray* sdigits) {fSDigits=sdigits;} | |
63 | virtual void SetDigits(TObjArray* digits) {fDigits=digits;} | |
64 | TClonesArray* GetSDigits() const {return fSDigits;} | |
65 | TObjArray* GetDigits() const {return fDigits;} | |
66 | Int_t* GetNDigitArray() const {return fNDigits;} | |
67 | TClonesArray *DigitsAddress(Int_t id) const { return ((TClonesArray*)(*fDigits)[id]);} | |
3b9df642 | 68 | |
3b9df642 | 69 | virtual void ResetSDigits(){fNSDigits=0;if(fSDigits!=0) fSDigits->Clear();} |
7d62fb64 | 70 | virtual void ResetDigits(); |
71 | virtual void ResetDigits(Int_t branch); | |
72 | virtual void SDigitsToDigits(Option_t *opt,Char_t* name); | |
73 | ||
74 | virtual void AddSumDigit(AliITSpListItem &sdig); | |
75 | virtual void AddRealDigit(Int_t branch, Int_t *digits); | |
76 | virtual void AddSimDigit(Int_t branch, AliITSdigit *d); virtual void AddSimDigit(Int_t branch,Float_t phys,Int_t* digits, | |
77 | Int_t* tracks,Int_t *hits,Float_t* trkcharges); | |
78 | ||
79 | virtual void SetDigitClassName(Int_t i, Char_t* name) {fDigClassName[i]=name;} | |
80 | Char_t* GetDigitClassName(Int_t i) const {return fDigClassName[i];} | |
81 | ||
82 | private: | |
83 | ||
84 | static const Int_t fgkNdettypes; // number of different det. types | |
85 | AliITSgeom *fGeom; // pointer to ITS geom | |
86 | TObjArray *fSimulation; //! [NDet] | |
87 | TObjArray *fSegmentation; //! [NDet] | |
88 | TObjArray *fResponse; //! [NMod] | |
89 | TObjArray *fPreProcess; //! [] e.g. Fill fHitModule with hits | |
90 | TObjArray *fPostProcess; //! [] e.g. Wright Raw data | |
3b9df642 | 91 | Int_t fNSDigits; //! number of SDigits |
92 | TClonesArray *fSDigits; //! [NMod][NSDigits] | |
7d62fb64 | 93 | Int_t* fNDigits; //! [NDet] number of Digits for det. |
94 | TObjArray *fDigits; //! [NMod][NDigits] | |
95 | TString fHitClassName; //! String with Hit class name | |
96 | TString fSDigClassName;//! String with SDigit class name. | |
97 | Char_t* fDigClassName[3]; //! String with digit class name. | |
98 | AliLoader* fLoader; // loader | |
99 | ||
100 | ClassDef(AliITSDetTypeSim,1) // ITS Simulation structure | |
101 | ||
102 | }; | |
3b9df642 | 103 | |
3b9df642 | 104 | #endif |