--- /dev/null
+
+
+
+// +++++++++++++++++++++++++++++++++++++++++++++++++
+void RunAltroEmulOnRAW(Int_t mode, const char *uri,
+ const char *outputRootFileName ="rawdata.root"){
+
+ // modes
+ // 1: MAF on / TCF off
+ // 2: MAF on / TCF on - params from Rehak (baseline)
+ // 3: MAF on / TCF on - params from Rehak (baseline & pulse shortening)
+ // 4: MAF on / TCF on - params from Rehak (baseline, used in P2)
+
+
+ if (mode<0 || mode>4) {
+ printf(" ERROR: chosen mode not avalailable ...\n");
+ return;
+ }
+
+
+ TStopwatch timer;
+ timer.Start();
+
+ // READ RAW DATA +++++++++++
+
+ AliRawReader *reader=AliRawReader::Create(uri);
+ reader->NextEvent();
+ Int_t runNumber=reader->GetRunNumber();
+ reader->RewindEvents();
+
+ // ALTRO EMULATOR +++++++++++
+
+ Int_t baseline = 50; // standard in run 137228
+
+ Int_t *K0= new Int_t[2]; Int_t *K1= new Int_t[2]; Int_t *K2= new Int_t[2];
+ Int_t *L0= new Int_t[2]; Int_t *L1= new Int_t[2]; Int_t *L2= new Int_t[2];
+
+ if ( mode == 2 ) { // "middle aggressive"
+ // params from Rehak (baseline)
+ K0[0]=64386; K1[0]=65184; K2[0]= 77;
+ L0[0]=64675; L1[0]=64950; L2[0]= 0;
+ K0[1]=63675; K1[1]=65355; K2[1]= 218;
+ L0[1]=63917; L1[1]=65263; L2[1]= 0;
+
+ } else if ( mode ==3 ) { // "most aggressive"
+ // params from Rehak (baseline & pulse shortening)
+ K0[0]=58684; K1[0]=65273; K2[0]= 1361; // IROC
+ L0[0]=59754; L1[0]=65187; L2[0]= 0;
+ K0[1]=59688; K1[1]=65347; K2[1]= 1349; // OROC
+ L0[1]=60704; L1[1]=65273; L2[1]= 0;
+
+ } else if ( mode == 4 ) { // a bit "aggressive"
+ // params from Rehak (baseline, used in P2);
+ K0[0]=62055; K1[0]=65300; K2[0]= 277; // IROC
+ L0[0]=62339; L1[0]=65208; L2[0]= 0;
+ K0[1]=63151; K1[1]=65435; K2[1]= 266; // OROC
+ L0[1]=63387; L1[1]=65371; L2[1]= 0;
+ }
+
+
+ AliTPCAltroEmulator *a1 = new AliTPCAltroEmulator();
+
+ a1->ConfigBaselineCorrection1(4, baseline, 0, 0);
+ a1->ConfigBaselineCorrection2(3,3,0,0,0);
+ a1->ConfigZerosuppression(3,2,0,0);
+
+ if (mode ==1)
+ a1->ConfigAltro(1,0,1,1,1,0); // MAF
+ else if (mode==0)
+ a1->ConfigAltro(1,0,0,1,1,0); // MAF
+ else {
+ a1->ConfigTailCancellationFilterForRAWfiles(K0,K1,K2,L0,L1,L2);
+ a1->ConfigAltro(1,1,1,1,1,0); // MAF and TCF
+ }
+
+
+
+ a1->SetOutputRootFileName(outputRootFileName);
+ a1->RunEmulationOnRAWdata(reader);
+
+ timer.Stop(); timer.Print();
+}
+
+