// 5 --> DCS DPs error
// 6 --> Missing beamEnergy
// 7 --> null buffer for Trigger Config
+// 8 --> Missing LTU configuration
// Need to include dummy files in TestShuttle/TestCDB for CTP Configuration and Scalers
// (see macro $ALICE_ROOT/GRP/MakeCTPDummyEntries.C)
void TestGRPPreprocessor(const char* runtype="PHYSICS", TString partition="ALICE", TString detector="", TString beamType = "p-p", Int_t errorLevel=0)
{
- gSystem->Load("$ALICE_ROOT/SHUTTLE/TestShuttle/libTestShuttle.so");
+ gSystem->Load("$ALICE_ROOT/SHUTTLE/TestShuttle/libTestShuttle");
+ AliLog::SetClassDebugLevel("AliGRPPreprocessor",3);
Int_t kRun = 7;
- AliTestShuttle* shuttle = new AliTestShuttle(kRun, 1, 10);
+ AliTestShuttle* shuttle = new AliTestShuttle(kRun, 1000, 2000);
AliTestShuttle::SetMainCDB("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB");
AliTestShuttle::SetMainRefStorage("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestReference");
// setting runtype
shuttle->SetInputRunType(runtype);
+ Int_t detectorMask = 1074200319;
+ TString detectorMask_Str(Form("%d",detectorMask));
+ shuttle->AddInputRunParameter("detectorMask", detectorMask_Str.Data());
+
+ TString* ltu = new TString[3];
+ ltu[0] = "2000";
+ ltu[1] = "6000";
+ ltu[2] = "8000";
+ for (Int_t i = 0; i<AliDAQ::kNDetectors-2; i++){
+ if ((detectorMask >> i) & 0x1) {
+ TString detOnlineName = AliDAQ::DetectorName(i);
+ if (detOnlineName == "VZERO"){
+ ltu[0] = "3000";
+ ltu[1] = "7000";
+ ltu[2] = "9000";
+ }
+ if (errorLevel != 8 && !partition.IsNull() && detector.IsNull()){
+ shuttle->SetLTUConfig(ltu,detOnlineName.Data());
+ }
+ }
+ }
+
// simulating DCS DPs
TMap* dcsAliasMap = CreateDCSAliasMap(errorLevel);
shuttle->SetDCSInput(dcsAliasMap);
// simulating input from DAQ FXS
if (errorLevel != 2){
- shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "run000021390_GRP_gdc0_Period_TDSMtest.Seq_0.tag.root", "GDC0", "$ALICE_ROOT/GRP/ShuttleInput/run000021390_GRP_gdc0_Period_TDSMtest.Seq_0.tag.root");
- shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "run000021390_GRP_gdc1_Period_TDSMtest.Seq_0.tag.root", "GDC1", "$ALICE_ROOT/GRP/ShuttleInput/run000021390_GRP_gdc0_Period_TDSMtest.Seq_0.tag.root");
- shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "run000021391_GRP_gdc0_Period_TDSMtest.Seq_0.tag.root", "GDC0", "$ALICE_ROOT/GRP/ShuttleInput/run000021391_GRP_gdc0_Period_TDSMtest.Seq_0.tag.root");
- shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "run000021391_GRP_gdc1_Period_TDSMtest.Seq_0.tag.root", "GDC1", "$ALICE_ROOT/GRP/ShuttleInput/run000021391_GRP_gdc1_Period_TDSMtest.Seq_0.tag.root");
+ //$ALICE_ROOT to be expanded manually by the user for this test macro
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "Period_LHC09c_TPC.Seq_0.tag.root", "GDC35", "$ALICE_ROOT/GRP/ShuttleInput/run000080740_GRP_gdc-aldaqpc035_Period_LHC09c.Seq_0.tag.root");
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "Period_LHC09c_TPC.Seq_0.tag.root", "GDC36", "$ALICE_ROOT/GRP/ShuttleInput/run000080740_GRP_gdc-aldaqpc036_Period_LHC09c.Seq_0.tag.root");
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "Period_LHC09c_TPC.Seq_0.tag.root", "GDC44", "$ALICE_ROOT/GRP/ShuttleInput/run000080740_GRP_gdc-aldaqpc044_Period_LHC09c.Seq_0.tag.root");
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "Period_LHC09c_TPC.Seq_0.tag.root", "GDC45", "$ALICE_ROOT/GRP/ShuttleInput/run000080740_GRP_gdc-aldaqpc045_Period_LHC09c.Seq_0.tag.root");
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SPD", "VertexDiamond", "gdc-GLOBAL-01", "$ALICE_ROOT/GRP/ShuttleInput/run000104892_SPD_mon-DA-SPD-0_VertexDiamond");
+ shuttle->AddInputFile(AliShuttleInterface::kDCS, "GRP", "LHCData", "", "$ALICE_ROOT/GRP/ShuttleInput/testRun_GRP_run_number_testRun_data.txt");
+ shuttle->AddInputFile(AliShuttleInterface::kDQM, "GRP", "TriggerClassesAndHistosToClone", "DQM", "$ALICE_ROOT/GRP/ShuttleInput/run000158496_GRP_DQM_TriggerClassesAndHistosToClone");
+ shuttle->AddInputFile(AliShuttleInterface::kDQM, "ACO", "QAThresholds", "DQM", "$ALICE_ROOT/GRP/ShuttleInput/run000168322_ACO_DQM_QAThresholds");
+ shuttle->AddInputFile(AliShuttleInterface::kDQM, "TPC", "QAThresholds", "DQM", "$ALICE_ROOT/GRP/ShuttleInput/run000168322_TPC_DQM_QAThresholds");
+
+ /*
+ // for example:
+
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "Period_LHC09c_TPC.Seq_0.tag.root", "GDC35", "/home/zampolli/SOFT/AliRoot/AliRoot_Trunk/GRP/ShuttleInput/run000080740_GRP_gdc-aldaqpc035_Period_LHC09c.Seq_0.tag.root");
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "Period_LHC09c_TPC.Seq_0.tag.root", "GDC36", "/home/zampolli/SOFT/AliRoot/AliRoot_Trunk/GRP/ShuttleInput/run000080740_GRP_gdc-aldaqpc036_Period_LHC09c.Seq_0.tag.root");
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "Period_LHC09c_TPC.Seq_0.tag.root", "GDC44", "/home/zampolli/SOFT/AliRoot/AliRoot_Trunk/GRP/ShuttleInput/run000080740_GRP_gdc-aldaqpc044_Period_LHC09c.Seq_0.tag.root");
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "GRP", "Period_LHC09c_TPC.Seq_0.tag.root", "GDC45", "/home/zampolli/SOFT/AliRoot/AliRoot_Trunk/GRP/ShuttleInput/run000080740_GRP_gdc-aldaqpc045_Period_LHC09c.Seq_0.tag.root");
+ shuttle->AddInputFile(AliShuttleInterface::kDAQ, "SPD", "VertexDiamond", "gdc-GLOBAL-01", "/home/zampolli/SOFT/AliRoot/AliRoot_Trunk/GRP/ShuttleInput/run000104892_SPD_mon-DA-SPD-0_VertexDiamond");
+ shuttle->AddInputFile(AliShuttleInterface::kDCS, "GRP", "LHCData", "", "/home/zampolli/SOFT/AliRoot/AliRoot_Trunk/GRP/ShuttleInput/testRun_GRP_run_number_testRun_data.txt");
+ */
}
// simulating input from DCS FXS
const char *emptybuffer = NULL;
// simulating input from DAQ logbook_trigger_config
- if {
- (errorLevel != 3 errorLevel != 7 && !partition.IsNull() && detector.IsNull()) shuttle->SetInputTriggerConfiguration(buffer);
+ if (errorLevel != 3 && errorLevel != 7 && !partition.IsNull() && detector.IsNull()) {
+ cout << " adding trigger config " << endl;
+ shuttle->SetInputTriggerConfiguration(buffer);
}
else if (errorLevel == 7) {
shuttle->SetInputTriggerConfiguration(emptybuffer);
}
+ // open text file with CTP timing params
+ Char_t * fileNameTiming = gSystem->ExpandPathName("$ALICE_ROOT/GRP/ShuttleInput/ctptime.tim");
+ ifstream ifstrTiming;
+ ifstrTiming.open(fileNameTiming);
+ ifstrTiming.seekg(0,ios::end);
+ int lengthTiming = ifstrTiming.tellg();
+ const char *bufferTiming = new char[lengthTiming];
+ ifstrTiming.seekg(0,ios::beg);
+ ifstrTiming.read(bufferTiming,lengthTiming);
+ ifstrTiming.close();
+ // const char *emptybuffer = NULL;
+
+ // simulating input from DAQ logbook_ctp_timing_params
+ if (errorLevel != 3 && errorLevel != 7 && !partition.IsNull() && detector.IsNull()) {
+ cout << " adding ctp timing params " <<endl;
+ shuttle->SetInputCTPTimeParams(bufferTiming);
+ }
+ else if (errorLevel == 7) {
+ shuttle->SetInputCTPTimeParams(emptybuffer);
+ }
+
// simulating input from DAQ logbook
if (errorLevel != 1){
- shuttle->AddInputRunParameter("DAQ_time_start", "1233213.22");
+ shuttle->AddInputRunParameter("DAQ_time_start", "1020");
}
if (errorLevel != 6){
- shuttle->AddInputRunParameter("beamEnergy", "1400.");
+ shuttle->AddInputRunParameter("beamEnergy", "123");
}
- shuttle->AddInputRunParameter("DAQ_time_end", "1345645.22");
- shuttle->AddInputRunParameter("beamType", beamType);
+ shuttle->AddInputRunParameter("DAQ_time_end", "1980");
+ shuttle->AddInputRunParameter("beamType", beamType);
shuttle->AddInputRunParameter("numberOfDetectors", "5");
- shuttle->AddInputRunParameter("detectorMask", "34555");
shuttle->AddInputRunParameter("LHCperiod", "LHC08b");
shuttle->AddInputRunParameter("partition",partition);
shuttle->AddInputRunParameter("detector",detector);
// <valueList> is a TObjArray of AliDCSValue
// An AliDCSValue consists of timestamp and a value in form of a AliSimpleValue
- const Int_t fgknDCSDP = 50;
+ const Int_t fgknDCSDP = 48;
const char* fgkDCSDataPoints[AliGRPPreprocessor::fgknDCSDP] = {
- "LHCState", // missing in DCS
"L3Polarity",
"DipolePolarity",
- "LHCLuminosity", // missing in DCS
- "BeamIntensity", // missing in DCS
"L3Current",
"DipoleCurrent",
"L3_BSF17_H1",
"Dipole_Outside_Temperature",
"CavernTemperature",
"CavernAtmosPressure",
- "SurfaceAtmosPressure"
+ "SurfaceAtmosPressure",
+ "CavernAtmosPressure2",
};
TMap* aliasMap;
aliasMap = new TMap;
aliasMap->SetOwner(1);
- // LHCState
- valueSet = new TObjArray;
- valueSet->SetOwner(1);
- dcsVal = new AliDCSValue( 'F', 2 );
- valueSet->Add(dcsVal);
- aliasMap->Add( new TObjString(fgkDCSDataPoints[0]), valueSet );
-
// L3Polarity
valueSet = new TObjArray;
valueSet->SetOwner(1);
- dcsVal = new AliDCSValue( kTRUE, 2 );
+ dcsVal = new AliDCSValue( kTRUE, 1010 );
+ valueSet->Add(dcsVal);
+ dcsVal = new AliDCSValue( kTRUE, 1100 );
valueSet->Add(dcsVal);
+ dcsVal = new AliDCSValue( kTRUE, 1500 );
+ valueSet->Add(dcsVal);
+ dcsVal = new AliDCSValue( kTRUE, 1990 );
+ valueSet->Add(dcsVal);
+ // add the following two lines to test errors for changing polarity
+ // dcsVal = new AliDCSValue( kFALSE, 2 );
+ // valueSet->Add(dcsVal);
aliasMap->Add( new TObjString(fgkDCSDataPoints[1]), valueSet );
// DipolePolarity
valueSet = new TObjArray;
valueSet->SetOwner(1);
- dcsVal = new AliDCSValue( kTRUE, 2 );
+ dcsVal = new AliDCSValue( kTRUE, 1010 );
+ valueSet->Add(dcsVal);
+ dcsVal = new AliDCSValue( kTRUE, 1100 );
valueSet->Add(dcsVal);
+ dcsVal = new AliDCSValue( kTRUE, 1500 );
+ valueSet->Add(dcsVal);
+ dcsVal = new AliDCSValue( kTRUE, 1990 );
aliasMap->Add( new TObjString(fgkDCSDataPoints[2]), valueSet );
-
+
+
TRandom random;
Int_t maxDPindex = 0;
maxDPindex = 3; // simulating only a few DP in case errorLevel=5
}
- for( int nAlias=3; nAlias<maxDPindex; nAlias++) {
- if (nAlias>=7 && nAlias < 47) continue;
+ for( int nAlias=2; nAlias<maxDPindex; nAlias++) {
+ if (nAlias>=4 && nAlias < 44) continue;
valueSet = new TObjArray;
valueSet->SetOwner(1);
+ Int_t timeStampValue[10] = { 1010, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1990};
+
+
for (int timeStamp=0; timeStamp<10; timeStamp++) {
- dcsVal = new AliDCSValue((Float_t) (timeStamp+1+10*nAlias), timeStamp+1);
+ dcsVal = new AliDCSValue((Float_t) (timeStamp+1+10*nAlias), timeStampValue[timeStamp]);
valueSet->Add(dcsVal);
}
+ cout << " simulating " << fgkDCSDataPoints[nAlias] << endl;
aliasMap->Add( new TObjString( fgkDCSDataPoints[nAlias]), valueSet );
}
valueSet = new TObjArray;
valueSet->SetOwner(1);
for (int timeStamp=0; timeStamp<10; timeStamp++) {
- dcsVal = new AliDCSValue((Float_t) (timeStamp+1+10*hp), timeStamp+1);
+ dcsVal = new AliDCSValue((Float_t) (timeStamp+1+10*hp), timeStampValue[timeStamp]);
valueSet->Add(dcsVal);
//cout << " hall probe = " << dpAlias << " with value = " << dcsVal->GetFloat() << endl;
}