]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/Tools/AliAnalysisHelperJetTasks.cxx
support for EGA triggers (Rachid)
[u/mrichter/AliRoot.git] / PWG / Tools / AliAnalysisHelperJetTasks.cxx
index 5d3d2b693f9e8de4c5a1a841a0189d764985b962..9fb551763732acd6e8a1b4579bfc013eac61ba1f 100644 (file)
@@ -52,6 +52,7 @@
 #include "TMatrixDSymEigen.h"
 #include "TVector.h"
 
+using std::ifstream;
 ClassImp(AliAnalysisHelperJetTasks)
 
 Int_t AliAnalysisHelperJetTasks::fgLastProcessType = -1;
@@ -391,7 +392,7 @@ void AliAnalysisHelperJetTasks::GetJetMatching(const TList *genJetsList, const I
     // Check energy fraction from jets from first list in jets from second list
     // Matched jets = jet with largest energy fraction
     // Store index of matched jet in TArrayI iMatchIndex
-                                            
+                                  
     // reset index
     iMatchIndex.Reset(-1);
     fPtFraction.Reset(-1.);
@@ -402,8 +403,10 @@ void AliAnalysisHelperJetTasks::GetJetMatching(const TList *genJetsList, const I
         
     const Int_t nGenJets = TMath::Min(genJetsList->GetEntries(),kGenJets);
     const Int_t nRecJets = TMath::Min(recJetsList->GetEntries(),kRecJets);
-    if(nRecJets==0||nGenJets==0) return;
-    
+    if(nRecJets==0||nGenJets==0) {
+      if(iDebug>10) Printf("No jets nRecJets %d nGenJets %d\n",nRecJets,nGenJets);
+      return;
+    }
     AliAODJet *genJet = 0x0;
     AliAODJet *recJet = 0x0;
     
@@ -417,15 +420,20 @@ void AliAnalysisHelperJetTasks::GetJetMatching(const TList *genJetsList, const I
 
         genJet = (AliAODJet*)genJetsList->At(ig);
         //if(!genJet || !JetSelected(genJet)) continue;
-        if(!genJet) continue;
+        if(!genJet) {
+         if(iDebug>10) Printf("genJet %d doesnot exist",ig);
+         continue;
+       }
         
         // find N closest reconstructed jets
         Double_t deltaR = 0.;
         for(Int_t ir=0; ir<nRecJets; ++ir){
             recJet = (AliAODJet*)recJetsList->At(ir);
             //if(!recJet || !JetSelected(recJet)) continue;
-            if(!recJet) continue;
-            
+            if(!recJet) {
+             if(iDebug>10) Printf("recJet %d doesnot exist",ir);
+             continue;
+            }
             deltaR = genJet->DeltaR(recJet);
             
             Int_t i=kClosestJetsN-1;
@@ -499,14 +507,18 @@ Double_t AliAnalysisHelperJetTasks::GetFractionOfJet(const AliAODJet *recJet, co
     Int_t nTracksGenJet = genTrackList->GetEntriesFast();
     Int_t nTracksRecJet = recTrackList->GetEntriesFast();
     
-    AliAODTrack* recTrack;
-    AliAODTrack* genTrack;
+    // AliAODTrack* recTrack;
+    // AliAODTrack* genTrack;
+    AliVParticle* recTrack;
+    AliVParticle* genTrack;
     for(Int_t ir=0; ir<nTracksRecJet; ++ir){
-        recTrack = (AliAODTrack*)(recTrackList->At(ir));
+      //        recTrack = (AliAODTrack*)(recTrackList->At(ir));
+        recTrack = dynamic_cast<AliVParticle*>(recTrackList->At(ir));
         if(!recTrack) continue;
         
         for(Int_t ig=0; ig<nTracksGenJet; ++ig){
-            genTrack = (AliAODTrack*)(genTrackList->At(ig));
+         //            genTrack = (AliAODTrack*)(genTrackList->At(ig));
+            genTrack = dynamic_cast<AliVParticle*>(genTrackList->At(ig));
             if(!genTrack) continue;
             
             // look if it points to the same track
@@ -750,9 +762,10 @@ Bool_t AliAnalysisHelperJetTasks::PythiaInfoFromFile(const char* currFile,Float_
   fTrials = 1;
 
   if(file.Contains("root_archive.zip#")){
-    Ssiz_t pos1 = file.Index("root_archive",12,TString::kExact);
+    Ssiz_t pos1 = file.Index("root_archive",12,0,TString::kExact);
     Ssiz_t pos = file.Index("#",1,pos1,TString::kExact);
-    file.Replace(pos+1,20,"");
+    Ssiz_t pos2 = file.Index(".root",5,TString::kExact);
+    file.Replace(pos+1,pos2-pos1,"");
   }
   else {
     // not an archive take the basename....