]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/ZDCMAPPINGda.cxx
Reverting...I was too fast
[u/mrichter/AliRoot.git] / ZDC / ZDCMAPPINGda.cxx
index fa2bc334e03b30bb509fa0943c4be6bd2f6a8fd8..4625e05a9d906c1d90d8a60920da35f7d9c5656f 100644 (file)
@@ -51,20 +51,22 @@ Trigger Types Used: different trigger types are used
 \r
 int main(int argc, char **argv) {\r
 \r
+  // needed for streamer application\r
   gROOT->GetPluginManager()->AddHandler("TVirtualStreamerInfo",\r
-                                       "*",\r
-                                       "TStreamerInfo",\r
-                                       "RIO",\r
-                                       "TStreamerInfo()"); \r
+                                        "*",\r
+                                        "TStreamerInfo",\r
+                                        "RIO",\r
+                                        "TStreamerInfo()"); \r
+  // needed for Minuit plugin\r
+  gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",\r
+                                        "Minuit",\r
+                                        "TMinuitMinimizer",\r
+                                        "Minuit",\r
+                                        "TMinuitMinimizer(const char*)");\r
 \r
-  TMinuitMinimizer m; \r
-  gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer", "Minuit","TMinuitMinimizer",\r
-      "Minuit", "TMinuitMinimizer(const char *)");\r
+  //TMinuitMinimizer m; \r
   TVirtualFitter::SetDefaultFitter("Minuit");\r
 \r
