AliPhysics  86877f2 (86877f2)
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 <string>
8 #include <vector>
9 
10 #include "AliAnalysisTaskEmcal.h"
11 #include "AliCutValueRange.h"
13 
14 class TClonesArray;
15 class THistManager;
16 class AliOADBContainer;
17 
18 namespace PWG { namespace EMCAL { class AliEmcalTriggerDecisionContainer; } }
19 
20 namespace EMCalTriggerPtAnalysis {
21 
62 public:
63 
68 
76  AliAnalysisTaskEmcalTriggerBase(const char *name);
77 
82 
92  void EnableDCALTriggers(Bool_t doEnable) { fEnableDCALTriggers = doEnable; }
93 
98  void EnableT0Triggers(Bool_t doEnable) { fEnableT0Triggers = doEnable; }
99 
104  void EnableVZEROTriggers(Bool_t doEnable) { fEnableV0Triggers = doEnable; }
105 
114  void EnableNoINTTriggers(Bool_t doEnable) { fEnableNoINTTriggers = doEnable; }
115 
120  void EnableCentralityTriggers(Bool_t doEnable) { fEnableCentralityTriggers = doEnable; }
121 
133  void SetDownscaleOADB(TString oadbname) { fNameDownscaleOADB = oadbname; }
134 
139  void SetApplyDownscaleCorrectionFromOCDB(Bool_t doApply) { fUseDownscaleCorrectionFormOCDB = doApply; }
140 
150  void SetOfflineTriggerSelection(AliEmcalTriggerOfflineSelection *sel) { fTriggerSelection = sel; }
151 
160  AliEmcalTriggerOfflineSelection *GetOfflineTriggerSelection() const { return fTriggerSelection; }
161 
166  void SetApplyVertexCuts(bool doUse) { fApplyVertexCuts = doUse; }
167 
173  void SetVertexCut(double zmin, double zmax) { fVertexCut.SetLimits(zmin, zmax); }
174 
181  void SetUseSPDVertex(bool doUse) { fUseSPDVertex = doUse; }
182 
191  void SetUseTriggerBits(Bool_t doUse) { fUseTriggerBits = doUse; }
192 
201  void SetRequireBunchCrossing(Bool_t doRequire) { fRequireBunchCrossing = doRequire; }
202 
209  void SetRequireAnalysisUtils(Bool_t doRequire) { fRequireAnalysisUtils = doRequire; }
210 
218  void SetExclusiveMinBias(Bool_t exclusivemb) { fExclusiveMinBias = exclusivemb; SetCaloTriggerPatchInfoName(""); }
219 
225  void SetUseTriggerSelectionContainer(Bool_t doUse) { fUseTriggerSelectionContainer = doUse; }
226 
232  void SetNameTriggerSelectionContainer(TString &nameCont) { fNameTriggerSelectionContainer = nameCont;}
233 
234 protected:
235 
244  virtual void UserCreateOutputObjects();
245 
255  virtual bool IsEventSelected();
256 
262  virtual bool IsUserEventSelected() { return true; }
263 
269  virtual void CreateUserHistos() = 0;
270 
275  virtual void CreateUserObjects() = 0;
276 
283  virtual void ExecOnce();
284 
292  virtual void RunChanged(Int_t runnuber);
293 
299 
305 
313  std::vector<TString> GetSupportedTriggers(Bool_t useExclusiveTriggers = true) const;
314 
323  Double_t GetTriggerWeight(const TString &triggerclass) const;
324 
332  void TriggerSelection();
333 
346  bool MatchTriggerFromPattern(const std::string &pattern, const std::string &triggerclass) const;
347 
358  bool MatchTriggerFromContainer(const std::string &pattern, const PWG::EMCAL::AliEmcalTriggerDecisionContainer *trgcont) const;
359 
365  void SetClusterContainer(TString clustercontname) { fNameClusterContainer = clustercontname; }
366 
370  void PrepareDownscaleFactorsFormOCDB();
371 
372 
374 
379  std::vector<TString> fSelectedTriggers;
381 
386 
388  AliOADBContainer *fDownscaleOADB;
391 
399 
400 private:
403 };
404 
405 } /* namespace EMCalTriggerPtAnalysis */
406 
407 #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 EnableT0Triggers(Bool_t doEnable)
Enable T0-based (INT8, EMC8, DMC8) trigger suite (Default: Off)
Base task in the EMCAL framework.
void EnableDCALTriggers(Bool_t doEnable)
Enable / Disable histograms for the DCAL triggers.
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.
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 SetRequireBunchCrossing(Bool_t doRequire)
Defining whether to require bunch crossing events.
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.
Namespace for EMCAL framework classes and task.
Bool_t fRequireAnalysisUtils
Switch whether to require event selection in AliAnalysisUtils.
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.
const Double_t zmin
TString fNameDownscaleOADB
Name of the downscale OADB container.
Bool_t fEnableT0Triggers
Enable triggers depending on T0 (INT8, EMC8, EMC8EGA, EMC8EJE) - default off.
Namespace for PWG framework classes.
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)
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)
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)
void SetNameTriggerSelectionContainer(TString &nameCont)
Set the name of the trigger decision container.
Bool_t fUseTriggerSelectionContainer
Use trigger decision in trigger selection container.
void SetRequireAnalysisUtils(Bool_t doRequire)
Define whether cuts in AliAnalysisUtils are used in the event selection.
void SetVertexCut(double zmin, double zmax)
Set z-range of the primary vertex which is selected.