]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AOD/AliAODInputHandler.cxx
Improve precision of AliExternalTrackParam:: GetZat, GetXYZat
[u/mrichter/AliRoot.git] / STEER / AOD / AliAODInputHandler.cxx
index 848ea3d136183b18579c7dcc702cd23bbd6e312d..62c17ef620529825947dab8d70d66413b2f3049a 100644 (file)
@@ -126,6 +126,11 @@ Bool_t AliAODInputHandler::Init(TTree* tree, Option_t* opt)
 Bool_t AliAODInputHandler::BeginEvent(Long64_t entry)
 {
     // Begin event
+    static Int_t prevRunNumber = -1;
+    if (prevRunNumber != fEvent->GetRunNumber() && NeedField()) {
+      fEvent->InitMagneticField();
+      prevRunNumber = fEvent->GetRunNumber();
+    } 
     TClonesArray* mcParticles = (TClonesArray*) (fEvent->FindListObject("mcparticles"));
     if (mcParticles) {
        if (!fMCEvent) fMCEvent = new AliMCEvent();
@@ -155,6 +160,7 @@ Bool_t AliAODInputHandler::Notify(const char* path)
       fEvent->ReadFromTree(fTree, "reconnect");
   }
   fFriendsConnected = kFALSE;
+  fUserInfo=fTree->GetTree()->GetUserInfo();
     
   TTree *ttree = fTree->GetTree();
   if (!ttree) ttree = fTree;
@@ -247,10 +253,15 @@ void AliAODInputHandler::ConnectFriends()
        TString aodTreeFName,aodFriendTreeFName;
        TTree *ttree = fTree->GetTree();
        if (!ttree) ttree = fTree;
+   if(!ttree->GetCurrentFile()){
+     AliWarning("Couldn't get current AOD file, not connecting friends");
+     return;
+   }
        aodTreeFName = ttree->GetCurrentFile()->GetName();
        
        while((obj = (TNamed*)next())) {
            aodFriendTreeFName = aodTreeFName;
+       if (strlen(GetInputFileName())) aodFriendTreeFName.ReplaceAll(GetInputFileName(),obj->GetName());
            aodFriendTreeFName.ReplaceAll("AliAOD.root",obj->GetName());
            aodFriendTreeFName.ReplaceAll("AliAODs.root",obj->GetName());
            ttree->AddFriend("aodTree", aodFriendTreeFName.Data());