15 #include <TClonesArray.h>
19 #include "AliEMCALTriggerPatchInfo.h"
26 namespace EMCalTriggerPtAnalysis {
28 AliEmcalTriggerOfflineSelection::AliEmcalTriggerOfflineSelection() {
29 memset(fOfflineEnergyThreshold, 0,
sizeof(
Double_t) * kTrgn);
30 memset(fAcceptanceMaps, 0,
sizeof(
TH2 *) * kTrgn);
33 AliEmcalTriggerOfflineSelection::~AliEmcalTriggerOfflineSelection(){
34 for(
int itrg = 0; itrg < kTrgn; itrg++){
35 if(fAcceptanceMaps[itrg])
delete fAcceptanceMaps[itrg];
39 Bool_t AliEmcalTriggerOfflineSelection::IsOfflineSelected(
EmcalTriggerClass trgcls,
const TClonesArray *
const triggerpatches)
const {
40 if(fOfflineEnergyThreshold[trgcls] < 0)
return true;
41 bool isSingleShower = IsSingleShower(trgcls);
43 AliEMCALTriggerPatchInfo *patch = NULL;
44 for(TIter patchIter = TIter(triggerpatches).Begin(); patchIter != TIter::End(); ++patchIter){
45 patch =
static_cast<AliEMCALTriggerPatchInfo *
>(*patchIter);
46 if(!patch->IsOfflineSimple())
continue;
48 if(!patch->IsGammaLowSimple())
continue;
50 if(!patch->IsJetLowSimple())
continue;
52 if(patch->GetPatchE() > fOfflineEnergyThreshold[trgcls]){
54 if(fAcceptanceMaps[trgcls]){
55 double acceptanceprob = fAcceptanceMaps[trgcls]->GetBinContent(patch->GetColStart(), patch->GetRowStart()),
56 patchprob =
gRandom->Uniform(0., 1.);
57 if(patchprob < acceptanceprob) nfound++;
67 return ((cls == kTrgEG1) || (cls == kTrgEG2) || (cls == kTrgEL0) || (cls == kTrgDG1) || (cls == kTrgDG2) || (cls == kTrgDL0));
72 return ((cls == kTrgDL0) || (cls == kTrgDG1) || (cls == kTrgDG2) || (cls == kTrgDJ1) || (cls == kTrgDJ2));
Helper class selecting events on the presence of a trigger patch for the given type above threshold...
EmcalTriggerClass
Definition of the various supported trigger types.
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC