,fIdSens(0)
,fLayerName(0)
,fTiming(kFALSE)
- ,fSimuParam(0)
,fGeomTGeo(0)
+ ,fSimuParam(0)
,fModA(0)
,fpSDigits(0)
,fSDigits(0)
,fIdSens(0)
,fLayerName(0)
,fTiming(kFALSE)
- ,fSimuParam(0)
,fGeomTGeo(0)
+ ,fSimuParam(0)
,fModA(0)
,fpSDigits(0)
,fSDigits(0)
,fSimInitDone(kFALSE)
{
// The standard Constructor for the ITS class.
+ AliMC* mc = gAlice->GetMCApp();
+ if( mc && mc->GetHitLists() ) {
+ fHits = new TClonesArray("AliITSUHit",100); // from AliDetector
+ mc->AddHitList(fHits);
+ }
}
// Default destructor for ITS.
//
delete fHits;
- delete fModuleHits;
delete fSimuParam;
delete fSensMap;
if (fSimulation) fSimulation->Delete();
// Return:
// A new AliITSRunDigitizer (cast as a AliDigitizer).
//
- if (!IsSimInitDone()) AliFatal("Simulation is not initialized");
return new AliITSUDigitizer(manager);
}
//
if (!fIdSens) fIdSens = new Int_t[fNLayers];
for(int i=0;i<fNLayers;i++) fIdSens[i] = gMC ? gMC->VolId(fLayerName[i]) : 0;
+ fGeomTGeo = new AliITSUGeomTGeo(kTRUE);
+ InitSimulation();
//
}
{
// initialize arrays
//
- fHits = new TClonesArray("AliITSUHit",1560); // from AliDetector
- if(gAlice->GetMCApp()) gAlice->GetMCApp()->AddHitList(fHits);
if(!fLoader) MakeLoader(AliConfig::GetDefaultEventFolderName());
//
fDetDigits = new TObjArray(kNDetTypes);
{
// Set branch address for the Trees.
TTree *treeS = fLoader->TreeS();
- if (treeS) treeS->GetBranch(GetName())->SetAddress(&fSDigits);
+ if (treeS) {
+ TBranch* br = treeS->GetBranch(GetName());
+ if (br) br->SetAddress(&fSDigits);
+ }
//
TTree *treeD = fLoader->TreeD();
if (treeD) {
for (int i=0;i<kNDetTypes;i++) {
TString brname = Form("%sDigits%s",GetName(),GetDetTypeName(i));
TBranch* br = treeD->GetBranch(brname.Data());
- if (!br) AliFatal(Form("Did not find branch for %s",brname.Data()));
+ if (!br) continue;
TClonesArray* darr = (TClonesArray*)fDetDigits->At(i);
br->SetAddress(&darr);
}
for (h=0; h<nHits; h++){
itsHit = (AliITSUHit *)fHits->UncheckedAt(h);
itsHit->GetDetectorID(lay,lad,det);
- index = fGeomTGeo->GetModuleIndex(--lay,--lad,--det); // !!! AliITSHit counts indices from 1!
+ index = fGeomTGeo->GetModuleIndex(lay,lad,det); // !!! AliITSHit counts indices from 1!
itsHit = new( (*fDetHits)[fDetHits->GetEntriesFast()] ) AliITSUHit(*itsHit);
itsHit->SetUniqueID(h);
GetModule(index)->AddHit(itsHit);
void AliITSU::Hits2SDigits()
{
// Standard Hits to summable Digits function.
- // Inputs:
- // none.
- // Outputs:
- // none.
if (!IsSimInitDone()) InitSimulation();
fLoader->LoadHits("read");
fLoader->LoadSDigits("recreate");
fLoader->TreeS()->Reset();
}
+//______________________________________________________________________
+void AliITSU::Hits2Digits()
+{
+ // Standard Hits to Digits function.
+ if (!IsSimInitDone()) InitSimulation();
+ fLoader->LoadHits("read");
+ fLoader->LoadDigits("recreate");
+ AliRunLoader* rl = fLoader->GetRunLoader();
+ //
+ for (Int_t iEvent = 0; iEvent < rl->GetNumberOfEvents(); iEvent++) {
+ rl->GetEvent(iEvent);
+ if (!fLoader->TreeS()) fLoader->MakeTree("S");
+ MakeBranch("D");
+ SetTreeAddress();
+ Hits2Digits(iEvent,0," "," ");
+ } // end for iEvent
+ //
+ fLoader->UnloadHits();
+ fLoader->UnloadSDigits();
+ //
+}
+
//______________________________________________________________________
void AliITSU::Hits2Digits(Int_t evNumber,Int_t bgrev,Option_t *option,const char *filename)
{
TClonesArray &ldigits = *((TClonesArray*)fDetDigits->At(branch));
int nd = ldigits.GetEntriesFast();
switch(branch){
- case AliITSUGeomTGeo::kDetTypePixUpg:
+ case AliITSUGeomTGeo::kDetTypePix:
new(ldigits[nd]) AliITSUDigitPix(*((AliITSUDigitPix*)d));
break;
default:
TClonesArray &ldigits = *((TClonesArray*)fDetDigits->At(branch));
int nd = ldigits.GetEntriesFast();
switch(branch){
- case AliITSUGeomTGeo::kDetTypePixUpg:
+ case AliITSUGeomTGeo::kDetTypePix:
new(ldigits[nd]) AliITSUDigitPix(digits,tracks,hits);
break;
default:
//
if (fSimInitDone) {AliInfo("Already done"); return;}
//
- fGeomTGeo = new AliITSUGeomTGeo(kTRUE);
fSimuParam = new AliITSUSimuParam();
fSensMap = new AliITSUSensMap("AliITSUSDigit",0,0);
fSimulation = new TObjArray(kNDetTypes);
//
AliITSUSimulation* simUpg = 0;
switch (sType) {
- case AliITSUGeomTGeo::kDetTypePixUpg :
+ case AliITSUGeomTGeo::kDetTypePix :
simUpg = new AliITSUSimulationPix(fSimuParam,fSensMap);
break;
default: AliFatal(Form("No %d detector type is defined",sType));