]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliModule.cxx
Bug corrected
[u/mrichter/AliRoot.git] / STEER / AliModule.cxx
index fcf8d038d69c3b2aa17379024cdddda83d0290c9..3d574158c10a79ac2c109a44a83be3794b3f9cd8 100644 (file)
@@ -39,6 +39,7 @@
 #include <TTree.h>
 #include <TSystem.h>
 #include <TDirectory.h>
+#include <TVirtualMC.h>
 
 #include "AliConfig.h"
 #include "AliLoader.h"
@@ -46,6 +47,7 @@
 #include "AliModule.h"
 #include "AliRun.h"
 #include "AliTrackReference.h"
+#include "AliMC.h"
 
 ClassImp(AliModule)
  
@@ -64,7 +66,8 @@ AliModule::AliModule():
   fEnable(1),
   fTrackReferences(0),
   fMaxIterTrackRef(0),
-  fCurrentIterTrackRef(0)
+  fCurrentIterTrackRef(0),
+  fRunLoader(0)
 {
   //
   // Default constructor for the AliModule class
@@ -87,7 +90,8 @@ AliModule::AliModule(const char* name,const char *title):
   fEnable(1),
   fTrackReferences(new TClonesArray("AliTrackReference", 100)),
   fMaxIterTrackRef(0),
-  fCurrentIterTrackRef(0)
+  fCurrentIterTrackRef(0),
+  fRunLoader(0)
 {
   //
   // Normal constructor invoked by all Modules.
@@ -135,7 +139,8 @@ AliModule::AliModule(const AliModule &mod):
   fEnable(0),
   fTrackReferences(0),
   fMaxIterTrackRef(0),
-  fCurrentIterTrackRef(0)
+  fCurrentIterTrackRef(0),
+  fRunLoader(0)
 {
   //
   // Copy constructor
@@ -180,7 +185,7 @@ AliModule::~AliModule()
 }
  
 //_______________________________________________________________________
-void AliModule::Copy(AliModule & /* mod */) const
+void AliModule::Copy(TObject & /* mod */) const
 {
   //
   // Copy *this onto mod, not implemented for AliModule
@@ -205,16 +210,6 @@ void AliModule::Disable()
   }   
 }
 
-//_______________________________________________________________________
-Int_t AliModule::DistancetoPrimitive(Int_t, Int_t) const
-{
-  //
-  // Return distance from mouse pointer to object
-  // Dummy routine for the moment
-  //
-  return 9999;
-}
-
 //_______________________________________________________________________
 void AliModule::Enable()
 {
@@ -673,10 +668,15 @@ void AliModule::RemapTrackReferencesIDs(Int_t *map)
     if (ref) {
       Int_t newID = map[ref->GetTrack()];
       if (newID>=0) ref->SetTrack(newID);
-      else ref->SetTrack(-1);
-      
+      else {
+        //ref->SetTrack(-1);
+        ref->SetBit(kNotDeleted,kFALSE);
+        fTrackReferences->RemoveAt(i);  
+      }      
     }
   }
+  fTrackReferences->Compress();
+
 }
 
 
@@ -692,12 +692,10 @@ AliTrackReference* AliModule::FirstTrackReference(Int_t track)
   // 
   if(track>=0) 
    {
-     AliRunLoader* rl = AliRunLoader::GetRunLoader();
-
-     rl->GetAliRun()->ResetTrackReferences();
-     rl->TreeTR()->GetEvent(track);
-     if (rl == 0x0)
+     if (fRunLoader == 0x0)
        Fatal("FirstTrackReference","AliRunLoader not initialized. Can not proceed");
+     fRunLoader->GetAliRun()->GetMCApp()->ResetTrackReferences();
+     fRunLoader->TreeTR()->GetEvent(track);
    }
   //
   fMaxIterTrackRef     = fTrackReferences->GetEntriesFast();
@@ -736,7 +734,7 @@ void AliModule::ResetTrackReferences()
  
 //_____________________________________________________________________________
 
-AliLoader*  AliModule::MakeLoader(const char* topfoldername
+AliLoader*  AliModule::MakeLoader(const char* /*topfoldername*/
  {
    return 0x0;
  }//skowron   
@@ -790,7 +788,7 @@ void  AliModule::AddTrackReference(Int_t label){
 
 
 //_____________________________________________________________________________
-void AliModule::MakeBranchTR(Option_t *option)
+void AliModule::MakeBranchTR(Option_t */*option*/)
 { 
     //
     // Makes branch in treeTR
@@ -819,14 +817,12 @@ void AliModule::MakeBranchTR(Option_t *option)
 //_____________________________________________________________________________
 TTree* AliModule::TreeTR()
 {
-  AliRunLoader* rl = AliRunLoader::GetRunLoader();
-
-  if ( rl == 0x0)
+  if ( fRunLoader == 0x0)
    {
      Error("TreeTR","Can not get the run loader");
      return 0x0;
    }
 
-  TTree* tree = rl->TreeTR();
+  TTree* tree = fRunLoader->TreeTR();
   return tree;
 }