CMake: removing qpythia from the depedencies
[u/mrichter/AliRoot.git] / TOF / TOFPreprocessor.C
index 0234cd2..dde0a4b 100644 (file)
@@ -11,16 +11,22 @@ $Id$
 //   CreateInputFilesMap() creates a list of local files, that can be accessed by the shuttle
 
 extern TBenchmark *gBenchmark;
-void TOFPreprocessor()
+void TOFPreprocessor(Char_t * RunType="PHYSICS")
 {
-  gSystem->Load("$ALICE/SHUTTLE/TestShuttle/libTestShuttle.so");
+  gSystem->Load("$ALICE_ROOT/SHUTTLE/TestShuttle/libTestShuttle");
 
+  AliLog::SetClassDebugLevel("AliTOFPreprocessor",2);
   // initialize location of CDB
-  AliTestShuttle::SetMainCDB("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB");
-  AliTestShuttle::SetMainRefStorage("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestReference");
+  AliTestShuttle::SetMainCDB("local://$ALICE_ROOT/OCDB/SHUTTLE/TestShuttle/TestCDB");
+  AliTestShuttle::SetMainRefStorage("local://$ALICE_ROOT/OCDB/SHUTTLE/TestShuttle/TestReference");
 
   // create AliTestShuttle instance
-  AliTestShuttle* shuttle = new AliTestShuttle(0, 0, 1000);
+  Int_t nrun = 104892;
+  AliTestShuttle* shuttle = new AliTestShuttle(nrun, 30, 980);
+  //setting run type to physiscs
+  shuttle->SetInputRunType(RunType);
+  shuttle->SetTimeCreated(20);
+  shuttle->SetDCSQueryOffset(20);
 
   // Generation of "fake" input DCS data
   TMap* dcsAliasMap = CreateDCSAliasMap();  
@@ -29,8 +35,28 @@ void TOFPreprocessor()
   shuttle->SetDCSInput(dcsAliasMap);   
 
   // processing files. for the time being, the files are local.
+  shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "HITS", "MON", "$ALICE_ROOT/TOF/ShuttleInput/Hits.root");
+  shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "CALIB", "MON", "$ALICE_ROOT/TOF/ShuttleInput/Calib.root");
+  shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "READOUT", "MON", "$ALICE_ROOT/TOF/ShuttleInput/Readout.root");
   shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "DELAYS", "MON", "$ALICE_ROOT/TOF/ShuttleInput/Total.root");
   shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "RUNLevel", "MON", "$ALICE_ROOT/TOF/ShuttleInput/Partial.root");
+  shuttle->AddInputFile(AliTestShuttle::kDCS, "TOF", "TofFeeLightMap", "", "$ALICE_ROOT/TOF/ShuttleInput/TOFFEElight.20101028.133932.8000");
+  shuttle->AddInputFile(AliTestShuttle::kDCS, "TOF", "TofFeeMap", "", "$ALICE_ROOT/TOF/ShuttleInput/TOFFEE.20091217.194708.105517");
+
+  TString filename;
+  TString LDCname;
+  //char filename[100];
+  //char LDCname[5];
+
+  for (Int_t iLDC=0;iLDC<2;iLDC++){
+    filename.Form("$ALICE_ROOT/TOF/ShuttleInput/TOFoutPulserLDC_%02i.root",iLDC*2);
+    LDCname.Form("LDC%i",iLDC*2);
+    shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "PULSER", LDCname, filename);
+    filename.Form("$ALICE_ROOT/TOF/ShuttleInput/TOFoutNoiseLDC_%02i.root",iLDC*2);
+    LDCname.Form("LDC%i",iLDC*2);
+    shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "NOISE", LDCname, filename);
+  }
+  
 
   // instantiation of the preprocessor
   AliPreprocessor* pp = new AliTOFPreprocessor(shuttle);
@@ -41,23 +67,10 @@ void TOFPreprocessor()
   gBenchmark->Stop("process");
   gBenchmark->Print("process");
 
-  // checking the file which should have been created  
-  AliCDBEntry* chkEntry = AliCDBManager::Instance()->GetStorage(AliShuttleInterface::GetMainCDB())
-                       ->Get("TOF/Calib/ParOnline", 0);
-  if (!chkEntry)
-  {
-    printf("The file is not there. Something went wrong.\n");
-    return;
-  }
-
-  AliTOFDataDCS* output = dynamic_cast<AliTOFDataDCS*> (chkEntry->GetObject());
-  // If everything went fine, draw the result
-  if (output)
-    printf("Output found.\n");
-  //    output->Draw();
   
 }
 
+
 TMap* CreateDCSAliasMap()
 {
   // Creates a DCS structure
@@ -75,40 +88,35 @@ TMap* CreateDCSAliasMap()
   aliasMap->SetOwner(1);
 
   TRandom random;
+  /*
   TDatime *datime = new TDatime();
   Int_t time = datime->GetTime();
   Int_t date = datime->GetDate();
   Int_t pid  = gSystem->GetPid();
   delete datime;
   Int_t iseed = TMath::Abs(10000 * pid + time - date); 
+  */
+
 
-  //Float_t thrHVv=7.75, thrHVc=3, thrLVv=2.75, thrLVc=2.5,
-  //thrFEEthr=1.5, thrFEEt=10, thrTemp=35, thrPress=1000;
-  //Float_t tentHVv=6.75, tentHVc=2, tentLVv=1.75, tentLVc=1.5,
-  //  tentFEEthr=0.5, te    result=0;
-  //ntFEEt=20, tentTemp=25, tentPress=900;
-  //Float_t sigmaHVv=1, sigmaHVc=0.25, sigmaLVv=0.25, sigmaLVc=0.25,
-  //  sigmaFEEthr=0.05, sigmaFEEt=5, sigmaTemp=1, sigmaPress=10;
-
-  Float_t tentHVv=6500, tentHVi=80, tentLVv=2.7, tentLVi=4.5,
-    tentLVv33=3.3, tentLVv50=5.0, tentLVv48=48,
-    tentLVi33=100, tentLVi50=3.0, tentLVi48=10,
-    tentFEEthr=1.0, tentFEEtfeac=25, tentFEEttrm=45;
-  Float_t sigmaHVv=10, sigmaHVi=10, sigmaLVv=0.2, sigmaLVi=1.0,
-    sigmaLVv33=0.1, sigmaLVv50=0.1, sigmaLVv48=1,
-    sigmaLVi33=10, sigmaLVi50=0.5, sigmaLVi48=2,
-    sigmaFEEthr=0.1, sigmaFEEtfeac=10, sigmaFEEttrm=4;
-
-  Float_t tent=0, sigma=0, thr=0;
-  Int_t NAliases=10514, NHV=90, NLV=576, NLV33=72, NLV50=72, NLV48=72, NFEEthr=1152, NFEEtfeac=576, NFEEttrm=6840, NT=1, NP=1;
+  Float_t tentHVv=6500, tentHVi=80;
+  Float_t sigmaHVv=10, sigmaHVi=10;
+
+  Float_t tent=0, sigma=0;//, thr=0;
+  // to have all the aliases, decomment the following line:
+  Int_t NAliases=360, NHV=90;
+
+
+  // if not all the aliases are there, use this:
+  //Int_t NAliases=120, NHV=90;
+
+  TString sindex;
+  TString aliasName;
 
   for(int nAlias=0;nAlias<NAliases;nAlias++) {
 
     TObjArray* valueSet = new TObjArray;
     valueSet->SetOwner(1);
 
-    TString sindex;
-    TString aliasName;
     if (nAlias<NHV){
       aliasName = "tof_hv_vp_";
       sindex.Form("%02i",nAlias);
@@ -148,136 +156,213 @@ TMap* CreateDCSAliasMap()
       sigma=-sigmaHVi;
       //thr=-thrHVc;
     }
-    else if (nAlias<NHV*4+NLV){
-      //      aliasName = "LVv";
-      //aliasName += nAlias-4*NHV;
-      aliasName = "tof_lv_vfea_";
-      sindex.Form("%03i",nAlias-4*NHV);
-      aliasName += sindex;
-      tent=tentLVv;
-      sigma=sigmaLVv;
-      //thr=thrLVv;
-    }
-    else if (nAlias<NHV*4+2*NLV){
-      //      aliasName = "LVc";
-      //aliasName += nAlias-(4*NHV+NLV);
-      aliasName = "tof_lv_ifea_";
-      sindex.Form("%03i",nAlias-(4*NHV+NLV));
-      aliasName += sindex;
-      tent=tentLVi;
-      sigma=sigmaLVi;
-      //thr=thrLVc;
-    }
-    else if (nAlias<NHV*4+2*NLV+NLV33){
-      //      aliasName = "LVc";
-      //aliasName += nAlias-(4*NHV+NLV);
-      aliasName = "tof_lv_v33_";
-      sindex.Form("%02i",nAlias-(4*NHV+2*NLV));
-      aliasName += sindex;
-      tent=tentLVv33;
-      sigma=sigmaLVv33;
-      //thr=thrLVc;
-    }
-    else if (nAlias<NHV*4+2*NLV+2*NLV33){
-      //      aliasName = "LVc";
-      //aliasName += nAlias-(4*NHV+NLV);
-      aliasName = "tof_lv_i33_";
-      sindex.Form("%02i",nAlias-(4*NHV+2*NLV+NLV33));
-      aliasName += sindex;
-      tent=tentLVi33;
-      sigma=sigmaLVi33;
-      //thr=thrLVc;
-    }
-    else if (nAlias<NHV*4+2*NLV+2*NLV33+NLV50){
-      //      aliasName = "LVc";
-      //aliasName += nAlias-(4*NHV+NLV);
-      aliasName = "tof_lv_v50_";
-      sindex.Form("%02i",nAlias-(4*NHV+2*NLV+2*NLV33));
-      aliasName += sindex;
-      tent=tentLVv50;
-      sigma=sigmaLVv50;
-      //thr=thrLVc;
+    // gauss generation of values 
+    for (int timeStamp=0;timeStamp<6000;timeStamp+=10){
+    //for (int timeStamp=0;timeStamp<1;timeStamp++){
+      Float_t gaussvalue = (Float_t) (random.Gaus(tent,sigma));
+      if (TMath::Abs(gaussvalue-tent)>sigma){
+       AliDCSValue* dcsVal = new AliDCSValue(gaussvalue, timeStamp);
+       valueSet->Add(dcsVal);
+      }
     }
-    else if (nAlias<NHV*4+2*NLV+2*NLV33+2*NLV50){
-      //      aliasName = "LVc";
-      //aliasName += nAlias-(4*NHV+NLV);
-      aliasName = "tof_lv_i50_";
-      sindex.Form("%02i",nAlias-(4*NHV+2*NLV+2*NLV33+NLV50));
+
+    aliasMap->Add(new TObjString(aliasName), valueSet);
+
+  }
+
+
+
+
+  const Int_t kNsectors = 18;
+  const Int_t kNplates = 5;
+
+  UInt_t baseWord = 0;
+  UInt_t oldBaseWord = 0;
+
+  for(int i=0;i<kNsectors;i++)
+    for(int j=0;j<kNplates;j++) {
+
+      TObjArray* valueSetHV = new TObjArray;
+      valueSetHV->SetOwner(1);
+
+      aliasName = "TOF_HVSTATUS_";
+      sindex.Form("SM%02dMOD%1d",i,j);
       aliasName += sindex;
-      tent=tentLVi50;
-      sigma=sigmaLVi50;
-      //thr=thrLVc;
+
+
+      //for (int timeStamp=0;timeStamp<6000;timeStamp+=600) {
+      for (int timeStamp=0;timeStamp<1201;timeStamp+=600) {
+       if (timeStamp==0 /*|| timeStamp==1200*/) {
+         baseWord = CreateHVword(i,j, kTRUE);
+         oldBaseWord = baseWord;
+         AliDCSValue* dcsVal = new AliDCSValue(baseWord, timeStamp);
+         valueSetHV->Add(dcsVal);
+       }
+       else {
+         if (random.Uniform(0.,1.)>=0.5) {
+           baseWord = CreateHVword(i,j, kFALSE);
+           if (baseWord<=oldBaseWord) {
+             oldBaseWord = baseWord;
+             AliDCSValue* dcsVal = new AliDCSValue(baseWord, timeStamp);
+             valueSetHV->Add(dcsVal);
+           }
+           else {
+             AliDCSValue* dcsVal = new AliDCSValue(oldBaseWord, timeStamp);
+             valueSetHV->Add(dcsVal);
+           }
+           //Info(Form(" %2d %1d %s %d %d",i,j,aliasName,timeStamp,baseWord));
+         }
+       }
+      }
+
+      /*
+      baseWord = CreateHVword(i,j, kTRUE);
+      AliDCSValue* dcsVal0 = new AliDCSValue(baseWord, 0);
+      valueSetHV->Add(dcsVal0);
+
+      if ((i==0 && j==2) || (i==9 && j==4)) {
+       baseWord = CreateHVword(i,j, kFALSE);
+       AliDCSValue* dcsVal1 = new AliDCSValue(baseWord, 600);
+       valueSetHV->Add(dcsVal1);
+      }
+
+      baseWord = CreateHVword(i,j, kTRUE);
+      AliDCSValue* dcsVal2 = new AliDCSValue(baseWord, 1200);
+      valueSetHV->Add(dcsVal2);
+      */
+
+      aliasMap->Add(new TObjString(aliasName), valueSetHV);
+
     }
-    else if (nAlias<NHV*4+2*NLV+2*NLV33+2*NLV50+NLV48){
-      //      aliasName = "LVc";
-      //aliasName += nAlias-(4*NHV+NLV);
-      aliasName = "tof_lv_v48_";
-      sindex.Form("%02i",nAlias-(4*NHV+2*NLV+2*NLV33+2*NLV50));
-      aliasName += sindex;
-      tent=tentLVv48;
-      sigma=sigmaLVv48;
-      //thr=thrLVc;
+
+
+  const Int_t kNddl = 72;
+  baseWord = 0;
+  oldBaseWord = 0;
+
+  for(int i=0;i<kNddl;i++) {
+
+    TObjArray* valueSetLV = new TObjArray;
+    valueSetLV->SetOwner(1);
+
+    aliasName = "TOF_FEACSTATUS_";
+    sindex.Form("%02d",i);
+    aliasName += sindex;
+
+
+    //for (int timeStamp=0;timeStamp<6000;timeStamp+=600) {
+    for (int timeStamp=0;timeStamp<1201;timeStamp+=400) {
+      if (timeStamp==0 /*|| timeStamp==1200*/) {
+       baseWord = CreateLVword(kTRUE);
+       AliDCSValue* dcsVal = new AliDCSValue(baseWord, timeStamp);
+       valueSetLV->Add(dcsVal);
+       oldBaseWord = baseWord;
+       //Info(Form(" %2d %s %d %d",i,aliasName,timeStamp,baseWord));
+       }
+      else {
+       if (random.Uniform(0.,1.)>=0.5) {
+         baseWord = CreateLVword(kFALSE);
+         if (baseWord<=oldBaseWord) {
+           oldBaseWord = baseWord;
+           AliDCSValue* dcsVal = new AliDCSValue(baseWord, timeStamp);
+           valueSetLV->Add(dcsVal);
+         }
+         else {
+           AliDCSValue* dcsVal = new AliDCSValue(oldBaseWord, timeStamp);
+           valueSetLV->Add(dcsVal);
+         }
+         //Info(Form(" %2d %1d %s %d %d",i,j,aliasName,timeStamp,baseWord));
+       }
+      }
     }
-    else if (nAlias<NHV*4+2*NLV+2*NLV33+2*NLV50+2*NLV48){
-      //      aliasName = "LVc";
-      //aliasName += nAlias-(4*NHV+NLV);
-      aliasName = "tof_lv_i48_";
-      sindex.Form("%02i",nAlias-(4*NHV+2*NLV+2*NLV33+2*NLV50+NLV48));
-      aliasName += sindex;
-      tent=tentLVi48;
-      sigma=sigmaLVi48;
-      //thr=thrLVc;
+
+    /*
+    baseWord = CreateLVword(kTRUE);
+    AliDCSValue* dcsVal0 = new AliDCSValue(baseWord, 0);
+    valueSetLV->Add(dcsVal0);
+
+    if (i==7 || i==9) {
+      baseWord = CreateLVword(kFALSE);
+      AliDCSValue* dcsVal1 = new AliDCSValue(baseWord, 400);
+      valueSetLV->Add(dcsVal1);
     }
-    else if (nAlias<NHV*4+2*NLV+2*NLV33+2*NLV50+2*NLV48+NFEEthr){
-      //      aliasName = "FEEthr";
-      //aliasName += nAlias-(4*NHV+2*NLV-(4*NHV+2*NLV+2*NLV33+2*NLV50+2*NLV48));
-      aliasName = "tof_fee_th_";
-      sindex.Form("%04i",nAlias-(4*NHV+2*NLV+2*NLV33+2*NLV50+2*NLV48));
-      aliasName += sindex;
-      tent=tentFEEthr;
-      sigma=sigmaFEEthr;
-      //thr=thrFEEthr;
+    else if (i==50 || i==35) {
+      baseWord = CreateLVword(kFALSE);
+      AliDCSValue* dcsVal2 = new AliDCSValue(baseWord, 800);
+      valueSetLV->Add(dcsVal2);
     }
-    else if (nAlias<NHV*4+2*NLV+2*NLV33+2*NLV50+2*NLV48+NFEEthr+NFEEtfeac){
-      //cout << " nalias fee temp = " << nAlias << endl;
-      //      aliasName = "FEEt";
-      //aliasName += nAlias-(4*NHV+2*NLV+NFEEthr);
-      aliasName = "tof_fee_tfeac_";
-      sindex.Form("%03i",nAlias-(4*NHV+2*NLV+2*NLV33+2*NLV50+2*NLV48+NFEEthr));
-      aliasName += sindex;
-      //cout << " nalias fee temp name = " << aliasName << endl;
-      tent=tentFEEtfeac;
-      sigma=sigmaFEEtfeac;
-      //thr=thrFEEthr;
+
+    baseWord = CreateLVword(kTRUE);
+    AliDCSValue* dcsVal3 = new AliDCSValue(baseWord, 1200);
+    valueSetLV->Add(dcsVal3);
+    */
+
+    aliasMap->Add(new TObjString(aliasName), valueSetLV);
+
+  }
+
+
+  return aliasMap;
+}
+
+
+UInt_t CreateHVword(Int_t nSector, Int_t nPlate, Bool_t isAtBorder) {
+  //
+  //
+  //
+
+  UInt_t baseWord = 0;
+  UInt_t word = 0;
+  TRandom random;
+
+  for (Int_t iStrip=0; iStrip<AliTOFGeometry::NStrip(nPlate); iStrip++) {
+
+    if (isAtBorder) {
+      word = 1;
+      if (nPlate==2 && nSector>=13 && nSector<=15)
+       word = 0;
     }
-    else if (nAlias<NHV*4+2*NLV+2*NLV33+2*NLV50+2*NLV48+NFEEthr+NFEEtfeac+NFEEttrm){
-      //cout << " nalias fee temp = " << nAlias << endl;
-      //      aliasName = "FEEt";
-      //aliasName += nAlias-(4*NHV+2*NLV+NFEEthr);
-      aliasName = "tof_fee_ttrm_";
-      sindex.Form("%04i",nAlias-(4*NHV+2*NLV+2*NLV33+2*NLV50+2*NLV48+NFEEthr+NFEEtfeac));
-      aliasName += sindex;
-      //cout << " nalias fee temp name = " << aliasName << endl;
-      tent=tentFEEttrm;
-      sigma=sigmaFEEttrm;
-      //thr=thrFEEthr;
+    else {
+      random.Uniform(0.,1.)<0.5 ?   word = 0 : word = 1;
+      if (nPlate==2 && nSector>=13 && nSector<=15)
+       word = 0;
+      word = 0;
     }
 
-    // gauss generation of values 
-    for (int timeStamp=0;timeStamp<1000;timeStamp+=10){
-      Float_t gaussvalue = (Float_t) (random.Gaus(tent,sigma));
-      if (TMath::Abs(gaussvalue-tent)>sigma){
-       AliDCSValue* dcsVal = new AliDCSValue(gaussvalue, timeStamp);
-       valueSet->Add(dcsVal);
-      }
+    AliBitPacking::PackWord(word,baseWord,iStrip,iStrip);
+  }
+
+  return baseWord;
+
+}
+
+
+UInt_t CreateLVword(Bool_t isAtBorder) {
+  //
+  //
+  //
+
+  UInt_t baseWord = 0;
+  UInt_t word = 0;
+  TRandom random;
+
+  for (Int_t iFeac=0; iFeac<8; iFeac++) {
+
+    if (isAtBorder)
+      word = 1;
+    else {
+      random.Uniform(0.,1.)<0.5 ?   word = 0 : word = 1;
+      word = 0;
     }
 
-    aliasMap->Add(new TObjString(aliasName), valueSet);
+    AliBitPacking::PackWord(word,baseWord,iFeac,iFeac);
   }
 
-  return aliasMap;
+  return baseWord;
+
 }
 
+
 TMap* ReadDCSAliasMap()
 {
   // Open a file that contains DCS input data
@@ -304,7 +389,9 @@ void WriteDCSAliasMap()
   AliCDBId id("TOF/DCS/Data", 0, 0);
 
   // initialize location of CDB
-  AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB");
+  AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB/SHUTTLE/TestShuttle/TestCDB");
 
   AliCDBManager::Instance()->Put(dcsAliasMap, id, &metaData);
 }
+
+