#include "AliITSRecPoint.h"
#include "AliRun.h"
#include "AliLog.h"
+#include "AliITSInitGeometry.h"
ClassImp(AliITS)
fLoader = new AliITSLoader(GetName(),topfoldername);
return fLoader;
}
+
+//______________________________________________________________________
+void AliITS::UpdateInternalGeometry(){
+
+ Info("UpdateInternalGeometry", "Delete ITSgeom and create a new one reading TGeo");
+ AliITSInitGeometry *initgeom = new AliITSInitGeometry("AliITSvPPRasymmFMD",2);
+ AliITSgeom* geom = initgeom->CreateAliITSgeom();
+ SetITSgeom(geom);
+
+ if(!fLoader) MakeLoader(AliConfig::GetDefaultEventFolderName());
+ AliRunLoader* rl = fLoader->GetRunLoader();
+ rl->CdGAFile();
+ geom->Write(0,kOverwrite);
+
+}
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 FinishPrimary() {}
virtual void Init() {}
virtual void LoadPoints(Int_t ) {}
+ virtual void UpdateInternalGeometry() {}
}
}
+
+ // Update the internal geometry of modules (ITS needs it)
+ TString detStr = fLoadAlignData;
+ TObjArray* detArray = runLoader->GetAliRun()->Detectors();
+ for (Int_t iDet = 0; iDet < detArray->GetEntriesFast(); iDet++) {
+
+ AliModule* det = (AliModule*) detArray->At(iDet);
+ if (!det || !det->IsActive()) continue;
+ if (IsSelected(det->GetName(), detStr)) {
+ det->UpdateInternalGeometry();
+ }
+ } // end loop over detectors
+
+
if (delRunLoader) delete runLoader;
return kTRUE;