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 digitsHMPID(Int_t nevents, Int_t nfiles){


  TH1F *hadc     = new TH1F("hadc","HMPID digit",200, -100., 3000.);
  TH1F *hadclog     = new TH1F("hadclog","HMPID digit",200, -0., 4.);
  
    TTree *treeD=0x0;
  
    TClonesArray *digits =0x0;
  
    for (Int_t event=0; event<nevents; event++) {
      cout << "Event " << event << endl;

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

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

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

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

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

   fc.Close();

}







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