AliPhysics  4c9ecbb (4c9ecbb)
AliEmcalTriggerSelection.h
Go to the documentation of this file.
1 /************************************************************************************
2  * Copyright (C) 2017, Copyright Holders of the ALICE Collaboration *
3  * All rights reserved. *
4  * *
5  * Redistribution and use in source and binary forms, with or without *
6  * modification, are permitted provided that the following conditions are met: *
7  * * Redistributions of source code must retain the above copyright *
8  * notice, this list of conditions and the following disclaimer. *
9  * * Redistributions in binary form must reproduce the above copyright *
10  * notice, this list of conditions and the following disclaimer in the *
11  * documentation and/or other materials provided with the distribution. *
12  * * Neither the name of the <organization> nor the *
13  * names of its contributors may be used to endorse or promote products *
14  * derived from this software without specific prior written permission. *
15  * *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND *
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED *
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *
19  * DISCLAIMED. IN NO EVENT SHALL ALICE COLLABORATION BE LIABLE FOR ANY *
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES *
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; *
22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND *
23  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
25  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
26  ************************************************************************************/
27 #ifndef ALIEMCALTRIGGERSELECTION_H
28 #define ALIEMCALTRIGGERSELECTION_H
29 
30 #include <iosfwd>
31 #include <TNamed.h>
32 #include <TString.h>
33 
34 class AliEMCALTriggerPatchInfo;
35 class TClonesArray;
36 
37 // operator<< has to be forward declared carefully to stay in the global namespace so that it works with CINT.
38 // For generally how to keep the operator in the global namespace, See: https://stackoverflow.com/a/38801633
39 namespace PWG { namespace EMCAL { class AliEmcalTriggerSelection; } }
40 std::ostream & operator<< (std::ostream &in, const PWG::EMCAL::AliEmcalTriggerSelection &sel);
41 
42 namespace PWG {
43 
44 namespace EMCAL {
45 
46 class AliEmcalTriggerDecision;
47 class AliEmcalTriggerSelectionCuts;
48 
61 public:
62 
69 
78  AliEmcalTriggerSelection(const char *name, const AliEmcalTriggerSelectionCuts * const cuts);
79 
84 
89  const AliEmcalTriggerSelectionCuts *GetSelectionCuts() const { return fSelectionCuts; }
90 
95  void SetSelectionCuts(const AliEmcalTriggerSelectionCuts * const cuts) { fSelectionCuts = cuts; }
96 
106  AliEmcalTriggerDecision * MakeDecison(const TClonesArray * const reconstructedPatches) const;
107 
117  friend std::ostream& ::operator<<(std::ostream &stream, const AliEmcalTriggerSelection &sel);
118 protected:
120 
122  ClassDef(AliEmcalTriggerSelection, 1); // EMCAL trigger selection component
124 
125 private:
127  AliEmcalTriggerSelection &operator=(const AliEmcalTriggerSelection &ref);
128 
136  void PrintStream(std::ostream &stream) const;
137 };
138 
139 }
140 }
141 
142 
143 #endif /* ALIEMCALTRIGGERSELECTION_H */
Class for the selection of trigger patches in the EMCAL triggered event selection.
Object performing offline EMCAL trigger selection.
void SetSelectionCuts(const AliEmcalTriggerSelectionCuts *const cuts)
Set the selection cuts used in this trigger selection.
const AliEmcalTriggerSelectionCuts * fSelectionCuts
Cuts used for the trigger patch selection.
Container for trigger decision.
Namespace for EMCAL framework classes and task.
const AliEmcalTriggerSelectionCuts * GetSelectionCuts() const
Get the selection cuts used in the trigger selection.
Namespace for PWG framework classes.
std::ostream & operator<<(std::ostream &stream, const AliEmcalTrackSelResultPtr &ref)