-  //const Char_t* tableSOD[]  = {"ALL", "no", "SOD", "all", NULL, NULL};\r
-  //monitorDeclareTable(const_cast<char**>(tableSOD));\r
-  \r
   char *monitor_table[] = { "ALL", "no", "PHY", "yes", "SOD", "all", NULL };\r
   int err = monitorDeclareTable(monitor_table);\r
   if(err){\r
@@ -73,10 +75,10 @@ int main(int argc, char **argv) {
   } \r
   \r
   int status=0, nphys=0;\r
-  int const kNModules = 10;\r
+  int const kNModules = 9;\r
   int const kNChannels = 24;\r
   int const kNScChannels = 32;  \r
-  int const kZDCTDCGeo=4;\r
+  int const kZDCTDCGeo = 4;\r
   \r
   int itdc=0, iprevtdc=-1, ihittdc=0;\r
   float tdcData[6], tdcL0=-999.;       \r
@@ -109,15 +111,14 @@ int main(int argc, char **argv) {
     tdcMod[y]=tdcCh[y]=tdcSigCode[y]=tdcDet[y]=tdcSec[y]=-1;\r
   }\r
  \r
-  TH1F * hTDC[6];\r
-  char ntdchist[20];\r
-  for(Int_t it=0; it<6; it++){\r
-    if(it==0)      hTDC[it] = new TH1F("TDCZNC", "TDC ZNC", 200, -200., 200.);\r
-    else if(it==1) hTDC[it] = new TH1F("TDCZNA", "TDC ZNA", 200, -200., 200.);\r
-    else if(it==2) hTDC[it] = new TH1F("TDCZPC", "TDC ZPC", 200, -200., 200.);\r
-    else if(it==3) hTDC[it] = new TH1F("TDCZPA", "TDC ZPA", 200, -200., 200.);\r
-    else if(it==4) hTDC[it] = new TH1F("TDCZEM1","TDC ZEM1",200, -200., 200.);\r
-    else if(it==5) hTDC[it] = new TH1F("TDCZEM2","TDC ZEM2",200, -200., 200.);\r
+  TH1F * hTDC[6]={0x0,0x0,0x0,0x0,0x0,0x0};\r
+  for(int it=0; it<6; it++){\r
+    if(it==0) hTDC[it] = new TH1F("TDCZEM1","TDC ZEM1",200, -200., 200.);\r
+    else if(it==1) hTDC[it] = new TH1F("TDCZEM2","TDC ZEM2",200, -200., 200.);\r
+    else if(it==2) hTDC[it] = new TH1F("TDCZNC", "TDC ZNC", 200, -200., 200.);\r
+    else if(it==3) hTDC[it] = new TH1F("TDCZPC", "TDC ZPC", 200, -200., 200.);\r
+    else if(it==4) hTDC[it] = new TH1F("TDCZNA", "TDC ZNA", 200, -200., 200.);\r
+    else if(it==5) hTDC[it] = new TH1F("TDCZPA", "TDC ZPA", 200, -200., 200.);\r
   }\r
   \r
   /* log start of process */\r
@@ -125,7 +126,7 @@ int main(int argc, char **argv) {
   signal(SIGSEGV, SIG_DFL);\r
 \r
   /* check that we got some arguments = list of files */\r
-  if (argc<2) {\r
+  if(argc<2) {\r
     printf("Wrong number of arguments\n");\r
     return -1;\r
   }\r
@@ -133,8 +134,7 @@ int main(int argc, char **argv) {
   FILE *mapFile4Shuttle;\r
 \r
   /* read the data files */\r
-  int n;\r
-  for(n=1;n<argc;n++){\r
+  for(int n=1;n<argc;n++){\r
    \r
     status=monitorSetDataSource( argv[n] );\r
     if (status!=0) {\r
@@ -158,7 +158,9 @@ int main(int argc, char **argv) {
     \r
     /* loop on events (infinite) */\r
     for(;;) {\r
-\r
+      \r
+      if(nphys > 50000) break;\r
+      \r
       struct eventHeaderStruct *event;\r
       eventTypeType eventT;\r
  \r
@@ -238,25 +240,25 @@ int main(int argc, char **argv) {
             fprintf(mapFile4Shuttle,"\t%d\t%d\t%d\t%d\t%d\t%d\n",\r
               is,adcMod[is],adcCh[is],sigCode[is],det[is],sec[is]);\r
             //printf("  Mapping DA -> %d ADC: mod %d ch %d, code %d det %d, sec %d\n",\r
-            //  is,adcMod[is],adcCh[is],sigCode[is],det[is],sec[is]);\r
+              //is,adcMod[is],adcCh[is],sigCode[is],det[is],sec[is]);\r
          }\r
          for(Int_t is=0; is<kNScChannels; is++){\r
             fprintf(mapFile4Shuttle,"\t%d\t%d\t%d\t%d\t%d\t%d\n",\r
               is,scMod[is],scCh[is],scSigCode[is],scDet[is],scSec[is]);\r
             //if(scMod[is]!=-1) printf("  Mapping DA -> %d Scaler: mod %d ch %d, code %d det %d, sec %d\n",\r
-            //  is,scMod[is],scCh[is],scSigCode[is],scDet[is],scSec[is]);\r
+              //is,scMod[is],scCh[is],scSigCode[is],scDet[is],scSec[is]);\r
          }\r
          for(Int_t is=0; is<kNScChannels; is++){\r
             fprintf(mapFile4Shuttle,"\t%d\t%d\t%d\t%d\n",\r
               is,tdcMod[is],tdcCh[is],tdcSigCode[is]);\r
             //if(tdcMod[is]!=-1) printf("  Mapping DA -> %d TDC: mod %d ch %d, code %d\n",\r
-            //  is,tdcMod[is],tdcCh[is],tdcSigCode[is]);\r
+              //is,tdcMod[is],tdcCh[is],tdcSigCode[is]);\r
          }\r
          for(Int_t is=0; is<kNModules; is++){\r
             fprintf(mapFile4Shuttle,"\t%d\t%d\t%d\n",\r
             modGeo[is],modType[is],modNCh[is]);\r
             //printf("  Mapping DA -> Module mapping: geo %d type %d #ch %d\n",\r
-            //  modGeo[is],modType[is],modNCh[is]);\r
+              //modGeo[is],modType[is],modNCh[is]);\r
          }\r
          \r
        //} //if (rawstream)\r
@@ -268,7 +270,7 @@ int main(int argc, char **argv) {
        rawStreamZDC->SetSODReading(kTRUE);\r
 \r
        // ----- Setting ch. mapping -----\r
-       for(Int_t jk=0; jk<2*kNChannels; jk++){\r
+       for(int jk=0; jk<2*kNChannels; jk++){\r
          rawStreamZDC->SetMapADCMod(jk, adcMod[jk]);\r
          rawStreamZDC->SetMapADCCh(jk, adcCh[jk]);\r
          rawStreamZDC->SetMapADCSig(jk, sigCode[jk]);\r
@@ -277,33 +279,50 @@ int main(int argc, char **argv) {
        }\r
        \r
        while(rawStreamZDC->Next()){\r
-          if(eventT==PHYSICS_EVENT && rawStreamZDC->GetADCModule()==kZDCTDCGeo && rawStreamZDC->IsZDCTDCDatum()==kTRUE){\r
+         if(rawStreamZDC->GetADCModule()!=kZDCTDCGeo) continue; //skipping ADCs, scalers and trigger cards\r
+\r
+          if(rawStreamZDC->GetADCModule()==kZDCTDCGeo && rawStreamZDC->IsZDCTDCDatum()==kTRUE){\r
              //\r
             itdc = rawStreamZDC->GetChannel(); \r
-            if((itdc>=8 && itdc<=13) || itdc==15){\r
-               if(itdc==iprevtdc) ihittdc++;\r
-               else ihittdc=0;\r
-               iprevtdc=itdc;\r
-               if(ihittdc<1 && itdc!=15) tdcData[itdc-8] = 0.025*rawStreamZDC->GetZDCTDCDatum();\r
-              if(itdc==15 && ihittdc<1) tdcL0 = 0.025*rawStreamZDC->GetZDCTDCDatum();\r
+             if(itdc==iprevtdc) ihittdc++;\r
+             else ihittdc=0;\r
+             iprevtdc=itdc;\r
+            //\r
+            if(((itdc>=8 && itdc<=13) || itdc==15) && ihittdc==0){\r
+               if(itdc!=15){\r
+                tdcData[itdc-8] = 0.025*rawStreamZDC->GetZDCTDCDatum();\r
+                //\r
+                //printf("   ev.%d **** TDC%d %1.0f ns  \n",nphys,itdc, tdcData[itdc-8]);\r
+              }\r
+              //\r
+              else if(itdc==15){\r
+                 tdcL0 = 0.025*rawStreamZDC->GetZDCTDCDatum();\r
+                 //\r
+                 //printf("   ev.%d ++++ TDCL0 %1.0f ns  \n",nphys,tdcL0);\r
+                 //\r
+                 for(int ic=0; ic<6; ic++){\r
+                   if(tdcData[ic]!=-999. && tdcL0!=-999.){\r
+                     hTDC[ic]->Fill(tdcData[ic]-tdcL0);\r
+                     //printf(" ev.%d -> Filling histo%d: %f ns\n",nphys,ic, tdcData[ic]-tdcL0);\r
+                   }\r
+                 }\r
+               }\r
             }\r
          }\r
         }\r
        \r
-       for(int ic=0; ic<6; ic++){\r
-         if(tdcData[ic]!=-999. && tdcL0!=-999.) hTDC[ic]->Fill(tdcData[ic]-tdcL0);\r
-       }\r
-       nphys++;\r
-       \r
+       nphys++;\r
+      \r
+        delete rawStreamZDC;\r
+        rawStreamZDC = 0x0;    \r
+       delete reader;\r
+\r
       }//(if PHYSICS_EVENT) \r
       else if(eventT==END_OF_RUN){\r
         printf("End Of Run detected\n");\r
         break;\r
       }\r
       \r
-      delete rawStreamZDC;\r
-      rawStreamZDC = 0x0;\r
-      \r
       iev++; \r
 \r
       /* free resources */\r
@@ -321,9 +340,9 @@ int main(int argc, char **argv) {
   //\r
   Float_t xUp=0., xLow=0., deltaX=0;\r
   Int_t binMax=0, nBinsx=0;\r
-  Float_t mean[6], sigma[6];\r
-  TF1 *fitfun[6];\r
-  for(Int_t k=0; k<6; k++){\r
+  Float_t mean[6]={0.,0.,0.,0.,0.,0.}, sigma[6]={0.,0.,0.,0.,0.,0.};\r
+  TF1 *fitfun[6]={0x0,0x0,0x0,0x0,0x0,0x0};\r
+  for(int k=0; k<6; k++){\r
     if(hTDC[k]->GetEntries()!=0){\r
        binMax = hTDC[k]->GetMaximumBin();\r
        if(binMax<=1){\r
@@ -340,7 +359,7 @@ int main(int argc, char **argv) {
        fitfun[k] = hTDC[k]->GetFunction("gaus");\r
        mean[k] = (Float_t) (fitfun[k]->GetParameter(1));\r
        sigma[k] = (Float_t) (fitfun[k]->GetParameter(2));\r
-       //printf("\t Mean value from fit = %1.2f\n", mean[k]);\r
+       //printf("\t Mean value from fit = %1.2f ns\n", mean[k]);\r
        //\r
        fprintf(fileShuttle,"\t%f\t%f\n",mean[k], sigma[k]);\r
      }\r