ROOT logo
//
// Bad cells analysis task.
//
// Author: M. Verweij

#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TList.h>
#include <TLorentzVector.h>

#include "AliVCluster.h"
#include "AliVTrack.h"
#include "AliLog.h"
#include "AliEMCALGeometry.h"
#include "AliVCaloCells.h"

#include "AliAnalysisTaskEmcalBadCells.h"

ClassImp(AliAnalysisTaskEmcalBadCells)

//________________________________________________________________________
AliAnalysisTaskEmcalBadCells::AliAnalysisTaskEmcalBadCells() : 
  AliAnalysisTaskEmcal("AliAnalysisTaskEmcalBadCells"),
  fh2AmplitudeCellNumber(0x0)
{
  // Default constructor.


  SetMakeGeneralHistograms(kTRUE);
}

//________________________________________________________________________
AliAnalysisTaskEmcalBadCells::AliAnalysisTaskEmcalBadCells(const char *name, Bool_t histo) : 
  AliAnalysisTaskEmcal(name, histo),
  fh2AmplitudeCellNumber(0x0)
{
  // Standard constructor.

  SetMakeGeneralHistograms(histo);
}

//________________________________________________________________________
AliAnalysisTaskEmcalBadCells::~AliAnalysisTaskEmcalBadCells()
{
  // Destructor.
}

//________________________________________________________________________
void AliAnalysisTaskEmcalBadCells::UserCreateOutputObjects()
{
  // Create user output.

  AliAnalysisTaskEmcal::UserCreateOutputObjects();

  fh2AmplitudeCellNumber = new TH2F("fh2AmplitudeCellNumber","fh2AmplitudeCellNumber",11520,0,11520,100,0,10);
  fOutput->Add(fh2AmplitudeCellNumber);

  PostData(1, fOutput); // Post data for ALL output slots > 0 here.
}

//________________________________________________________________________
Bool_t AliAnalysisTaskEmcalBadCells::FillHistograms()
{
  // Fill histograms.

  if(!fGeom)
    fGeom = AliEMCALGeometry::GetInstance();

  Short_t absId = -1;
  Int_t nCells  =  0;

  Int_t absIdMin = 1000000;
  Int_t absIdMax = -1;

  if (fCaloCells) {
    if(fCaloCells->IsEMCAL()){
      for (Int_t icell = 0; icell <  fCaloCells->GetNumberOfCells(); icell++) {

	nCells++;

	Double_t amp =0., time = 0., efrac = 0;
	Int_t mclabel = -1;

	fCaloCells->GetCell(icell, absId, amp, time,mclabel,efrac);
	if(absId<absIdMin) absIdMin=absId;
	if(absId>absIdMax) absIdMax=absId;

	fh2AmplitudeCellNumber->Fill(absId,amp);

      }
      //      AliInfo(Form("%s: absId min: %d  max: %d  nCells: %d",GetName(),absIdMin,absIdMax,nCells));
    }

  }
  
 

  return kTRUE;
}

//________________________________________________________________________
Bool_t AliAnalysisTaskEmcalBadCells::Run()
{
  // Run analysis code here, if needed. It will be executed before FillHistograms().

  return kTRUE;  // If return kFALSE FillHistogram() will NOT be executed.
}

