1 /****************************************************************************
2 * Origin: I.Belikov, CERN, Jouri.Belikov@cern.ch *
3 ****************************************************************************/
5 #if !defined(__CINT__) || defined(__MAKECINT__)
9 #include "AliRunLoader.h"
10 #include "AliTPCLoader.h"
12 #include "AliTPCParam.h"
13 #include "AliTPCclusterer.h"
16 #include "TStopwatch.h"
19 extern AliRun *gAlice;
21 Int_t AliTPCFindClusters(Int_t nev=5) {
24 delete AliRunLoader::Instance();
25 delete gAlice;//if everything was OK here it is already NULL
29 AliRunLoader* rl = AliRunLoader::Open("galice.root");
31 cerr<<"Can not open session"<<endl;
35 if (rl->LoadgAlice()) {
36 cerr<<"Error occured while l"<<endl;
40 AliTPCLoader *tpcl = (AliTPCLoader*)rl->GetLoader("TPCLoader");
42 cerr<<"Can not get TPC Loader"<<endl;
46 gAlice=rl->GetAliRun();
48 cerr<<"Can't get gAlice !\n";
52 AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");
53 Int_t ver = TPC->IsVersion();
54 cerr<<"TPC version "<<ver<<" has been found !\n";
57 AliTPCParam *dig=(AliTPCParam *)gDirectory->Get("75x40_100x60_150x60");
59 cerr<<"TPC parameters have not been found !\n";
63 if (nev>rl->GetNumberOfEvents()) nev=rl->GetNumberOfEvents();
65 tpcl->LoadRecPoints("recreate");
66 if (ver==1) tpcl->LoadHits("read");
67 else tpcl->LoadDigits("read");
72 cerr<<"Making clusters...\n";
73 AliTPCv1 &tpc=*((AliTPCv1*)TPC);
78 for(Int_t i=0;i<nev;i++) {
79 printf("Processing event %d\n",i);
84 cerr<<"Looking for clusters...\n";
85 AliTPCclusterer *dummy=new AliTPCclusterer(dig), &clusterer=*dummy;
87 for (Int_t i=0;i<nev;i++) {
88 printf("Processing event %d\n",i);
91 TTree *out=tpcl->TreeR();
96 TTree *in=tpcl->TreeD();
98 cerr<<"Can't get digits tree !\n";
102 clusterer.Digits2Clusters(in,out);
104 tpcl->WriteRecPoints("OVERWRITE");
109 cerr<<"Invalid TPC version !\n";
114 timer.Stop(); timer.Print();