ROOT logo
void EMCALLEDda(const int year=12, const int runno = 191741, const int streamno=8, const int segno=10, const int kMaxPhysEvents = 1000, const int debug = 1){
  
  int i, status;
  gROOT->SetStyle("Plain");
  
  /* log start of process */
  printf("EMCAL DA started - %s\n",__FILE__);
  
  AliCaloCalibSignal * calibSignal = new 
    AliCaloCalibSignal(AliCaloCalibSignal::kEmCal); 

  // setup
  calibSignal->SetAmpCut(1);
  calibSignal->SetReqFractionAboveAmpCutVal(0.1);
  calibSignal->SetReqFractionAboveAmp(false);

  // setup; LEDRef
  calibSignal->SetAmpCutLEDRef(1);
  calibSignal->SetReqLEDRefAboveAmpCutVal(false);

  int nevents=0;

  Char_t fname[256];
  sprintf(fname, "%02d%09d0%02d.%d.root", year, runno, streamno, segno);
  AliRawReader *rawReader = NULL;
  rawReader = new AliRawReaderRoot(fname);

  AliCaloRawStreamV3 *in = NULL; 
  in = new AliCaloRawStreamV3(rawReader,"EMCAL");
  rawReader->Select("EMCAL", 0, AliEMCALGeoParams::fgkLastAltroDDL) ; //select EMCAL DDL range
  //in->SetOldRCUFormat(kTRUE);
  
  int nev=0;
  int type = 0;
  UInt_t timestamp = 0;

  /* read until EOF */
  while ( rawReader->NextEvent() && nevents<kMaxPhysEvents) {
    
    calibSignal->SetRunNumber( rawReader->GetRunNumber() ); // just for fun; keep info on last run looked at
    //    cout << " Event " << nev << endl;

    type = rawReader->GetType();
    timestamp = rawReader->GetTimestamp();
    
    // select physics and calibration events now (only calibration in future)
    if ( type == AliRawEventHeaderBase::kCalibrationEvent  ) {

      rawReader->Reset();
      
      nevents++;
      // if(nevents%1000==0)cout<<"Event "<<nevents<<endl;
      calibSignal->ProcessEvent(in, timestamp);
    }

    nev++;
    
  } // loop over all events in file
    /* cleanup the reading handles */
  delete in;
  delete rawReader;    

  // calculate average values also, for the LED info
  calibSignal->SetUseAverage(kTRUE);
  calibSignal->Analyze();
  
  // by default, we only save the full info in debug mode  
  if (debug==0) {
    // reset the full trees, when we are not in debug mode
    calibSignal->GetTreeAmpVsTime()->Reset();
    calibSignal->GetTreeLEDAmpVsTime()->Reset();
  }

  //
  // write results/histograms to rootfile
  //
  
  printf ("%d physics/calibration events processed.\n",nevents);
  
  // create output histograms and write to file
  Char_t outname[256];
  sprintf(outname, "LED_%09d.root",runno);
  //sprintf(outname, "EMCALLED.root");

  TFile destFile(outname, "update");
  destFile.cd();
  calibSignal->Write("emcCalibSignal");
  destFile.Close();

  printf("Wrote %s.\n",outname);
  
  // see if we can delete our analysis helper also
  delete calibSignal;
  
}
 EMCALLEDda.C:1
 EMCALLEDda.C:2
 EMCALLEDda.C:3
 EMCALLEDda.C:4
 EMCALLEDda.C:5
 EMCALLEDda.C:6
 EMCALLEDda.C:7
 EMCALLEDda.C:8
 EMCALLEDda.C:9
 EMCALLEDda.C:10
 EMCALLEDda.C:11
 EMCALLEDda.C:12
 EMCALLEDda.C:13
 EMCALLEDda.C:14
 EMCALLEDda.C:15
 EMCALLEDda.C:16
 EMCALLEDda.C:17
 EMCALLEDda.C:18
 EMCALLEDda.C:19
 EMCALLEDda.C:20
 EMCALLEDda.C:21
 EMCALLEDda.C:22
 EMCALLEDda.C:23
 EMCALLEDda.C:24
 EMCALLEDda.C:25
 EMCALLEDda.C:26
 EMCALLEDda.C:27
 EMCALLEDda.C:28
 EMCALLEDda.C:29
 EMCALLEDda.C:30
 EMCALLEDda.C:31
 EMCALLEDda.C:32
 EMCALLEDda.C:33
 EMCALLEDda.C:34
 EMCALLEDda.C:35
 EMCALLEDda.C:36
 EMCALLEDda.C:37
 EMCALLEDda.C:38
 EMCALLEDda.C:39
 EMCALLEDda.C:40
 EMCALLEDda.C:41
 EMCALLEDda.C:42
 EMCALLEDda.C:43
 EMCALLEDda.C:44
 EMCALLEDda.C:45
 EMCALLEDda.C:46
 EMCALLEDda.C:47
 EMCALLEDda.C:48
 EMCALLEDda.C:49
 EMCALLEDda.C:50
 EMCALLEDda.C:51
 EMCALLEDda.C:52
 EMCALLEDda.C:53
 EMCALLEDda.C:54
 EMCALLEDda.C:55
 EMCALLEDda.C:56
 EMCALLEDda.C:57
 EMCALLEDda.C:58
 EMCALLEDda.C:59
 EMCALLEDda.C:60
 EMCALLEDda.C:61
 EMCALLEDda.C:62
 EMCALLEDda.C:63
 EMCALLEDda.C:64
 EMCALLEDda.C:65
 EMCALLEDda.C:66
 EMCALLEDda.C:67
 EMCALLEDda.C:68
 EMCALLEDda.C:69
 EMCALLEDda.C:70
 EMCALLEDda.C:71
 EMCALLEDda.C:72
 EMCALLEDda.C:73
 EMCALLEDda.C:74
 EMCALLEDda.C:75
 EMCALLEDda.C:76
 EMCALLEDda.C:77
 EMCALLEDda.C:78
 EMCALLEDda.C:79
 EMCALLEDda.C:80
 EMCALLEDda.C:81
 EMCALLEDda.C:82
 EMCALLEDda.C:83
 EMCALLEDda.C:84
 EMCALLEDda.C:85
 EMCALLEDda.C:86
 EMCALLEDda.C:87
 EMCALLEDda.C:88
 EMCALLEDda.C:89
 EMCALLEDda.C:90
 EMCALLEDda.C:91
 EMCALLEDda.C:92
 EMCALLEDda.C:93
 EMCALLEDda.C:94
 EMCALLEDda.C:95
 EMCALLEDda.C:96