- virtual TObjArray *GetModules() const {return fITSmodules;}
- // return pointer to a particular module
- AliITSmodule *GetModule(Int_t index) {return (AliITSmodule *)
- (fITSmodules->At(index));}
-
- // Return pointers to digits
- TObjArray *Dtype() {return fDtype;}
- Int_t *Ndtype() {return fNdtype;}
- virtual TClonesArray *DigitsAddress(Int_t id)
- {return ((TClonesArray *) (*fDtype)[id]);}
- // Return pointers to clusters
- TObjArray *Ctype() {return fCtype;}
- Int_t *Nctype() {return fNctype;}
- virtual TClonesArray *ClustersAddress(Int_t id)
- {return ((TClonesArray *) (*fCtype)[id]);}
-
- // Return pointer to rec points
- TClonesArray *RecPoints() {return fRecPoints;}
-
- // Return pointer to DetType #id
- AliITSDetType *DetType(Int_t id);
- //Int_t NDetTypes() {return fNDetTypes;}
-
- // Return pointer to the tree of clusters
- TTree *TreeC() {return fTreeC;}
-
-
- // tracking
-
- AliITStrack Tracking(AliITStrack &track, AliITStrack *reference, TObjArray *fpoints, Int_t **vettid,
- Bool_t flagvert, AliITSRad *rl );
-
- void DoTracking(Int_t evNumber, Int_t min_t, Int_t max_t, TFile *file, Bool_t flagvert);
+ TObjArray *GetModules(){return fITSmodules;}
+
+ AliITSmodule *GetModule(Int_t index){
+ return (AliITSmodule*)(fITSmodules->At(index));}
+
+ virtual void SetDetTypeSim(AliITSDetTypeSim* dts) {fDetTypeSim=dts;}
+ AliITSDetTypeSim* GetDetTypeSim() const {return fDetTypeSim;}
+ //================ Necessary general Classes =======================
+ virtual void Init();
+ virtual AliLoader* MakeLoader(const char* topfoldername);
+ virtual void SetDefaults();
+ virtual void SetDefaultSimulation();
+ virtual void MakeBranch(Option_t *opt=" ");
+ virtual void MakeBranchS(const char* fl);
+ virtual void MakeBranchD(const char* file);
+ virtual void MakeBranchInTreeD(TTree* treeD, const char* file=0);
+ virtual void SetTreeAddress();
+ //---------- Configuration Methods (per detector type) -------------
+ // Determines which ITS subdetectors will be processed. Effects
+ // digitization, and Reconstruction only.
+ void SetDetectors(Option_t *opt="All"){fOpt = opt;}
+ // Returns the list of ITS subdetectors that will be processed.
+ Option_t* GetDetectors(){return fOpt;}
+
+ // Set calibration
+ virtual void SetCalibrationModel(Int_t dettype, AliITSCalibration *cal){
+ fDetTypeSim->SetCalibrationModel(dettype,cal);}
+ // Set segmentation for Simulation
+ virtual void SetSegmentationModel(Int_t id, AliITSsegmentation *seg){
+ fDetTypeSim->SetSegmentationModel(id,seg);}
+ // Set simulation
+ virtual void SetSimulationModel(Int_t id, AliITSsimulation *sim){
+ fDetTypeSim->SetSimulationModel(id,sim);}
+ // Set simulation
+ virtual AliITSsimulation* GetSimulationModel(Int_t id){
+ return fDetTypeSim->GetSimulationModel(id);}
+ //=================== Hits =========================================
+ virtual void StepManager() {} // See Step Manager for specific geometry.
+ //------------ sort hits by module for Digitisation ----------------
+ virtual void FillModules(Int_t evnt,Int_t bgrev,Int_t nmodules,
+ Option_t *opt, const char *filename);
+ virtual void InitModules(Int_t size,Int_t &nmodules);
+ virtual void FillModules(TTree *treeH, Int_t mask = 0);
+ virtual void ClearModules(){if(fITSmodules) fITSmodules->Delete();}
+ virtual void AddHit(Int_t track, Int_t *vol, Float_t *hits);
+ // Trigger
+ virtual AliTriggerDetector* CreateTriggerDetector() const
+ { return new AliITSTrigger(); }
+
+ TClonesArray* GetSDigits() const { return fDetTypeSim->GetSDigits();}
+
+ AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
+ virtual void UpdateInternalGeometry();
+ virtual void SDigitsToDigits(Option_t *opt="All");
+ virtual void SDigits2Digits(){SDigitsToDigits("All");}
+ virtual void Hits2Digits();
+ virtual void Hits2SDigits();
+ virtual void Hits2PreDigits();
+ virtual void HitsToDigits(Int_t evNumber,Int_t bgrev,Int_t size,
+ Option_t *option,Option_t *opt,
+ const char *filename);
+ virtual void HitsToPreDigits(Int_t evNumber,Int_t bgrev,Int_t size,
+ Option_t *option,Option_t *opt,
+ const char *filename);
+ void HitsToSDigits(Int_t evNumber,Int_t bgrev,Int_t size,
+ Option_t *add, Option_t *det, const char *filename)
+ {HitsToPreDigits(evNumber,bgrev,size,add,det,filename);}
+
+ 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);
+ TObjArray* GetDigits() const {return fDetTypeSim->GetDigits();}
+ Int_t* GetNDigitArray() const {return fDetTypeSim->GetNDigitArray();}
+ TClonesArray *DigitsAddress(Int_t id) {
+ return fDetTypeSim->DigitsAddress(id);}
+ //Fast simulation
+ virtual void HitsToFastRecPoints(Int_t evNumber,Int_t bgrev,Int_t size,
+ Option_t *add, Option_t *det, const char *filename);
+ virtual Int_t Hits2Clusters(TTree *in, TTree *out);
+ virtual void CheckLabels(Int_t lab[3]) const;
+
+ //===================== Raw Data IO ================================
+ // Write digits into raw data format
+ virtual void Digits2Raw();
+ virtual Bool_t Raw2SDigits(AliRawReader*);
+