ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, 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.                  *
 **************************************************************************/

// $Id$

// Macro to generate histograms from digits
// By E. Sicking, CERN

TTree* GetTreeD(Int_t ievent, const TString& detName, Int_t nfiles) 
{
  for (Int_t file =0; file<nfiles; file++) {
    TString filename(detName);
    if ( file == 0 ) {
      filename += ".Digits.root";
    }  
    else { 
      filename += TString(Form(".Digits%d.root",file));
    }

    TFile* file0 = TFile::Open(filename.Data());

    TTree* treeD = (TTree*)file0->Get(Form("Event%d/TreeD",ievent));
    if (treeD)  return treeD;
  }
  return 0;
}  
    
void digitsEMCAL(Int_t nevents, Int_t nfiles) {

  TH1F *hadc     = new TH1F("hadc","EMCAL digit",200, -10., 200.);
  TH1F *hadclog     = new TH1F("hadclog","EMCAL digit",200, 0.5, 3.);
  
    TTree *treeD=0x0;
  
    TClonesArray *digits =0x0;
  
    for (Int_t event=0; event<nevents; event++) {
      cout << "Event " << event << endl;

      treeD = GetTreeD(event, "EMCAL", nfiles);
      if ( ! treeD ) {
        cerr << "Event directory not found in " << nfiles <<  " files" << endl;
        exit(1);
      }      

      digits = NULL;
      treeD->SetBranchAddress("EMCAL", &digits);

      for(Int_t iev=0; iev<treeD->GetEntries(); iev++){
	treeD->GetEntry(iev);

      
	for (Int_t j = 0; j < digits->GetEntries(); j++) {
	  AliDigitNew* dig = dynamic_cast<AliDigitNew*> (digits->At(j));
	  hadc->Fill(dig->GetAmp());
	  if(dig->GetAmp()>0)hadclog->Fill(TMath::Log10(dig->GetAmp()));
	}

      }
    }

   TFile fc("digits.EMCAL.root","RECREATE");
   fc.cd();
   
   hadc->Write();
   hadclog->Write();

   fc.Close();
}







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