• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

beamtime/gsi-aug12/prod/go4/ROOTCONV/TRootConverterParam.cxx (r4864/r3870)

Go to the documentation of this file.
00001 /* Generated by Together */
00002 
00003 #include "TRootConverterParam.h"
00004 #include "TGo4Version.h"
00005 #if __GO4BUILDVERSION__ > 40502
00006    #include "go4iostream.h"
00007 #else
00008    #include "Riostream.h"
00009 #endif
00010 
00011 /***** Default values definition *****/
00012 #define OUTPUT_FILE_ENABLE     0
00013 #define OUTPUT_FILENAME    "testTree.root"
00014 #define ROOT_TREE_DISPLAY      0
00015 #define EVNT_BEF_RESET         5000
00016 #define GET4_DATA_IN_TREE      0
00017 #define TDC_REFERENCE         -1
00018 #define CHANNEL_TDC_REFERENCE -1
00019 #define CAEN_DATA_IN_TREE      0
00020 #define CAEN_TDC_MODE          1
00021 #define CAEN_TDC_MUTLTI        0
00022 #define CAEN_TDC_GENERAL_ENA   0
00023 #define PMT_TDC               -1
00024 #define PMT_QDC               -1
00025 #define RPC_TDC_LEADING       -1
00026 #define RPC_TDC_LEADING       -1
00027 #define TRIGLOG_DATA_IN_TREE   0
00028 #define HODOSCOPE_DATA_IN_TREE 0
00029 #define HODOSCOPE_DEBUG_HISTO  0
00030 #define VFTX_DATA_IN_TREE      0
00031 #define VFTX_FULL_DATA_MODE    0
00032 
00033 #define HDRPC_IN_TREE          0
00034 #define BUCRPC_IN_TREE         0
00035 #define BUCMOD1RPC_IN_TREE     0
00036 #define BUCMOD2RPC_IN_TREE     0
00037 #define BUCMOD3RPC_IN_TREE     0
00038 #define BUCMOD4RPC_IN_TREE     0
00039 #define PLASTICS_IN_TREE       0
00040 #define PADRPC_IN_TREE         0
00041 #define SCALORMU_IN_TREE       0
00042 #define SCALORMU2_IN_TREE      0
00043 #define MATCHING_IN_TREE       0
00044 
00045 #define VFTX_ENABLE            0
00046 #define SLOW_CONTROL_IN_TREE   0
00047 #define NB_SLOW_CONTROL_CH     0
00048 /*************************************/
00049 
00050 //***********************************************************
00051 TRootConverterParam::TRootConverterParam() : TGo4Parameter()
00052 {
00053    uRootDisplay        = 0;  // No Online Change - Enable/Disable root tree display in GO4 interface
00054    uCleanOuputEnable   = 0;  // No Online Change - Enable/Disable the generation of a cleaned data output file
00055    uEventsUntilReset   = 0;  // When tree displayed but not saved, number of events in Tree before periodic reset
00056    sOutputFilename     = ""; // No Online Change - Filename for the output of the Cleanning/Unpack step
00057 
00058    uGet4InTree         = 0;  // No Online Change - Enable/Disable the Get4 data in the TTree root output
00059    iReferenceTdc       = -1; // Index of the Caen TDC containing the t0 hybrid reference time
00060    iReferenceChannel1  = -1; // Index of the channel containing the t0 hybrid reference time
00061    iReferenceChannel2  = -1; // Index of the channel containing the t0 hybrid reference time
00062 
00063    uCaenInTree         =  0; // TODO No Online Change - Enable/Disable the CAEN TDC data in the TTree root output
00064    uCaenMode           =  0; // No Online Change - Caen Output mode
00065    uCaenMulti          =  0; // No Online Change - Enable/disable multi hits support for caen in general mode
00066    iPmtTdc             = -1; // Index of the Caen TDC containing the PMT data
00067    iPmtQdc             = -1; // Index of the Lecroy Qdc containing the PMT data
00068    iRpcTdcLeading      = -1; // Index of the Caen TDC containing the RPC leading  edge data
00069    iRpcTdcTrailing     = -1; // Index of the Caen TDC containing the RPC trailing edge data
00070 
00071    uTriglogInputInTree = 0;  // No Online Change - Enable/Disable the triglog input scalers data in the TTree root output
00072 
00073    uHodoInputInTree    = 0;  // No Online Change - Enable/Disable the fiber hodoscope data in the TTree root output
00074    uHodoDebugHisto     = 0;  // No Online Change - Enable/Disable the fiber hodoscope ddebug histograms
00075 
00076    uVftxInTree         = 0;  // No Online Change - Enable/Disable the Vftx (Fpga TDC) data in the TTree root output
00077    uVftxFullDataMode   = 0;  // No Online Change - Enable/Disable the Vftx (Fpga TDC) data in the TTree root output
00078 
00079    uSlowControlInTree  = 0;  // No Online Change - Enable/Disable inclusion of slow control data for HDRPC in Tree
00080    uNbSlowControlChan  = 0;  // No Online Change - Number of HV channels Slow Control to be saved in the tree
00081    // RPC
00082    uRpcHdInTree        = 0;  // No Online Change - Enable/Disable the HdRpc data in the TTree root output
00083    uRpcBucInTree       = 0;  // No Online Change - Enable/Disable the Buc Rpc data in the TTree root output
00084    uRpcBucM1InTree     = 0;  // No Online Change - Enable/Disable the Buc Module 1 Rpc data in the TTree root output
00085    uRpcBucM2InTree     = 0;  // No Online Change - Enable/Disable the Buc Module 2 data in the TTree root output
00086    uRpcBucM3InTree     = 0;  // No Online Change - Enable/Disable the Buc Module 3 data in the TTree root output
00087    uRpcBucM4InTree     = 0;  // No Online Change - Enable/Disable the Buc Module 4 data in the TTree root output
00088    // Plastics
00089    uPlasticsInTree     = 0;  // No Online Change - Enable/Disable the Plastics data in the TTree root output
00090    // Pad RPC
00091    uPadRpcInTree       = 0;  // No Online Change - Enable/Disable the Pad Rpc data in the TTree root output
00092    // SCALORMU
00093    uScalOrMuInTree     = 0;  // No Online Change - Enable/Disable the Scaler Or Multiplicity scaler data in TTree root output
00094    uScalOrMu2InTree    = 0;  // TODO No Online Change - Enable/Disable the second ScalOrMu data in TTree root output
00095    // Matching
00096    uMatchingInTree     = 0;  // No Online Change - Enable/Disable the Matching data in the TTree root output
00097 }
00098 
00099 
00100 //***********************************************************
00101 TRootConverterParam::TRootConverterParam(const char* name) : TGo4Parameter(name)
00102 {
00103    uRootDisplay        = 0;  // No Online Change - Enable/Disable root tree display in GO4 interface
00104    uCleanOuputEnable   = 0;  // No Online Change - Enable/Disable the generation of a cleaned data output file
00105    uEventsUntilReset   = 0;  // When tree displayed but not saved, number of events in Tree before periodic reset
00106    sOutputFilename     = ""; // No Online Change - Filename for the output of the Cleanning/Unpack step
00107 
00108    uGet4InTree         = 0;  // No Online Change - Enable/Disable the Get4 data in the TTree root output
00109    iReferenceTdc       = -1; // Index of the Caen TDC containing the t0 hybrid reference time
00110    iReferenceChannel1  = -1; // Index of the channel containing the t0 hybrid reference time
00111    iReferenceChannel2  = -1; // Index of the channel containing the t0 hybrid reference time
00112 
00113    uCaenInTree         =  0; // TODO No Online Change - Enable/Disable the CAEN TDC data in the TTree root output
00114    uCaenMode           =  0; // No Online Change - Caen Output mode
00115    uCaenMulti          =  0; // No Online Change - Enable/disable multi hits support for caen in general mode
00116    iPmtTdc             = -1; // Index of the Caen TDC containing the PMT data
00117    iPmtQdc             = -1; // Index of the Lecroy Qdc containing the PMT data
00118    iRpcTdcLeading      = -1; // Index of the Caen TDC containing the RPC leading  edge data
00119    iRpcTdcTrailing     = -1; // Index of the Caen TDC containing the RPC trailing edge data
00120 
00121    uTriglogInputInTree = 0;  // No Online Change - Enable/Disable the triglog input scalers data in the TTree root output
00122 
00123    uHodoInputInTree    = 0;  // No Online Change - Enable/Disable the fiber hodoscope data in the TTree root output
00124    uHodoDebugHisto     = 0;  // No Online Change - Enable/Disable the fiber hodoscope ddebug histograms
00125 
00126    uVftxInTree         = 0;  // No Online Change - Enable/Disable the Vftx (Fpga TDC) data in the TTree root output
00127    uVftxFullDataMode   = 0;  // No Online Change - Enable/Disable the Vftx (Fpga TDC) data in the TTree root output
00128 
00129    uSlowControlInTree  = 0;  // No Online Change - Enable/Disable inclusion of slow control data for HDRPC in Tree
00130    uNbSlowControlChan  = 0;  // No Online Change - Number of HV channels Slow Control to be saved in the tree
00131    // RPC
00132    uRpcHdInTree        = 0;  // No Online Change - Enable/Disable the HdRpc data in the TTree root output
00133    uRpcBucInTree       = 0;  // No Online Change - Enable/Disable the Buc Rpc data in the TTree root output
00134    uRpcBucM1InTree     = 0;  // No Online Change - Enable/Disable the Buc Module 1 Rpc data in the TTree root output
00135    uRpcBucM2InTree     = 0;  // No Online Change - Enable/Disable the Buc Module 2 data in the TTree root output
00136    uRpcBucM3InTree     = 0;  // No Online Change - Enable/Disable the Buc Module 3 data in the TTree root output
00137    uRpcBucM4InTree     = 0;  // No Online Change - Enable/Disable the Buc Module 4 data in the TTree root output
00138    // Plastics
00139    uPlasticsInTree     = 0;  // No Online Change - Enable/Disable the Plastics data in the TTree root output
00140    // Pad RPC
00141    uPadRpcInTree       = 0;  // No Online Change - Enable/Disable the Pad Rpc data in the TTree root output
00142    // SCALORMU
00143    uScalOrMuInTree     = 0;  // No Online Change - Enable/Disable the Scaler Or Multiplicity scaler data in TTree root output
00144    uScalOrMu2InTree    = 0;  // TODO No Online Change - Enable/Disable the second ScalOrMu data in TTree root output
00145    // Matching
00146    uMatchingInTree     = 0;  // No Online Change - Enable/Disable the Matching data in the TTree root output
00147 
00148    ReadOptions();
00149    this->PrintOptions();
00150 }
00151 //***********************************************************
00152 
00153 TRootConverterParam::~TRootConverterParam()
00154 {
00155 }
00156 //-----------------------------------------------------------
00157 Bool_t TRootConverterParam::UpdateFrom(TGo4Parameter *pp)
00158 {
00159   if(pp->InheritsFrom("TRootConverterParam")) {
00160      TRootConverterParam * from = (TRootConverterParam *) pp;
00161      cout << "**** TRootConverterParam " << GetName() << " updated from source parameter" << endl;
00162   } else
00163      cout << "Wrong parameter object: " << pp->ClassName() << endl;
00164   return kTRUE;
00165 }
00166 
00167 Bool_t TRootConverterParam::ReadOptions()
00168 {// Loading default values for safety
00169    uRootDisplay         = ROOT_TREE_DISPLAY;
00170    uCleanOuputEnable    = OUTPUT_FILE_ENABLE;
00171    uEventsUntilReset    = EVNT_BEF_RESET;
00172    sOutputFilename      = OUTPUT_FILENAME;
00173    uGet4InTree          = GET4_DATA_IN_TREE;
00174    iReferenceTdc        = TDC_REFERENCE;
00175    iReferenceChannel1   = CHANNEL_TDC_REFERENCE;
00176    iReferenceChannel2   = CHANNEL_TDC_REFERENCE;
00177    uCaenInTree          = CAEN_DATA_IN_TREE;
00178    uCaenMode            = CAEN_TDC_MODE;
00179    uCaenMulti           = CAEN_TDC_MUTLTI;
00180    for(UInt_t temp_index = 0; temp_index < MAX_HV_CHAN_SC; temp_index++)
00181       uGeneralCaenTdcEnabled[temp_index] = CAEN_TDC_GENERAL_ENA;
00182    iPmtTdc              = PMT_TDC;
00183    iPmtQdc              = PMT_QDC;
00184    iRpcTdcLeading       = RPC_TDC_LEADING;
00185    iRpcTdcTrailing      = RPC_TDC_LEADING;
00186    uTriglogInputInTree  = TRIGLOG_DATA_IN_TREE;
00187    uHodoInputInTree     = HODOSCOPE_DATA_IN_TREE;
00188    uHodoDebugHisto      = HODOSCOPE_DEBUG_HISTO;
00189    uVftxInTree          = VFTX_DATA_IN_TREE;
00190    uVftxFullDataMode    = VFTX_FULL_DATA_MODE;
00191    uScalOrMuInTree      = SCALORMU_IN_TREE;
00192    for(UInt_t temp_index = 0; temp_index < MAX_FPGA_TDC; temp_index++)
00193       uVftxEnabled[temp_index] = VFTX_ENABLE;
00194    uSlowControlInTree   = SLOW_CONTROL_IN_TREE;
00195    uNbSlowControlChan   = NB_SLOW_CONTROL_CH;
00196    for(UInt_t temp_index = 0; temp_index < MAX_HV_CHAN_SC; temp_index++)
00197    {
00198       sScInputNamePosI[temp_index] = "";
00199       sScOutputNamePosI[temp_index]= "";
00200       sScInputNamePosU[temp_index] = "";
00201       sScOutputNamePosU[temp_index]= "";
00202       sScInputNameNegI[temp_index] = "";
00203       sScOutputNameNegI[temp_index]= "";
00204       sScInputNameNegU[temp_index] = "";
00205       sScOutputNameNegU[temp_index]= "";
00206    } // for(UInt_t temp_index = 0; temp_index < MAX_HV_CHAN_SC; temp_index++)
00207    // RPC
00208    uRpcHdInTree        = HDRPC_IN_TREE;
00209    uRpcBucInTree       = BUCRPC_IN_TREE;
00210    uRpcBucM1InTree     = BUCMOD1RPC_IN_TREE;
00211    uRpcBucM2InTree     = BUCMOD2RPC_IN_TREE;
00212    uRpcBucM3InTree     = BUCMOD3RPC_IN_TREE;
00213    uRpcBucM4InTree     = BUCMOD4RPC_IN_TREE;
00214    // Plastics
00215    uPlasticsInTree     = PLASTICS_IN_TREE;
00216    // Pad RPC
00217    uPadRpcInTree       = PADRPC_IN_TREE;
00218    // SCALORMU
00219    uScalOrMuInTree     = SCALORMU_IN_TREE;
00220    uScalOrMu2InTree    = SCALORMU2_IN_TREE;
00221    // Matching
00222    uMatchingInTree     = MATCHING_IN_TREE;
00223 
00224 
00225    // Try to read the option filename from the general option files text file
00226    TString sOptionFileName = "./rootconv_options.txt";
00227    Bool_t bFilenameFound = kFALSE;
00228    fstream optionFilenameFile("./Option_files.txt", ios::in);
00229    // Testing if the file does exist. If not I use default values
00230    if( optionFilenameFile.fail() == true)
00231    {
00232       cout<<"************************************************************************"<<endl;
00233       cout<<" File with option filename for Root Conv not found: using the default value ";
00234       cout<<sOptionFileName<<endl;
00235    } // if( optionFilenameFile.fail() == true)
00236       else
00237       {
00238          TString line;
00239 
00240          // Goes through all lines
00241          while( !optionFilenameFile.eof() )
00242          {
00243            line.ReadLine(optionFilenameFile, kFALSE); // Read a line of the option file and set the iterator automatically to the next line
00244 
00245            if(line(0) == '#' || line(0) == '*'||
00246                (line(0) == '/' && line(1) == '/') )
00247            {
00248               //Comment in the text file
00249               ;
00250            }
00251            else if(line.Contains("rootconv")==kTRUE)
00252            {
00253               sOptionFileName = ((TString)line(11, line.Sizeof()-11 ));
00254               cout<<"************************************************************************"<<endl;
00255               cout<<"Using "<<sOptionFileName<<" as source for the options of Root Conv step"<<endl;
00256               bFilenameFound = kTRUE;
00257               break;
00258            }
00259          } // while( !optionFilenameFile.eof() )
00260          if( optionFilenameFile.eof() && kFALSE == bFilenameFound )
00261          {
00262             cout<<"************************************************************************"<<endl;
00263             cout<<"Field for Root Conv step not found in File with option filename => Using "<<sOptionFileName<<endl;
00264          } // if( optionFilenameFile.eof() && kFALSE == bFilenameFound )
00265       } // else of if( optionFilenameFile.fail() == true)
00266 
00267 
00268    // Reading out parameters from the option file
00269    //~ fstream setupFile("./ROOTFORMAT/rootconv_options.txt", ios::in);
00270    fstream setupFile(sOptionFileName, ios::in);
00271    if( setupFile.fail() == true)
00272    {
00273       cout<<"Error for TRootConverterParam: Setup file "<<sOptionFileName<<" can not be opened or is missing."<<endl;
00274       cout<<"=> Using default values!"<<endl;
00275    }
00276    else
00277    {
00278       TString line;
00279       while( !setupFile.eof() )
00280       {
00281          line.ReadLine(setupFile, kFALSE); // Read a line of the option file and set the iterator automatically to the next line
00282          if(line(0) == '#' || line(0) == '*')
00283          {
00284             //Comment
00285             ;
00286          }
00287          else if(line.Contains("disproot")==kTRUE)
00288          {
00289             uRootDisplay = ((TString)line(8,10)).Atoi();
00290          }
00291          else if(line.Contains("cleanoutp")==kTRUE)
00292          {
00293             uCleanOuputEnable = ((TString)line(10,10)).Atoi();
00294          }
00295          else if(line.Contains("nbevtrst")==kTRUE)
00296          {
00297             uEventsUntilReset = ((TString)line(8,10)).Atoi();
00298          }
00299          else if(line.Contains("cleanfile")==kTRUE)
00300          {
00301             sOutputFilename = line(10,120);
00302          }
00303          else if(line.Contains("get4intree")==kTRUE)
00304          {
00305             uGet4InTree = ((TString)line(11,10)).Atoi();
00306          }
00307          else if(line.Contains("indreftdc")==kTRUE)
00308          {
00309             iReferenceTdc = ((TString)line(10,10)).Atoi();
00310          }
00311          else if(line.Contains("charefone")==kTRUE)
00312          {
00313             iReferenceChannel1 = ((TString)line(10,10)).Atoi();
00314          }
00315          else if(line.Contains("chareftwo")==kTRUE)
00316          {
00317             iReferenceChannel2 = ((TString)line(10,10)).Atoi();
00318          }
00319          else if(line.Contains("caenintree")==kTRUE)
00320          {
00321             uCaenInTree = ((TString)line(11,10)).Atoi();
00322          }
00323          else if(line.Contains("caenmode")==kTRUE)
00324          {
00325             uCaenMode = ((TString)line(10,10)).Atoi();
00326          }
00327          else if(line.Contains("caenmulti")==kTRUE)
00328          {
00329             uCaenMulti = ((TString)line(10,10)).Atoi();
00330          }
00331          else if(line.Contains("caentdcena")==kTRUE)
00332          {
00333             line = line(11,39);
00334             if( 0 != line.Sizeof() )
00335             {
00336                for(UInt_t temp_index = 0; temp_index < MAX_1290 && 0 != line.Sizeof(); temp_index++)
00337                {
00338                   uGeneralCaenTdcEnabled[temp_index] = ((TString)line(0,3)).Atoi();
00339                   line = line(3,39);
00340                } // for(UInt_t temp_index = 0; temp_index < MAX_1290 && 0 != line.Sizeof(); temp_index++)
00341             } // if( 0 != line.Sizeof() )
00342          }
00343          else if(line.Contains("pmttdcind")==kTRUE)
00344          {
00345             iPmtTdc = ((TString)line(10,10)).Atoi();
00346          }
00347          else if(line.Contains("pmtqdcind")==kTRUE)
00348          {
00349             iPmtQdc = ((TString)line(10,10)).Atoi();
00350          }
00351          else if(line.Contains("rpctdclei")==kTRUE)
00352          {
00353             iRpcTdcLeading = ((TString)line(10,10)).Atoi();
00354          }
00355          else if(line.Contains("rpctdcfai")==kTRUE)
00356          {
00357             iRpcTdcTrailing = ((TString)line(10,10)).Atoi();
00358          }
00359          else if(line.Contains("trigintree")==kTRUE)
00360          {
00361             uTriglogInputInTree = ((TString)line(11,10)).Atoi();
00362          }
00363          else if(line.Contains("hodointree")==kTRUE)
00364          {
00365             uHodoInputInTree = ((TString)line(11,10)).Atoi();
00366          }
00367          else if(line.Contains("hodohisdeb")==kTRUE)
00368          {
00369             uHodoDebugHisto = ((TString)line(11,10)).Atoi();
00370          }
00371          else if(line.Contains("vftxintree")==kTRUE)
00372          {
00373             uVftxInTree = ((TString)line(11,10)).Atoi();
00374          }
00375          else if(line.Contains("vftxfullda")==kTRUE)
00376          {
00377             uVftxFullDataMode = ((TString)line(11,10)).Atoi();
00378          }
00379          else if(line.Contains("vftxenable")==kTRUE)
00380          {
00381             line = line(11,39);
00382             if( 0 != line.Sizeof() )
00383             {
00384                for(UInt_t temp_index = 0; temp_index < MAX_FPGA_TDC && 0 != line.Sizeof(); temp_index++)
00385                {
00386                   uVftxEnabled[temp_index] = ((TString)line(0,3)).Atoi();
00387                   line = line(3,39);
00388                } // for(UInt_t temp_index = 0; temp_index < MAX_1290 && 0 != line.Sizeof(); temp_index++)
00389             } // if( 0 != line.Sizeof() )
00390          }
00391          else if(line.Contains("hrpcintree")==kTRUE)
00392          {
00393             uRpcHdInTree = ((TString)line(11,10)).Atoi();
00394          }
00395          else if(line.Contains("brpcintree")==kTRUE)
00396          {
00397             uRpcBucInTree = ((TString)line(11,10)).Atoi();
00398          }
00399          else if(line.Contains("buc1intree")==kTRUE)
00400          {
00401             uRpcBucM1InTree = ((TString)line(11,10)).Atoi();
00402          }
00403          else if(line.Contains("buc2intree")==kTRUE)
00404          {
00405             uRpcBucM2InTree = ((TString)line(11,10)).Atoi();
00406          }
00407          else if(line.Contains("buc3intree")==kTRUE)
00408          {
00409             uRpcBucM3InTree = ((TString)line(11,10)).Atoi();
00410          }
00411          else if(line.Contains("buc4intree")==kTRUE)
00412          {
00413             uRpcBucM4InTree = ((TString)line(11,10)).Atoi();
00414          }
00415          else if(line.Contains("plasintree")==kTRUE)
00416          {
00417             uPlasticsInTree = ((TString)line(11,10)).Atoi();
00418          }
00419          else if(line.Contains("prpcintree")==kTRUE)
00420          {
00421             uPadRpcInTree = ((TString)line(11,10)).Atoi();
00422          }
00423          else if(line.Contains("scomintree")==kTRUE)
00424          {
00425             uScalOrMuInTree = ((TString)line(11,10)).Atoi();
00426          }
00427          else if(line.Contains("matcintree")==kTRUE)
00428          {
00429             uMatchingInTree = ((TString)line(11,10)).Atoi();
00430          }
00431          else if(line.Contains("slcointree")==kTRUE)
00432          {
00433             uSlowControlInTree = ((TString)line(11,10)).Atoi();
00434          }
00435          else if(line.Contains("nbslowcoch")==kTRUE)
00436          {
00437             uNbSlowControlChan = ((TString)line(11,10)).Atoi();
00438             if( MAX_HV_CHAN_SC < uNbSlowControlChan)
00439                uNbSlowControlChan = MAX_HV_CHAN_SC;
00440          }
00441          else if(line.Contains("slowcontch")==kTRUE)
00442          {
00443             line = line(12,36);
00444             if( 0 != uNbSlowControlChan && 0 != line.Sizeof() )
00445             {
00446                UInt_t uChannelIndex = 0;
00447                for(UInt_t temp_index = 0; temp_index < uNbSlowControlChan && 0 != line.Sizeof(); temp_index++)
00448                {
00449                   uChannelIndex = ((TString)line(0,3)).Atoi();
00450 
00451                   uSlowControlChans[temp_index]= uChannelIndex;
00452                   sScInputNamePosI[temp_index] = Form("CBM:HV:A1526P:CH%d:imon", uChannelIndex);
00453                   sScOutputNamePosI[temp_index]= Form("I_PosHv_ch%d", uChannelIndex);
00454                   sScInputNamePosU[temp_index] = Form("CBM:HV:A1526P:CH%d:vmon", uChannelIndex);
00455                   sScOutputNamePosU[temp_index]= Form("U_PosHv_ch%d", uChannelIndex);
00456                   sScInputNameNegI[temp_index] = Form("CBM:HV:A1526N:CH%d:imon", uChannelIndex);
00457                   sScOutputNameNegI[temp_index]= Form("I_NegHv_ch%d", uChannelIndex);
00458                   sScInputNameNegU[temp_index] = Form("CBM:HV:A1526N:CH%d:vmon", uChannelIndex);
00459                   sScOutputNameNegU[temp_index]= Form("U_NegHv_ch%d", uChannelIndex);
00460 
00461                   line = line(3,36);
00462                } // for(UInt_t temp_index = 0; temp_index < uNbStrips && 0 != line.Sizeof(); temp_index++)
00463             } //  if( 0 != uNbSlowControlChan && 0 != line.Sizeof() )
00464             else if( 0 == line.Sizeof() )
00465                cout<<"Error: Some HV channel expected and empty string for exact indexes!"<<endl;
00466          } // else if(line.Contains("slowcontch")==kTRUE)
00467          
00468       }
00469    }
00470    
00471    setupFile.close();
00472    
00473    return kTRUE;
00474 }
00475 Int_t TRootConverterParam::PrintOptions()
00476 {
00477    cout<<"******************* ROOT Tree converter parameters *********************"<<endl;
00478 //   cout<<"       Option values Root Converter Param"<<endl;
00479    if( uRootDisplay )
00480       cout<<"Clean data tree display in Go4:    ON "<<endl;
00481       else cout<<"Clean data tree display in Go4:    OFF"<<endl;
00482    if( uCleanOuputEnable )
00483    {
00484       cout<<"Output file for clean data tree:   ON "<<endl;
00485       cout<<"Output filename:                   "<<sOutputFilename<<endl;
00486    }
00487       else cout<<"Output file for clean data tree:   OFF"<<endl;
00488    if( uRootDisplay && 0 == uCleanOuputEnable )
00489       cout<<"Nb Events before periodic reset:   "<<uEventsUntilReset<<endl;
00490    if(1 == uRootDisplay || 1 == uCleanOuputEnable )
00491    {
00492       if( 1 == uGet4InTree )
00493          cout<<"GET4 data added to the TTree:      ON "<<endl;
00494          else cout<<"GET4 data added to the TTree:       OFF"<<endl;
00495       if( -1 != iPmtTdc || -1 != iPmtQdc )
00496       {
00497          cout<<"Caen TDC for PMT data:             "<<iPmtTdc<<endl;
00498          cout<<"Lecroy for PMT data:               "<<iPmtQdc<<endl;
00499       }
00500       if( uCaenInTree )
00501       {
00502          if( 0 == uCaenMode)
00503          {
00504             cout<<"mode for CAEN data in tree:        COSY 2011 like "<<endl;
00505             if( -1 != iRpcTdcLeading || -1 != iRpcTdcTrailing )
00506             {
00507                cout<<"Caen TDC for RPC leading edge:    "<<iRpcTdcLeading<<endl;
00508                cout<<"Caen TDC for RPC trailing edge:   "<<iRpcTdcTrailing<<endl;
00509             }
00510             if( -1 != iReferenceTdc || -1 != iReferenceChannel1 || -1 != iReferenceChannel2)
00511             {
00512                cout<<"Caen TDC for t0 reference:        "<<iReferenceTdc<<endl;
00513                cout<<"1st Caen TDC Channel for t0 ref:  "<<iReferenceChannel1<<endl;
00514                cout<<"2nd Caen TDC Channel for t0 ref:  "<<iReferenceChannel2<<endl;
00515             }
00516          } // if( 0 == uCaenMode)
00517          else
00518          {
00519             cout<<"mode for CAEN data in tree:        General "<<endl;
00520             if( 1 == uCaenMulti )
00521                cout<<"CAEN multiple hits in TTree:       ON "<<endl;
00522                else cout<<"CAEN multiple hits in TTree:       OFF"<<endl;
00523 
00524             cout<<"Caen v1290 tdc index:      |-      ";
00525             for( Int_t iIndex1290 = 0; iIndex1290 < MAX_1290; iIndex1290++)
00526             {
00527                cout.width(2);
00528                cout<<iIndex1290<<" ";
00529             }
00530             cout<<endl<<"Added in Tree?             |->     ";
00531             for( Int_t iIndex1290 = 0; iIndex1290 < MAX_1290; iIndex1290++)
00532             {
00533                cout.width(2);
00534                cout<<uGeneralCaenTdcEnabled[iIndex1290]<<" ";
00535             }
00536             cout<<endl;
00537          } // else of if( 0 == uCaenMode) => general mode
00538       } // if( uCaenInTree )
00539          else cout<<"CAEN data added to the TTree:      OFF"<<endl;
00540       if( uTriglogInputInTree )
00541          cout<<"TrigLog data added to the TTree:   ON "<<endl;
00542          else cout<<"TrigLog data added to the TTree:   OFF"<<endl;
00543       if( uHodoInputInTree )
00544          cout<<"Hodoscope data added to the TTree: ON "<<endl;
00545          else cout<<"Hodoscope data added to the TTree: OFF"<<endl;
00546       if( uHodoDebugHisto )
00547          cout<<"Hodoscope debug histograms:        ON "<<endl;
00548          else cout<<"Hodoscope debug histograms:        OFF"<<endl;
00549       if( uVftxInTree )
00550       {
00551          cout<<"VFTX data added to the TTree:      ON "<<endl;
00552 
00553          if( uVftxFullDataMode )
00554          cout<<"VFTX data in tree:                 FULL = raw + calib "<<endl;
00555             else cout<<"VFTX data in tree:                 Only CALIB "<<endl;
00556 
00557          cout<<"VFTX tdc index:            |-      ";
00558          for( Int_t iIndexVftx = 0; iIndexVftx < MAX_FPGA_TDC; iIndexVftx++)
00559          {
00560             cout.width(2);
00561             cout<<iIndexVftx<<" ";
00562          }
00563          cout<<endl<<"Added in Tree?             |->     ";
00564          for( Int_t iIndexVftx = 0; iIndexVftx < MAX_FPGA_TDC; iIndexVftx++)
00565          {
00566             cout.width(2);
00567             cout<<uVftxEnabled[iIndexVftx]<<" ";
00568          }
00569          cout<<endl;
00570       }
00571          else cout<<"VFTX data added to the TTree:      OFF"<<endl;
00572 
00573       if( uRpcHdInTree )
00574          cout<<"HD RPC full event added to TTree:  ON "<<endl;
00575          else cout<<"HD RPC full event added to TTree:  OFF"<<endl;
00576       if( uRpcBucInTree )
00577          cout<<"BUC RPC full event added to TTree: ON "<<endl;
00578          else cout<<"BUC RPC full event added to TTree: OFF"<<endl;
00579       if( uRpcBucM1InTree )
00580          cout<<"BUC MOD1 full event added to TTree:ON "<<endl;
00581          else cout<<"BUC MOD1 full event added to TTree:OFF"<<endl;
00582       if( uRpcBucM2InTree )
00583          cout<<"BUC MOD2 full event added to TTree:ON "<<endl;
00584          else cout<<"BUC MOD2 full event added to TTree:OFF"<<endl;
00585       if( uRpcBucM3InTree )
00586          cout<<"BUC MOD3 full event added to TTree:ON "<<endl;
00587          else cout<<"BUC MOD3 full event added to TTree:OFF"<<endl;
00588       if( uRpcBucM4InTree )
00589          cout<<"BUC MOD4 full event added to TTree:ON "<<endl;
00590          else cout<<"BUC MOD4 full event added to TTree:OFF"<<endl;
00591       if( uPlasticsInTree )
00592          cout<<"Plastics full event added to TTree:ON "<<endl;
00593          else cout<<"Plastics full event added to TTree:OFF"<<endl;
00594       if( uPadRpcInTree )
00595          cout<<"PAD RPC full event added to TTree: ON "<<endl;
00596          else cout<<"PAD RPC full event added to TTree: OFF"<<endl;
00597       if( uScalOrMuInTree )
00598          cout<<"ScalOrMu scalers added to TTree:   ON "<<endl;
00599          else cout<<"ScalOrMu scalers added to TTree:   OFF"<<endl;
00600       if( uMatchingInTree )
00601          cout<<"Matching full event added to TTree:ON "<<endl;
00602          else cout<<"Matching full event added to TTree:OFF"<<endl;
00603 
00604       if( uSlowControlInTree )
00605       {
00606          cout<<"HDRPC HV value added to the TTree: ON "<<endl;
00607          cout<<"Nb slow control HV channels saved:  "<<uNbSlowControlChan<<endl;
00608          cout<<"Index slow control HV channels:     ";
00609          for(UInt_t temp_index = 0; temp_index < uNbSlowControlChan; temp_index++)
00610             cout<<uSlowControlChans[temp_index]<<" ";
00611          cout<<endl;
00612 //         for(UInt_t temp_index = 0; temp_index < uNbSlowControlChan; temp_index++)
00613 //         {
00614 //            cout<<sScInputNamePosI[temp_index]<<" ";
00615 //            cout<<sScOutputNamePosI[temp_index]<<" ";
00616 //            cout<<sScInputNamePosU[temp_index]<<" ";
00617 //            cout<<sScOutputNamePosU[temp_index]<<" ";
00618 //            cout<<sScInputNameNegI[temp_index]<<" ";
00619 //            cout<<sScOutputNameNegI[temp_index]<<" ";
00620 //            cout<<sScInputNameNegU[temp_index]<<" ";
00621 //            cout<<sScOutputNameNegU[temp_index]<<" ";
00622 //            cout<<endl;
00623 //         }
00624       }
00625          else cout<<"HDRPC HV value added to the TTree: OFF"<<endl;
00626    }
00627    cout<<"************************************************************************"<<endl;
00628    
00629    return 0;
00630 }

Generated on Tue Dec 10 2013 04:52:18 for ROCsoft by  doxygen 1.7.1