00001
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
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;
00054 uCleanOuputEnable = 0;
00055 uEventsUntilReset = 0;
00056 sOutputFilename = "";
00057
00058 uGet4InTree = 0;
00059 iReferenceTdc = -1;
00060 iReferenceChannel1 = -1;
00061 iReferenceChannel2 = -1;
00062
00063 uCaenInTree = 0;
00064 uCaenMode = 0;
00065 uCaenMulti = 0;
00066 iPmtTdc = -1;
00067 iPmtQdc = -1;
00068 iRpcTdcLeading = -1;
00069 iRpcTdcTrailing = -1;
00070
00071 uTriglogInputInTree = 0;
00072
00073 uHodoInputInTree = 0;
00074 uHodoDebugHisto = 0;
00075
00076 uVftxInTree = 0;
00077 uVftxFullDataMode = 0;
00078
00079 uSlowControlInTree = 0;
00080 uNbSlowControlChan = 0;
00081
00082 uRpcHdInTree = 0;
00083 uRpcBucInTree = 0;
00084 uRpcBucM1InTree = 0;
00085 uRpcBucM2InTree = 0;
00086 uRpcBucM3InTree = 0;
00087 uRpcBucM4InTree = 0;
00088
00089 uPlasticsInTree = 0;
00090
00091 uPadRpcInTree = 0;
00092
00093 uScalOrMuInTree = 0;
00094 uScalOrMu2InTree = 0;
00095
00096 uMatchingInTree = 0;
00097 }
00098
00099
00100
00101 TRootConverterParam::TRootConverterParam(const char* name) : TGo4Parameter(name)
00102 {
00103 uRootDisplay = 0;
00104 uCleanOuputEnable = 0;
00105 uEventsUntilReset = 0;
00106 sOutputFilename = "";
00107
00108 uGet4InTree = 0;
00109 iReferenceTdc = -1;
00110 iReferenceChannel1 = -1;
00111 iReferenceChannel2 = -1;
00112
00113 uCaenInTree = 0;
00114 uCaenMode = 0;
00115 uCaenMulti = 0;
00116 iPmtTdc = -1;
00117 iPmtQdc = -1;
00118 iRpcTdcLeading = -1;
00119 iRpcTdcTrailing = -1;
00120
00121 uTriglogInputInTree = 0;
00122
00123 uHodoInputInTree = 0;
00124 uHodoDebugHisto = 0;
00125
00126 uVftxInTree = 0;
00127 uVftxFullDataMode = 0;
00128
00129 uSlowControlInTree = 0;
00130 uNbSlowControlChan = 0;
00131
00132 uRpcHdInTree = 0;
00133 uRpcBucInTree = 0;
00134 uRpcBucM1InTree = 0;
00135 uRpcBucM2InTree = 0;
00136 uRpcBucM3InTree = 0;
00137 uRpcBucM4InTree = 0;
00138
00139 uPlasticsInTree = 0;
00140
00141 uPadRpcInTree = 0;
00142
00143 uScalOrMuInTree = 0;
00144 uScalOrMu2InTree = 0;
00145
00146 uMatchingInTree = 0;
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 {
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 }
00207
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
00215 uPlasticsInTree = PLASTICS_IN_TREE;
00216
00217 uPadRpcInTree = PADRPC_IN_TREE;
00218
00219 uScalOrMuInTree = SCALORMU_IN_TREE;
00220 uScalOrMu2InTree = SCALORMU2_IN_TREE;
00221
00222 uMatchingInTree = MATCHING_IN_TREE;
00223
00224
00225
00226 TString sOptionFileName = "./rootconv_options.txt";
00227 Bool_t bFilenameFound = kFALSE;
00228 fstream optionFilenameFile("./Option_files.txt", ios::in);
00229
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 }
00236 else
00237 {
00238 TString line;
00239
00240
00241 while( !optionFilenameFile.eof() )
00242 {
00243 line.ReadLine(optionFilenameFile, kFALSE);
00244
00245 if(line(0) == '#' || line(0) == '*'||
00246 (line(0) == '/' && line(1) == '/') )
00247 {
00248
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 }
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 }
00265 }
00266
00267
00268
00269
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);
00282 if(line(0) == '#' || line(0) == '*')
00283 {
00284
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 }
00341 }
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 }
00389 }
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 }
00463 }
00464 else if( 0 == line.Sizeof() )
00465 cout<<"Error: Some HV channel expected and empty string for exact indexes!"<<endl;
00466 }
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
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 }
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 }
00538 }
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
00613
00614
00615
00616
00617
00618
00619
00620
00621
00622
00623
00624 }
00625 else cout<<"HDRPC HV value added to the TTree: OFF"<<endl;
00626 }
00627 cout<<"************************************************************************"<<endl;
00628
00629 return 0;
00630 }