if ( TreeT() && cRT ) {
sprintf(branchname,"%sTrack",GetName());
branch = TreeT()->GetBranch(branchname);
- branch->Fill();
+ TreeT()->Fill();
}
}
//_____________________________________________________________________________
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);
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();
ClassDef(AliMUONData,1)
};
#endif
+
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
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
#include "AliMUONRawCluster.h"
#include "AliMUONGlobalTrigger.h"
#include "AliMUONLocalTrigger.h"
+#include "AliMUONTrack.h"
void MUONkine(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();
+}
+
+
+
+
+
+
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");
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();
}