+
+//_____________________________________________________________________
+void AliFMDBaseDA::WriteConditionsData()
+{
+ AliFMDParameters* pars = AliFMDParameters::Instance();
+ fConditionsFile.write(Form("# %s \n",pars->GetConditionsShuttleID()),14);
+
+ // fConditionsFile.write("# Sample Rate, timebins \n",25);
+
+ // Sample Rate
+
+ UShort_t defSampleRate = 4;
+ UShort_t sampleRateFromSOD;
+ //UInt_t timebins = 544;
+ AliFMDCalibSampleRate* sampleRate = new AliFMDCalibSampleRate();
+
+ UShort_t firstStrip = 0;
+ UShort_t lastStrip = 127;
+ UShort_t firstStripSOD;
+ UShort_t lastStripSOD;
+ AliFMDCalibStripRange* stripRange = new AliFMDCalibStripRange();
+
+ for(Int_t det=1;det<=3;det++) {
+ UShort_t FirstRing = (det == 1 ? 1 : 0);
+ for (UShort_t ir = FirstRing; ir < 2; ir++) {
+ Char_t ring = (ir == 0 ? 'O' : 'I');
+ UShort_t nsec = (ir == 0 ? 40 : 20);
+ UShort_t nstr = (ir == 0 ? 256 : 512);
+ for(UShort_t sec =0; sec < nsec; sec++) {
+ for(UShort_t strip = 0 ; strip <nstr; nstr++)
+ {
+ sampleRateFromSOD = defSampleRate;
+ sampleRate->Set(det,ring,sec,strip,sampleRateFromSOD);
+ firstStripSOD = firstStrip;
+ lastStripSOD = lastStrip;
+ stripRange->Set(det,ring,sec,strip,firstStripSOD,lastStripSOD);
+
+ }
+
+ }
+ }
+ }
+
+ sampleRate->WriteToFile(fConditionsFile);
+
+ pars->SetSampleRate(sampleRate);
+ pars->SetStripRange(firstStrip,lastStrip);
+
+
+ // Zero Suppresion
+
+ // Strip Range
+
+
+
+
+
+ // Gain Relevant stuff
+
+ UShort_t defPulseSize = 32 ;
+ UShort_t defPulseLength = 100 ;
+ UShort_t pulseSizeFromSOD;
+ UShort_t pulseLengthFromSOD;
+
+ fPulseSize.Reset(defPulseSize);
+ fPulseLength.Reset(defPulseLength);
+
+ for(UShort_t det=1;det<=3;det++)
+ for(UShort_t iring=0;iring<=1;iring++)
+ for(UShort_t board=0;board<=1;board++) {
+ pulseSizeFromSOD = defPulseSize;
+ pulseLengthFromSOD = defPulseLength;
+
+ fPulseSize.AddAt(pulseSizeFromSOD,GetHalfringIndex(det,iring,board));
+ fPulseLength.AddAt(pulseLengthFromSOD,GetHalfringIndex(det,iring,board));
+ }
+
+
+ // fConditionsFile << defSampleRate << ','
+ // << timebins <<"\n";
+
+ if(fConditionsFile.is_open()) {
+
+ fConditionsFile.write("# EOF\n",6);
+ fConditionsFile.close();
+
+ }
+
+}
+//_____________________________________________________________________
+Int_t AliFMDBaseDA::GetHalfringIndex(UShort_t det, Char_t ring, UShort_t board) {
+
+ UShort_t iring = (ring == 'I' ? 1 : 0);
+
+ Int_t index = (((det-1) << 2) | (iring << 1) | (board << 0));
+
+ return index;
+
+}
+
+