]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- Updated for separation of simulation and reconstruction classes
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 May 2007 14:16:28 +0000 (14:16 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 May 2007 14:16:28 +0000 (14:16 +0000)
  (namely AliMUONData class)
- To be checked by Artur

MUON/AliMUONDataInterface.cxx
MUON/AliMUONDataInterface.h

index b132191e1ad5b959faebb2898b4bc0b1ef2be3fa..e0a2873e654fd5bbba2c95067293c37ef4be58b7 100644 (file)
@@ -70,6 +70,7 @@ ClassImp(AliMUONDataInterface)
 AliMUONDataInterface::AliMUONDataInterface()
        : TObject(), 
          fCreatedRunLoader(kFALSE),
+         fCreatedRunLoaderSim(kFALSE),
          fHitAddressSet(kFALSE),
          fSDigitAddressSet(kFALSE),
          fDigitAddressSet(kFALSE),
@@ -77,10 +78,14 @@ AliMUONDataInterface::AliMUONDataInterface()
          fTriggerAddressSet(kFALSE),
          fRecTracksAddressSet(kFALSE),
          fRunloader(0x0),
-         fMuonloader(0x0),
-         fData(0x0, "MUON", "MUON"),
+         fRunloaderSim(0x0),
+         fRecLoader(0x0),
+         fSimLoader(0x0),
+         fRecData(0x0, "MUON", "MUON"),
+         fSimData(0x0, "MUON", "MUON"),
          fFilename(),
-         fFoldername(),
+         fFoldername("MUONLoader"),
+         fFoldernameSim("MUONLoaderSim"),
          fEventnumber(-1),
          fTrack(-1),
          fSCathode(-1),
@@ -99,6 +104,9 @@ AliMUONDataInterface::~AliMUONDataInterface()
 
        if (fRunloader != NULL && fCreatedRunLoader)
                delete fRunloader;
+
+       if (fRunloaderSim != NULL && fCreatedRunLoaderSim)
+               delete fRunloaderSim;
 }
 
 void AliMUONDataInterface::Reset()
@@ -108,8 +116,11 @@ void AliMUONDataInterface::Reset()
 /// Specificaly AliRunLoader is not deleted.
 
        fCreatedRunLoader = kFALSE;
+       fCreatedRunLoaderSim = kFALSE;
        fRunloader = NULL;
-       fMuonloader = NULL;
+       fRunloaderSim = NULL;
+       fRecLoader = NULL;
+       fSimLoader = NULL;
        fEventnumber = -1;
        fTrack = -1;
        fSCathode = -1;
@@ -133,10 +144,10 @@ Bool_t AliMUONDataInterface::UseCurrentRunLoader()
        if (fRunloader == NULL) return kFALSE;
        // Fetch the current file name, folder name and event number.
        fFilename = fRunloader->GetFileName();
-       fFoldername = fRunloader->GetEventFolder()->GetName();
+        // fFoldername = fRunloader->GetEventFolder()->GetName();
        fEventnumber = fRunloader->GetEventNumber();
 
-       if ( ! FetchMuonLoader(fFilename.Data(), fFoldername.Data()) )
+       if ( ! FetchMuonLoader(fFilename.Data()) )
        {
                Reset();
                return kFALSE;
@@ -146,52 +157,75 @@ Bool_t AliMUONDataInterface::UseCurrentRunLoader()
 }
 
 
-Bool_t AliMUONDataInterface::FetchMuonLoader(TString filename, TString foldername)
+Bool_t AliMUONDataInterface::FetchMuonLoader(TString filename)
 {
 /// Fetches the muon loader for the given filename/foldername
 
-       fMuonloader = fRunloader->GetLoader("MUONLoader");
-       if (fMuonloader == NULL)
+
+       fRecLoader = fRunloader->GetLoader("MUONLoader");
+       if (fRecLoader == NULL)
+       {
+               AliError(Form("Could not find the MUON loader in file: %s and folder: %s", 
+                       (const char*)filename, fFoldername.Data() ));
+               return kFALSE;
+       }
+       
+       // Need to connect the muon loader to the AliMUONData object,
+       // else class to fRecData will return NULL.
+       fRecData.SetLoader(fRecLoader);
+
+       fSimLoader = fRunloaderSim->GetLoader("MUONLoader");
+       if (fSimLoader == NULL)
        {
                AliError(Form("Could not find the MUON loader in file: %s and folder: %s", 
-                       (const char*)filename, (const char*)foldername));
+                       (const char*)filename, fFoldernameSim.Data()));
                return kFALSE;
        }
        
        // Need to connect the muon loader to the AliMUONData object,
-       // else class to fData will return NULL.
-       fData.SetLoader(fMuonloader);
+       // else class to fSimData will return NULL.
+       fSimData.SetLoader(fSimLoader);
        return kTRUE;
 }
 
 
-Bool_t AliMUONDataInterface::LoadLoaders(TString filename, TString foldername)
+Bool_t AliMUONDataInterface::LoadLoaders(TString filename)
 {
 /// Load the run and muon loaders from the specified file and folder.
 /// kTRUE is returned on success and kFALSE on failure.
 
-       fRunloader = AliRunLoader::Open(filename, foldername, "READ");
+       fRunloader = AliRunLoader::Open(filename, "MUONFolder", "READ");
        if (fRunloader == NULL)
        {
-               AliError(Form("Could not find or load the run loader for the file: %s and folder: %s", 
-                       (const char*)filename, (const char*)foldername));
+               AliError(Form("Could not find or load the run loader for the file: %s and folder: MUONFolder", 
+                       (const char*)filename));
                return kFALSE;
        }
        fCreatedRunLoader = kTRUE;
-       if ( ! FetchMuonLoader(filename, foldername) )
+
+       fRunloaderSim = AliRunLoader::Open(filename, "MUONFolderSim", "READ");
+       if (fRunloaderSim == NULL)
+       {
+               AliError(Form("Could not find or load the run loader for the file: %s and folder: MUONFolderSim", 
+                       (const char*)filename));
+               return kFALSE;
+       }
+       fCreatedRunLoaderSim = kTRUE;
+
+       if ( ! FetchMuonLoader(filename) )
        {
                fRunloader = NULL;
+               fRunloaderSim = NULL;
                return kFALSE;
        }
        
        fFilename = filename;
-       fFoldername = foldername;
        fEventnumber = -1;  // Reset the event number to force the event to be loaded.
        return kTRUE;
 }
 
 