//________________________________________________________________________
void AliAnalysisTaskEmcalBadCells::Terminate(Option_t *) 
{
  // Called once at the end of the analysis.
}
 AliAnalysisTaskEmcalBadCells.cxx:1
 AliAnalysisTaskEmcalBadCells.cxx:2
 AliAnalysisTaskEmcalBadCells.cxx:3
 AliAnalysisTaskEmcalBadCells.cxx:4
 AliAnalysisTaskEmcalBadCells.cxx:5
 AliAnalysisTaskEmcalBadCells.cxx:6
 AliAnalysisTaskEmcalBadCells.cxx:7
 AliAnalysisTaskEmcalBadCells.cxx:8
 AliAnalysisTaskEmcalBadCells.cxx:9
 AliAnalysisTaskEmcalBadCells.cxx:10
 AliAnalysisTaskEmcalBadCells.cxx:11
 AliAnalysisTaskEmcalBadCells.cxx:12
 AliAnalysisTaskEmcalBadCells.cxx:13
 AliAnalysisTaskEmcalBadCells.cxx:14
 AliAnalysisTaskEmcalBadCells.cxx:15
 AliAnalysisTaskEmcalBadCells.cxx:16
 AliAnalysisTaskEmcalBadCells.cxx:17
 AliAnalysisTaskEmcalBadCells.cxx:18
 AliAnalysisTaskEmcalBadCells.cxx:19
 AliAnalysisTaskEmcalBadCells.cxx:20
 AliAnalysisTaskEmcalBadCells.cxx:21
 AliAnalysisTaskEmcalBadCells.cxx:22
 AliAnalysisTaskEmcalBadCells.cxx:23
 AliAnalysisTaskEmcalBadCells.cxx:24
 AliAnalysisTaskEmcalBadCells.cxx:25
 AliAnalysisTaskEmcalBadCells.cxx:26
 AliAnalysisTaskEmcalBadCells.cxx:27
 AliAnalysisTaskEmcalBadCells.cxx:28
 AliAnalysisTaskEmcalBadCells.cxx:29
 AliAnalysisTaskEmcalBadCells.cxx:30
 AliAnalysisTaskEmcalBadCells.cxx:31
 AliAnalysisTaskEmcalBadCells.cxx:32
 AliAnalysisTaskEmcalBadCells.cxx:33
 AliAnalysisTaskEmcalBadCells.cxx:34
 AliAnalysisTaskEmcalBadCells.cxx:35
 AliAnalysisTaskEmcalBadCells.cxx:36
 AliAnalysisTaskEmcalBadCells.cxx:37
 AliAnalysisTaskEmcalBadCells.cxx:38
 AliAnalysisTaskEmcalBadCells.cxx:39
 AliAnalysisTaskEmcalBadCells.cxx:40
 AliAnalysisTaskEmcalBadCells.cxx:41
 AliAnalysisTaskEmcalBadCells.cxx:42
 AliAnalysisTaskEmcalBadCells.cxx:43
 AliAnalysisTaskEmcalBadCells.cxx:44
 AliAnalysisTaskEmcalBadCells.cxx:45
 AliAnalysisTaskEmcalBadCells.cxx:46
 AliAnalysisTaskEmcalBadCells.cxx:47
 AliAnalysisTaskEmcalBadCells.cxx:48
 AliAnalysisTaskEmcalBadCells.cxx:49
 AliAnalysisTaskEmcalBadCells.cxx:50
 AliAnalysisTaskEmcalBadCells.cxx:51
 AliAnalysisTaskEmcalBadCells.cxx:52
 AliAnalysisTaskEmcalBadCells.cxx:53
 AliAnalysisTaskEmcalBadCells.cxx:54
 AliAnalysisTaskEmcalBadCells.cxx:55
 AliAnalysisTaskEmcalBadCells.cxx:56
 AliAnalysisTaskEmcalBadCells.cxx:57
 AliAnalysisTaskEmcalBadCells.cxx:58
 AliAnalysisTaskEmcalBadCells.cxx:59
 AliAnalysisTaskEmcalBadCells.cxx:60
 AliAnalysisTaskEmcalBadCells.cxx:61
 AliAnalysisTaskEmcalBadCells.cxx:62
 AliAnalysisTaskEmcalBadCells.cxx:63
 AliAnalysisTaskEmcalBadCells.cxx:64
 AliAnalysisTaskEmcalBadCells.cxx:65
 AliAnalysisTaskEmcalBadCells.cxx:66
 AliAnalysisTaskEmcalBadCells.cxx:67
 AliAnalysisTaskEmcalBadCells.cxx:68
 AliAnalysisTaskEmcalBadCells.cxx:69
 AliAnalysisTaskEmcalBadCells.cxx:70
 AliAnalysisTaskEmcalBadCells.cxx:71
 AliAnalysisTaskEmcalBadCells.cxx:72
 AliAnalysisTaskEmcalBadCells.cxx:73
 AliAnalysisTaskEmcalBadCells.cxx:74
 AliAnalysisTaskEmcalBadCells.cxx:75
 AliAnalysisTaskEmcalBadCells.cxx:76
 AliAnalysisTaskEmcalBadCells.cxx:77
 AliAnalysisTaskEmcalBadCells.cxx:78
 AliAnalysisTaskEmcalBadCells.cxx:79
 AliAnalysisTaskEmcalBadCells.cxx:80
 AliAnalysisTaskEmcalBadCells.cxx:81
 AliAnalysisTaskEmcalBadCells.cxx:82
 AliAnalysisTaskEmcalBadCells.cxx:83
 AliAnalysisTaskEmcalBadCells.cxx:84
 AliAnalysisTaskEmcalBadCells.cxx:85
 AliAnalysisTaskEmcalBadCells.cxx:86
 AliAnalysisTaskEmcalBadCells.cxx:87
 AliAnalysisTaskEmcalBadCells.cxx:88
 AliAnalysisTaskEmcalBadCells.cxx:89
 AliAnalysisTaskEmcalBadCells.cxx:90
 AliAnalysisTaskEmcalBadCells.cxx:91
 AliAnalysisTaskEmcalBadCells.cxx:92
 AliAnalysisTaskEmcalBadCells.cxx:93
 AliAnalysisTaskEmcalBadCells.cxx:94
 AliAnalysisTaskEmcalBadCells.cxx:95
 AliAnalysisTaskEmcalBadCells.cxx:96
 AliAnalysisTaskEmcalBadCells.cxx:97
 AliAnalysisTaskEmcalBadCells.cxx:98
 AliAnalysisTaskEmcalBadCells.cxx:99
 AliAnalysisTaskEmcalBadCells.cxx:100
 AliAnalysisTaskEmcalBadCells.cxx:101
 AliAnalysisTaskEmcalBadCells.cxx:102
 AliAnalysisTaskEmcalBadCells.cxx:103
 AliAnalysisTaskEmcalBadCells.cxx:104
 AliAnalysisTaskEmcalBadCells.cxx:105
 AliAnalysisTaskEmcalBadCells.cxx:106
 AliAnalysisTaskEmcalBadCells.cxx:107
 AliAnalysisTaskEmcalBadCells.cxx:108
 AliAnalysisTaskEmcalBadCells.cxx:109
 AliAnalysisTaskEmcalBadCells.cxx:110
 AliAnalysisTaskEmcalBadCells.cxx:111
 AliAnalysisTaskEmcalBadCells.cxx:112
 AliAnalysisTaskEmcalBadCells.cxx:113
 AliAnalysisTaskEmcalBadCells.cxx:114