#include "AliDielectronDebugTree.h"
#include "AliDielectronSignalMC.h"
#include "AliDielectronMixingHandler.h"
+#include "AliDielectronV0Cuts.h"
#include "AliDielectron.h"
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){
// 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();
+ }
+ }
+
}
//________________________________________________________________
if(!IsNewEvent(ev)) return;
// printf(" Build V0 candidates according to the applied cuts \n");
- // TODO think about MCevent
- // Print();
-
// rest booleans
fV0TrackArr.ResetAllBits();
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);
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);
printf("Error: Couldn't get V0 daughter: %p - %p\n",trNeg,trPos);
continue;
}
- //nV0stored++;
+ nV0stored++;
// PID default cuts
if(fPID>=0) {
else
return;
- // printf(" Number of V0s candiates found %d \n",nV0s);
+ // printf(" Number of V0s candiates found %d/%d \n",nV0s,nV0stored);
}
//________________________________________________________________________
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: