AliPhysics  1976924 (1976924)
AliAnalysisTaskEmcalTriggerBase.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKEMCALTRIGGERBASE_H
2 #define ALIANALYSISTASKEMCALTRIGGERBASE_H
3 /* Copyright(c) 1998-2016, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 #include <TString.h>
7 #include <vector>
8 
9 #include "AliAnalysisTaskEmcal.h"
10 #include "AliCutValueRange.h"
12 
13 class TClonesArray;
14 class THistManager;
15 class AliOADBContainer;
16 
17 namespace EMCalTriggerPtAnalysis {
18 
59 public:
60 
65 
73  AliAnalysisTaskEmcalTriggerBase(const char *name);
74 
79 
89  void EnableDCALTriggers(Bool_t doEnable) { fEnableDCALTriggers = doEnable; }
90 
95  void EnableT0Triggers(Bool_t doEnable) { fEnableT0Triggers = doEnable; }
96 
101  void EnableVZEROTriggers(Bool_t doEnable) { fEnableV0Triggers = doEnable; }
102 
111  void EnableNoINTTriggers(Bool_t doEnable) { fEnableNoINTTriggers = doEnable; }
112 
118 
130  void SetDownscaleOADB(TString oadbname) { fNameDownscaleOADB = oadbname; }
131 
137 
143  void SetExcludeNoiseEvents(Bool_t doExclude = true) { fRejectNoiseEvents = doExclude; }
144 
150  void SetSelectNoiseEvents(Bool_t doSelect = true) { fSelectNoiseEvents = doSelect; }
151 
156  void SetRequireL0ForL1(Bool_t doRequire = true) { fRequireL0forL1 = doRequire; }
157 
162  void AddMaskedFastor(int fastorID) { fMaskedFastors.push_back(fastorID); }
163 
168  void SetMaskedFastorOADB(TString oadbname) { fNameMaskedFastorOADB = oadbname; }
169 
180 
190 
195  void SetApplyVertexCuts(bool doUse) { fApplyVertexCuts = doUse; }
196 
202  void SetVertexCut(double zmin, double zmax) { fVertexCut.SetLimits(zmin, zmax); }
203 
210  void SetUseSPDVertex(bool doUse) { fUseSPDVertex = doUse; }
211 
217 
223  void SetOnlineTriggerThreshold(const TString &triggerclass, Int_t threshold);
224 
233  void SetUseTriggerBits(Bool_t doUse) { fUseTriggerBits = doUse; }
234 
243  void SetRequireBunchCrossing(Bool_t doRequire) { fRequireBunchCrossing = doRequire; }
244 
251  void SetRequireAnalysisUtils(Bool_t doRequire) { fRequireAnalysisUtils = doRequire; }
252 
260  void SetTriggerAcceptanceOADB(const TString &nameAcceptanceOADB) { fNameAcceptanceOADB = nameAcceptanceOADB; }
261 
270 
277 
284 
285 protected:
286 
295  virtual void UserCreateOutputObjects();
296 
306  virtual bool IsEventSelected();
307 
313  virtual bool IsUserEventSelected() { return true; }
314 
320  virtual void CreateUserHistos() = 0;
321 
326  virtual void CreateUserObjects() = 0;
327 
334  virtual void ExecOnce();
335 
343  virtual void RunChanged(Int_t runnuber);
344 
350 
356 
364  std::vector<TString> GetSupportedTriggers(Bool_t useExclusiveTriggers = true) const;
365 
374  Double_t GetTriggerWeight(const TString &triggerclass) const;
375 
381  TString GetFiredTriggerClassesFromPatches(const TClonesArray* triggerpatches) const;
382 
390  void TriggerSelection();
391 
400 
406  void SetClusterContainer(TString clustercontname) { fNameClusterContainer = clustercontname; }
407 
413  bool OnlineThresholdsInitialized() const;
414 
421 
427  Int_t GetOnlineTriggerThresholdByName(const TString &name) const;
428 
436  Bool_t SelectFiredPatch(const TString &triggerclass, Int_t adc) const;
437 
442 
443 
445 
451  std::vector<TString> fSelectedTriggers;
453 
458 
460  AliOADBContainer *fDownscaleOADB;
463  AliOADBContainer *fMaskedFastorOADB;
464  std::vector<int> fMaskedFastors;
468 
479 
480 private:
483 };
484 
485 } /* namespace EMCalTriggerPtAnalysis */
486 
487 #endif /* ALIANALYSISTASKEMCALTRIGGERBASE_H */
std::vector< TString > fSelectedTriggers
! Triggers selected for given event
void EnableNoINTTriggers(Bool_t doEnable)
Enable EMCAL triggers without coincidence with INT triggers.
double Double_t
Definition: External.C:58
void SetExcludeNoiseEvents(Bool_t doExclude=true)
If true then noise events (events without recalc trigger patch above threshold) are excluded from the...
Int_t GetOnlineTriggerThresholdByIndex(AliEmcalTriggerOfflineSelection::EmcalTriggerClass trg) const
Bool_t fRejectNoiseEvents
Reject events triggered by noisy fastors.
void EnableT0Triggers(Bool_t doEnable)
Enable T0-based (INT8, EMC8, DMC8) trigger suite (Default: Off)
Base task in the EMCAL framework.
void SetOnlineTriggerThreshold(const TString &triggerclass, Int_t threshold)
Setting trigger threshold for online trigger selection.
void EnableDCALTriggers(Bool_t doEnable)
Enable / Disable histograms for the DCAL triggers.
TString GetFiredTriggerClassesFromPatches(const TClonesArray *triggerpatches) const
void EnableCentralityTriggers(Bool_t doEnable)
Enable centrality (CENT/SEMICENT) triggers (only relevant for Pb-Pb)
Bool_t fEnableV0Triggers
Enable VZERO-based triggers (default)
Bool_t fEnableNoINTTriggers
Process EMCAL triggers without coincidence with INT triggers - exotic case - default off...
AliEmcalTriggerOfflineSelection * fTriggerSelection
Offline trigger selection.
AliAnalysisTaskEmcalTriggerBase & operator=(const AliAnalysisTaskEmcalTriggerBase &)
void SetDownscaleOADB(TString oadbname)
Set the name of the OADB container with the downscale factors.
Helper class selecting events on the presence of a trigger patch for the given type above threshold...
void PrepareDownscaleFactorsFormOCDB()
Read the downscale factors from the OCDB.
void SetRequireBunchCrossing(Bool_t doRequire)
Defining whether to require bunch crossing events.
TObjArray fOnlineTriggerThresholds
Trigger thresholds applied at online level.
void SetUseTriggerSelectionContainer(Bool_t doUse)
Use trigger selection container in addition to trigger string.
Bool_t fEnableDCALTriggers
Enable / Disable event selection for DCAL trigger classes.
void SetOfflineTriggerSelection(AliEmcalTriggerOfflineSelection *sel)
Set an offline trigger selection.
void SetCaloTriggerPatchInfoName(const char *n)
TString fNameMaskedFastorOADB
Name of the masked fastor OADB container.
Bool_t fRequireAnalysisUtils
Switch whether to require event selection in AliAnalysisUtils.
bool SelectOnlineTrigger(AliEmcalTriggerOfflineSelection::EmcalTriggerClass trigger) const
void SetRequireL0ForL1(Bool_t doRequire=true)
Specify whether L0 is needed for L1.
Bool_t fRequireBunchCrossing
Require bunch-bunch events (tag -B- in trigger string)
AliEmcalTriggerOfflineSelection * GetOfflineTriggerSelection() const
Providing access to the offline trigger selection.
TString fNameClusterContainer
Name of the cluster container in the event.
int Int_t
Definition: External.C:63
TString fNameTriggerSelectionContainer
Name of the trigger selection container.
EmcalTriggerClass
Definition of the various supported trigger types.
const Double_t zmin
TString fNameDownscaleOADB
Name of the downscale OADB container.
void UseTriggerPatches(Bool_t doUse)
Specify whether the trigger decision should be done from trigger patches.
Bool_t fEnableT0Triggers
Enable triggers depending on T0 (INT8, EMC8, EMC8EGA, EMC8EJE) - default off.
TString fNameAcceptanceOADB
Name of the OADB container with the trigger acceptance.
AliOADBContainer * fMaskedFastorOADB
! Container with masked fastors
Bool_t fSelectNoiseEvents
Explicitly select events triggered only by noisy fastors.
void SetUseTriggerBits(Bool_t doUse)
Defining whether to require trigger bits.
Bool_t fEnableCentralityTriggers
Enable central / semi-central trigger.
Bool_t fUseTriggerBits
Switch whether using trigger bits (relies on physics selection)
Bool_t fTriggerStringFromPatches
Do rebuild the trigger string from trigger patches.
void SetSelectNoiseEvents(Bool_t doSelect=true)
If true then noise events (events without recalc trigger patch above threshold) are explicitly select...
void SetExclusiveMinBias(Bool_t exclusivemb)
Run event loop only on min. bias events.
void SetApplyDownscaleCorrectionFromOCDB(Bool_t doApply)
Load the downscale factors run-by-run from the OCDB.
AliOADBContainer * fDownscaleOADB
! Container with downscale factors for different triggers
Analysis of high- tracks in triggered events.
Bool_t fUseSPDVertex
Use SPD vertex (for productions without TPC)
void AddMaskedFastor(int fastorID)
Add absolute ID of a FastOR to be masked (excluded from trigger patches)
Container class for histograms.
Definition: THistManager.h:99
const Double_t zmax
AliCutValueRange< double > fVertexCut
Cut on the z-position of the primary vertex.
bool Bool_t
Definition: External.C:53
void EnableVZEROTriggers(Bool_t doEnable)
Enable VZERO-based (INT7, EMC7, DMC7) trigger suite (Default: On)
Bool_t SelectFiredPatch(const TString &triggerclass, Int_t adc) const
void SetNameTriggerSelectionContainer(TString &nameCont)
Set the name of the trigger decision container.
Bool_t fUseTriggerSelectionContainer
Use trigger decision in trigger selection container.
std::vector< TString > GetSupportedTriggers(Bool_t useExclusiveTriggers=true) const
void SetRequireAnalysisUtils(Bool_t doRequire)
Define whether cuts in AliAnalysisUtils are used in the event selection.
void SetMaskedFastorOADB(TString oadbname)
Set the name of the file with the OADB container containing the masked FastORs.
void SetVertexCut(double zmin, double zmax)
Set z-range of the primary vertex which is selected.