-Bool_t AliMUONDataInterface::FetchLoaders(TString filename, TString foldername)
+Bool_t AliMUONDataInterface::FetchLoaders(TString filename)
 {
 /// Fetch the run loader and muon loader objects from memory if they already exist,
 /// or from memory if they do not. 
@@ -203,12 +237,12 @@ Bool_t AliMUONDataInterface::FetchLoaders(TString filename, TString foldername)
        {
                fRunloader = AliRunLoader::GetRunLoader();
                if (fRunloader == NULL)
-                       return LoadLoaders(filename, foldername);
+                       return LoadLoaders(filename);
                else
                {
-                       if (fMuonloader == NULL)
+                       if (fRecLoader == NULL)
                        {
-                               if ( ! FetchMuonLoader(filename, foldername) )
+                               if ( ! FetchMuonLoader(filename) )
                                {
                                        fRunloader = NULL;
                                        return kFALSE;
@@ -218,15 +252,15 @@ Bool_t AliMUONDataInterface::FetchLoaders(TString filename, TString foldername)
                
                // Fetch the current file and folder names.
                fFilename = fRunloader->GetFileName();
-               fFoldername = fRunloader->GetEventFolder()->GetName();
+               // fFoldername = fRunloader->GetEventFolder()->GetName();
        }
 
        // If filename or foldername are not the same as the ones currently selected then
        // reopen the file.
-       if ( filename.CompareTo(fFilename) != 0 || foldername.CompareTo(fFoldername) != 0 )
+       if ( filename.CompareTo(fFilename) != 0 )
        {
                delete fRunloader;
-               return LoadLoaders(filename, foldername);
+               return LoadLoaders(filename);
        }
        return kTRUE;
 }
@@ -274,10 +308,10 @@ Bool_t AliMUONDataInterface::FetchTreeK()
 {
 /// Fetch the Kine tree from the current run loader.
 
-       if (fRunloader->TreeK() == NULL)
+       if (fRunloaderSim->TreeK() == NULL)
        {
-               fRunloader->LoadKinematics("READ");
-               if (fRunloader->TreeK() == NULL)
+               fRunloaderSim->LoadKinematics("READ");
+               if (fRunloaderSim->TreeK() == NULL)
                {
                        AliError("Could not load TreeK.");
                        return kFALSE;
@@ -292,20 +326,20 @@ Bool_t AliMUONDataInterface::FetchTreeH()
 /// Fetch the Hits tree from the current muon loader.
 /// Set all the required addresses etc...
 
-       if (fMuonloader->TreeH() == NULL)
+       if (fSimLoader->TreeH() == NULL)
        {
-               fMuonloader->LoadHits("READ");
-               if (fMuonloader->TreeH() == NULL)
+               fSimLoader->LoadHits("READ");
+               if (fSimLoader->TreeH() == NULL)
                {
                        AliError("Could not load TreeH.");
                        return kFALSE;
                }
-               fData.SetTreeAddress("H");
+               fSimData.SetTreeAddress("H");
                fHitAddressSet = kTRUE;
        }
        else if ( ! fHitAddressSet )
        {
-               fData.SetTreeAddress("H");
+               fSimData.SetTreeAddress("H");
                fHitAddressSet = kTRUE;
        }
        return kTRUE;
@@ -317,20 +351,20 @@ Bool_t AliMUONDataInterface::FetchTreeS()
 /// Fetch the S-Digits tree from the current muon loader.
 /// Set all the required addresses etc...
 
-       if (fMuonloader->TreeS() == NULL)
+       if (fSimLoader->TreeS() == NULL)
        {
-               fMuonloader->LoadSDigits("READ");
-               if (fMuonloader->TreeS() == NULL)
+               fSimLoader->LoadSDigits("READ");
+               if (fSimLoader->TreeS() == NULL)
                {
                        AliError("Could not load TreeS.");
                        return kFALSE;
                }
-               fData.SetTreeAddress("S");
+               fSimData.SetTreeAddress("S");
                fSDigitAddressSet = kTRUE;
        }
        else if ( ! fSDigitAddressSet )
        {
-               fData.SetTreeAddress("S");
+               fSimData.SetTreeAddress("S");
                fSDigitAddressSet = kTRUE;
        }
        return kTRUE;
@@ -342,20 +376,20 @@ Bool_t AliMUONDataInterface::FetchTreeD()
 /// Fetch the digits tree from the current muon loader.
 /// Set all the required addresses etc...
 
-       if (fMuonloader->TreeD() == NULL)
+       if (fSimLoader->TreeD() == NULL)
        {
-               fMuonloader->LoadDigits("READ");
-               if (fMuonloader->TreeD() == NULL)
+               fSimLoader->LoadDigits("READ");
+               if (fSimLoader->TreeD() == NULL)
                {
                        AliError("Could not load TreeD.");
                        return kFALSE;
                }
-               fData.SetTreeAddress("D");
+               fSimData.SetTreeAddress("D");
                fDigitAddressSet = kTRUE;
        }
        else if ( ! fDigitAddressSet )
        {
-               fData.SetTreeAddress("D");
+               fSimData.SetTreeAddress("D");
                fDigitAddressSet = kTRUE;
        }
        return kTRUE;
@@ -367,10 +401,10 @@ Bool_t AliMUONDataInterface::FetchTreeR()
 /// Fetch the reconstructed objects tree from the current muon loader.
 /// Note: The addresses must still be set. 
   
-  if (fMuonloader->TreeR() == NULL)
+  if (fRecLoader->TreeR() == NULL)
     {
-      fMuonloader->LoadRecPoints("READ");
-      if (fMuonloader->TreeR() == NULL)
+      fRecLoader->LoadRecPoints("READ");
+      if (fRecLoader->TreeR() == NULL)
        {
          AliError("Could not load TreeR.");
          return kFALSE;
@@ -388,10 +422,10 @@ Bool_t AliMUONDataInterface::FetchTreeT()
 {
 /// fetch the reconstructed tracks tree from the current muon loader
 /// note : the addresses must still be set.
-  if (fMuonloader->TreeT() == NULL)
+  if (fRecLoader->TreeT() == NULL)
     {
-      fMuonloader->LoadTracks("READ");
-      if (fMuonloader->TreeT() == NULL)
+      fRecLoader->LoadTracks("READ");
+      if (fRecLoader->TreeT() == NULL)
        {
          AliError("Could not load TreeT.");
          return kFALSE;
@@ -408,7 +442,7 @@ Int_t AliMUONDataInterface::NumberOfEvents(TString filename, TString foldername)
 {
 /// Returns the number of events in the specified file/folder, and -1 on error.
 
-       if ( ! FetchLoaders(filename, foldername) ) return -1;
+       if ( ! FetchLoaders(filename) ) return -1;
        return fRunloader->GetNumberOfEvents();
 }
 
@@ -417,7 +451,7 @@ Int_t AliMUONDataInterface::NumberOfParticles(TString filename, TString folderna
 {
 /// Returns the number of events in the specified file/folder, and -1 on error.
 
-       if ( ! FetchLoaders(filename, foldername) ) return -1;
+       if ( ! FetchLoaders(filename) ) return -1;
        if ( ! FetchEvent(event) ) return -1;
        if ( ! FetchTreeK() ) return -1;
        return (Int_t) fRunloader->TreeK()->GetEntriesFast();
@@ -431,7 +465,7 @@ TParticle* AliMUONDataInterface::Particle(
 /// Returns the specified particle in the given file, folder and event.
 /// NULL is returned on error.
 
-       if ( ! FetchLoaders(filename, foldername) ) return NULL;
+       if ( ! FetchLoaders(filename) ) return NULL;
        if ( ! FetchEvent(event) ) return NULL;
        if ( ! FetchTreeK() ) return NULL;
        
@@ -448,10 +482,10 @@ Int_t AliMUONDataInterface::NumberOfTracks(TString filename, TString foldername,
 /// Returns the number of tracks in the specified file/folder and event.
 /// -1 is returned on error.
 
-       if ( ! FetchLoaders(filename, foldername) ) return -1;
+       if ( ! FetchLoaders(filename) ) return -1;
        if ( ! FetchEvent(event) ) return -1;
        if ( ! FetchTreeH() ) return -1;
-       return fData.GetNtracks();
+       return fSimData.GetNtracks();
 }
 
 
@@ -462,17 +496,17 @@ Int_t AliMUONDataInterface::NumberOfHits(
 /// Returns the number of hits in the specified file/folder, event and track.
 /// -1 is returned on error.
 
-       if ( ! FetchLoaders(filename, foldername) ) return -1;
+       if ( ! FetchLoaders(filename) ) return -1;
        if ( ! FetchEvent(event) ) return -1;
        if ( ! FetchTreeH() ) return -1;
 
        if (fTrack < 0 || fTrack != track)
        {
-               fData.ResetHits();
-               fData.GetTrack(track);
+               fSimData.ResetHits();
+               fSimData.GetTrack(track);
                fTrack = track;
        }
-       return fData.Hits()->GetEntriesFast();
+       return fSimData.Hits()->GetEntriesFast();
 }
 
 
@@ -484,17 +518,17 @@ AliMUONHit* AliMUONDataInterface::Hit(
 /// Returns the specified hit in the given file, folder, event and track.
 /// NULL is returned on error.
 
-       if ( ! FetchLoaders(filename, foldername) ) return NULL;
+       if ( ! FetchLoaders(filename) ) return NULL;
        if ( ! FetchEvent(event) ) return NULL;
        if ( ! FetchTreeH() ) return NULL;
 
        if (fTrack < 0 || fTrack != track)
        {
-               fData.ResetHits();
-               fData.GetTrack(track);
+               fSimData.ResetHits();
+               fSimData.GetTrack(track);
                fTrack = track;
        }
-       return static_cast<AliMUONHit*>( fData.Hits()->At(hit) );
+       return static_cast<AliMUONHit*>( fSimData.Hits()->At(hit) );
 }
 
 
@@ -509,17 +543,17 @@ Int_t AliMUONDataInterface::NumberOfSDigits(
        assert( 0 <= chamber && chamber <= 13 );
        assert( 0 <= cathode && cathode <= 1 );
        
-       if ( ! FetchLoaders(filename, foldername) ) return -1;
+       if ( ! FetchLoaders(filename) ) return -1;
        if ( ! FetchEvent(event) ) return -1;
        if ( ! FetchTreeS() ) return -1;
 
        if ( fSCathode != cathode )
        {
-               fData.ResetSDigits();
-               fData.GetSDigits();
+               fSimData.ResetSDigits();
+               fSimData.GetSDigits();
                fSCathode = cathode;
        }
-       return fData.SDigits(chamber)->GetEntriesFast();
+       return fSimData.SDigits(chamber)->GetEntriesFast();
 }
 
 
@@ -534,17 +568,17 @@ AliMUONDigit* AliMUONDataInterface::SDigit(
        assert( 0 <= chamber && chamber <= 13 );
        assert( 0 <= cathode && cathode <= 1 );
        
-       if ( ! FetchLoaders(filename, foldername) ) return NULL;
+       if ( ! FetchLoaders(filename) ) return NULL;
        if ( ! FetchEvent(event) ) return NULL;
        if ( ! FetchTreeS() ) return NULL;
 
        if ( fSCathode != cathode )
        {
-               fData.ResetSDigits();
-               fData.GetSDigits();
+               fSimData.ResetSDigits();
+               fSimData.GetSDigits();
                fSCathode = cathode;
        }
-       return static_cast<AliMUONDigit*>( fData.SDigits(chamber)->At(sdigit) );
+       return static_cast<AliMUONDigit*>( fSimData.SDigits(chamber)->At(sdigit) );
 }
 
 
@@ -558,17 +592,17 @@ Int_t AliMUONDataInterface::NumberOfDigits(
        assert( 0 <= chamber && chamber <= 13 );
        assert( 0 <= cathode && cathode <= 1 );
        
-       if ( ! FetchLoaders(filename, foldername) ) return -1;
+       if ( ! FetchLoaders(filename) ) return -1;
        if ( ! FetchEvent(event) ) return -1;
        if ( ! FetchTreeD() ) return -1;
 
        if ( fCathode != cathode )
        {
-               fData.ResetDigits();
-               fData.GetDigits();
+               fSimData.ResetDigits();
+               fSimData.GetDigits();
                fCathode = cathode;
        }
-       return fData.Digits(chamber)->GetEntriesFast();
+       return fSimData.Digits(chamber)->GetEntriesFast();
 }
 
 
@@ -583,17 +617,17 @@ AliMUONDigit* AliMUONDataInterface::Digit(
        assert( 0 <= chamber && chamber <= 13 );
        assert( 0 <= cathode && cathode <= 1 );
        
-       if ( ! FetchLoaders(filename, foldername) ) return NULL;
+       if ( ! FetchLoaders(filename) ) return NULL;
        if ( ! FetchEvent(event) ) return NULL;
        if ( ! FetchTreeD() ) return NULL;
 
        if ( fCathode != cathode )
        {
-               fData.ResetDigits();
-               fData.GetDigits();
+               fSimData.ResetDigits();
+               fSimData.GetDigits();
                fCathode = cathode;
        }
-       return static_cast<AliMUONDigit*>( fData.Digits(chamber)->At(digit) );
+       return static_cast<AliMUONDigit*>( fSimData.Digits(chamber)->At(digit) );
 }
 
 
@@ -605,18 +639,18 @@ Int_t AliMUONDataInterface::NumberOfRawClusters(
 /// -1 is returned or error.
 
        assert( 0 <= chamber && chamber <= 13 );
-       if ( ! FetchLoaders(filename, foldername) ) return -1;
+       if ( ! FetchLoaders(filename) ) return -1;
        if ( ! FetchEvent(event) ) return -1;
        if ( ! FetchTreeR() ) return -1;
        if ( ! fClusterAddressSet )
        {
                // If the raw cluster address in TreeR is not set yet then set it now.
-               fData.SetTreeAddress("RC");
-               fData.ResetRawClusters();
-               fData.GetRawClusters();
+               fRecData.SetTreeAddress("RC");
+               fRecData.ResetRawClusters();
+               fRecData.GetRawClusters();
                fClusterAddressSet = kTRUE;
        }
-       return fData.RawClusters(chamber)->GetEntriesFast();
+       return fRecData.RawClusters(chamber)->GetEntriesFast();
 }
 
 
@@ -629,18 +663,18 @@ AliMUONRawCluster* AliMUONDataInterface::RawCluster(
 /// NULL is returned on error.
 
        assert( 0 <= chamber && chamber <= 13 );
-       if ( ! FetchLoaders(filename, foldername) ) return NULL;
+       if ( ! FetchLoaders(filename) ) return NULL;
        if ( ! FetchEvent(event) ) return NULL;
        if ( ! FetchTreeR() ) return NULL;
        if ( ! fClusterAddressSet )
        {
                // If the raw cluster address in TreeR is not set yet then set it now.
-               fData.SetTreeAddress("RC");
-               fData.ResetRawClusters();
-               fData.GetRawClusters();
+               fRecData.SetTreeAddress("RC");
+               fRecData.ResetRawClusters();
+               fRecData.GetRawClusters();
                fClusterAddressSet = kTRUE;
        }
-       return static_cast<AliMUONRawCluster*>( fData.RawClusters(chamber)->At(cluster) );
+       return static_cast<AliMUONRawCluster*>( fRecData.RawClusters(chamber)->At(cluster) );
 }
 
 
@@ -649,18 +683,18 @@ Int_t AliMUONDataInterface::NumberOfLocalTriggers(TString filename, TString fold
 /// Return the number of local trigger objects in the specified file, folder and
 /// event number. -1 is returned on error.
 
-       if ( ! FetchLoaders(filename, foldername) ) return -1;
+       if ( ! FetchLoaders(filename) ) return -1;
        if ( ! FetchEvent(event) ) return -1;
        if ( ! FetchTreeD() ) return -1;
        if ( ! fTriggerAddressSet )
        {
                // If the local trigger address in TreeR is not set yet then set it now.
-               fData.SetTreeAddress("GLT");
-               fData.ResetTrigger();
-               fData.GetTriggerD();
+               fRecData.SetTreeAddress("GLT");
+               fRecData.ResetTrigger();
+               fRecData.GetTriggerD();
                fTriggerAddressSet = kTRUE;
        }
-       return fData.LocalTrigger()->GetEntriesFast();
+       return fRecData.LocalTrigger()->GetEntriesFast();
 }
 
 
@@ -671,18 +705,18 @@ AliMUONLocalTrigger* AliMUONDataInterface::LocalTrigger(
 /// Fetch the specified local trigger object from the given file, folder and event number.
 /// NULL is returned on error.
 
-       if ( ! FetchLoaders(filename, foldername) ) return NULL;
+       if ( ! FetchLoaders(filename) ) return NULL;
        if ( ! FetchEvent(event) ) return NULL;
        if ( ! FetchTreeD() ) return NULL;
        if ( ! fTriggerAddressSet )
        {
                // If the local trigger address in TreeR is not set yet then set it now.
-               fData.SetTreeAddress("GLT");
-               fData.ResetTrigger();
-               fData.GetTriggerD();
+               fRecData.SetTreeAddress("GLT");
+               fRecData.ResetTrigger();
+               fRecData.GetTriggerD();
                fTriggerAddressSet = kTRUE;
        }
-       return static_cast<AliMUONLocalTrigger*>( fData.LocalTrigger()->At(trigger) );
+       return static_cast<AliMUONLocalTrigger*>( fRecData.LocalTrigger()->At(trigger) );
 }
 
 Bool_t AliMUONDataInterface::SetFile(TString filename, TString foldername)
@@ -690,7 +724,7 @@ Bool_t AliMUONDataInterface::SetFile(TString filename, TString foldername)
 /// Set the current file and folder from which to fetch data.
 /// kTRUE is returned if the run and muon loaders were found, else kFALSE. 
 
-       return FetchLoaders(filename, foldername);
+       return FetchLoaders(filename);
 }
 
 
@@ -778,7 +812,7 @@ Int_t AliMUONDataInterface::NumberOfTracks()
                return -1;
        }
        if ( ! FetchTreeH() ) return -1;
-       return fData.GetNtracks();
+       return fSimData.GetNtracks();
 }
 
 
@@ -800,11 +834,11 @@ Int_t AliMUONDataInterface::NumberOfHits(Int_t track)
        if ( ! FetchTreeH() ) return -1;
        if (fTrack < 0 || fTrack != track)
        {
-               fData.ResetHits();
-               fData.GetTrack(track);
+               fSimData.ResetHits();
+               fSimData.GetTrack(track);
                fTrack = track;
        }
-       return fData.Hits()->GetEntriesFast();
+       return fSimData.Hits()->GetEntriesFast();
 }
 
 
@@ -826,11 +860,11 @@ AliMUONHit* AliMUONDataInterface::Hit(Int_t track, Int_t hit)
        if ( ! FetchTreeH() ) return NULL;
        if (fTrack < 0 || fTrack != track)
        {
-               fData.ResetHits();
-               fData.GetTrack(track);
+               fSimData.ResetHits();
+               fSimData.GetTrack(track);
                fTrack = track;
        }
-       return static_cast<AliMUONHit*>( fData.Hits()->At(hit) );
+       return static_cast<AliMUONHit*>( fSimData.Hits()->At(hit) );
 }
 
 
@@ -856,11 +890,11 @@ Int_t AliMUONDataInterface::NumberOfSDigits(Int_t chamber, Int_t cathode)
        if ( ! FetchTreeS() ) return -1;
        if ( fSCathode != cathode )
        {
-               fData.ResetSDigits();
-               fData.GetSDigits();
+               fSimData.ResetSDigits();
+               fSimData.GetSDigits();
                fSCathode = cathode;
        }
-       return fData.SDigits(chamber)->GetEntriesFast();
+       return fSimData.SDigits(chamber)->GetEntriesFast();
 }
 
 
@@ -886,11 +920,11 @@ AliMUONDigit* AliMUONDataInterface::SDigit(Int_t chamber, Int_t cathode, Int_t s
        if ( ! FetchTreeS() ) return NULL;
        if ( fSCathode != cathode )
        {
-               fData.ResetSDigits();
-               fData.GetSDigits();
+               fSimData.ResetSDigits();
+               fSimData.GetSDigits();
                fSCathode = cathode;
        }
-       return static_cast<AliMUONDigit*>( fData.SDigits(chamber)->At(sdigit) );
+       return static_cast<AliMUONDigit*>( fSimData.SDigits(chamber)->At(sdigit) );
 }
 
 
@@ -916,11 +950,11 @@ Int_t AliMUONDataInterface::NumberOfDigits(Int_t chamber, Int_t cathode)
        if ( ! FetchTreeD() ) return -1;
        if ( fCathode != cathode )
        {
-               fData.ResetDigits();
-               fData.GetDigits();
+               fSimData.ResetDigits();
+               fSimData.GetDigits();
                fCathode = cathode;
        }
-       return fData.Digits(chamber)->GetEntriesFast();
+       return fSimData.Digits(chamber)->GetEntriesFast();
 }
 
 
@@ -946,11 +980,11 @@ AliMUONDigit* AliMUONDataInterface::Digit(Int_t chamber, Int_t cathode, Int_t di
        if ( ! FetchTreeD() ) return NULL;
        if ( fCathode != cathode )
        {
-               fData.ResetDigits();
-               fData.GetDigits();
+               fSimData.ResetDigits();
+               fSimData.GetDigits();
                fCathode = cathode;
        }
-       return static_cast<AliMUONDigit*>( fData.Digits(chamber)->At(digit) );
+       return static_cast<AliMUONDigit*>( fSimData.Digits(chamber)->At(digit) );
 }
 
 
@@ -975,12 +1009,12 @@ Int_t AliMUONDataInterface::NumberOfRawClusters(Int_t chamber)
        if ( ! FetchTreeR() ) return -1;
        if ( ! fClusterAddressSet )
        {
-               fData.SetTreeAddress("RC");
-               fData.ResetRawClusters();
-               fData.GetRawClusters();
+               fRecData.SetTreeAddress("RC");
+               fRecData.ResetRawClusters();
+               fRecData.GetRawClusters();
                fClusterAddressSet = kTRUE;
        }
-       return fData.RawClusters(chamber)->GetEntriesFast();
+       return fRecData.RawClusters(chamber)->GetEntriesFast();
 }
 
 
@@ -1005,12 +1039,12 @@ AliMUONRawCluster* AliMUONDataInterface::RawCluster(Int_t chamber, Int_t cluster
        if ( ! FetchTreeR() ) return NULL;
        if ( ! fClusterAddressSet )
        {
-               fData.SetTreeAddress("RC");
-               fData.ResetRawClusters();
-               fData.GetRawClusters();
+               fRecData.SetTreeAddress("RC");
+               fRecData.ResetRawClusters();
+               fRecData.GetRawClusters();
                fClusterAddressSet = kTRUE;
        }
-       return static_cast<AliMUONRawCluster*>( fData.RawClusters(chamber)->At(cluster) );
+       return static_cast<AliMUONRawCluster*>( fRecData.RawClusters(chamber)->At(cluster) );
 }
 
 
@@ -1033,12 +1067,12 @@ Int_t AliMUONDataInterface::NumberOfLocalTriggers()
        if ( ! FetchTreeD() ) return -1;
        if ( ! fTriggerAddressSet )
        {
-               fData.SetTreeAddress("GLT");
-               fData.ResetTrigger();
-               fData.GetTriggerD();
+               fRecData.SetTreeAddress("GLT");
+               fRecData.ResetTrigger();
+               fRecData.GetTriggerD();
                fTriggerAddressSet = kTRUE;
        }
-       return fData.LocalTrigger()->GetEntriesFast();
+       return fRecData.LocalTrigger()->GetEntriesFast();
 }
 
 
@@ -1061,12 +1095,12 @@ AliMUONLocalTrigger* AliMUONDataInterface::LocalTrigger(Int_t trigger)
        if ( ! FetchTreeD() ) return NULL;
        if ( ! fTriggerAddressSet )
        {
-               fData.SetTreeAddress("GLT");
-               fData.ResetTrigger();
-               fData.GetTriggerD();
+               fRecData.SetTreeAddress("GLT");
+               fRecData.ResetTrigger();
+               fRecData.GetTriggerD();
                fTriggerAddressSet = kTRUE;
        }
-       return static_cast<AliMUONLocalTrigger*>( fData.LocalTrigger()->At(trigger) );
+       return static_cast<AliMUONLocalTrigger*>( fRecData.LocalTrigger()->At(trigger) );
 }
 
 Int_t AliMUONDataInterface::NumberOfGlobalTriggers()
@@ -1088,12 +1122,12 @@ Int_t AliMUONDataInterface::NumberOfGlobalTriggers()
   if ( ! FetchTreeD() ) return -1;
   if ( ! fTriggerAddressSet )
     {
-      fData.SetTreeAddress("GLT");
-      fData.ResetTrigger();
-      fData.GetTriggerD();
+      fRecData.SetTreeAddress("GLT");
+      fRecData.ResetTrigger();
+      fRecData.GetTriggerD();
       fTriggerAddressSet = kTRUE;
     }
-  return fData.GlobalTrigger()->GetEntriesFast();
+  return fRecData.GlobalTrigger()->GetEntriesFast();
 }
 
 AliMUONGlobalTrigger* AliMUONDataInterface::GlobalTrigger(Int_t trigger)
@@ -1115,12 +1149,12 @@ AliMUONGlobalTrigger* AliMUONDataInterface::GlobalTrigger(Int_t trigger)
   if ( ! FetchTreeD() ) return NULL;
   if ( ! fTriggerAddressSet )
     {
-      fData.SetTreeAddress("GLT");
-      fData.ResetTrigger();
-      fData.GetTriggerD();
+      fRecData.SetTreeAddress("GLT");
+      fRecData.ResetTrigger();
+      fRecData.GetTriggerD();
       fTriggerAddressSet = kTRUE;
     }
-  return static_cast<AliMUONGlobalTrigger*>( fData.GlobalTrigger()->At(trigger) );
+  return static_cast<AliMUONGlobalTrigger*>( fRecData.GlobalTrigger()->At(trigger) );
 }
 
 Int_t AliMUONDataInterface::NumberOfRecTracks()
@@ -1142,12 +1176,12 @@ Int_t AliMUONDataInterface::NumberOfRecTracks()
   if ( ! FetchTreeT() ) return -1;
   if ( ! fRecTracksAddressSet )
     {
-      fData.SetTreeAddress("RT");
-      fData.ResetRecTracks();
-      fData.GetRecTracks();
+      fRecData.SetTreeAddress("RT");
+      fRecData.ResetRecTracks();
+      fRecData.GetRecTracks();
       fRecTracksAddressSet = kTRUE;
     }
-  return fData.RecTracks()->GetEntriesFast();
+  return fRecData.RecTracks()->GetEntriesFast();
 }
 
 AliMUONTrack* AliMUONDataInterface::RecTrack(Int_t rectrack)
@@ -1169,11 +1203,11 @@ AliMUONTrack* AliMUONDataInterface::RecTrack(Int_t rectrack)
   if ( ! FetchTreeT() ) return NULL;
   if ( ! fRecTracksAddressSet )
     {
-      fData.SetTreeAddress("RT");
-      fData.ResetRecTracks();
-      fData.GetRecTracks();
+      fRecData.SetTreeAddress("RT");
+      fRecData.ResetRecTracks();
+      fRecData.GetRecTracks();
       fRecTracksAddressSet = kTRUE;
     }
-  return static_cast<AliMUONTrack*>( fData.RecTracks()->At(rectrack) );
-  // return (AliMUONTrack*)(fData.RecTracks()->At(rectrack));
+  return static_cast<AliMUONTrack*>( fRecData.RecTracks()->At(rectrack) );
+  // return (AliMUONTrack*)(fRecData.RecTracks()->At(rectrack));
 }
