fTriggerMask(AliVEvent::kMB),
fExcludeTriggerMask(0),
fTriggerOnV0AND(kFALSE),
+ fFiredTrigger(""),
+ fFiredExclude(kFALSE),
fRejectPileup(kFALSE),
fBeamEnergy(-1.),
fTriggerLogic(kAny),
fTriggerMask(AliVEvent::kMB),
fExcludeTriggerMask(0),
fTriggerOnV0AND(kFALSE),
+ fFiredTrigger(""),
+ fFiredExclude(kFALSE),
fRejectPileup(kFALSE),
fBeamEnergy(-1.),
fTriggerLogic(kAny),
fListHistos.SetOwner(kFALSE);
fListCF.SetOwner(kFALSE);
+ // try to reduce memory issues
+ if(fEventStat) { delete fEventStat; fEventStat=0; }
+ if(fTriggerAnalysis) { delete fTriggerAnalysis; fTriggerAnalysis=0; }
}
//_________________________________________________________________________________
void AliAnalysisTaskMultiDielectron::UserCreateOutputObjects()
AliDielectron *die=0;
while ( (die=static_cast<AliDielectron*>(nextDie())) ){
die->Init();
- if (die->GetHistogramList()) fListHistos.Add(const_cast<THashList*>(die->GetHistogramList()));
- if (die->GetHistogramArray()) fListHistos.Add(const_cast<TObjArray*>(die->GetHistogramArray()));
- if (die->GetCFManagerPair()) fListCF.Add(const_cast<AliCFContainer*>(die->GetCFManagerPair()->GetContainer()));
+ if (die->GetHistogramList()) fListHistos.Add(const_cast<THashList*>(die->GetHistogramList()));
+ if (die->GetHistogramArray()) fListHistos.Add(const_cast<TObjArray*>(die->GetHistogramArray()));
+ if (die->GetQAHistArray()) fListHistos.Add(const_cast<TObjArray*>(die->GetQAHistArray()));
+ if (die->GetCFManagerPair()) fListCF.Add(const_cast<AliCFContainer*>(die->GetCFManagerPair()->GetContainer()));
}
Int_t cuts=fListDielectron.GetEntries();
if (fExcludeTriggerMask && (isSelected&fExcludeTriggerMask)) isRejected=kTRUE;
if (fTriggerLogic==kAny) isSelected&=fTriggerMask;
else if (fTriggerLogic==kExact) isSelected=((isSelected&fTriggerMask)==fTriggerMask);
+
+ TString firedTriggerClasses=InputEvent()->GetFiredTriggerClasses();
+ if(!fFiredTrigger.IsNull()) isSelected=(firedTriggerClasses.Contains(fFiredTrigger))^fFiredExclude;
}
}
//Fill Event histograms before the event filter
TIter nextDie(&fListDielectron);
AliDielectron *die=0;
- Double_t values[AliDielectronVarManager::kNMaxValues]={0};
- Double_t valuesMC[AliDielectronVarManager::kNMaxValues]={0};
- AliDielectronVarManager::SetEvent(InputEvent());
- AliDielectronVarManager::Fill(InputEvent(),values);
- AliDielectronVarManager::Fill(InputEvent(),valuesMC);
Bool_t hasMC=AliDielectronMC::Instance()->HasMC();
- if (hasMC) {
- if (AliDielectronMC::Instance()->ConnectMCEvent())
- AliDielectronVarManager::Fill(AliDielectronMC::Instance()->GetMCEvent(),valuesMC);
- }
-
while ( (die=static_cast<AliDielectron*>(nextDie())) ){
AliDielectronHistos *h=die->GetHistoManager();
if (h){
- if (h->GetHistogramList()->FindObject("Event_noCuts"))
- h->FillClass("Event_noCuts",AliDielectronVarManager::kNMaxValues,values);
- if (hasMC && h->GetHistogramList()->FindObject("MCEvent_noCuts"))
- h->FillClass("Event_noCuts",AliDielectronVarManager::kNMaxValues,valuesMC);
+ if (hasMC && AliDielectronMC::Instance()->ConnectMCEvent() && h->GetHistogramList()->FindObject("MCEvent_noCuts")) {
+ AliDielectronVarManager::SetEvent(AliDielectronMC::Instance()->GetMCEvent());
+ h->FillClass("MCEvent_noCuts",AliDielectronVarManager::kNMaxValues,AliDielectronVarManager::GetData());
+ }
+ if (h->GetHistogramList()->FindObject("Event_noCuts")) {
+ AliDielectronVarManager::SetEvent(InputEvent());
+ h->FillClass("Event_noCuts",AliDielectronVarManager::kNMaxValues,AliDielectronVarManager::GetData());
+ }
}
}
nextDie.Reset();
AliKFParticle::SetField( bz );
AliDielectronPID::SetCorrVal((Double_t)InputEvent()->GetRunNumber());
- // AliDielectronPair::SetBeamEnergy(InputEvent(), fBeamEnergy);
+ AliDielectronPair::SetBeamEnergy(InputEvent(), fBeamEnergy);
//Process event in all AliDielectron instances
// TIter nextDie(&fListDielectron);