CMake: Changing DA detector name to DA0 to match DAQ settings
[u/mrichter/AliRoot.git] / TPC / FindKrClustersRaw.C
1 /// \file FindKrClustersRaw.C
2
3 Int_t FindKrClusterCheck(const char *fileName="data.root");
4
5
6 Int_t FindKrClustersRaw(const char *fileName="data.root"){
7
8   
9
10   /// remove Altro warnings
11
12   AliLog::SetClassDebugLevel("AliRawReaderDate",-5);
13   AliLog::SetClassDebugLevel("AliTPCAltroMapping",-5);
14   AliLog::SetModuleDebugLevel("RAW",-5);
15   //
16   // Get calibration
17   //
18   char *ocdbpath = gSystem->Getenv("OCDB_PATH");
19   //char *ocdbpath ="local:///afs/cern.ch/alice/tpctest/OCDB";
20   if (ocdbpath==0){
21     ocdbpath="alien://folder=/alice/data/2007/LHC07w/OCDB/";
22   }
23   printf("OCDB PATH = %s\n",ocdbpath); 
24   AliCDBManager * man = AliCDBManager::Instance();
25   man->SetDefaultStorage(ocdbpath);
26   man->SetRun(100000000);
27
28   AliTPCCalPad * noiseTPC = AliTPCcalibDB::Instance()->GetPadNoise();
29   AliTPCAltroMapping** mapping =AliTPCcalibDB::Instance()->GetMapping();
30   //
31   //
32
33
34   //define tree
35   TFile *hfile=new TFile("adc.root","RECREATE","ADC file");
36   // Create a ROOT Tree
37   TTree *mytree = new TTree("Kr","Krypton cluster tree");
38
39
40   Int_t debugLevel=1;
41   if(debugLevel>0){
42     TH1F *histoRow   =new TH1F("histoRow","rows",100,0.,100.);
43     TH1F *histoPad   =new TH1F("histoPad","pads",150,0.,150.);
44     TH1F *histoTime  =new TH1F("histoTime","timebins",100,0.,1000.);
45     TH2F *histoRowPad=new TH2F("histoRowPad","pads-vs-rows" ,150,0.,150.,100,0.,100.);
46   }
47
48
49   //one general output
50   AliTPCclustererKr *clusters = new AliTPCclustererKr();
51   clusters->SetOutput(mytree);
52   clusters->SetRecoParam(0);
53
54   if(debugLevel>0){
55     clusters->SetDebugLevel(debugLevel);
56     clusters->SetHistoRow(histoRow   );
57     clusters->SetHistoPad(histoPad   );
58     clusters->SetHistoTime(histoTime  );
59     clusters->SetHistoRowPad(histoRowPad);
60   }
61
62
63   AliTPCParamSR *param=new AliTPCParamSR();
64   //only for geometry parameters loading - temporarly
65 //  AliRunLoader* rl = AliRunLoader::Open("galice.root");
66 //  AliTPCParam *param=(AliTPCParamSR *)gDirectory->Get("75x40_100x60_150x60");
67   //if (!param) {cerr<<"TPC parameters have not been found !\n"; return 4;}
68
69   clusters->SetParam(param);
70
71   //set cluster finder parameters (from data)
72   clusters->SetZeroSup(param->GetZeroSup());//zero suppression parameter
73   clusters->SetFirstBin(60);//first bin
74   clusters->SetLastBin(950);//last bin
75   clusters->SetMaxNoiseAbs(2);//maximal noise
76   clusters->SetMaxNoiseSigma(3);//maximal amount of sigma of noise
77
78   //set cluster finder parameters (from MC)
79   clusters->SetMinAdc(3);//signal threshold (everything below is treated as 0)
80   clusters->SetMinTimeBins(2);//number of neighbouring timebins
81   clusters->SetMaxPadRangeCm(5.);//distance of the cluster center to the center of a pad (in cm)
82   clusters->SetMaxRowRangeCm(5.);//distance of the cluster center to the center of a padrow (in cm)
83   clusters->SetMaxTimeRange(5.);//distance of the cluster center to the max time bin on a pad (in tackts)
84   //ie. fabs(centerT - time)<7
85   clusters->SetValueToSize(7.);//cut reduce peak at 0
86   clusters->SetIsolCut(3);//set isolation cut threshold
87
88   AliRawReader *reader = new AliRawReaderRoot(fileName);
89   reader->Reset();
90
91   TStopwatch timer;
92   timer.Start();
93
94   AliAltroRawStreamFast* stream = new AliAltroRawStreamFast(reader);
95   stream->SelectRawData("TPC");
96
97   Int_t evtnr=0;
98   while (reader->NextEvent()) {
99     //output for each event
100
101     //if(evtnr>4) break;
102     cout<<"Evt = "<<evtnr<<endl;
103     clusters->FinderIO(reader);
104     evtnr++;
105     AliSysInfo::AddStamp(Form("Event%d",evtnr),evtnr);
106   }
107
108
109   mytree->Print();//print rootuple summary 
110   // Save all objects in this file
111   hfile->Write();
112   // Close the file
113   hfile->Close();
114
115   timer.Stop();
116   timer.Print();
117   printf("Deleting clusterer\n");
118   delete clusters;
119   printf("Deleting stream\n");
120   delete stream;
121   printf("Deleting raw reader\n");
122   delete reader;
123
124 //   TCanvas *c2=new TCanvas("c2","title",800,800);
125 //   c2->SetHighLightColor(2);
126 //   c2->Range(-458.9552,-2948.238,3296.642,26856.6);
127 //   c2->SetBorderSize(2);
128 //   c2->SetLeftMargin(0.15);
129 //   c2->SetRightMargin(0.06);
130 //   c2->SetFrameFillColor(0);
131
132 //   gStyle->SetOptStat(111111);
133 //   histoRow->Draw();
134 //   c2->Print("rows.ps");
135 //   histoPad->Draw();
136 //   c2->Print("pads.ps");
137 //   histoTime->Draw();
138 //   c2->Print("timebins.ps");
139 //   histoRowPad->Draw();
140 //   c2->Print("row-pad.ps");
141
142   return 0;
143 }
144
145
146 Int_t FindKrClusterCheck(const char *fileName){
147   ///
148
149   gSystem->Load("$ROOTSYS/lib/libGui");
150   gSystem->Load("$ROOTSYS/lib/libTree");
151   gSystem->Load("$MEMSTAT/libMemStat");
152   {
153     TMemStat memstat(1000000,100000,kTRUE);
154     AliSysInfo::AddCallBack(TMemStatManager::GetInstance()->fStampCallBack);
155     FindKrClustersRaw(fileName); 
156   }
157   // the output memstat.root file
158   TMemStat draw("memstat.root");
159   // Print some information
160   // code info
161   draw.MakeReport(0,0);
162
163 }