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.                  *
 **************************************************************************/
/*
 * Class performing the selection of triggered events
 *
 * Author:
 *    Markus Fasel
 */
#include <TClonesArray.h>
#include <TString.h>
#include "AliVEvent.h"
#include "AliEmcalTriggerPatchInfo.h"
#include "AliEMCalTriggerAnaTriggerDecision.h"
#include "AliEMCalTriggerEventData.h"

ClassImp(EMCalTriggerPtAnalysis::AliEMCalTriggerAnaTriggerDecision)

namespace EMCalTriggerPtAnalysis {

//______________________________________________________________________________
AliEMCalTriggerAnaTriggerDecision::AliEMCalTriggerAnaTriggerDecision() :
    fSwapThresholds(kFALSE),
    fIsMinBias(kFALSE)
{
  /*
   * Main constructor
   */
  Reset();
}

//______________________________________________________________________________
void AliEMCalTriggerAnaTriggerDecision::Create(const AliEMCalTriggerEventData* const data) {
  /*
   * Steer creation of the trigger decision
   *
   * @param data: all event information
   */
  Reset();
  MakeDecisionFromPatches(*(data->GetTriggerPatchContainer()));
  MakeDecisionFromString(data->GetRecEvent()->GetFiredTriggerClasses());
}

//______________________________________________________________________________
void AliEMCalTriggerAnaTriggerDecision::Reset() {
  for(int itrg = 0; itrg < 4; itrg++){
    fDecisionFromPatches[itrg] = kFALSE;
    fDecisionFromString[itrg] = kFALSE;
  }
}

//______________________________________________________________________________
void AliEMCalTriggerAnaTriggerDecision::MakeDecisionFromString(const TString& triggerstring) {
  /*
   * Create trigger decision from trigger string
   *
   * @param triggerstring: the trigger string
   */
  if(triggerstring.Contains("EJ1")) fDecisionFromString[kTAEMCJHigh]  = kTRUE;
  if(triggerstring.Contains("EJ2")) fDecisionFromString[kTAEMCJLow]   = kTRUE;
  if(triggerstring.Contains("EG1")) fDecisionFromString[kTAEMCGHigh]  = kTRUE;
  if(triggerstring.Contains("EG2")) fDecisionFromString[kTAEMCGLow]   = kTRUE;
}

//______________________________________________________________________________
void AliEMCalTriggerAnaTriggerDecision::MakeDecisionFromPatches(const TClonesArray& listOfPatches) {
  /*
   * Create trigger decision from trigger patches. In case swap thresholds is requested, the low threshold
   * triggers are replaced by the high threshold triggers and vice versa
   *
   * @param triggerstring: the TClonesArray of the trigger patches, created by the trigger patch maker
   */
  TIter patchIter(&listOfPatches);
  AliEmcalTriggerPatchInfo *mypatch(NULL);
  while((mypatch = dynamic_cast<AliEmcalTriggerPatchInfo *>(patchIter()))){
    if(mypatch->IsJetHigh()) fDecisionFromPatches[fSwapThresholds ? kTAEMCJLow : kTAEMCJHigh] = kTRUE;
    if(mypatch->IsJetLow()) fDecisionFromPatches[fSwapThresholds ? kTAEMCJHigh : kTAEMCJLow] = kTRUE;
    if(mypatch->IsGammaHigh()) fDecisionFromPatches[fSwapThresholds ? kTAEMCGLow : kTAEMCGHigh] = kTRUE;
    if(mypatch->IsGammaLow()) fDecisionFromPatches[fSwapThresholds ? kTAEMCGHigh : kTAEMCJLow] = kTRUE;
  }
}

} /* namespace EMCalTriggerPtAnalysis */
 AliEMCalTriggerAnaTriggerDecision.cxx:1
 AliEMCalTriggerAnaTriggerDecision.cxx:2
 AliEMCalTriggerAnaTriggerDecision.cxx:3
 AliEMCalTriggerAnaTriggerDecision.cxx:4
 AliEMCalTriggerAnaTriggerDecision.cxx:5
 AliEMCalTriggerAnaTriggerDecision.cxx:6
 AliEMCalTriggerAnaTriggerDecision.cxx:7
 AliEMCalTriggerAnaTriggerDecision.cxx:8
 AliEMCalTriggerAnaTriggerDecision.cxx:9
 AliEMCalTriggerAnaTriggerDecision.cxx:10
 AliEMCalTriggerAnaTriggerDecision.cxx:11
 AliEMCalTriggerAnaTriggerDecision.cxx:12
 AliEMCalTriggerAnaTriggerDecision.cxx:13
 AliEMCalTriggerAnaTriggerDecision.cxx:14
 AliEMCalTriggerAnaTriggerDecision.cxx:15
 AliEMCalTriggerAnaTriggerDecision.cxx:16
 AliEMCalTriggerAnaTriggerDecision.cxx:17
 AliEMCalTriggerAnaTriggerDecision.cxx:18
 AliEMCalTriggerAnaTriggerDecision.cxx:19
 AliEMCalTriggerAnaTriggerDecision.cxx:20
 AliEMCalTriggerAnaTriggerDecision.cxx:21
 AliEMCalTriggerAnaTriggerDecision.cxx:22
 AliEMCalTriggerAnaTriggerDecision.cxx:23
 AliEMCalTriggerAnaTriggerDecision.cxx:24
 AliEMCalTriggerAnaTriggerDecision.cxx:25
 AliEMCalTriggerAnaTriggerDecision.cxx:26
 AliEMCalTriggerAnaTriggerDecision.cxx:27
 AliEMCalTriggerAnaTriggerDecision.cxx:28
 AliEMCalTriggerAnaTriggerDecision.cxx:29
 AliEMCalTriggerAnaTriggerDecision.cxx:30
 AliEMCalTriggerAnaTriggerDecision.cxx:31
 AliEMCalTriggerAnaTriggerDecision.cxx:32
 AliEMCalTriggerAnaTriggerDecision.cxx:33
 AliEMCalTriggerAnaTriggerDecision.cxx:34
 AliEMCalTriggerAnaTriggerDecision.cxx:35
 AliEMCalTriggerAnaTriggerDecision.cxx:36
 AliEMCalTriggerAnaTriggerDecision.cxx:37
 AliEMCalTriggerAnaTriggerDecision.cxx:38
 AliEMCalTriggerAnaTriggerDecision.cxx:39
 AliEMCalTriggerAnaTriggerDecision.cxx:40
 AliEMCalTriggerAnaTriggerDecision.cxx:41
 AliEMCalTriggerAnaTriggerDecision.cxx:42
 AliEMCalTriggerAnaTriggerDecision.cxx:43
 AliEMCalTriggerAnaTriggerDecision.cxx:44
 AliEMCalTriggerAnaTriggerDecision.cxx:45
 AliEMCalTriggerAnaTriggerDecision.cxx:46
 AliEMCalTriggerAnaTriggerDecision.cxx:47
 AliEMCalTriggerAnaTriggerDecision.cxx:48
 AliEMCalTriggerAnaTriggerDecision.cxx:49
 AliEMCalTriggerAnaTriggerDecision.cxx:50
 AliEMCalTriggerAnaTriggerDecision.cxx:51
 AliEMCalTriggerAnaTriggerDecision.cxx:52
 AliEMCalTriggerAnaTriggerDecision.cxx:53
 AliEMCalTriggerAnaTriggerDecision.cxx:54
 AliEMCalTriggerAnaTriggerDecision.cxx:55
 AliEMCalTriggerAnaTriggerDecision.cxx:56
 AliEMCalTriggerAnaTriggerDecision.cxx:57
 AliEMCalTriggerAnaTriggerDecision.cxx:58
 AliEMCalTriggerAnaTriggerDecision.cxx:59
 AliEMCalTriggerAnaTriggerDecision.cxx:60
 AliEMCalTriggerAnaTriggerDecision.cxx:61
 AliEMCalTriggerAnaTriggerDecision.cxx:62
 AliEMCalTriggerAnaTriggerDecision.cxx:63
 AliEMCalTriggerAnaTriggerDecision.cxx:64
 AliEMCalTriggerAnaTriggerDecision.cxx:65
 AliEMCalTriggerAnaTriggerDecision.cxx:66
 AliEMCalTriggerAnaTriggerDecision.cxx:67
 AliEMCalTriggerAnaTriggerDecision.cxx:68
 AliEMCalTriggerAnaTriggerDecision.cxx:69
 AliEMCalTriggerAnaTriggerDecision.cxx:70
 AliEMCalTriggerAnaTriggerDecision.cxx:71
 AliEMCalTriggerAnaTriggerDecision.cxx:72
 AliEMCalTriggerAnaTriggerDecision.cxx:73
 AliEMCalTriggerAnaTriggerDecision.cxx:74
 AliEMCalTriggerAnaTriggerDecision.cxx:75
 AliEMCalTriggerAnaTriggerDecision.cxx:76
 AliEMCalTriggerAnaTriggerDecision.cxx:77
 AliEMCalTriggerAnaTriggerDecision.cxx:78
 AliEMCalTriggerAnaTriggerDecision.cxx:79
 AliEMCalTriggerAnaTriggerDecision.cxx:80
 AliEMCalTriggerAnaTriggerDecision.cxx:81
 AliEMCalTriggerAnaTriggerDecision.cxx:82
 AliEMCalTriggerAnaTriggerDecision.cxx:83
 AliEMCalTriggerAnaTriggerDecision.cxx:84
 AliEMCalTriggerAnaTriggerDecision.cxx:85
 AliEMCalTriggerAnaTriggerDecision.cxx:86
 AliEMCalTriggerAnaTriggerDecision.cxx:87
 AliEMCalTriggerAnaTriggerDecision.cxx:88
 AliEMCalTriggerAnaTriggerDecision.cxx:89
 AliEMCalTriggerAnaTriggerDecision.cxx:90
 AliEMCalTriggerAnaTriggerDecision.cxx:91
 AliEMCalTriggerAnaTriggerDecision.cxx:92
 AliEMCalTriggerAnaTriggerDecision.cxx:93
 AliEMCalTriggerAnaTriggerDecision.cxx:94