]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/ReadESDfriend.C
ALICE interface to Pythia8
[u/mrichter/AliRoot.git] / STEER / ReadESDfriend.C
index ec1c11a08fa6c23e5fa233ec6aa1ff8d3c485b4b..62e3d30784f775c460593035f0bcb6c8834542ab 100644 (file)
@@ -23,19 +23,24 @@ void ReadESDfriend(Bool_t readFriend=kTRUE) {
    for (Int_t i=0; i<n; i++) esdTree->AddFile(name[i]);
 
    AliESDEvent *ev= new AliESDEvent();
+   if(readFriend)esdTree->SetBranchStatus("ESDfriend*",1);
    ev->ReadFromTree(esdTree);
 
    // Attach the branch with ESD friends
    AliESDfriend *evf=0;
    if (readFriend) {
-      esdTree->SetBranchStatus("ESDfriend*",1);
-      evf = (AliESDfriend*)ev->FindListObject("AliESDfriend");
+     evf = (AliESDfriend*)ev->FindListObject("AliESDfriend");
+     if(!evf){
+       // works for both, we just want to avoid setting the branch adress twice
+       // in case of the new ESD
+       esdTree->SetBranchAddress("ESDfriend.",&evf); 
+     }
    }
 
    Int_t nev=esdTree->GetEntries();
    for (Int_t i=0; i<nev; i++) {
        esdTree->GetEntry(i);
-
+       if(ev->GetAliESDOld())ev->CopyFromOldESD();
       
        cout<<endl<<"Event number: "<<i<<endl;
        Int_t ntr=ev->GetNumberOfTracks();
@@ -44,25 +49,27 @@ void ReadESDfriend(Bool_t readFriend=kTRUE) {
        // Example: indices of the TPC clusters associated with the track number 0.
        if (ntr > 0) {
         ev->SetESDfriend(evf); //Attach the friend to the ESD
-          const AliESDtrack *t=ev->GetTrack(0);
-          Int_t idx[AliESDfriendTrack::kMaxTPCcluster]; 
-          n=t->GetTPCclusters(idx);
-          cout<<"Track number 0"<<endl;
-          cout<<"   Number of TPC clusters: "<<n<<endl;
-          cout<<"   Index of the 150th TPC cluster: "<<idx[7]<<endl;
-          UChar_t map=t->GetITSClusterMap();
-          cout<<"   ITS cluster map (from SPDs to SSDs): ";
-          for (Int_t i=0; i<6; i++) printf(" Bit %d: %d\n",i,(map&(1<<i))==(1<<i)) <<' ';
-         
-    // Example: track points associated with the track number 0.
-          const AliTrackPointArray *pa=t->GetTrackPointArray();
-          if (pa != 0) {
-             n=pa->GetNPoints();
-             const Float_t *x=pa->GetX();
-             cout<<"   Number of track points: "<<n<<endl;
-             if (n>7)
+        const AliESDtrack *t=ev->GetTrack(0);
+        Int_t idx[AliESDfriendTrack::kMaxTPCcluster]; 
+        n=t->GetTPCclusters(idx);
+        cout<<"Number of friend tracks: "<<evf->GetNumberOfTracks() <<endl;
+        cout<<"Track number 0"<<endl;
+        cout<<"   Number of TPC clusters: "<<n<<endl;
+        cout<<"   Index of the 1st TPC cluster: "  <<idx[1]<<endl;
+        UChar_t map=t->GetITSClusterMap();
+        cout<<"   ITS cluster map (from SPDs to SSDs):\n";
+        for (Int_t k=0; k<6; k++) printf(" Bit %d: %d\n",k,(map&(1<<k))==(1<<k)) <<' ';
+        
+        // Example: track points associated with the track number 0.
+        const AliTrackPointArray *pa=t->GetTrackPointArray();
+        if (pa != 0) {
+          n=pa->GetNPoints();
+          const Float_t *x=pa->GetX();
+          cout<<"   Number of track points: "<<n<<endl;
+          if (n>7)
              cout<<"   X coordinate of the 7th track point: "<<x[7]<<endl;
-          }
+        }
+        
        }
        
    }