+//______________________________________________________________________
+void AliITS::HitsToDigits(Int_t evNumber,Int_t bgrev,Int_t size,
+ Option_t *option,Option_t *opt,
+ const char *filename){
+ // Keep galice.root for signal and name differently the file for
+ // background when add! otherwise the track info for signal will be lost !
+ // the condition below will disappear when the geom class will be
+ // initialized for all versions - for the moment it is only for v5 !
+ // 7 is the SDD beam test version.
+ // Inputs:
+ // Int_t evnt Event to be processed.
+ // Int_t bgrev Background Hit tree number.
+ // Int_t nmodules Not used.
+ // Option_t *option String indicating if merging hits or not. To
+ // merge hits set equal to "Add". Otherwise no
+ // background hits are considered.
+ // Test_t *filename File name containing the background hits..
+ // Outputs:
+ // none.
+ // Return:
+ // none.
+
+ if(!fDetTypeSim) {
+ Error("HitsToDigits","fDetTypeSim is null!");
+ return;
+ }
+ fDetTypeSim->SetLoader((AliITSLoader*)fLoader);
+ if(!GetITSgeom()) return; // need transformations to do digitization.
+ AliITSgeom *geom = GetITSgeom();
+
+ const char *all = strstr(opt,"All");
+ const char *det[3] = {strstr(opt,"SPD"),strstr(opt,"SDD"),
+ strstr(opt,"SSD")};
+ static Bool_t setDef=kTRUE;
+ if (setDef) SetDefaultSimulation();
+ setDef=kFALSE;
+
+ Int_t nmodules;
+ InitModules(size,nmodules);
+ FillModules(evNumber,bgrev,nmodules,option,filename);
+
+ AliITSsimulation *sim = 0;
+ AliITSmodule *mod = 0;
+ Int_t id;
+ for(Int_t module=0;module<geom->GetIndexMax();module++){
+ id = geom->GetModuleType(module);
+ if (!all && !det[id]) continue;
+ sim = (AliITSsimulation*)fDetTypeSim->GetSimulationModel(id);
+ if (!sim) {
+ Error("HitsToDigits","The simulation class was not "
+ "instanciated for module %d type %s!",module,
+ geom->GetModuleTypeName(module));
+ exit(1);
+ } // end if !sim
+ mod = (AliITSmodule *)fITSmodules->At(module);
+ sim->DigitiseModule(mod,module,evNumber);
+ // fills all branches - wasted disk space
+ fLoader->TreeD()->Fill();
+ ResetDigits();
+ } // end for module
+
+ ClearModules();
+
+ fLoader->TreeD()->GetEntries();
+ fLoader->TreeD()->AutoSave();
+ // reset tree
+ fLoader->TreeD()->Reset();