ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include<Riostream.h>
#include<TROOT.h>
#include<TClassTable.h>
#include<TClonesArray.h>
#include<TGeoManager.h>
#include <TInterpreter.h>
#include<TTree.h>
#include "AliRun.h"
#include "AliITSgeom.h"
#include "AliGeomManager.h"
#include "AliITSDetTypeRec.h"
#include "AliITSRecPoint.h"
#include "AliITSdigit.h"
#include "AliITSdigitSSD.h"
#include "AliITShit.h"
#include "AliITSmodule.h" 
#include "AliITSsegmentation.h"
#include "AliITSsegmentationSPD.h" 
#include "AliITSsegmentationSDD.h"
#include "AliITSsegmentationSSD.h"
#include "AliRunLoader.h"
#include "AliITSLoader.h"
#include "AliHeader.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#endif
void AliITSPrintRecPoints(Int_t outtype=1,TString rfn="galice.root",
                          Int_t mod=-1,Int_t evnt=-1){
  // Macro to print out the recpoints for all or a specific module

  // Dynamically link some shared libs
  if (gClassTable->GetID("AliRun") < 0) {
    gInterpreter->ExecuteMacro("loadlibs.C");
  }
  else {
    if(gAlice){
      delete AliRunLoader::Instance();
      delete gAlice;
      gAlice=0;
    }
  }

  // Set OCDB if needed
  AliCDBManager* man = AliCDBManager::Instance();
  if (!man->IsDefaultStorageSet()) {
    printf("Setting a local default storage and run number 0\n");
    man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
    man->SetRun(0);
  }
  else {
    printf("Using deafult storage \n");
  }

  AliRunLoader* rl = AliRunLoader::Open(rfn.Data());
  if (rl == 0x0){
    cerr<<"AliITSPrintRecPoints.C : Can not open session RL=NULL"<< endl;
    return;
  }
  Int_t retval = rl->LoadgAlice();
  if (retval){
    cerr<<"AliITSPrintRecPoints.C : LoadgAlice returned error"<<endl;
    return;
  }
  gAlice=rl->GetAliRun();

  retval = rl->LoadHeader();
  if (retval){
    cerr<<"AliITSPrintRecPoints.C : LoadHeader returned error"<<endl;
    return;
  }

  AliITSLoader* ITSloader =  (AliITSLoader*) rl->GetLoader("ITSLoader");

  if(!ITSloader){
    cerr<<"AliITSPrintRecPoints.C :  ITS loader not found"<<endl;
    return;
  }
  cout <<"ITSloader ok"<<endl;

  if(!gGeoManager){
    AliGeomManager::LoadGeometry("geometry.root");
  } 
  ITSloader->LoadHits("read");
  ITSloader->LoadDigits("read");
  ITSloader->LoadRecPoints("read");
  cout << "loaded hits, digits, and RecPoints"<< endl;
 
  AliITSgeom *gm=0;
  gm = ITSloader->GetITSgeom();

  Int_t evNumber1 = 0;
  Int_t evNumber2 = AliRunLoader::GetNumberOfEvents();
  if(evnt>=0){
    evNumber1 = evnt;
    evNumber2 = evnt+1;
  } // end if evnt>=0
  Int_t mod1 = 0;
  Int_t mod2 = gm->GetIndexMax();
  if(mod>=0){
    mod1 = mod;
    mod2 = mod+1;
  } // end if mod>=0
  TClonesArray *rpa;
  AliITSRecPoint *rp = 0;
  AliITSDetTypeRec* rec = new AliITSDetTypeRec();
  rec->SetITSgeom(gm);
  rec->SetDefaults();

  Int_t event,m,i,i2;
  Float_t xyz[3];
  for(event = evNumber1; event < evNumber2; event++){
    rl->GetEvent(event);
    //    rec->SetTreeAddress();
    for(m=mod1;m<mod2;m++){
      rec->ResetRecPoints();
      TTree *TR = ITSloader->TreeR();
      rec->SetTreeAddressR(TR);
      TR->GetEvent(m);
      rpa = rec->RecPoints();
      i2 = rpa->GetEntriesFast();
      cout <<  "Event=" << event << " module=" << m <<
	" Number of Recpoints=" << i2 <<endl;
      for(i=0;i<i2;i++){
          rp = (AliITSRecPoint*)(rpa->At(i));
          switch(outtype){
          case 1:
              rp->GetGlobalXYZ(xyz);
              cout << i << " lx=" << rp->GetDetLocalX() 
                        << " lz=" << rp->GetDetLocalZ() 
                   << " x=" << rp->GetX() 
                   << " y=" << rp->GetY()<< " z=" << rp->GetZ() 
                   <<" gx=" << xyz[0] << " gy="<< xyz[1] <<" gz="<<xyz[2]
                   << endl;
              break;
          default:
              cout << i << " ";
              rp->Print();
              cout << endl;
              break;
          } // end switch
      } // end for i
    } // end for m
  } // end for event

}
 AliITSPrintRecPoints.C:1
 AliITSPrintRecPoints.C:2
 AliITSPrintRecPoints.C:3
 AliITSPrintRecPoints.C:4
 AliITSPrintRecPoints.C:5
 AliITSPrintRecPoints.C:6
 AliITSPrintRecPoints.C:7
 AliITSPrintRecPoints.C:8
 AliITSPrintRecPoints.C:9
 AliITSPrintRecPoints.C:10
 AliITSPrintRecPoints.C:11
 AliITSPrintRecPoints.C:12
 AliITSPrintRecPoints.C:13
 AliITSPrintRecPoints.C:14
 AliITSPrintRecPoints.C:15
 AliITSPrintRecPoints.C:16
 AliITSPrintRecPoints.C:17
 AliITSPrintRecPoints.C:18
 AliITSPrintRecPoints.C:19
 AliITSPrintRecPoints.C:20
 AliITSPrintRecPoints.C:21
 AliITSPrintRecPoints.C:22
 AliITSPrintRecPoints.C:23
 AliITSPrintRecPoints.C:24
 AliITSPrintRecPoints.C:25
 AliITSPrintRecPoints.C:26
 AliITSPrintRecPoints.C:27
 AliITSPrintRecPoints.C:28
 AliITSPrintRecPoints.C:29
 AliITSPrintRecPoints.C:30
 AliITSPrintRecPoints.C:31
 AliITSPrintRecPoints.C:32
 AliITSPrintRecPoints.C:33
 AliITSPrintRecPoints.C:34
 AliITSPrintRecPoints.C:35
 AliITSPrintRecPoints.C:36
 AliITSPrintRecPoints.C:37
 AliITSPrintRecPoints.C:38
 AliITSPrintRecPoints.C:39
 AliITSPrintRecPoints.C:40
 AliITSPrintRecPoints.C:41
 AliITSPrintRecPoints.C:42
 AliITSPrintRecPoints.C:43
 AliITSPrintRecPoints.C:44
 AliITSPrintRecPoints.C:45
 AliITSPrintRecPoints.C:46
 AliITSPrintRecPoints.C:47
 AliITSPrintRecPoints.C:48
 AliITSPrintRecPoints.C:49
 AliITSPrintRecPoints.C:50
 AliITSPrintRecPoints.C:51
 AliITSPrintRecPoints.C:52
 AliITSPrintRecPoints.C:53
 AliITSPrintRecPoints.C:54
 AliITSPrintRecPoints.C:55
 AliITSPrintRecPoints.C:56
 AliITSPrintRecPoints.C:57
 AliITSPrintRecPoints.C:58
 AliITSPrintRecPoints.C:59
 AliITSPrintRecPoints.C:60
 AliITSPrintRecPoints.C:61
 AliITSPrintRecPoints.C:62
 AliITSPrintRecPoints.C:63
 AliITSPrintRecPoints.C:64
 AliITSPrintRecPoints.C:65
 AliITSPrintRecPoints.C:66
 AliITSPrintRecPoints.C:67
 AliITSPrintRecPoints.C:68
 AliITSPrintRecPoints.C:69
 AliITSPrintRecPoints.C:70
 AliITSPrintRecPoints.C:71
 AliITSPrintRecPoints.C:72
 AliITSPrintRecPoints.C:73
 AliITSPrintRecPoints.C:74
 AliITSPrintRecPoints.C:75
 AliITSPrintRecPoints.C:76
 AliITSPrintRecPoints.C:77
 AliITSPrintRecPoints.C:78
 AliITSPrintRecPoints.C:79
 AliITSPrintRecPoints.C:80
 AliITSPrintRecPoints.C:81
 AliITSPrintRecPoints.C:82
 AliITSPrintRecPoints.C:83
 AliITSPrintRecPoints.C:84
 AliITSPrintRecPoints.C:85
 AliITSPrintRecPoints.C:86
 AliITSPrintRecPoints.C:87
 AliITSPrintRecPoints.C:88
 AliITSPrintRecPoints.C:89
 AliITSPrintRecPoints.C:90
 AliITSPrintRecPoints.C:91
 AliITSPrintRecPoints.C:92
 AliITSPrintRecPoints.C:93
 AliITSPrintRecPoints.C:94
 AliITSPrintRecPoints.C:95
 AliITSPrintRecPoints.C:96
 AliITSPrintRecPoints.C:97
 AliITSPrintRecPoints.C:98
 AliITSPrintRecPoints.C:99
 AliITSPrintRecPoints.C:100
 AliITSPrintRecPoints.C:101
 AliITSPrintRecPoints.C:102
 AliITSPrintRecPoints.C:103
 AliITSPrintRecPoints.C:104
 AliITSPrintRecPoints.C:105
 AliITSPrintRecPoints.C:106
 AliITSPrintRecPoints.C:107
 AliITSPrintRecPoints.C:108
 AliITSPrintRecPoints.C:109
 AliITSPrintRecPoints.C:110
 AliITSPrintRecPoints.C:111
 AliITSPrintRecPoints.C:112
 AliITSPrintRecPoints.C:113
 AliITSPrintRecPoints.C:114
 AliITSPrintRecPoints.C:115
 AliITSPrintRecPoints.C:116
 AliITSPrintRecPoints.C:117
 AliITSPrintRecPoints.C:118
 AliITSPrintRecPoints.C:119
 AliITSPrintRecPoints.C:120
 AliITSPrintRecPoints.C:121
 AliITSPrintRecPoints.C:122
 AliITSPrintRecPoints.C:123
 AliITSPrintRecPoints.C:124
 AliITSPrintRecPoints.C:125
 AliITSPrintRecPoints.C:126
 AliITSPrintRecPoints.C:127
 AliITSPrintRecPoints.C:128
 AliITSPrintRecPoints.C:129
 AliITSPrintRecPoints.C:130
 AliITSPrintRecPoints.C:131
 AliITSPrintRecPoints.C:132
 AliITSPrintRecPoints.C:133
 AliITSPrintRecPoints.C:134
 AliITSPrintRecPoints.C:135
 AliITSPrintRecPoints.C:136
 AliITSPrintRecPoints.C:137
 AliITSPrintRecPoints.C:138
 AliITSPrintRecPoints.C:139
 AliITSPrintRecPoints.C:140
 AliITSPrintRecPoints.C:141
 AliITSPrintRecPoints.C:142
 AliITSPrintRecPoints.C:143
 AliITSPrintRecPoints.C:144
 AliITSPrintRecPoints.C:145
 AliITSPrintRecPoints.C:146
 AliITSPrintRecPoints.C:147