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$ */
//_________________________________________________________________________
// Macros checking what has been produced by Simulation.C and Reconstruction.C 
// Use Case : 
//          root> .L Checking.C++
//          root> check("HSDRE", "PHOS EMCAL") --> checks how many hits, Sdigits, Digits and 
//                                               Reconstruction objects and ESD have been produced
// author  : Yves Schutz (CERN/SUBATECH)
// February 2004
//_________________________________________________________________________

#include "AliPHOSGetter.h"
#include "AliEMCALGetter.h"
#include "AliESD.h" 
#include "Riostream.h"
#include "TString.h" 

void check(TString opt="HSDRE", TString name="all") 
{
  if ( name.Contains("PHOS") ) {
    AliPHOSGetter * gime = AliPHOSGetter::Instance("galice.root") ; 
    cout << ">>>>>>>>>>>> PHOS:" ; 
    Int_t event ; 
    for (event = 0; event < gime->MaxEvent(); event++) {
      gime->Event(event) ;
      cout << " event # " << event << endl ; 
      if ( opt.Contains("H") )
	cout <<  "  Hits          # " << gime->Hits()->GetEntries() << endl ; 
      if ( opt.Contains("S") )
	cout <<  "  SDigits       # " << gime->SDigits()->GetEntries() << endl ;     
      if ( opt.Contains("D") )
	cout <<  "  Digits        # " << gime->Digits()->GetEntries() << endl ;     
      if ( opt.Contains("R") ){
	cout <<  "  EMC Recpoints # " << gime->EmcRecPoints()->GetEntries() << endl ;     
	cout <<  "  CPV Recpoints # " << gime->CpvRecPoints()->GetEntries() << endl ;     
	cout <<  "  Track Segments# " << gime->TrackSegments()->GetEntries() << endl ;     
	cout <<  "  Rec Particles # " << gime->RecParticles()->GetEntries() << endl ;     
      }
    }
  }
  if ( name.Contains("EMCAL") ) {
    AliEMCALGetter * gime = AliEMCALGetter::Instance("galice.root") ; 
    cout <<  ">>>>>>>>>>>> EMCAL:" ; 
    Int_t event ; 
    for (event = 0; event < gime->MaxEvent(); event++) {
      gime->Event(event) ;
      cout << " event # " << event << endl ; 
      if ( opt.Contains("H") )
	cout <<  "  Hits          # " << gime->Hits()->GetEntries() << endl ; 
      if ( opt.Contains("S") )
	cout <<  "  SDigits       # " << gime->SDigits()->GetEntries() << endl ;     
      if ( opt.Contains("D") )
	cout <<  "  Digits        # " << gime->Digits()->GetEntries() << endl ;     
      if ( opt.Contains("R") ){
	cout <<  "  EMC Recpoints # " << gime->ECARecPoints()->GetEntries() << endl ;     
	cout <<  "  Rec Particles # " << gime->RecParticles()->GetEntries() << endl ;     
      }
    }
  }
  if ( opt.Contains("E") ) {
    AliPHOSGetter * gime = AliPHOSGetter::Instance("galice.root") ; 
    Int_t nEvent = gime->MaxEvent() ;  
    Int_t event ; 
    AliESD * esd ;
    for (event = 0 ; event < nEvent; event++) {
      esd = gime->ESD(event) ; 
      esd->Print(); 
    }
  }
}
 Checker.C:1
 Checker.C:2
 Checker.C:3
 Checker.C:4
 Checker.C:5
 Checker.C:6
 Checker.C:7
 Checker.C:8
 Checker.C:9
 Checker.C:10
 Checker.C:11
 Checker.C:12
 Checker.C:13
 Checker.C:14
 Checker.C:15
 Checker.C:16
 Checker.C:17
 Checker.C:18
 Checker.C:19
 Checker.C:20
 Checker.C:21
 Checker.C:22
 Checker.C:23
 Checker.C:24
 Checker.C:25
 Checker.C:26
 Checker.C:27
 Checker.C:28
 Checker.C:29
 Checker.C:30
 Checker.C:31
 Checker.C:32
 Checker.C:33
 Checker.C:34
 Checker.C:35
 Checker.C:36
 Checker.C:37
 Checker.C:38
 Checker.C:39
 Checker.C:40
 Checker.C:41
 Checker.C:42
 Checker.C:43
 Checker.C:44
 Checker.C:45
 Checker.C:46
 Checker.C:47
 Checker.C:48
 Checker.C:49
 Checker.C:50
 Checker.C:51
 Checker.C:52
 Checker.C:53
 Checker.C:54
 Checker.C:55
 Checker.C:56
 Checker.C:57
 Checker.C:58
 Checker.C:59
 Checker.C:60
 Checker.C:61
 Checker.C:62
 Checker.C:63
 Checker.C:64
 Checker.C:65
 Checker.C:66
 Checker.C:67
 Checker.C:68
 Checker.C:69
 Checker.C:70
 Checker.C:71
 Checker.C:72
 Checker.C:73
 Checker.C:74
 Checker.C:75
 Checker.C:76
 Checker.C:77
 Checker.C:78
 Checker.C:79
 Checker.C:80
 Checker.C:81
 Checker.C:82
 Checker.C:83
 Checker.C:84
 Checker.C:85