Standard aliroot I/O for MUON tracks
authormartinez <martinez@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Dec 2003 17:54:30 +0000 (17:54 +0000)
committermartinez <martinez@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Dec 2003 17:54:30 +0000 (17:54 +0000)
MUON/AliMUONData.cxx
MUON/AliMUONData.h
MUON/AliMUONTrack.h
MUON/MUONCheck.C
MUON/MUONTracker.C

index 0640d1c8a6304c213abd022a175c69882a5b6a46..969eade6f1637fa1c5986ee9a6b0d7ed022fd4b1 100644 (file)
@@ -288,7 +288,7 @@ void AliMUONData::Fill(Option_t* option)
   if ( TreeT() && cRT ) {
     sprintf(branchname,"%sTrack",GetName());  
     branch = TreeT()->GetBranch(branchname);
-    branch->Fill();
+    TreeT()->Fill();
   }
 }
 //_____________________________________________________________________________
@@ -590,6 +590,11 @@ void AliMUONData::SetTreeAddress(Option_t* option)
     else Warning("SetTreeAddress","(%s) Failed for LocalTrigger. Can not find branch in tree.",GetName());
   }
 
+  if ( TreeT() ) {
+    if (fRecTracks == 0x0 && cRT )  {
+      fRecTracks  = new TClonesArray("AliMUONTrack",100);
+    }
+  }
   if ( TreeT() && fRecTracks && cRT ) {
     sprintf(branchname,"%sTrack",GetName());  
     branch = TreeT()->GetBranch(branchname);
index 56a0f39b671c51479b8a8b9d82871eb090359a60..e17659134669d9110d47ac6ef37d3cd9890c1f67 100644 (file)
@@ -67,6 +67,7 @@ class AliMUONData : public TNamed {
     void           GetRawClusters() {fLoader->TreeR()->GetEvent(0);}
     void           GetTrigger() {fLoader->TreeR()->GetEvent(0);}
     Int_t          GetSplitLevel() {return fSplitLevel;}
+    void           GetRecTracks() {fLoader->TreeT()->GetEvent(0);}
 
     Bool_t        IsRawClusterBranchesInTree();
     Bool_t        IsTriggerBranchesInTree();
@@ -125,3 +126,4 @@ class AliMUONData : public TNamed {
     ClassDef(AliMUONData,1)
  };
 #endif
+
index 81405d996bc7c59068601b7a1875d68e66786232..743d54aa85ad952118ccd3b8ef8c5b6d282534ca 100644 (file)
@@ -61,8 +61,8 @@ class AliMUONTrack : public TObject {
 
  protected:
  private:
-  static TVirtualFitter* fgFitter; // Pointer to track fitter
-  AliMUONEventReconstructor* fEventReconstructor; // Pointer to EventReconstructor
+  static TVirtualFitter* fgFitter; //!                  Pointer to track fitter
+  AliMUONEventReconstructor* fEventReconstructor; //!   Pointer to EventReconstructor
   AliMUONTrackParam fTrackParamAtVertex; // Track parameters at vertex
   TObjArray *fTrackHitsPtr; // Pointer to array of pointers to TrackHit's
   Int_t fNTrackHits; // Number of TrackHit's
@@ -71,7 +71,7 @@ class AliMUONTrack : public TObject {
   Int_t fFitStart; // 0 or 1 for fit starting from parameters at vertex (0) or at first TrackHit(1)
   Double_t fFitFMin; // minimum value of the function minimized by the fit
   
-  ClassDef(AliMUONTrack, 1) // Reconstructed track in ALICE dimuon spectrometer
+  ClassDef(AliMUONTrack, 2) // Reconstructed track in ALICE dimuon spectrometer
     };
        
 #endif
index db1f1963f91fea3eff7c56bf713255a68789b87b..0753e3db3922728e32364ba727053f4330ab6198 100644 (file)
@@ -44,6 +44,7 @@
 #include "AliMUONRawCluster.h"
 #include "AliMUONGlobalTrigger.h"
 #include "AliMUONLocalTrigger.h"
+#include "AliMUONTrack.h"
 
 void MUONkine(char * filename="galice.root")
 {
@@ -368,6 +369,49 @@ void MUONTestTrigger (char * filename="galice.root"){
 
 
 
+void MUONRecTracks (char * filename="galice.root"){
+// reads and dumps trigger objects from MUON.RecPoints.root
+  TClonesArray * RecTracks;
+  
+  // Creating Run Loader and openning file containing Hits
+  AliRunLoader * RunLoader = AliRunLoader::Open(filename,"MUONFolder","READ");
+  if (RunLoader ==0x0) {
+    printf(">>> Error : Error Opening %s file \n",filename);
+    return;
+  }
+  
+  AliLoader * MUONLoader = RunLoader->GetLoader("MUONLoader");
+  MUONLoader->LoadTracks("READ");
+  // Creating MUON data container
+  AliMUONData muondata(MUONLoader,"MUON","MUON");
+  
+    Int_t ievent, nevents;
+  nevents = RunLoader->GetNumberOfEvents();
+  
+  AliMUONTrack * rectrack;
+  
+  for (ievent=0; ievent<nevents; ievent++) {
+    RunLoader->GetEvent(ievent);
+    
+    muondata.SetTreeAddress("RT");
+    muondata.GetRecTracks();
+    RecTracks = muondata.RecTracks();
+    
+    
+    Int_t nrectracks = (Int_t) RecTracks->GetEntriesFast(); //
+
+    printf(">>> Event %d Number of Recconstructed tracks %d \n",ievent, nrectracks);
+   
+    muondata.ResetRecTracks();
+  } // end loop on event  
+  MUONLoader->UnloadTracks();
+}
+
+
+
+
+
+
 
 
 
index 75e410c6a647924af839095a7e670fb61bc2f501..17767d5dccebb7b1911a8ecfa2dfcc4773896897 100644 (file)
@@ -77,6 +77,8 @@ void MUONTracker (Text_t *FileName = "galice.root", Int_t FirstEvent = 0, Int_t
   if  (LastEvent>nevents) LastEvent=nevents;
   // Loop over events
   for (Int_t event = FirstEvent; event < LastEvent; event++) {
+    //MUONLoader->LoadHits("READ");
+    MUONLoader->LoadRecPoints("READ");
     cout << "Event: " << event << endl;
     RunLoader->GetEvent(event);   
     muondata->SetTreeAddress("RC");
@@ -91,12 +93,13 @@ void MUONTracker (Text_t *FileName = "galice.root", Int_t FirstEvent = 0, Int_t
     for(Int_t i=0; i<Reco->GetNRecTracks(); i++) {
       AliMUONTrack * track = (AliMUONTrack*) Reco->GetRecTracksPtr()->At(i);
       muondata->AddRecTrack(*track);
+      //printf(">>> TEST TEST Number of hits in the track %d is %d \n",i,track->GetNTrackHits());
     }
 
     muondata->Fill("RT");
     MUONLoader->WriteTracks("OVERWRITE");
     muondata->ResetRecTracks();
+    //MUONLoader->UnloadHits();
+    MUONLoader->UnloadRecPoints();
   } // Event loop
-  MUONLoader->UnloadHits();
-  MUONLoader->UnloadRecPoints();
 }