]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSLoader.cxx
geometry accessed via AliITSgeomTGeo
[u/mrichter/AliRoot.git] / ITS / AliITSLoader.cxx
index 92e5979d0e94c67968adba1209ea92fba4468dbe..f71de800175622591e8b4aa1362d44c5dcabfc24 100644 (file)
@@ -1,9 +1,28 @@
-#include "AliITS.h"
-#include "AliITSgeom.h"
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+/* $Id$ */
+
+#include <TClonesArray.h>
+#include <TClass.h>
+
 #include "AliITSdigit.h"
-#include "AliRun.h"
-#include "AliDetector.h"
 #include "AliITSLoader.h"
+#include "AliRunLoader.h"
+#include "AliITSInitGeometry.h"
+#include "AliLog.h"
 
 ///////////////////////////////////////////////////////////////////////////
 // Loader for ITS
@@ -17,17 +36,20 @@ const TString AliITSLoader::fgkDefaultBackTracksContainerName = "TreeB";
 const TString AliITSLoader::fgkDefaultVerticesContainerName = "Vertex";
 const TString AliITSLoader::fgkDefaultV0ContainerName = "V0";
 const TString AliITSLoader::fgkDefaultCascadeContainerName = "Cascade";
-
 ClassImp(AliITSLoader)
 
 /**********************************************************************/
-  AliITSLoader::AliITSLoader():AliLoader(){
+  AliITSLoader::AliITSLoader():AliLoader(),
+fITSpid(0),
+fGeom(0){
   // Default constructor
 }
 /*********************************************************************/
 AliITSLoader::AliITSLoader(const Char_t *name,const Char_t *topfoldername):
-AliLoader(name,topfoldername){
-  //ctor   
+AliLoader(name,topfoldername),
+fITSpid(0),
+fGeom(0){
+  //Constructor   
     AliDataLoader* rawClustersDataLoader = new AliDataLoader(
         fDetectorName + ".RawCl.root",fgkDefaultRawClustersContainerName,
         "Raw Clusters");
@@ -64,7 +86,9 @@ AliLoader(name,topfoldername){
 }
 /**********************************************************************/
 AliITSLoader::AliITSLoader(const Char_t *name,TFolder *topfolder): 
-AliLoader(name,topfolder) {
+  AliLoader(name,topfolder),
+fITSpid(0),
+fGeom(0){
   //ctor  
     AliDataLoader*  rawClustersDataLoader = new AliDataLoader(
         fDetectorName + ".RawCl.root",fgkDefaultRawClustersContainerName,
@@ -100,6 +124,8 @@ AliLoader(name,topfolder) {
     cascadeDataLoader->SetEventFolder(fEventFolder);
     cascadeDataLoader->SetFolder(GetDetectorDataFolder());
 }
+
+
 /**********************************************************************/
 AliITSLoader::~AliITSLoader(){
     //destructor
@@ -123,7 +149,11 @@ AliITSLoader::~AliITSLoader(){
     UnloadCascades();
     dl = GetCascadeDataLoader();
     fDataLoaders->Remove(dl);
+  
+    if(fGeom)delete fGeom;
+    fGeom = 0;
 }
+/*
 //----------------------------------------------------------------------
 AliITS* AliITSLoader::GetITS(){
     // Returns the pointer to the ITS, kept on the file. A short cut metthod
@@ -161,6 +191,7 @@ void AliITSLoader::SetupDigits(AliITS *its){
 
     its->SetTreeAddressD(TreeD());
 }
+*/
 //----------------------------------------------------------------------
 void AliITSLoader::SetupDigits(TObjArray *digPerDet,Int_t n,
                                const Char_t **digclass){
@@ -244,6 +275,7 @@ AliITSdigit * AliITSLoader::GetDigit(TObjArray *digPerDet,Int_t module,
     } // end if
     return 0;
 }
+/*
 //---------------------------------------------------------------------
 AliITSdigit * AliITSLoader::GetDigit(AliITS *its,Int_t module,Int_t digit){
     // Gets the digit for for a specific detector type and module.
@@ -270,6 +302,7 @@ AliITSdigit * AliITSLoader::GetDigit(AliITS *its,Int_t module,Int_t digit){
     } // end if
     return 0;
 }
+*/
 //----------------------------------------------------------------------
 void AliITSLoader::MakeTree(Option_t *opt){
     // invokes AliLoader::MakeTree + specific ITS tree(s)
@@ -287,3 +320,38 @@ void AliITSLoader::MakeTree(Option_t *opt){
     const char *oX = strstr(opt,"X");
     if (oX) MakeCascadeContainer();
 }
+
+//----------------------------------------------------------------------
+AliITSgeom* AliITSLoader::GetITSgeom(Bool_t force) {
+  // retrieves the ITS geometry from file
+  if(fGeom && !force)return fGeom;
+  if(fGeom && force){
+    delete fGeom;
+    fGeom = 0;
+  }
+  AliITSInitGeometry initgeom;
+  fGeom = initgeom.CreateAliITSgeom();
+  AliDebug(1,"AliITSgeom object has been initialized from TGeo\n");
+  AliInfo(Form("Geometry name: %s",(initgeom.GetGeometryName()).Data()));
+  return fGeom;
+}
+//______________________________________________________________________
+void AliITSLoader::SetITSgeom(AliITSgeom *geom){
+    // Replaces the AliITSgeom object read from file with the one
+    // given.
+    // Inputs:
+    //   AliITSgeom *geom   The AliITSgeom object to replace the one
+    //                      read from the file
+    // Outputs:
+    //   none.
+    // Return:
+    //   none.
+
+    if(fGeom==geom) return; // Same do nothing
+    if(fGeom) {
+       delete fGeom;
+       fGeom=0;
+    }// end if
+    fGeom=geom;
+}
+