ROOT logo
void MakeT0RecoParam(Int_t startRun = 0, Int_t endRun = AliCDBRunRange::Infinity(), AliRecoParam::EventSpecie_t defaultParam = AliRecoParam::kHighMult)
//void MakeT0RecoParam(Int_t startRun = 122000, Int_t endRun = 126437, AliRecoParam::EventSpecie_t defaultParam = AliRecoParam::kHighMult)
{
  // Create T0 Calibration Object for Ideal calibration and
  // write it on CDB
  AliCDBManager *man = AliCDBManager::Instance();
  //  man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  man->SetDefaultStorage("local:///scratch/alla/alice/Oct11/TestCDBf");
  man->SetRun(startRun);
  
  TObjArray *recoParamArray = new TObjArray();
  AliT0RecoParam* t0RecoParam;

  t0RecoParam = AliT0RecoParam::GetHighFluxParam();
  t0RecoParam->SetEventSpecie(AliRecoParam::kHighMult);
   Float_t low[500] , high[500] ;
   Float_t pos[24] = {2472, 2492, 2501, 2540, 2526, 2525, 2501, 2461, 2556, 2544, 2533, 2487, 
		      2485, 2502, 2453, 2470, 2520, 2486, 2512, 2523, 2505, 2562, 2533, 2481}; 
    for (Int_t i=0; i<107; i++)
      {
	low[i] = 500;
	high[i]=50000;
 	if(i>0  && i<13) { low[i] = pos[i-1] - 200; high[i] = pos[i-1] + 200;}
	if(i>56 && i<69) { low[i] = pos[i-57] - 200.; high[i]=pos[i-57] + 200;}
	//	if(i<13) { low[i]=pos[i]-500.;high[i]=pos[i]+500.;}
	//	if(i>56 && i<69) { low[i]=pos[i+13-57]-500.;high[i]=pos[i-57+13]+500.;}
  }

  // bad PMT
  t0RecoParam->SetRefPoint(-1);
  // amplitude range for recontruction
  low[200]=0.8;
  high[200]=80;
  for (Int_t i=0; i<24; i++) t0RecoParam-> SetBadChannels(i,0);
  
  for (Int_t i=0; i<500; i++) {
    t0RecoParam->SetLow(i,low[i]);
    t0RecoParam->SetHigh(i,high[i]);
  }
  t0RecoParam->SetEq(1);
  t0RecoParam->SetSatelliteThresholds(-15, -1.7);

  t0RecoParam->PrintParameters();
  recoParamArray->AddLast(t0RecoParam);
  
  //-----------------------------------------

  t0RecoParam = AliT0RecoParam::GetLowFluxParam();
  t0RecoParam->SetEventSpecie(AliRecoParam::kLowMult);
    Float_t low[500], high[500] ;
    for (Int_t i=0; i<500; i++)
      {
	low[i] = 500;
	high[i]=50000;
  	if(i>0  && i<13) { low[i] = pos[i-1] - 200; high[i] = pos[i-1] + 200;}
	if(i>56 && i<69) { low[i] = pos[i-57] - 200.; high[i]=pos[i-57] + 200;}
	//	if(i<13) { low[i]=pos[i]-500.;high[i]=pos[i]+500.;}
	//	if(i>56 && i<69) { low[i]=pos[i+13-57]-500.;high[i]=pos[i-57+13]+500.;}
    }

  // bad PMT
    //  t0RecoParam->SetRefPoint(-1);
    for (Int_t i=0; i<24; i++) t0RecoParam->SetBadChannels(i,0);
  t0RecoParam->SetRefPoint(-1);
  // amplitude range for recontruction
   t0RecoParam->SetEq(1);
 low[200]=0.8;
  high[200]=80;
  for (Int_t i=0; i<500; i++) {
    t0RecoParam->SetLow(i,low[i]);
    t0RecoParam->SetHigh(i,high[i]);
  }
  //  t0RecoParam->PrintParameters();
  recoParamArray->AddLast(t0RecoParam);
  //--------------------------------------
  t0RecoParam = AliT0RecoParam::GetLaserTestParam();
  t0RecoParam->SetEventSpecie(AliRecoParam::kCalib);
  // t0RecoParam->Dump();
  cout<<" t0RecoParam->GetEventSpecie "<< t0RecoParam->GetEventSpecie()<<endl;
  for (Int_t i=0; i<107; i++) {
    t0RecoParam->SetLow(i, 0);
    t0RecoParam->SetHigh(i, 50000);
  }
  t0RecoParam->SetEq(1);
  t0RecoParam->SetSatelliteThresholds(-15, -1.7);
  //  t0RecoParam->Dump();
  t0RecoParam->SetRefPoint(1);
  //  t0RecoParam->PrintParameters();
  recoParamArray->AddLast(t0RecoParam);


  // Set the default
 Bool_t defaultIsSet = kFALSE;
 //  cout<<"recoParamArray->GetEntriesFast() "<<recoParamArray.GetEntriesFast()<<endl;
  TIter next(recoParamArray->MakeIterator());
  while ( (param = static_cast<AliT0RecoParam*>(next())) ) {
    if (!param) continue;
      if (defaultParam ==  param->GetEventSpecie()) {
      cout<<" Specie "<<param->GetEventSpecie()<<endl;
          param->SetEventSpecie(param->GetEventSpecie());
        param->SetAsDefault(); 
       defaultIsSet = kTRUE;
      }
        param->Print("FULL");
  }


  AliCDBMetaData *md= new AliCDBMetaData();
  md->SetResponsible("Alla");
  md->SetComment("Reconstruction parameters T0");
  md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
  md->SetBeamPeriod(0);
  AliCDBId id("T0/Calib/RecoParam",startRun,endRun);
  man->GetDefaultStorage()->Put(recoParamArray,id, md);

}


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