index ea821a591a9fb85c9db37565c45efa97d8ed89b2..3a1a074bcdfaff987596d8944afb6a560e7d3888 100644 (file)
@@ -6,7 +6,7 @@
 /* $Id$ */
 // Includes revised 07/05/2004
 //
-/// \ingroup base
+/// \ingroup evaluation
 /// \class AliMUONDataInterface
 /// \brief An easy to use interface to data in the MUON module
 
@@ -16,7 +16,8 @@
 #include <TObject.h>
 #include <TString.h>
 
-#include "AliMUONData.h"
+#include "AliMUONRecData.h"
+#include "AliMUONSimData.h"
 
 class TParticle;
 
@@ -116,9 +117,9 @@ class AliMUONDataInterface : public TObject
   /// Not implemented
   AliMUONDataInterface& operator=(const AliMUONDataInterface& rhs);
   
-  Bool_t FetchMuonLoader(TString filename, TString foldername);
-  Bool_t LoadLoaders(TString filename, TString foldername);
-  Bool_t FetchLoaders(TString filename, TString foldername);
+  Bool_t FetchMuonLoader(TString filename);
+  Bool_t LoadLoaders(TString filename);
+  Bool_t FetchLoaders(TString filename);
   Bool_t FetchEvent(Int_t event);
   Bool_t FetchTreeK();
   Bool_t FetchTreeH();
