]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Some changes for the candle
authormfloris <mfloris@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 17 Mar 2011 14:39:57 +0000 (14:39 +0000)
committermfloris <mfloris@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 17 Mar 2011 14:39:57 +0000 (14:39 +0000)
PWG0/multPbPb/AliAnalysisTaskTriggerStudy.cxx
PWG0/multPbPb/run.C

index 22ec4c7900c2bc59732c60b6c0278055f285e1ce..3c4690f09ac7963d2d9936079c671db0fcbba599 100644 (file)
 #include "AliESDVZERO.h"
 #include "TH2F.h"
 #include "AliESDUtils.h"
+#include "AliGenPythiaEventHeader.h"
+#include "AliGenDPMjetEventHeader.h"
 
 using namespace std;
 
 ClassImp(AliAnalysisTaskTriggerStudy)
 
 //const char * AliAnalysisTaskTriggerStudy::kVDNames[] = {"C0SM1","C0SM2","C0VBA","C0VBC","C0OM2"};       
-const char * AliAnalysisTaskTriggerStudy::kVDNames[] = {"V0AND","V0OR","NTRACKS"};//,"C0OM2"};       
+const char * AliAnalysisTaskTriggerStudy::kVDNames[] = {"V0AND","V0OR","NTRACKS", "NTRACKS ESD"};//,"C0OM2"};       
 
 AliAnalysisTaskTriggerStudy::AliAnalysisTaskTriggerStudy()
 : AliAnalysisTaskSE("TaskTriggerStudy"),
@@ -140,17 +142,94 @@ void AliAnalysisTaskTriggerStudy::UserExec(Option_t *)
   Bool_t v0BG  = v0ABG || v0CBG;
 
   // At least one track in eta < 0.8 with pt > 0.5
+  // MC Checks
+  Bool_t atLeast1Track = kFALSE;
+  Bool_t isSD = kFALSE;
+  Bool_t isND = kFALSE;
+
+  if(fIsMC) {
+    if (!fMCEvent) {
+      AliError("No MC info found");
+    } else {
+      Int_t nMCTracks = fMCEvent->GetNumberOfTracks();
+      Int_t nPhysicalPrimaries = 0;
+      for (Int_t ipart=0; ipart<nMCTracks; ipart++) {  
+       AliMCParticle *mcPart  = (AliMCParticle*)fMCEvent->GetTrack(ipart);
+       // We don't care about neutrals and non-physical primaries
+       if(mcPart->Charge() == 0) continue;
+
+       //check if current particle is a physical primary
+       if(!fMCEvent->IsPhysicalPrimary(ipart)) continue;
+       if(mcPart->Pt()<0.5) continue;
+       if(TMath::Abs(mcPart->Eta())>0.8) continue;
+       atLeast1Track = kTRUE;
+       break;
+      }
+      
+      AliGenPythiaEventHeader * headPy  = 0;
+      AliGenDPMjetEventHeader * headPho = 0;
+      AliGenEventHeader * htmp = fMCEvent->GenEventHeader();
+      if(!htmp) {
+       AliFatal("Cannot Get MC Header!!");
+       return;
+      }
+      if( TString(htmp->IsA()->GetName()) == "AliGenPythiaEventHeader") {
+       headPy =  (AliGenPythiaEventHeader*) htmp;
+      } else if (TString(htmp->IsA()->GetName()) == "AliGenDPMjetEventHeader") {
+       headPho = (AliGenDPMjetEventHeader*) htmp;
+      } else {
+       AliFatal("Unknown header");     
+      }
+      if(headPy)   {
+       //    cout << "Process: " << headPy->ProcessType() << endl;
+       if(headPy->ProcessType() == 92 || headPy->ProcessType() == 93) {
+         isSD = kTRUE; // is single difractive
+       }
+       if(headPy->ProcessType() != 92 && headPy->ProcessType() != 93 && headPy->ProcessType() != 94) {     
+         isND = kTRUE; // is non-diffractive
+       }
+       
+      } else if (headPho) {
+       if(headPho->ProcessType() == 5 || headPho->ProcessType() == 6 ) {
+         isSD = kTRUE;
+       }       
+       if(headPho->ProcessType() != 5 && headPho->ProcessType() != 6  && headPho->ProcessType() != 7 ) {
+         isND = kTRUE;
+       }       
+      }
+      
+    }
+  }
+  
   static AliESDtrackCuts * cuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010();
-  cuts->SetPtRange(0.5,10000);
-  cuts->SetEtaRange(-0.8, 0.8);
-  Bool_t atLeast1Track = cuts->CountAcceptedTracks(fESD) > 0;
+  // cuts->SetPtRange(0.5,10000);
+  // cuts->SetEtaRange(-0.8, 0.8);
+  Int_t ntracksLoop = fESD->GetNumberOfTracks();
+
+  Bool_t atLeast1TrackESD = kFALSE;
+  for (Int_t iTrack = 0; iTrack<ntracksLoop; iTrack++) {    
+    AliESDtrack * track = dynamic_cast<AliESDtrack*>(fESD->GetTrack(iTrack));
+    // for each track
+    
+    // track quality cuts
+    if(!cuts->AcceptTrack(track)) continue;
+    if(track->Pt()<0.5) continue;
+    if(TMath::Abs(track->Eta())>0.8) continue;
+
+    atLeast1TrackESD = kTRUE;
+    break;
+  }
+
+
 
   Bool_t vdArray[kNVDEntries];
   vdArray[kVDV0AND]    = c0v0A && c0v0C;
   vdArray[kVDV0OR]     = c0v0A || c0v0C;
   vdArray[kVDNTRACKS]  = atLeast1Track;
+  //  vdArray[kVDNTRACKSESD]  = atLeast1TrackESD;
 
   FillTriggerOverlaps("All", "All Events",vdArray);
+  if(!isSD)   FillTriggerOverlaps("NSD", "NSD Events",vdArray);
 
 
   // Physics selection
index 9a55807dfc525461032e7786f51c2fe033c1b357..44213a4c01abcb9ec9968d90980c1ed06069c389 100644 (file)
@@ -288,9 +288,9 @@ void InitAndLoadLibs(Int_t runMode=kMyRunModeLocal, Int_t workers=0,Bool_t debug
     {
       cout << "Init in CAF mode" << endl;
     
-      gEnv->SetValue("XSec.GSI.DelegProxy", "2");
-      TProof * p = TProof::Open("alice-caf.cern.ch", workers>0 ? Form("workers=%d",workers) : "");
-      //TProof * p = TProof::Open("skaf.saske.sk", workers>0 ? Form("workers=%d",workers) : "");    
+      //gEnv->SetValue("XSec.GSI.DelegProxy", "2");
+      //      TProof * p = TProof::Open("alice-caf.cern.ch", workers>0 ? Form("workers=%d",workers) : "");
+      TProof * p = TProof::Open("skaf.saske.sk", workers>0 ? Form("workers=%d",workers) : "");    
       p->Exec("TObject *o = gEnv->GetTable()->FindObject(\"Proof.UseMergers\"); gEnv->GetTable()->Remove(o);", kTRUE);
 
       // gProof->EnablePackage("VO_ALICE@AliRoot::v4-21-17b-AN");