#include <TObject.h>
#include <TObjArray.h>
#include <TClonesArray.h>
+#include "AliITSCalibration.h"
+#include "AliITSDDLModuleMapSDD.h"
+#include "AliITSLoader.h"
+#include "AliITSgeom.h"
+class TTree;
+class AliCDBMetaData;
class AliITSdigit;
class AliITSmodule;
class AliITSpListItem;
class AliITSsimulation;
class AliITSsegmentation;
class AliITSresponse;
-class AliLoader;
-class AliITSgeom;
class AliITSDetTypeSim : public TObject {
public:
virtual ~AliITSDetTypeSim();
AliITSDetTypeSim(const AliITSDetTypeSim &source);
AliITSDetTypeSim& operator=(const AliITSDetTypeSim &source);
- AliITSgeom *GetITSgeom() const {return fGeom;}
- void SetITSgeom(AliITSgeom *geom){fGeom=geom;}
+ AliITSgeom *GetITSgeom() const {
+ if(fLoader)return ((AliITSLoader*)fLoader)->GetITSgeom();
+ else return 0;}
+ void SetITSgeom(AliITSgeom *geom);
virtual void SetSimulationModel(Int_t dettype,AliITSsimulation *sim);
virtual AliITSsimulation* GetSimulationModel(Int_t dettype);
virtual AliITSsegmentation* GetSegmentationModel(Int_t dettype);
virtual AliITSsegmentation* GetSegmentationModelByModule(Int_t module);
- virtual void SetResponseModel(Int_t dettype,AliITSresponse *resp);
- virtual AliITSresponse* GetResponseModel(Int_t dettype);
-
- TObjArray* GetResponse() const {return fResponse;}
+ virtual void SetCalibrationModel(Int_t iMod,AliITSCalibration *resp);
+ virtual AliITSCalibration* GetCalibrationModel(Int_t iMod);
+ virtual AliITSresponse* GetResponse(Int_t dettype) {
+ return GetCalibrationModel(
+ GetITSgeom()->GetStartDet(dettype))->GetResponse();}
+ virtual AliITSDDLModuleMapSDD* GetDDLModuleMapSDD()const { return fDDLMapSDD;}
+ TObjArray* GetCalibrationArray() const {return fCalibration;}
TObjArray* GetSegmentation() const {return fSegmentation;}
- void ResetResponse();
+ void ResetCalibrationArray();
void ResetSegmentation();
- virtual void SetLoader(AliLoader* loader) {fLoader=loader;}
- AliLoader* GetLoader() const {return fLoader;}
+ virtual void SetLoader(AliITSLoader* loader);
+ AliITSLoader* GetLoader() const {return fLoader;}
virtual void SetDefaults();
virtual void SetDefaultSimulation();
+ virtual void SetRunNumber(Int_t rn=0){fRunNumber = rn;}
+ virtual Int_t GetRunNumber() const {return fRunNumber;}
virtual void SetTreeAddressS(TTree* treeS, Char_t* name);
virtual void SetTreeAddressD(TTree* treeD, Char_t* name);
TClonesArray* GetSDigits() const {return fSDigits;}
TObjArray* GetDigits() const {return fDigits;}
Int_t* GetNDigitArray() const {return fNDigits;}
- TClonesArray *DigitsAddress(Int_t id) const { return ((TClonesArray*)(*fDigits)[id]);}
-
+ TClonesArray *DigitsAddress(Int_t id) const {
+ return ((TClonesArray*)(*fDigits)[id]);}
virtual void ResetSDigits(){fNSDigits=0;if(fSDigits!=0) fSDigits->Clear();}
virtual void ResetDigits();
virtual void ResetDigits(Int_t branch);
virtual void AddSumDigit(AliITSpListItem &sdig);
virtual void AddRealDigit(Int_t branch, Int_t *digits);
- virtual void AddSimDigit(Int_t branch, AliITSdigit *d); virtual void AddSimDigit(Int_t branch,Float_t phys,Int_t* digits,
- Int_t* tracks,Int_t *hits,Float_t* trkcharges);
-
- virtual void SetDigitClassName(Int_t i, Char_t* name) {fDigClassName[i]=name;}
+ virtual void AddSimDigit(Int_t branch, AliITSdigit *d);
+ virtual void AddSimDigit(Int_t branch,Float_t phys,Int_t* digits,
+ Int_t* tracks,Int_t *hits,Float_t* trkcharges);
+ virtual void SetDigitClassName(Int_t i, Char_t* name) {
+ fDigClassName[i]=name;}
Char_t* GetDigitClassName(Int_t i) const {return fDigClassName[i];}
+ void StoreCalibration(Int_t firstRun, Int_t lastRun, AliCDBMetaData &md);
+
+ protected:
+ virtual void CreateCalibrationArray();
+ virtual Bool_t GetCalibration();
private:
-
- static const Int_t fgkNdettypes; // number of different det. types
- AliITSgeom *fGeom; // pointer to ITS geom
+ void SetDefaultSegmentation(Int_t idet); // creates def segm.
+ static const Int_t fgkNdettypes; // number of different det. types
+ 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 *fResponse; //! [NMod]
+ TObjArray *fCalibration; //! [NMod]
TObjArray *fPreProcess; //! [] e.g. Fill fHitModule with hits
TObjArray *fPostProcess; //! [] e.g. Wright Raw data
Int_t fNSDigits; //! number of SDigits
TClonesArray *fSDigits; //! [NMod][NSDigits]
Int_t* fNDigits; //! [NDet] number of Digits for det.
- TObjArray *fDigits; //! [NMod][NDigits]
+ Int_t fRunNumber; //! run number (to access DB)
+ TObjArray *fDigits; //! [NMod][NDigits]
+ AliITSDDLModuleMapSDD *fDDLMapSDD; //! mapping DDL/module -> SDD module number
TString fHitClassName; //! String with Hit class name
TString fSDigClassName;//! String with SDigit class name.
Char_t* fDigClassName[3]; //! String with digit class name.
- AliLoader* fLoader; // loader
+ AliITSLoader* fLoader; //! loader
+ Bool_t fFirstcall; //! flag
- ClassDef(AliITSDetTypeSim,1) // ITS Simulation structure
+ ClassDef(AliITSDetTypeSim,6) // ITS Simulation structure
};