]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliEMCalTriggerTracksAnalysisComponent.cxx
6cc0d6d65a34cb62291615882255e0feff35b9e3
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliEMCalTriggerTracksAnalysisComponent.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15 /*
16  * Base class for anaysis components. Inheriting classes have to implement the
17  * functions CreateHistos and Process.
18  *
19  *   Author: Markus Fasel
20  */
21 #include <TAxis.h>
22
23 #include "AliEMCalTriggerAnaTriggerDecision.h"
24 #include "AliEMCalTriggerBinningComponent.h"
25 #include "AliEMCalTriggerTracksAnalysisComponent.h"
26
27 ClassImp(EMCalTriggerPtAnalysis::AliEMCalTriggerTracksAnalysisComponent)
28
29 namespace EMCalTriggerPtAnalysis {
30
31 //______________________________________________________________________________
32 AliEMCalTriggerTracksAnalysisComponent::AliEMCalTriggerTracksAnalysisComponent() :
33   TNamed(),
34   fHistos(NULL),
35   fBinning(NULL),
36   fKineCuts(NULL),
37   fTriggerDecision(NULL)
38 {
39   /*
40    * Dummy (I/O) constructor
41    */
42 }
43
44 //______________________________________________________________________________
45 AliEMCalTriggerTracksAnalysisComponent::~AliEMCalTriggerTracksAnalysisComponent() {
46   /*
47    * Release histogram container
48    */
49   if(fHistos) delete fHistos;
50 }
51
52 //______________________________________________________________________________
53 AliEMCalTriggerTracksAnalysisComponent::AliEMCalTriggerTracksAnalysisComponent(const char* name) :
54   TNamed(name,""),
55   fHistos(NULL),
56   fBinning(NULL),
57   fKineCuts(NULL),
58   fTriggerDecision(NULL)
59 {
60   /*
61    * Main constructor, to be called by the user
62    *
63    * @param name: component name
64    */
65 }
66
67 //______________________________________________________________________________
68 void AliEMCalTriggerTracksAnalysisComponent::CreateHistos() {
69   /*
70    * Create Container for histograms. Inheriting classes overwrite this method, in which they call
71    * this and add the histograms of their choise.
72    */
73   fHistos = new AliEMCalHistoContainer(Form("Histos%s", GetName()));
74   fHistos->ReleaseOwner();
75 }
76
77 //______________________________________________________________________________
78 TAxis* AliEMCalTriggerTracksAnalysisComponent::DefineAxis(const char* name, const AliEMCalTriggerBinningDimension* binning) {
79   /*
80    * Create and define axis
81    *
82    * @param name: Name of the axis
83    * @param binning: binning information
84    * @return: the new axis
85    */
86   TAxis *result = new TAxis(binning->GetNumberOfBins(), binning->GetBinLimits());
87   result->SetName(name);
88   return result;
89 }
90
91 //______________________________________________________________________________
92 TAxis* AliEMCalTriggerTracksAnalysisComponent::DefineAxis(const char* name, int nbins, double min, double max) {
93   /*
94    * Create and define axis
95    *
96    * @param name: Name of the axis
97    * @param nbins: number of bins
98    * @param min: min. range
99    * @param max: max. range
100    * @return: the new axis
101    */
102   TAxis *result = new TAxis(nbins, min, max);
103   result->SetName(name);
104   return result;
105 }
106
107 //______________________________________________________________________________
108 void AliEMCalTriggerTracksAnalysisComponent::GetMachingTriggerNames(std::vector<std::string>& triggernames, Bool_t usePatches) {
109   /*
110    * Get a set of names of trigger strings that is matching with the trigger decision.
111    *
112    * @param triggernames: output container for selected trigger names
113    * @param usePatches: determines whether we use the trigger decision from patches
114    */
115   triggernames.clear();
116   if(!fTriggerDecision) return;
117   if(fTriggerDecision->IsMinBias()) triggernames.push_back("MinBias");
118   if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJHigh, usePatches)){
119     triggernames.push_back("EMCJHigh");
120     if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGHigh, usePatches))
121       triggernames.push_back("EMCHighBoth");
122     else
123       triggernames.push_back("EMCHighJetOnly");
124   }
125   if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJLow, usePatches)){
126     triggernames.push_back("EMCJLow");
127     if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGLow, usePatches))
128       triggernames.push_back("EMCLowBoth");
129     else
130       triggernames.push_back("EMCLowJetOnly");
131   }
132   if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGHigh, usePatches)){
133     triggernames.push_back("EMCGHigh");
134     if(!fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJHigh, usePatches))
135       triggernames.push_back("EMCHighGammaOnly");
136   }
137   if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGLow, usePatches)){
138     triggernames.push_back("EMCGLow");
139     if(!fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJLow, usePatches))
140       triggernames.push_back("EMCLowGammaOnly");
141   }
142 }
143
144 } /* namespace EMCalTriggerPtAnalysis */
145