@@ -127,7 +128,8 @@ class AliMUONDataInterface : public TObject
   Bool_t FetchTreeR();
   Bool_t FetchTreeT();
   
-  Bool_t fCreatedRunLoader;  //!< If this object created the fRunloader then this flag is set. 
+  Bool_t fCreatedRunLoader;   //!< If this object created the fRunloader then this flag is set.        
+  Bool_t fCreatedRunLoaderSim;//!< If this object created the fRunloader then this flag is set.        
   
   Bool_t fHitAddressSet;     //!< Flag specifying if the TTree address for the hit tree was set.
   Bool_t fSDigitAddressSet;  //!< Flag specifying if the TTree address for the s-digit tree was set.
@@ -137,10 +139,14 @@ class AliMUONDataInterface : public TObject
   Bool_t fRecTracksAddressSet; //!< Flag specifying if the TTree address for the rec tracks tree was set.
   
   AliRunLoader* fRunloader;  //!< Pointer to the runloader object used.
-  AliLoader* fMuonloader;    //!< Pointer to the muon loader object used.
-  AliMUONData fData;         //!< Pointer to the muon raw data interface.
+  AliRunLoader* fRunloaderSim; //!< Pointer to the runloader object used.
+  AliLoader* fRecLoader;    //!< Pointer to the muon loader object used.
+  AliLoader* fSimLoader;    //!< Pointer to the muon loader object used.
+  AliMUONRecData fRecData;  //!< Pointer to the muon raw data interface.
+  AliMUONSimData fSimData;  //!< Pointer to the muon raw data interface.
   TString fFilename;         //!< The file name from which we are fetching data.
   TString fFoldername;       //!< The folder name from which we are fetching data.
+  TString fFoldernameSim;    //!< The folder name from which we are fetching data.
   Int_t fEventnumber;        //!< The currently selected event.
   Int_t fTrack;              //!< The currently selected track.
   Int_t fSCathode;           //!< The currently selected cathode in TreeS.