ROOT logo



// +++++++++++++++++++++++++++++++++++++++++++++++++
void RunAltroEmulOnRAW(Int_t mode, const char *uri,
                           const char *outputRootFileName ="rawdata.root"){

  // modes

  // 0: MAF off / TCF off - ONLY ZS

  // 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)
  // 5: MAF on - presample 1, postsample 1
  // 6: MAF on - presample 1, postsample 3
  // 7: MAF on - presample 1, postsample 5
 

  if (mode<0 || mode>7) {
    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->ConfigZerosuppression(3,2,0,0);
   
  if (mode ==0) { // do nothing, just ZS
 
    a1->ConfigAltro(1,0,0,1,1,0); 

  } else if (mode==1) {  // MAF

    a1->ConfigBaselineCorrection2(3,3,0,0,0);
    a1->ConfigAltro(1,0,1,1,1,0);
    
  } else if (mode==2 || mode ==3 || mode==4) { // MAF and different TCF  

    a1->ConfigTailCancellationFilterForRAWfiles(K0,K1,K2,L0,L1,L2);
    a1->ConfigBaselineCorrection2(3,3,0,0,0);
    a1->ConfigAltro(1,1,1,1,1,0); 

  } else if (mode == 5) { // different MAF
    
    a1->ConfigBaselineCorrection2(3,3,0,1,1);  // 1 presample, 1 postsamples
    a1->ConfigAltro(1,0,1,1,1,0);

  } else if (mode == 6) { // different MAF
    
    a1->ConfigBaselineCorrection2(3,3,0,1,3);  // 1 presample, 3 postsamples
    a1->ConfigAltro(1,0,1,1,1,0);
    
  } else if (mode == 7) { // different MAF
    
    a1->ConfigBaselineCorrection2(3,3,0,1,5);  // 1 presample, 5 postsamples
    a1->ConfigAltro(1,0,1,1,1,0);

  } 


  a1->SetOutputRootFileName(outputRootFileName);
  a1->RunEmulationOnRAWdata(reader);
  
  timer.Stop(); timer.Print();
}


 RunAltroEmulOnRAW.C:1
 RunAltroEmulOnRAW.C:2
 RunAltroEmulOnRAW.C:3
 RunAltroEmulOnRAW.C:4
 RunAltroEmulOnRAW.C:5
 RunAltroEmulOnRAW.C:6
 RunAltroEmulOnRAW.C:7
 RunAltroEmulOnRAW.C:8
 RunAltroEmulOnRAW.C:9
 RunAltroEmulOnRAW.C:10
 RunAltroEmulOnRAW.C:11
 RunAltroEmulOnRAW.C:12
 RunAltroEmulOnRAW.C:13
 RunAltroEmulOnRAW.C:14
 RunAltroEmulOnRAW.C:15
 RunAltroEmulOnRAW.C:16
 RunAltroEmulOnRAW.C:17
 RunAltroEmulOnRAW.C:18
 RunAltroEmulOnRAW.C:19
 RunAltroEmulOnRAW.C:20
 RunAltroEmulOnRAW.C:21
 RunAltroEmulOnRAW.C:22
 RunAltroEmulOnRAW.C:23
 RunAltroEmulOnRAW.C:24
 RunAltroEmulOnRAW.C:25
 RunAltroEmulOnRAW.C:26
 RunAltroEmulOnRAW.C:27
 RunAltroEmulOnRAW.C:28
 RunAltroEmulOnRAW.C:29
 RunAltroEmulOnRAW.C:30
 RunAltroEmulOnRAW.C:31
 RunAltroEmulOnRAW.C:32
 RunAltroEmulOnRAW.C:33
 RunAltroEmulOnRAW.C:34
 RunAltroEmulOnRAW.C:35
 RunAltroEmulOnRAW.C:36
 RunAltroEmulOnRAW.C:37
 RunAltroEmulOnRAW.C:38
 RunAltroEmulOnRAW.C:39
 RunAltroEmulOnRAW.C:40
 RunAltroEmulOnRAW.C:41
 RunAltroEmulOnRAW.C:42
 RunAltroEmulOnRAW.C:43
 RunAltroEmulOnRAW.C:44
 RunAltroEmulOnRAW.C:45
 RunAltroEmulOnRAW.C:46
 RunAltroEmulOnRAW.C:47
 RunAltroEmulOnRAW.C:48
 RunAltroEmulOnRAW.C:49
 RunAltroEmulOnRAW.C:50
 RunAltroEmulOnRAW.C:51
 RunAltroEmulOnRAW.C:52
 RunAltroEmulOnRAW.C:53
 RunAltroEmulOnRAW.C:54
 RunAltroEmulOnRAW.C:55
 RunAltroEmulOnRAW.C:56
 RunAltroEmulOnRAW.C:57
 RunAltroEmulOnRAW.C:58
 RunAltroEmulOnRAW.C:59
 RunAltroEmulOnRAW.C:60
 RunAltroEmulOnRAW.C:61
 RunAltroEmulOnRAW.C:62
 RunAltroEmulOnRAW.C:63
 RunAltroEmulOnRAW.C:64
 RunAltroEmulOnRAW.C:65
 RunAltroEmulOnRAW.C:66
 RunAltroEmulOnRAW.C:67
 RunAltroEmulOnRAW.C:68
 RunAltroEmulOnRAW.C:69
 RunAltroEmulOnRAW.C:70
 RunAltroEmulOnRAW.C:71
 RunAltroEmulOnRAW.C:72
 RunAltroEmulOnRAW.C:73
 RunAltroEmulOnRAW.C:74
 RunAltroEmulOnRAW.C:75
 RunAltroEmulOnRAW.C:76
 RunAltroEmulOnRAW.C:77
 RunAltroEmulOnRAW.C:78
 RunAltroEmulOnRAW.C:79
 RunAltroEmulOnRAW.C:80
 RunAltroEmulOnRAW.C:81
 RunAltroEmulOnRAW.C:82
 RunAltroEmulOnRAW.C:83
 RunAltroEmulOnRAW.C:84
 RunAltroEmulOnRAW.C:85
 RunAltroEmulOnRAW.C:86
 RunAltroEmulOnRAW.C:87
 RunAltroEmulOnRAW.C:88
 RunAltroEmulOnRAW.C:89
 RunAltroEmulOnRAW.C:90
 RunAltroEmulOnRAW.C:91
 RunAltroEmulOnRAW.C:92
 RunAltroEmulOnRAW.C:93
 RunAltroEmulOnRAW.C:94
 RunAltroEmulOnRAW.C:95
 RunAltroEmulOnRAW.C:96
 RunAltroEmulOnRAW.C:97
 RunAltroEmulOnRAW.C:98
 RunAltroEmulOnRAW.C:99
 RunAltroEmulOnRAW.C:100
 RunAltroEmulOnRAW.C:101
 RunAltroEmulOnRAW.C:102
 RunAltroEmulOnRAW.C:103
 RunAltroEmulOnRAW.C:104
 RunAltroEmulOnRAW.C:105
 RunAltroEmulOnRAW.C:106
 RunAltroEmulOnRAW.C:107
 RunAltroEmulOnRAW.C:108
 RunAltroEmulOnRAW.C:109
 RunAltroEmulOnRAW.C:110
 RunAltroEmulOnRAW.C:111
 RunAltroEmulOnRAW.C:112