-V0 finder for MC same as in data
authorjbook <jbook@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 26 Mar 2013 10:41:55 +0000 (10:41 +0000)
committerjbook <jbook@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 26 Mar 2013 10:41:55 +0000 (10:41 +0000)
PWGDQ/dielectron/AliDielectron.cxx
PWGDQ/dielectron/AliDielectronV0Cuts.cxx
PWGDQ/dielectron/AliDielectronV0Cuts.h

index 6c90c05..8694620 100644 (file)
@@ -65,6 +65,7 @@ The names are available via the function PairClassName(Int_t i)
 #include "AliDielectronDebugTree.h"
 #include "AliDielectronSignalMC.h"
 #include "AliDielectronMixingHandler.h"
+#include "AliDielectronV0Cuts.h"
 
 #include "AliDielectron.h"
 
@@ -233,6 +234,14 @@ void AliDielectron::Process(AliVEvent *ev1, AliVEvent *ev2)
     return;
   }
 
+  // modify event numbers in MC so that we can identify new events 
+  // in AliDielectronV0Cuts (not neeeded for collision data)
+  if(GetHasMC()) {
+    ev1->SetBunchCrossNumber(1);
+    ev1->SetOrbitNumber(1);
+    ev1->SetPeriodNumber(1);
+  }
+
   // set event
   AliDielectronVarManager::SetEvent(ev1);
   if (fMixing){
@@ -308,7 +317,16 @@ void AliDielectron::Process(AliVEvent *ev1, AliVEvent *ev2)
 
   // clear arrays
   if (!fDontClearArrays) ClearArrays();
+
+  // reset TPC EP and unique identifiers for v0 cut class 
   AliDielectronVarManager::SetTPCEventPlane(0x0);
+  if(GetHasMC()) { // only for MC needed
+    for (Int_t iCut=0; iCut<fTrackFilter.GetCuts()->GetEntries();++iCut) {
+      if ( fTrackFilter.GetCuts()->At(iCut)->IsA() == AliDielectronV0Cuts::Class() )
+       ((AliDielectronV0Cuts*)fTrackFilter.GetCuts()->At(iCut))->ResetUniqueEventNumbers();
+    }
+  }
+
 }
 
 //________________________________________________________________
index 9b785e8..b115b81 100644 (file)
@@ -104,9 +104,6 @@ void AliDielectronV0Cuts::InitEvent(AliVTrack *trk)
   if(!IsNewEvent(ev)) return;
   //  printf(" Build V0 candidates according to the applied cuts \n");
 
-  // TODO think about MCevent
-  //  Print();
-
   // rest booleans
   fV0TrackArr.ResetAllBits();
 
@@ -122,7 +119,8 @@ void AliDielectronV0Cuts::InitEvent(AliVTrack *trk)
   AliDielectronPID dauPIDcuts;
   if(fPID>=0) dauPIDcuts.SetDefaults(fPID);
 
-  Int_t nV0s = 0;
+  Int_t nV0s      = 0;
+  Int_t nV0stored = 0;
   AliDielectronPair candidate;
   candidate.SetPdgCode(fMotherPdg);
 
@@ -177,7 +175,6 @@ void AliDielectronV0Cuts::InitEvent(AliVTrack *trk)
   else if(ev->IsA() == AliAODEvent::Class()) {
     const AliAODEvent *aodEv = static_cast<const AliAODEvent*>(ev);
 
-    //    Int_t nV0stored = 0;
     // loop over vertices
     for (Int_t ivertex=0; ivertex<aodEv->GetNumberOfVertices(); ++ivertex){
       AliAODVertex *v=aodEv->GetVertex(ivertex);
@@ -190,7 +187,7 @@ void AliDielectronV0Cuts::InitEvent(AliVTrack *trk)
        printf("Error: Couldn't get V0 daughter: %p - %p\n",trNeg,trPos);
        continue;
       }
-      //nV0stored++;
+      nV0stored++;
 
       // PID default cuts
       if(fPID>=0) {
@@ -221,7 +218,7 @@ void AliDielectronV0Cuts::InitEvent(AliVTrack *trk)
   else
     return;
 
-  //  printf(" Number of V0s candiates found %d \n",nV0s);
+  //  printf(" Number of V0s candiates found %d/%d \n",nV0s,nV0stored);
 
 }
 //________________________________________________________________________
index c296065..6891bc3 100644 (file)
@@ -43,6 +43,7 @@ public:
   void SetPdgCodes(Int_t mother, Int_t negDaughter, Int_t posDaughter) {fMotherPdg=mother; fNegPdg=negDaughter; fPosPdg=posDaughter;}
   void SetExcludeTracks(Bool_t exclude) {fExcludeTracks=exclude;}
   void SetDefaultPID(Int_t def) {fPID=def;}
+  void ResetUniqueEventNumbers() { fOrbit=0; fPeriod=0; fBunchCross=0; }
 
 private: