]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/AliJetEmbeddingFromAODTask.cxx
Changes from Salvatore
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetEmbeddingFromAODTask.cxx
index 7081ce82589888d6b27b662745d4bac1a6c1e18f..bd21277edeb57098da47641b44ec0edd0b319c73 100644 (file)
@@ -51,6 +51,9 @@ AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask() :
   fTriggerMask(AliVEvent::kAny),
   fZVertexCut(10),
   fIncludeNoITS(kTRUE),
+  fUseNegativeLabels(kTRUE),
+  fTrackEfficiency(1),
+  fIsMC(kFALSE),
   fTotalFiles(2050),
   fAttempts(5),
   fEsdTreeMode(kFALSE),
@@ -75,6 +78,12 @@ AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask() :
   SetMarkMC(0);
   fAODfilterBits[0] = -1;
   fAODfilterBits[1] = -1;
+  fEtaMin = -1;
+  fEtaMax = 1;
+  fPhiMin = -10;
+  fPhiMax = 10;
+  fPtMin = 0;
+  fPtMax = 1000;
 }
 
 //________________________________________________________________________
@@ -94,6 +103,9 @@ AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask(const char *name, Bool_t
   fTriggerMask(AliVEvent::kAny),
   fZVertexCut(10),
   fIncludeNoITS(kTRUE),
+  fUseNegativeLabels(kTRUE),
+  fTrackEfficiency(1),
+  fIsMC(kFALSE),
   fTotalFiles(2050),
   fAttempts(5),
   fEsdTreeMode(kFALSE),
@@ -118,6 +130,12 @@ AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask(const char *name, Bool_t
   SetMarkMC(0);
   fAODfilterBits[0] = -1;
   fAODfilterBits[1] = -1;
+  fEtaMin = -1;
+  fEtaMax = 1;
+  fPhiMin = -10;
+  fPhiMax = 10;
+  fPtMin = 0;
+  fPtMax = 1000;
 }
 
 //________________________________________________________________________
@@ -363,6 +381,7 @@ void AliJetEmbeddingFromAODTask::Run()
       CopyMCParticles();
 
     if (fAODMCParticles) {
+      AliDebug(2, Form("%d MC particles will be processed for embedding.", fAODMCParticles->GetEntriesFast()));
       for (Int_t i = 0; i < fAODMCParticles->GetEntriesFast(); i++) {
        AliAODMCParticle *part = static_cast<AliAODMCParticle*>(fAODMCParticles->At(i));
        if (!part) {
@@ -370,10 +389,18 @@ void AliJetEmbeddingFromAODTask::Run()
          continue;
        }
        
+       AliDebug(3, Form("Processing MC particle %d with pT = %f, eta = %f, phi = %f", i, part->Pt(), part->Eta(), part->Phi()));
+       
        if (!part->IsPhysicalPrimary()) 
          continue;
 
+       if (part->Pt() < fPtMin || part->Pt() > fPtMax ||
+           part->Eta() < fEtaMin || part->Eta() > fEtaMax ||
+           part->Phi() < fPhiMin || part->Phi() > fPhiMax)
+         continue;
+       
        AddMCParticle(part, i);
+       AliDebug(3, "Embedded!");
       }
     }
   }
@@ -383,6 +410,8 @@ void AliJetEmbeddingFromAODTask::Run()
     if (fCopyArray && fTracks)
       CopyTracks();
 
+    AliDebug(2, Form("Start embedding with %d tracks.", fOutTracks->GetEntriesFast()));
+
     if (fAODTracks) {
       AliDebug(2, Form("%d tracks will be processed for embedding.", fAODTracks->GetEntriesFast()));
       for (Int_t i = 0; i < fAODTracks->GetEntriesFast(); i++) {
@@ -392,6 +421,8 @@ void AliJetEmbeddingFromAODTask::Run()
          continue;
        }
        
+       AliDebug(3, Form("Processing track %d with pT = %f, eta = %f, phi = %f, label = %d", i, track->Pt(), track->Eta(), track->Phi(), track->GetLabel()));
+       
        Int_t type = 0;
        Bool_t isEmc = kFALSE;
        if (!fEsdTreeMode) {
@@ -403,14 +434,17 @@ void AliJetEmbeddingFromAODTask::Run()
            if ((aodtrack->GetStatus()&AliESDtrack::kITSrefit)==0) {
              if (fIncludeNoITS)
                type = 2;
-             else
+             else {
+               AliDebug(3, "Track not embedded because ITS refit failed.");
                continue;
            }
+           }
            else {
              type = 1;
            }
          }
          else { /*not a good track*/
+           AliDebug(3, "Track not embedded because not an hybrid track.");
            continue;
          }
 
@@ -430,17 +464,36 @@ void AliJetEmbeddingFromAODTask::Run()
          }
        }
        
+       if (track->Pt() < fPtMin || track->Pt() > fPtMax ||
+           track->Eta() < fEtaMin || track->Eta() > fEtaMax ||
+           track->Phi() < fPhiMin || track->Phi() > fPhiMax) {
+         AliDebug(3, "Track not embedded because out of limits.");
+         continue;
+       }
+       
+       if (fTrackEfficiency < 1) {
+         Double_t r = gRandom->Rndm();
+         if (fTrackEfficiency < r) {
+           AliDebug(3, "Track not embedded because of artificial inefiiciency.");
+           continue;
+       }
+       }
+       
        Int_t label = 0;
-
-       if (fOutMCParticles) {
-         label = track->GetLabel();
-
-         if (label == 0)
+       if (fIsMC) {
+         if (fUseNegativeLabels)
+           label = track->GetLabel();
+         else 
+           label = TMath::Abs(track->GetLabel());
+         
+         if (label == 0) {
+           AliDebug(2,Form("%s: Track %d with label==0", GetName(), i));
            label = 99999;
+         }
        }
 
-       AliDebug(3, Form("Embedding track with pT = %f, eta = %f, phi = %f", track->Pt(), track->Eta(), track->Phi()));
        AddTrack(track->Pt(), track->Eta(), track->Phi(), type, track->GetTrackEtaOnEMCal(), track->GetTrackPhiOnEMCal(), isEmc, label);
+       AliDebug(3, "Track embedded!");
       }
     }
   }
@@ -460,6 +513,12 @@ void AliJetEmbeddingFromAODTask::Run()
        TLorentzVector vect;
        Double_t vert[3] = {0,0,0};
        clus->GetMomentum(vect,vert);
+
+       if (vect.Pt() < fPtMin || vect.Pt() > fPtMax ||
+           vect.Eta() < fEtaMin || vect.Eta() > fEtaMax ||
+           vect.Phi() < fPhiMin || vect.Phi() > fPhiMax)
+         continue;
+
        AddCluster(clus->E(), vect.Eta(), vect.Phi(), clus->GetLabel());
       }
     }
@@ -481,7 +540,7 @@ void AliJetEmbeddingFromAODTask::Run()
 
     if (fAODCaloCells) {
       for (Short_t i = 0; i < fAODCaloCells->GetNumberOfCells(); i++) {
-       Short_t mclabel = 0;
+       Int_t mclabel = 0;
        Double_t efrac = 0.;
        Double_t time = -1;
        Short_t cellNum = -1;