]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSLoader.cxx
Updates on Lambda_c decays (S. Masciocchi)
[u/mrichter/AliRoot.git] / ITS / AliITSLoader.cxx
index 51f88f2248c00c93c75a8648e7f1ffb911b06612..f71de800175622591e8b4aa1362d44c5dcabfc24 100644 (file)
@@ -1,6 +1,27 @@
+/**************************************************************************
+ * 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 "AliITSLoader.h"
 #include "AliRunLoader.h"
+#include "AliITSInitGeometry.h"
 #include "AliLog.h"
 
 ///////////////////////////////////////////////////////////////////////////
@@ -18,15 +39,17 @@ const TString AliITSLoader::fgkDefaultCascadeContainerName = "Cascade";
 ClassImp(AliITSLoader)
 
 /**********************************************************************/
-  AliITSLoader::AliITSLoader():AliLoader(){
+  AliITSLoader::AliITSLoader():AliLoader(),
+fITSpid(0),
+fGeom(0){
   // Default constructor
-  fITSpid = 0;
-  fGeom = 0;
 }
 /*********************************************************************/
 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");
@@ -60,12 +83,12 @@ AliLoader(name,topfoldername){
     fDataLoaders->Add(cascadeDataLoader);
     cascadeDataLoader->SetEventFolder(fEventFolder);
     cascadeDataLoader->SetFolder(GetDetectorDataFolder());
-    fITSpid=0;
-    fGeom = 0;
 }
 /**********************************************************************/
 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,24 +123,8 @@ AliLoader(name,topfolder) {
     fDataLoaders->Add(cascadeDataLoader);
     cascadeDataLoader->SetEventFolder(fEventFolder);
     cascadeDataLoader->SetFolder(GetDetectorDataFolder());
-    fITSpid = 0;
-    fGeom = 0;
-}
-
-//______________________________________________________________________
-AliITSLoader::AliITSLoader(const AliITSLoader &ob) : AliLoader(ob) {
-  // Copy constructor
-  // Copies are not allowed. The method is protected to avoid misuse.
-  Error("AliITSLoader","Copy constructor not allowed\n");
 }
 
-//______________________________________________________________________
-AliITSLoader& AliITSLoader::operator=(const AliITSLoader& /* ob */){
-  // Assignment operator
-  // Assignment is not allowed. The method is protected to avoid misuse.
-  Error("= operator","Assignment operator not allowed\n");
-  return *this;
-}
 
 /**********************************************************************/
 AliITSLoader::~AliITSLoader(){
@@ -142,8 +149,9 @@ AliITSLoader::~AliITSLoader(){
     UnloadCascades();
     dl = GetCascadeDataLoader();
     fDataLoaders->Remove(dl);
-    if(fITSpid)delete fITSpid;
+  
     if(fGeom)delete fGeom;
+    fGeom = 0;
 }
 /*
 //----------------------------------------------------------------------
@@ -321,22 +329,29 @@ AliITSgeom* AliITSLoader::GetITSgeom(Bool_t force) {
     delete fGeom;
     fGeom = 0;
   }
-  AliRunLoader *runLoader = GetRunLoader();
-  if (!runLoader->GetAliRun()) runLoader->LoadgAlice();
-  if (!runLoader->GetAliRun()) {
-    Error("GetITSgeom", "couldn't get AliRun object");
-    return NULL;
-  }
-  
-  TDirectory *curdir = gDirectory;
-  runLoader->CdGAFile();
-  fGeom = (AliITSgeom*)gDirectory->Get("AliITSgeom");
-  curdir->cd();
-  if(!fGeom){
-    Error("GetITSgeom","no ITS geometry available");
-    return NULL;
-  }
-  AliWarning("AliITSgeom object has been fetched from galice.root file");
+  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;
+}