ROOT logo
//____________________________________________________________________
//
// $Id: PatternDigits.C 28055 2008-08-18 00:33:20Z cholm $
//
// Draw hits in the specialised FMD event display 
//
/** Display hits 
    @ingroup FMD_script
 */
Bool_t
CheckFile(const char* prefix, const char* path, int number, TString& f)
{
  f = (Form("%s%d.csv", prefix, number));
  std::cout << "Checking if " << f << " exists in " << path << " ... " 
	    << std::flush;
  f = gSystem->Which(path, f.Data());
  std::cout << '"' << f << '"' << std::endl;
  return !f.IsNull();
}
void
PatternCalib(const char* file="raw.root", const char* calib="$(HOME)/calib/", 
	     Int_t runno=0)
{
  // AliLog::SetModuleDebugLevel("FMD", 1);
  gSystem->Load("libFMDutil.so");

  AliCDBManager* cdb = AliCDBManager::Instance();
  const char* cdbUri = gSystem->Getenv("AMORE_CDB_URI");
  cdb->SetDefaultStorage(cdbUri);
  cdb->SetRun(runno);

  AliFMDCalibStripRange* range = new AliFMDCalibStripRange;
  AliFMDCalibSampleRate* rate  = new AliFMDCalibSampleRate;
  AliFMDCalibPedestal*   peds  = new AliFMDCalibPedestal;
  AliFMDCalibGain*       gains = new AliFMDCalibGain;
  Bool_t gotConds = kFALSE;
  Bool_t gotPeds  = kFALSE;
  Bool_t gotGains = kFALSE;
  for (Int_t i = 1; i <= 3; i++) { 
    TString f;
    if (CheckFile("conditions", calib, i, f)) {
      gotConds = kTRUE;
      std::cout << "Reading conditions for FMD" <<i<< " from " <<f<< std::endl;
      std::ifstream in(f.Data());
      range->ReadFromFile(in);
      rate->ReadFromFile(in);
    }
    if (CheckFile("peds", calib, i, f)) {
      gotPeds = kTRUE;
      std::cout << "Reading pedestals for FMD" <<i<< " from " <<f<< std::endl;
      std::ifstream in(f.Data());
      peds->ReadFromFile(in);
    }
    if (CheckFile("gains", calib, i, f)) {
      gotGains = kTRUE;
      std::cout << "Reading gains for FMD" <<i<< " from " <<f<< std::endl;
      std::ifstream in(f.Data());
      gains->ReadFromFile(in);
    }
  }

  Int_t mask = (AliFMDParameters::kDeadMap|
		AliFMDParameters::kZeroSuppression|
		AliFMDParameters::kAltroMap);


  if (!gotConds) mask |= AliFMDParameters::kStripRange;
  if (!gotConds) mask |= AliFMDParameters::kSampleRate;
  if (!gotPeds)  mask |= AliFMDParameters::kPedestal;
  if (!gotGains) mask |= AliFMDParameters::kPulseGain;

  AliFMDParameters* pars = AliFMDParameters::Instance();
  pars->Init(kFALSE, mask);

  if (gotConds) pars->SetStripRange(range);
  if (gotConds) pars->SetSampleRate(rate);
  if (gotPeds)  pars->SetPedestal(peds);
  if (gotGains) pars->SetGain(gains);
  
  // pars->Print("pedestal");

  AliFMDPattern* d = new AliFMDPattern;
  d->AddLoad(AliFMDInput::kRawCalib);
  d->SetRawFile(file);
  d->SetName("rawCalib");
  d->SetTitle("Calibrated Raw");
  d->SetFactor(5);
  d->SetCut(0.02, 1);
  d->Run();
}

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