]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSFindClustersBari.C
Memory leak corrected (M.Bondila)
[u/mrichter/AliRoot.git] / ITS / AliITSFindClustersBari.C
CommitLineData
88c93889 1Int_t AliITSFindClustersBari() {
2
3 printf("FindClusters\n");
4
5 TFile *in=TFile::Open("galice.root","UPDATE");
6 if (!in->IsOpen()) {cerr<<"Can't open galice.root !\n"; return 2;}
7
8 in->ls();
9
10 if (!(gAlice=(AliRun*)in->Get("gAlice"))) {
11 cerr<<"gAlice have not been found on galice.root !\n";
12 return 2;
13 }
14
15
16 gAlice->GetEvent(0);
17
18 AliITS *ITS = (AliITS*)gAlice->GetDetector("ITS");
19 if (!ITS) {
20 cerr<<"ITSFindClusters.C : AliITS object not found on file\n";
21 return 3;
22 }
23 Int_t ver = ITS->IsVersion();
24 cerr<<"ITS version "<<ver<<" has been found !\n";
25
426edb57 26 ITS->MakeTreeC();
88c93889 27// Set the models for cluster finding
28 AliITSgeom *geom = ITS->GetITSgeom();
29
30 // SPD
31 AliITSDetType *iDetType=ITS->DetType(0);
32 AliITSsegmentationSPD *seg0=(AliITSsegmentationSPD*)iDetType->GetSegmentationModel();
33 TClonesArray *dig0 = ITS->DigitsAddress(0);
34 TClonesArray *recp0 = ITS->ClustersAddress(0);
35 AliITSClusterFinderSPDbari *rec0=new AliITSClusterFinderSPDbari(seg0,dig0,recp0);
36 ITS->SetReconstructionModel(0,rec0);
37 // test
38 printf("SPD dimensions %f %f \n",seg0->Dx(),seg0->Dz());
39 printf("SPD npixels %d %d \n",seg0->Npz(),seg0->Npx());
40
41
42 // SDD
88c93889 43 AliITSDetType *iDetType=ITS->DetType(1);
44 AliITSsegmentationSDD *seg1=(AliITSsegmentationSDD*)iDetType->GetSegmentationModel();
45 if (!seg1) seg1 = new AliITSsegmentationSDD(geom);
46 AliITSresponseSDD *res1 = (AliITSresponseSDD*)iDetType->GetResponseModel();
47 if (!res1) res1=new AliITSresponseSDD();
426edb57 48 Float_t baseline,noise;
49 res1->GetNoiseParam(noise,baseline);
50 Float_t noise_after_el = res1->GetNoiseAfterElectronics();
51 Float_t thres = baseline;
52 thres += (4.*noise_after_el); // TB // (4.*noise_after_el);
53 printf("thres %f\n",thres);
54 res1->Print();
88c93889 55 TClonesArray *dig1 = ITS->DigitsAddress(1);
56 TClonesArray *recp1 = ITS->ClustersAddress(1);
57 AliITSClusterFinderSDD *rec1=new AliITSClusterFinderSDD(seg1,res1,dig1,recp1);
88c93889 58 rec1->SetCutAmplitude((int)thres);
59 ITS->SetReconstructionModel(1,rec1);
60
61
62 // SSD
63 AliITSDetType *iDetType=ITS->DetType(2);
64 AliITSsegmentationSSD *seg2=(AliITSsegmentationSSD*)iDetType->GetSegmentationModel();
65 TClonesArray *dig2 = ITS->DigitsAddress(2);
426edb57 66 AliITSClusterFinderSSD *rec2=new AliITSClusterFinderSSD(seg2,dig2);
88c93889 67 ITS->SetReconstructionModel(2,rec2);
68 // test
69 printf("SSD dimensions %f %f \n",seg2->Dx(),seg2->Dz());
70 printf("SSD nstrips %d %d \n",seg2->Npz(),seg2->Npx());
71
72
73
426edb57 74 if(!gAlice->TreeR()) gAlice->MakeTree("R");
75 //make branch
76 ITS->MakeBranch("R");
88c93889 77
78 TStopwatch timer;
79
80 switch (ver) {
81 case 5:
82 cerr<<"Looking for clusters...\n";
83 {
84 timer.Start();
426edb57 85 ITS->DigitsToRecPoints(0,0,"All");
88c93889 86 }
87 break;
88 default:
89 cerr<<"Invalid ITS version !\n";
90 return 5;
91 }
92
93 timer.Stop(); timer.Print();
94
95 delete rec0;
96 delete rec1;
97 delete rec2;
98
99
100 delete gAlice; gAlice=0;
101
102 in->Close();
103
104 return 0;
105}