ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
/*
 * Base class for anaysis components. Inheriting classes have to implement the
 * functions CreateHistos and Process.
 *
 *   Author: Markus Fasel
 */
#include <TAxis.h>
#include "AliEMCalTriggerTracksAnalysisComponent.h"
#include "AliEMCalTriggerBinningComponent.h"
#include "AliEMCalTriggerAnaTriggerDecision.h"

ClassImp(EMCalTriggerPtAnalysis::AliEMCalTriggerTracksAnalysisComponent)

namespace EMCalTriggerPtAnalysis {

//______________________________________________________________________________
AliEMCalTriggerTracksAnalysisComponent::AliEMCalTriggerTracksAnalysisComponent() :
  TNamed(),
  fHistos(NULL),
  fBinning(NULL),
  fKineCuts(NULL),
  fTriggerDecision(NULL)
{
  /*
   * Dummy (I/O) constructor
   */
}

//______________________________________________________________________________
AliEMCalTriggerTracksAnalysisComponent::~AliEMCalTriggerTracksAnalysisComponent() {
  /*
   * Release histogram container
   */
  if(fHistos) delete fHistos;
}

//______________________________________________________________________________
AliEMCalTriggerTracksAnalysisComponent::AliEMCalTriggerTracksAnalysisComponent(const char* name) :
  TNamed(name,""),
  fHistos(NULL),
  fBinning(NULL),
  fKineCuts(NULL),
  fTriggerDecision(NULL)
{
  /*
   * Main constructor, to be called by the user
   *
   * @param name: component name
   */
}

//______________________________________________________________________________
void AliEMCalTriggerTracksAnalysisComponent::CreateHistos() {
  /*
   * Create Container for histograms. Inheriting classes overwrite this method, in which they call
   * this and add the histograms of their choise.
   */
  fHistos = new AliEMCalHistoContainer(Form("Histos%s", GetName()));
  fHistos->ReleaseOwner();
}

//______________________________________________________________________________
TAxis* AliEMCalTriggerTracksAnalysisComponent::DefineAxis(const char* name, const AliEMCalTriggerBinningDimension* binning) {
  /*
   * Create and define axis
   *
   * @param name: Name of the axis
   * @param binning: binning information
   * @return: the new axis
   */
  TAxis *result = new TAxis(binning->GetNumberOfBins(), binning->GetBinLimits());
  result->SetName(name);
  return result;
}

//______________________________________________________________________________
TAxis* AliEMCalTriggerTracksAnalysisComponent::DefineAxis(const char* name, int nbins, double min, double max) {
  /*
   * Create and define axis
   *
   * @param name: Name of the axis
   * @param nbins: number of bins
   * @param min: min. range
   * @param max: max. range
   * @return: the new axis
   */
  TAxis *result = new TAxis(nbins, min, max);
  result->SetName(name);
  return result;
}

//______________________________________________________________________________
void AliEMCalTriggerTracksAnalysisComponent::GetMachingTriggerNames(std::vector<std::string>& triggernames, Bool_t usePatches) {
  /*
   * Get a set of names of trigger strings that is matching with the trigger decision.
   *
   * @param triggernames: output container for selected trigger names
   * @param usePatches: determines whether we use the trigger decision from patches
   */
  triggernames.clear();
  if(!fTriggerDecision) return;
  if(fTriggerDecision->IsMinBias()) triggernames.push_back("MinBias");
  if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJHigh, usePatches)){
    triggernames.push_back("EMCJHigh");
    if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGHigh, usePatches))
      triggernames.push_back("EMCHighBoth");
    else
      triggernames.push_back("EMCHighJetOnly");
  }
  if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJLow, usePatches)){
    triggernames.push_back("EMCJLow");
    if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGLow, usePatches))
      triggernames.push_back("EMCLowBoth");
    else
      triggernames.push_back("EMCLowJetOnly");
  }
  if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGHigh, usePatches)){
    triggernames.push_back("EMCGHigh");
    if(!fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJHigh, usePatches))
      triggernames.push_back("EMCHighGammaOnly");
  }
  if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGLow, usePatches)){
    triggernames.push_back("EMCGLow");
    if(!fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJLow, usePatches))
      triggernames.push_back("EMCLowGammaOnly");
  }
}

} /* namespace EMCalTriggerPtAnalysis */

 AliEMCalTriggerTracksAnalysisComponent.cxx:1
 AliEMCalTriggerTracksAnalysisComponent.cxx:2
 AliEMCalTriggerTracksAnalysisComponent.cxx:3
 AliEMCalTriggerTracksAnalysisComponent.cxx:4
 AliEMCalTriggerTracksAnalysisComponent.cxx:5
 AliEMCalTriggerTracksAnalysisComponent.cxx:6
 AliEMCalTriggerTracksAnalysisComponent.cxx:7
 AliEMCalTriggerTracksAnalysisComponent.cxx:8
 AliEMCalTriggerTracksAnalysisComponent.cxx:9
 AliEMCalTriggerTracksAnalysisComponent.cxx:10
 AliEMCalTriggerTracksAnalysisComponent.cxx:11
 AliEMCalTriggerTracksAnalysisComponent.cxx:12
 AliEMCalTriggerTracksAnalysisComponent.cxx:13
 AliEMCalTriggerTracksAnalysisComponent.cxx:14
 AliEMCalTriggerTracksAnalysisComponent.cxx:15
 AliEMCalTriggerTracksAnalysisComponent.cxx:16
 AliEMCalTriggerTracksAnalysisComponent.cxx:17
 AliEMCalTriggerTracksAnalysisComponent.cxx:18
 AliEMCalTriggerTracksAnalysisComponent.cxx:19
 AliEMCalTriggerTracksAnalysisComponent.cxx:20
 AliEMCalTriggerTracksAnalysisComponent.cxx:21
 AliEMCalTriggerTracksAnalysisComponent.cxx:22
 AliEMCalTriggerTracksAnalysisComponent.cxx:23
 AliEMCalTriggerTracksAnalysisComponent.cxx:24
 AliEMCalTriggerTracksAnalysisComponent.cxx:25
 AliEMCalTriggerTracksAnalysisComponent.cxx:26
 AliEMCalTriggerTracksAnalysisComponent.cxx:27
 AliEMCalTriggerTracksAnalysisComponent.cxx:28
 AliEMCalTriggerTracksAnalysisComponent.cxx:29
 AliEMCalTriggerTracksAnalysisComponent.cxx:30
 AliEMCalTriggerTracksAnalysisComponent.cxx:31
 AliEMCalTriggerTracksAnalysisComponent.cxx:32
 AliEMCalTriggerTracksAnalysisComponent.cxx:33
 AliEMCalTriggerTracksAnalysisComponent.cxx:34
 AliEMCalTriggerTracksAnalysisComponent.cxx:35
 AliEMCalTriggerTracksAnalysisComponent.cxx:36
 AliEMCalTriggerTracksAnalysisComponent.cxx:37
 AliEMCalTriggerTracksAnalysisComponent.cxx:38
 AliEMCalTriggerTracksAnalysisComponent.cxx:39
 AliEMCalTriggerTracksAnalysisComponent.cxx:40
 AliEMCalTriggerTracksAnalysisComponent.cxx:41
 AliEMCalTriggerTracksAnalysisComponent.cxx:42
 AliEMCalTriggerTracksAnalysisComponent.cxx:43
 AliEMCalTriggerTracksAnalysisComponent.cxx:44
 AliEMCalTriggerTracksAnalysisComponent.cxx:45
 AliEMCalTriggerTracksAnalysisComponent.cxx:46
 AliEMCalTriggerTracksAnalysisComponent.cxx:47
 AliEMCalTriggerTracksAnalysisComponent.cxx:48
 AliEMCalTriggerTracksAnalysisComponent.cxx:49
 AliEMCalTriggerTracksAnalysisComponent.cxx:50
 AliEMCalTriggerTracksAnalysisComponent.cxx:51
 AliEMCalTriggerTracksAnalysisComponent.cxx:52
 AliEMCalTriggerTracksAnalysisComponent.cxx:53
 AliEMCalTriggerTracksAnalysisComponent.cxx:54
 AliEMCalTriggerTracksAnalysisComponent.cxx:55
 AliEMCalTriggerTracksAnalysisComponent.cxx:56
 AliEMCalTriggerTracksAnalysisComponent.cxx:57
 AliEMCalTriggerTracksAnalysisComponent.cxx:58
 AliEMCalTriggerTracksAnalysisComponent.cxx:59
 AliEMCalTriggerTracksAnalysisComponent.cxx:60
 AliEMCalTriggerTracksAnalysisComponent.cxx:61
 AliEMCalTriggerTracksAnalysisComponent.cxx:62
 AliEMCalTriggerTracksAnalysisComponent.cxx:63
 AliEMCalTriggerTracksAnalysisComponent.cxx:64
 AliEMCalTriggerTracksAnalysisComponent.cxx:65
 AliEMCalTriggerTracksAnalysisComponent.cxx:66
 AliEMCalTriggerTracksAnalysisComponent.cxx:67
 AliEMCalTriggerTracksAnalysisComponent.cxx:68
 AliEMCalTriggerTracksAnalysisComponent.cxx:69
 AliEMCalTriggerTracksAnalysisComponent.cxx:70
 AliEMCalTriggerTracksAnalysisComponent.cxx:71
 AliEMCalTriggerTracksAnalysisComponent.cxx:72
 AliEMCalTriggerTracksAnalysisComponent.cxx:73
 AliEMCalTriggerTracksAnalysisComponent.cxx:74
 AliEMCalTriggerTracksAnalysisComponent.cxx:75
 AliEMCalTriggerTracksAnalysisComponent.cxx:76
 AliEMCalTriggerTracksAnalysisComponent.cxx:77
 AliEMCalTriggerTracksAnalysisComponent.cxx:78
 AliEMCalTriggerTracksAnalysisComponent.cxx:79
 AliEMCalTriggerTracksAnalysisComponent.cxx:80
 AliEMCalTriggerTracksAnalysisComponent.cxx:81
 AliEMCalTriggerTracksAnalysisComponent.cxx:82
 AliEMCalTriggerTracksAnalysisComponent.cxx:83
 AliEMCalTriggerTracksAnalysisComponent.cxx:84
 AliEMCalTriggerTracksAnalysisComponent.cxx:85
 AliEMCalTriggerTracksAnalysisComponent.cxx:86
 AliEMCalTriggerTracksAnalysisComponent.cxx:87
 AliEMCalTriggerTracksAnalysisComponent.cxx:88
 AliEMCalTriggerTracksAnalysisComponent.cxx:89
 AliEMCalTriggerTracksAnalysisComponent.cxx:90
 AliEMCalTriggerTracksAnalysisComponent.cxx:91
 AliEMCalTriggerTracksAnalysisComponent.cxx:92
 AliEMCalTriggerTracksAnalysisComponent.cxx:93
 AliEMCalTriggerTracksAnalysisComponent.cxx:94
 AliEMCalTriggerTracksAnalysisComponent.cxx:95
 AliEMCalTriggerTracksAnalysisComponent.cxx:96
 AliEMCalTriggerTracksAnalysisComponent.cxx:97
 AliEMCalTriggerTracksAnalysisComponent.cxx:98
 AliEMCalTriggerTracksAnalysisComponent.cxx:99
 AliEMCalTriggerTracksAnalysisComponent.cxx:100
 AliEMCalTriggerTracksAnalysisComponent.cxx:101
 AliEMCalTriggerTracksAnalysisComponent.cxx:102
 AliEMCalTriggerTracksAnalysisComponent.cxx:103
 AliEMCalTriggerTracksAnalysisComponent.cxx:104
 AliEMCalTriggerTracksAnalysisComponent.cxx:105
 AliEMCalTriggerTracksAnalysisComponent.cxx:106
 AliEMCalTriggerTracksAnalysisComponent.cxx:107
 AliEMCalTriggerTracksAnalysisComponent.cxx:108
 AliEMCalTriggerTracksAnalysisComponent.cxx:109
 AliEMCalTriggerTracksAnalysisComponent.cxx:110
 AliEMCalTriggerTracksAnalysisComponent.cxx:111
 AliEMCalTriggerTracksAnalysisComponent.cxx:112
 AliEMCalTriggerTracksAnalysisComponent.cxx:113
 AliEMCalTriggerTracksAnalysisComponent.cxx:114
 AliEMCalTriggerTracksAnalysisComponent.cxx:115
 AliEMCalTriggerTracksAnalysisComponent.cxx:116
 AliEMCalTriggerTracksAnalysisComponent.cxx:117
 AliEMCalTriggerTracksAnalysisComponent.cxx:118
 AliEMCalTriggerTracksAnalysisComponent.cxx:119
 AliEMCalTriggerTracksAnalysisComponent.cxx:120
 AliEMCalTriggerTracksAnalysisComponent.cxx:121
 AliEMCalTriggerTracksAnalysisComponent.cxx:122
 AliEMCalTriggerTracksAnalysisComponent.cxx:123
 AliEMCalTriggerTracksAnalysisComponent.cxx:124
 AliEMCalTriggerTracksAnalysisComponent.cxx:125
 AliEMCalTriggerTracksAnalysisComponent.cxx:126
 AliEMCalTriggerTracksAnalysisComponent.cxx:127
 AliEMCalTriggerTracksAnalysisComponent.cxx:128
 AliEMCalTriggerTracksAnalysisComponent.cxx:129
 AliEMCalTriggerTracksAnalysisComponent.cxx:130
 AliEMCalTriggerTracksAnalysisComponent.cxx:131
 AliEMCalTriggerTracksAnalysisComponent.cxx:132
 AliEMCalTriggerTracksAnalysisComponent.cxx:133
 AliEMCalTriggerTracksAnalysisComponent.cxx:134
 AliEMCalTriggerTracksAnalysisComponent.cxx:135
 AliEMCalTriggerTracksAnalysisComponent.cxx:136
 AliEMCalTriggerTracksAnalysisComponent.cxx:137
 AliEMCalTriggerTracksAnalysisComponent.cxx:138
 AliEMCalTriggerTracksAnalysisComponent.cxx:139
 AliEMCalTriggerTracksAnalysisComponent.cxx:140
 AliEMCalTriggerTracksAnalysisComponent.cxx:141
 AliEMCalTriggerTracksAnalysisComponent.cxx:142
 AliEMCalTriggerTracksAnalysisComponent.cxx:143
 AliEMCalTriggerTracksAnalysisComponent.cxx:144