diff --git a/Analysis/include/MQwCodaControlEvent.h b/Analysis/include/MQwCodaControlEvent.h old mode 100755 new mode 100644 diff --git a/Analysis/include/MQwF1TDC.h b/Analysis/include/MQwF1TDC.h old mode 100755 new mode 100644 diff --git a/Analysis/include/MQwHistograms.h b/Analysis/include/MQwHistograms.h old mode 100755 new mode 100644 diff --git a/Analysis/include/MQwMockable.h b/Analysis/include/MQwMockable.h old mode 100755 new mode 100644 diff --git a/Analysis/include/MQwV775TDC.h b/Analysis/include/MQwV775TDC.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwADC18_Channel.h b/Analysis/include/QwADC18_Channel.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwColor.h b/Analysis/include/QwColor.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwDatabase.h b/Analysis/include/QwDatabase.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwEPICSEvent.h b/Analysis/include/QwEPICSEvent.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwEventBuffer.h b/Analysis/include/QwEventBuffer.h old mode 100755 new mode 100644 index 9f8573dd5..b813c8d75 --- a/Analysis/include/QwEventBuffer.h +++ b/Analysis/include/QwEventBuffer.h @@ -126,6 +126,8 @@ class QwEventBuffer: public MQwCodaControlEvent{ Int_t GetEvent(); Int_t WriteEvent(int* buffer); + Bool_t IsOnline(){return fOnline;}; + Bool_t IsROCConfigurationEvent(){ return (fEvtType>=0x90 && fEvtType<=0xaf); }; diff --git a/Analysis/include/QwF1TDContainer.h b/Analysis/include/QwF1TDContainer.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwF1TDContainerLinkDef.h b/Analysis/include/QwF1TDContainerLinkDef.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwFactory.h b/Analysis/include/QwFactory.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwHistogramHelper.h b/Analysis/include/QwHistogramHelper.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwInterpolator.h b/Analysis/include/QwInterpolator.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwLog.h b/Analysis/include/QwLog.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwObjectCounter.h b/Analysis/include/QwObjectCounter.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwOmnivore.h b/Analysis/include/QwOmnivore.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwOptions.h b/Analysis/include/QwOptions.h old mode 100755 new mode 100644 index 701617a60..3d20d84af --- a/Analysis/include/QwOptions.h +++ b/Analysis/include/QwOptions.h @@ -189,25 +189,15 @@ class QwOptions { void SetCommandLine(int argc, char* argv[], bool default_config_file = true); /// \brief Set a configuration file - void SetConfigFile(const std::string& configfile) { - fConfigFiles.clear(); - fConfigFiles.push_back(configfile); - fParsed = false; - }; + void SetConfigFile(const std::string& configfile); /// \brief Add a configuration file - void AddConfigFile(const std::string& configfile) { - QwMessage << "Adding user-defined configuration file " - << configfile << QwLog::endl; - fConfigFiles.push_back(configfile); - fParsed = false; - }; + void AddConfigFile(const std::string& configfile); /// \brief Add some configuration files void AddConfigFile(std::vector configfiles) { for (size_t i = 0; i < configfiles.size(); i++) - fConfigFiles.push_back(configfiles.at(i)); - fParsed = false; + AddConfigFile(configfiles.at(i)); }; /// \brief List the configuration files diff --git a/Analysis/include/QwPMT_Channel.h b/Analysis/include/QwPMT_Channel.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwParameterFile.h b/Analysis/include/QwParameterFile.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwPromptSummary.h b/Analysis/include/QwPromptSummary.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwPromptSummaryLinkDef.h b/Analysis/include/QwPromptSummaryLinkDef.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwRint.h b/Analysis/include/QwRint.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwRootFile.h b/Analysis/include/QwRootFile.h old mode 100755 new mode 100644 index 3dabb2c19..41ad14b70 --- a/Analysis/include/QwRootFile.h +++ b/Analysis/include/QwRootFile.h @@ -132,6 +132,10 @@ class QwRootTree { } } + Long64_t AutoSave(Option_t *option){ + return fTree->AutoSave(option); + } + /// Fill the tree Int_t Fill() { fCurrentEvent++; @@ -330,7 +334,7 @@ class QwRootFile { // Update regularly static Int_t update_count = 0; update_count++; - if (update_count % fUpdateInterval == 0) Update(); + if ((fUpdateInterval > 0) && ( update_count % fUpdateInterval == 0)) Update(); if (! HasDirByType(object)) return; // Fill histograms object.FillHistograms(); @@ -409,7 +413,24 @@ class QwRootFile { // Wrapped functionality - void Update() { if (fMapFile) fMapFile->Update(); } // not for TFile + void Update() { + if (fMapFile) { + QwMessage << "TMapFile memory resident size: " + << ((int*)fMapFile->GetBreakval() - (int*)fMapFile->GetBaseAddr()) * + 4 / sizeof(int32_t) / 1024 / 1024 << " MiB" + << QwLog::endl; + fMapFile->Update(); + }else{ + // this option will allow for reading the tree during write + Long64_t nBytes(0); + for (auto iter = fTreeByName.begin(); iter != fTreeByName.end(); iter++) + nBytes += iter->second.front()->AutoSave("SaveSelf"); + + QwMessage << "TFile saved: " + << nBytes/1000000 << "MB (innacurate number)" //FIXME this calculation is innacurate + << QwLog::endl; + } + } void Print() { if (fMapFile) fMapFile->Print(); if (fRootFile) fRootFile->Print(); } void ls() { if (fMapFile) fMapFile->ls(); if (fRootFile) fRootFile->ls(); } void Map() { if (fRootFile) fRootFile->Map(); } @@ -632,7 +653,7 @@ void QwRootFile::ConstructTreeBranches( tree->SetBasketSize(fBasketSize); tree->SetMaxTreeSize(kMaxTreeSize); - if (fEnableMapFile && fCircularBufferSize > 0) + if (fCircularBufferSize > 0) tree->SetCircular(fCircularBufferSize); } else { diff --git a/Analysis/include/QwRunCondition.h b/Analysis/include/QwRunCondition.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwSIS3320_Accumulator.h b/Analysis/include/QwSIS3320_Accumulator.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwSIS3320_LogicalAccumulator.h b/Analysis/include/QwSIS3320_LogicalAccumulator.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwSIS3320_Samples.h b/Analysis/include/QwSIS3320_Samples.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwSIS3320_SamplesLinkDef.h b/Analysis/include/QwSIS3320_SamplesLinkDef.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwScaler_Channel.h b/Analysis/include/QwScaler_Channel.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwSubsystemArray.h b/Analysis/include/QwSubsystemArray.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwTypes.h b/Analysis/include/QwTypes.h old mode 100755 new mode 100644 index d57e4e608..22487bc3c --- a/Analysis/include/QwTypes.h +++ b/Analysis/include/QwTypes.h @@ -15,6 +15,8 @@ class TString; // Types for the ROC_ID and Bank_ID used in decoding and destributing data typedef UInt_t ROCID_t; typedef ULong64_t BankID_t; /// Bank ID will combine both bank and marker words +static const ROCID_t kNullROCID = kMaxUInt; +static const BankID_t kNullBankID = kMaxULong64; // Enumerator types for regions and directions diff --git a/Analysis/include/QwUnits.h b/Analysis/include/QwUnits.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwVQWK_Channel.h b/Analysis/include/QwVQWK_Channel.h old mode 100755 new mode 100644 diff --git a/Analysis/include/QwWord.h b/Analysis/include/QwWord.h old mode 100755 new mode 100644 diff --git a/Analysis/include/VQwAnalyzer.h b/Analysis/include/VQwAnalyzer.h old mode 100755 new mode 100644 diff --git a/Analysis/include/VQwDataElement.h b/Analysis/include/VQwDataElement.h old mode 100755 new mode 100644 diff --git a/Analysis/include/VQwDataserver.h b/Analysis/include/VQwDataserver.h old mode 100755 new mode 100644 diff --git a/Analysis/include/VQwHardwareChannel.h b/Analysis/include/VQwHardwareChannel.h old mode 100755 new mode 100644 diff --git a/Analysis/include/VQwSubsystem.h b/Analysis/include/VQwSubsystem.h old mode 100755 new mode 100644 diff --git a/Analysis/include/VQwSystem.h b/Analysis/include/VQwSystem.h old mode 100755 new mode 100644 diff --git a/Analysis/main/QwRoot.cc b/Analysis/main/QwRoot.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/MQwCodaControlEvent.cc b/Analysis/src/MQwCodaControlEvent.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/MQwF1TDC.cc b/Analysis/src/MQwF1TDC.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/MQwMockable.cc b/Analysis/src/MQwMockable.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/MQwV775TDC.cc b/Analysis/src/MQwV775TDC.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwADC18_Channel.cc b/Analysis/src/QwADC18_Channel.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwColor.cc b/Analysis/src/QwColor.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwDatabase.cc b/Analysis/src/QwDatabase.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwEPICSEvent.cc b/Analysis/src/QwEPICSEvent.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwEventBuffer.cc b/Analysis/src/QwEventBuffer.cc old mode 100755 new mode 100644 index 82a506931..5a453c83b --- a/Analysis/src/QwEventBuffer.cc +++ b/Analysis/src/QwEventBuffer.cc @@ -40,11 +40,11 @@ const UInt_t QwEventBuffer::kNullDataWord = 0x4e554c4c; /// Default constructor QwEventBuffer::QwEventBuffer() - : fDataFileStem(fDefaultDataFileStem), + : fRunListFile(NULL), + fDataFileStem(fDefaultDataFileStem), fDataFileExtension(fDefaultDataFileExtension), fEvStreamMode(fEvStreamNull), fEvStream(NULL), - fRunListFile(NULL), fCurrentRun(-1), fRunIsSegmented(kFALSE), fPhysicsEventFlag(kFALSE), @@ -90,7 +90,7 @@ void QwEventBuffer::DefineOptions(QwOptions &options) "run range in format #[:#]"); options.AddDefaultOptions() ("runlist", po::value()->default_value(""), - "run list file example \n[5253]\n 234\n 246\n 256\n 345:456\n 567:789\n [5259]\n [5260]\n 0:10000\n [5261:5270]\n 9000:10000\n- for run 5253 it will analyze three individual events, and two event ranges \n- for run 5259 it will analyze the entire run (all segments) \n- for run 5260 it will analyze the first 10000 events \n- for runs 5261 through 5270 it will analyze the events 9000 through 10000)"); + "run list file name"); options.AddDefaultOptions() ("event,e", po::value()->default_value("0:"), "event range in format #[:#]"); @@ -177,6 +177,23 @@ void QwEventBuffer::ProcessOptions(QwOptions &options) fAllowLowSubbankIDs = options.GetValue("allow-low-subbank-ids"); // Open run list file + /* runlist file format example: + [5253] + 234 + 246 + 256 + 345:456 + 567:789 + [5259] + [5260] + 0:10000 + [5261:5270] + 9000:10000 + - for run 5253 it will analyze three individual events, and two event ranges + - for run 5259 it will analyze the entire run (all segments) + - for run 5260 it will analyze the first 10000 events + - for runs 5261 through 5270 it will analyze the events 9000 through 10000) + */ if (fRunListFileName.size() > 0) { fRunListFile = new QwParameterFile(fRunListFileName); fEventListFile = 0; @@ -815,7 +832,7 @@ Bool_t QwEventBuffer::FillSubsystemData(QwSubsystemArray &subsystems) for (size_t i=0; i(), "read ONLY this config file\n(will override default config files)"); - AddDefaultOptions()("add-config,a", po::value >(), "read ALSO this config file\n(will keep the default config files)"); + AddDefaultOptions()("add-config,a", po::value >()->composing(), "read ALSO this config file\n(will keep the default config files)"); } /** @@ -143,7 +143,41 @@ void QwOptions::SetCommandLine(int argc, char* argv[], bool default_config_file) } } +/** + * Set the named configuration file as the first (and initially only) + * one in the list. + * @param configfile Name of the config file, without path + */ +void QwOptions::SetConfigFile(const std::string& configfile) +{ + QwWarning << "Overriding the default configuration files with " + << "user-defined configuration file " + << configfile.c_str() << QwLog::endl; + fConfigFiles.clear(); + fConfigFiles.push_back(configfile); + fParsed = false; +}; +/** + * Add the named configuration file to the list. + * @param configfile Name of the config file, without path + */ +void QwOptions::AddConfigFile(const std::string& configfile) +{ + Bool_t notfound = kTRUE; + for (size_t i = 0; i < fConfigFiles.size(); i++){ + if (fConfigFiles.at(i) == configfile){ + notfound=kFALSE; + break; + } + } + if (notfound){ + QwMessage << "Adding user-defined configuration file " + << configfile.c_str() << QwLog::endl; + fConfigFiles.push_back(configfile); + fParsed = false; + } +}; /** * Combine the options of the various option descriptions in one object for @@ -215,14 +249,10 @@ void QwOptions::ParseCommandLine() // If a configuration file is specified, load it. if (fVariablesMap.count("config") > 0) { - QwWarning << "Overriding the default configuration files with " - << "user-defined configuration file " - << fVariablesMap["config"].as() << QwLog::endl; SetConfigFile(fVariablesMap["config"].as()); } // If a configuration file is specified, load it. if (fVariablesMap.count("add-config") > 0) { - QwWarning << "Adding user-defined configuration file " << QwLog::endl; AddConfigFile(fVariablesMap["add-config"].as >()); } } @@ -281,6 +311,11 @@ void QwOptions::ParseConfigFile() } // Notify of new options po::notify(fVariablesMap); + + // If a configuration file is specified, load it. + if (fVariablesMap.count("add-config") > 0) { + AddConfigFile(fVariablesMap["add-config"].as >()); + } } } diff --git a/Analysis/src/QwPMT_Channel.cc b/Analysis/src/QwPMT_Channel.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwParameterFile.cc b/Analysis/src/QwParameterFile.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwPromptSummary.cc b/Analysis/src/QwPromptSummary.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwRint.cc b/Analysis/src/QwRint.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwRootFile.cc b/Analysis/src/QwRootFile.cc old mode 100755 new mode 100644 index a52620c4f..055c7b6c7 --- a/Analysis/src/QwRootFile.cc +++ b/Analysis/src/QwRootFile.cc @@ -8,8 +8,7 @@ std::string QwRootFile::fDefaultRootFileStem = "Qweak_"; const Long64_t QwRootFile::kMaxTreeSize = 100000000000LL; -//const Int_t QwRootFile::kMaxMapFileSize = 0x20000000; // 512 MiB -const Int_t QwRootFile::kMaxMapFileSize = 0x10000000; // 256 MiB +const Int_t QwRootFile::kMaxMapFileSize = 0x3fffffff; // 1 GiB /** * Constructor with relative filename @@ -17,7 +16,7 @@ const Int_t QwRootFile::kMaxMapFileSize = 0x10000000; // 256 MiB QwRootFile::QwRootFile(const TString& run_label) : fRootFile(0), fMakePermanent(0), fMapFile(0), fEnableMapFile(kFALSE), - fUpdateInterval(400) + fUpdateInterval(-1) { // Process the configuration options ProcessOptions(gQwOptions); @@ -36,7 +35,7 @@ QwRootFile::QwRootFile(const TString& run_label) mapfilename += "/QwMemMapFile.map"; - fMapFile = TMapFile::Create(mapfilename,"RECREATE", kMaxMapFileSize, "RealTime Producer File"); + fMapFile = TMapFile::Create(mapfilename,"UPDATE", kMaxMapFileSize, "RealTime Producer File"); if (not fMapFile) { QwError << "Memory-mapped file " << mapfilename @@ -178,7 +177,7 @@ void QwRootFile::DefineOptions(QwOptions &options) // Define the memory map option options.AddOptions() ("enable-mapfile", po::value()->default_bool_value(false), - "enable output to memory-mapped file"); + "enable output to memory-mapped file\n(likely requires circular-buffer too)"); // Define the histogram and tree options options.AddOptions("ROOT output options") @@ -216,7 +215,7 @@ void QwRootFile::DefineOptions(QwOptions &options) ("num-hel-discarded-events", po::value()->default_value(0), "number of discarded consecutive pattern events"); options.AddOptions("ROOT output options") - ("mapfile-update-interval", po::value()->default_value(400), + ("mapfile-update-interval", po::value()->default_value(-1), "Events between a map file update"); // Define the autoflush and autosave option (default values by ROOT) diff --git a/Analysis/src/QwRunCondition.cc b/Analysis/src/QwRunCondition.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwSIS3320_Accumulator.cc b/Analysis/src/QwSIS3320_Accumulator.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwSIS3320_LogicalAccumulator.cc b/Analysis/src/QwSIS3320_LogicalAccumulator.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwSIS3320_Samples.cc b/Analysis/src/QwSIS3320_Samples.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwScaler_Channel.cc b/Analysis/src/QwScaler_Channel.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwSubsystemArray.cc b/Analysis/src/QwSubsystemArray.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwTypes.cc b/Analysis/src/QwTypes.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/QwVQWK_Channel.cc b/Analysis/src/QwVQWK_Channel.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/VQwHardwareChannel.cc b/Analysis/src/VQwHardwareChannel.cc old mode 100755 new mode 100644 diff --git a/Analysis/src/VQwSubsystem.cc b/Analysis/src/VQwSubsystem.cc old mode 100755 new mode 100644 index 8ef78dc17..319a0542f --- a/Analysis/src/VQwSubsystem.cc +++ b/Analysis/src/VQwSubsystem.cc @@ -230,8 +230,8 @@ void VQwSubsystem::ClearAllBankRegistrations() { fBank_IDs.clear(); fROC_IDs.clear(); - fCurrentROC_ID = -1; - fCurrentBank_ID = -1; + fCurrentROC_ID = kNullROCID; + fCurrentBank_ID = kNullBankID; } Int_t VQwSubsystem::GetSubbankIndex(const ROCID_t roc_id, const BankID_t bank_id) const @@ -293,8 +293,8 @@ Int_t VQwSubsystem::RegisterROCNumber(const ROCID_t roc_id, const BankID_t bank_ fCurrentROC_ID = roc_id; fCurrentBank_ID = bank_id; } else { - fCurrentROC_ID = -1; - fCurrentBank_ID = -1; + fCurrentROC_ID = kNullROCID; + fCurrentBank_ID = kNullBankID; } return stat; } @@ -302,7 +302,7 @@ Int_t VQwSubsystem::RegisterROCNumber(const ROCID_t roc_id, const BankID_t bank_ Int_t VQwSubsystem::RegisterSubbank(const BankID_t bank_id) { Int_t stat = 0; - if (fCurrentROC_ID != -1){ + if (fCurrentROC_ID != kNullROCID){ stat = RegisterROCNumber(fCurrentROC_ID, bank_id); fCurrentBank_ID = bank_id; } else { @@ -313,8 +313,8 @@ Int_t VQwSubsystem::RegisterSubbank(const BankID_t bank_id) << "Add a 'ROC=#' line to the map file." << std::dec << QwLog::endl; stat = ERROR; - fCurrentROC_ID = -1; - fCurrentBank_ID = -1; + fCurrentROC_ID = kNullROCID; + fCurrentBank_ID = kNullBankID; } return stat; } @@ -324,12 +324,12 @@ Int_t VQwSubsystem::RegisterMarkerWord(const UInt_t markerword) { static BankID_t bankIDmask = 0xffffffff; Int_t stat = 0; - if (fCurrentROC_ID != -1){ + if (fCurrentROC_ID != kNullROCID){ Int_t roc_index = FindIndex(fROC_IDs, fCurrentROC_ID); Int_t bank_index = FindIndex(fBank_IDs[roc_index],(fCurrentBank_ID&bankIDmask)); fMarkerWords.at(roc_index).at(bank_index).push_back(markerword); BankID_t tmpbank = markerword; - tmpbank = (tmpbank)<<32 + (fCurrentBank_ID&bankIDmask); + tmpbank = ((tmpbank)<<32) + (fCurrentBank_ID&bankIDmask); RegisterSubbank(tmpbank); } else { // There is not a ROC registered yet! @@ -339,8 +339,8 @@ Int_t VQwSubsystem::RegisterMarkerWord(const UInt_t markerword) << "Add a 'ROC=#' line to the map file." << std::dec << QwLog::endl; stat = ERROR; - fCurrentROC_ID = -1; - fCurrentBank_ID = -1; + fCurrentROC_ID = kNullROCID; + fCurrentBank_ID = kNullBankID; } return stat; } diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100755 new mode 100644 index 52a957967..a1595fa72 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,7 +85,7 @@ link_directories(${Boost_LIBRARY_DIR}) # ROOT # set(minimum_root_version 6.0) -find_package(ROOT ${minimum_root_version} REQUIRED) +find_package(ROOT ${minimum_root_version} REQUIRED New Gui) config_add_dependency(ROOT ${minimum_root_version}) @@ -216,7 +216,7 @@ endforeach() #---------------------------------------------------------------------------- # Build feedback library and executable -add_subdirectory(Feedback) +### add_subdirectory(Feedback) #---------------------------------------------------------------------------- # uninstall diff --git a/Doxygen/images/QwTrackingTreeMatch-1.jpg b/Doxygen/images/QwTrackingTreeMatch-1.jpg old mode 100755 new mode 100644 diff --git a/Doxygen/images/QwTrackingTreeMatch-2.jpg b/Doxygen/images/QwTrackingTreeMatch-2.jpg old mode 100755 new mode 100644 diff --git a/Doxygen/images/QwTrackingTreeMatch-3.jpg b/Doxygen/images/QwTrackingTreeMatch-3.jpg old mode 100755 new mode 100644 diff --git a/Doxygen/images/QwTrackingTreeMatch-4.jpg b/Doxygen/images/QwTrackingTreeMatch-4.jpg old mode 100755 new mode 100644 diff --git a/Doxygen/images/QwTrackingTreeMatch-5.jpg b/Doxygen/images/QwTrackingTreeMatch-5.jpg old mode 100755 new mode 100644 diff --git a/Feedback/FlipPCValues b/Feedback/FlipPCValues old mode 100755 new mode 100644 diff --git a/Feedback/GetGoodPC b/Feedback/GetGoodPC old mode 100755 new mode 100644 diff --git a/Feedback/SetLargeNegative_A_q b/Feedback/SetLargeNegative_A_q old mode 100755 new mode 100644 diff --git a/Feedback/SetLargePositive_A_q b/Feedback/SetLargePositive_A_q old mode 100755 new mode 100644 diff --git a/Feedback/SetNominalPC b/Feedback/SetNominalPC old mode 100755 new mode 100644 diff --git a/Feedback/include/QwEPICSControl.h b/Feedback/include/QwEPICSControl.h index dc881a8fd..2ec786963 100644 --- a/Feedback/include/QwEPICSControl.h +++ b/Feedback/include/QwEPICSControl.h @@ -75,31 +75,39 @@ class QwEPICSControl{ Int_t status; switch(mode){ case 0: +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDHall_C_IA_A0, &value); status = ca_pend_io(10); status = ca_get(DBR_DOUBLE, fIDHall_C_IA_A0, &value); status = ca_pend_io(10); +#endif std::cout << "Hall C IA value A0: " << value << std::endl; break; case 1: +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDHall_C_IA_A1, &value); status = ca_pend_io(10); status = ca_get(DBR_DOUBLE, fIDHall_C_IA_A1, &value); status = ca_pend_io(10); +#endif std::cout << "Hall C IA value A1: " << value << std::endl; break; case 2: +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDHall_C_IA_A2, &value); status = ca_pend_io(10); status = ca_get(DBR_DOUBLE, fIDHall_C_IA_A2, &value); status = ca_pend_io(10); +#endif std::cout << "Hall C IA value A2: " << value << std::endl; break; case 3: +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDHall_C_IA_A3, &value); status = ca_pend_io(10); status = ca_get(DBR_DOUBLE, fIDHall_C_IA_A3, &value); status = ca_pend_io(10); +#endif std::cout << "Hall C IA value A3: " << value << std::endl; break; } @@ -110,31 +118,39 @@ class QwEPICSControl{ Int_t status; switch(mode){ case 0: +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDHall_A_IA_A0, &value); status = ca_pend_io(10); status = ca_get(DBR_DOUBLE, fIDHall_A_IA_A0, &value); status = ca_pend_io(10); +#endif std::cout << "Hall A IA value A0: " << value << std::endl; break; case 1: +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDHall_A_IA_A1, &value); status = ca_pend_io(10); status = ca_get(DBR_DOUBLE, fIDHall_A_IA_A1, &value); status = ca_pend_io(10); +#endif std::cout << "Hall A IA value A1: " << value << std::endl; break; case 2: +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDHall_A_IA_A2, &value); status = ca_pend_io(10); status = ca_get(DBR_DOUBLE, fIDHall_A_IA_A2, &value); status = ca_pend_io(10); +#endif std::cout << "Hall A IA value A2: " << value << std::endl; break; case 3: +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDHall_A_IA_A3, &value); status = ca_pend_io(10); status = ca_get(DBR_DOUBLE, fIDHall_A_IA_A3, &value); status = ca_pend_io(10); +#endif std::cout << "Hall A IA value A3: " << value << std::endl; break; } @@ -144,10 +160,12 @@ class QwEPICSControl{ void Set_HelicityMagnet(size_t magnet_index, size_t helicity_index, Double_t &value){ Int_t status; if (magnet_index<4 && helicity_index<2){ +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDHelMag[magnet_index][helicity_index], &value); status = ca_pend_io(10); status = ca_get(DBR_DOUBLE, fIDHelMag[magnet_index][helicity_index], &value); status = ca_pend_io(10); +#endif std::cout << "Helicity Magnet, " << fHelMagNames[magnet_index] << "," << fHelicityNames[helicity_index] << " setpoint: " << value << std::endl; @@ -236,19 +254,23 @@ class QwEPICSControl{ //I removed followup read after eahc ca_put command - rakithab (02-29-2012) void Set_Pockels_Cell_plus(Double_t &value){ Int_t status; +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDPockels_Cell_plus, &value); status = ca_pend_io(10); status = ca_put(DBR_DOUBLE, fIDPockels_Cell_plus, &value); status = ca_pend_io(10); +#endif std::cout << "Pockels Cell pos HW-count value: " << value << std::endl; }; void Set_Pockels_Cell_minus(Double_t &value){ Int_t status; +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE, fIDPockels_Cell_minus, &value); status = ca_pend_io(10); status = ca_put(DBR_DOUBLE, fIDPockels_Cell_minus, &value); status = ca_pend_io(10); +#endif std::cout << "Pockels Cell minus HW-count value: " << value << std::endl; }; @@ -268,6 +290,7 @@ class QwEPICSControl{ void Set_ChargeAsymmetry(Double_t &value, Double_t &value_error, Double_t &value_width){ Int_t status; +#ifdef(__QWFEEDBACK_ALLOW_EPICS_CA_PUT) status = ca_put(DBR_DOUBLE,fChargeAsymmetry , &value); status = ca_pend_io(10); //status = ca_get(DBR_DOUBLE,fChargeAsymmetry , &value); @@ -280,6 +303,7 @@ class QwEPICSControl{ status = ca_pend_io(10); //status = ca_get(DBR_DOUBLE,fChargeAsymmetryWidth , &value_width); //status = ca_pend_io(10); +#endif std::cout << "EPICS Charge asymmetry updated " << value <<" +/- "<ConstructHistograms("mps_histo", ringoutput); - historootfile->ConstructHistograms("hel_histo", helicitypattern); + historootfile->ConstructHistograms("evt_histo", ringoutput); + historootfile->ConstructHistograms("mul_histo", helicitypattern); detectors.ShareHistograms(ringoutput); // Construct tree branches @@ -213,22 +213,24 @@ Int_t main(Int_t argc, Char_t* argv[]) #endif // __USE_DATABASE__ // Find the first EPICS event and try to initialize - // the blinder. - QwMessage << "Finding first EPICS event" << QwLog::endl; - while (eventbuffer.GetNextEvent() == CODA_OK) { - if (eventbuffer.IsEPICSEvent()) { - eventbuffer.FillEPICSData(epicsevent); - if (epicsevent.HasDataLoaded()) { - helicitypattern.UpdateBlinder(epicsevent); - // and break out of this event loop - break; + // the blinder, but only for disk files, not online. + if (! eventbuffer.IsOnline() ){ + QwMessage << "Finding first EPICS event" << QwLog::endl; + while (eventbuffer.GetNextEvent() == CODA_OK) { + if (eventbuffer.IsEPICSEvent()) { + eventbuffer.FillEPICSData(epicsevent); + if (epicsevent.HasDataLoaded()) { + helicitypattern.UpdateBlinder(epicsevent); + // and break out of this event loop + break; + } } } + epicsevent.ResetCounters(); + // Rewind stream + QwMessage << "Rewinding stream" << QwLog::endl; + eventbuffer.ReOpenStream(); } - epicsevent.ResetCounters(); - // Rewind stream - QwMessage << "Rewinding stream" << QwLog::endl; - eventbuffer.ReOpenStream(); /// Start loop over events while (eventbuffer.GetNextEvent() == CODA_OK) { diff --git a/Parity/main/QwParity_simple.cc b/Parity/main/QwParity_simple.cc index eaa398e0d..c7e372d89 100644 --- a/Parity/main/QwParity_simple.cc +++ b/Parity/main/QwParity_simple.cc @@ -159,8 +159,8 @@ Int_t main(Int_t argc, Char_t* argv[]) } // Construct histograms - historootfile->ConstructHistograms("mps_histo", ringoutput); - historootfile->ConstructHistograms("hel_histo", helicitypattern); + historootfile->ConstructHistograms("evt_histo", ringoutput); + historootfile->ConstructHistograms("mul_histo", helicitypattern); detectors.ShareHistograms(ringoutput); // Construct tree branches diff --git a/Parity/prminput/adc18.conf b/Parity/prminput/adc18.conf old mode 100755 new mode 100644 diff --git a/Parity/prminput/adc18_beamline.map b/Parity/prminput/adc18_beamline.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/adc18_detectors.map b/Parity/prminput/adc18_detectors.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/isu_channels.map b/Parity/prminput/isu_channels.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/isu_detectors.map b/Parity/prminput/isu_detectors.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/isu_eventcuts.in b/Parity/prminput/isu_eventcuts.in old mode 100755 new mode 100644 diff --git a/Parity/prminput/isu_pedestals.map b/Parity/prminput/isu_pedestals.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_beamline_geometry.map b/Parity/prminput/mock_beamline_geometry.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_data_parameters.map b/Parity/prminput/mock_data_parameters.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_detectors.map b/Parity/prminput/mock_detectors.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_moller_maindet_adc.map b/Parity/prminput/mock_moller_maindet_adc.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_moller_maindet_pedestal.map b/Parity/prminput/mock_moller_maindet_pedestal.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_qweak_adc.map b/Parity/prminput/mock_qweak_adc.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_qweak_adc_short.map b/Parity/prminput/mock_qweak_adc_short.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_qweak_beamline.map b/Parity/prminput/mock_qweak_beamline.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_qweak_helicity.map b/Parity/prminput/mock_qweak_helicity.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/mock_qweak_pedestal.map b/Parity/prminput/mock_qweak_pedestal.map old mode 100755 new mode 100644 diff --git a/Parity/prminput/online_apar.conf b/Parity/prminput/online_apar.conf index 100fe7a86..16f3d5714 100644 --- a/Parity/prminput/online_apar.conf +++ b/Parity/prminput/online_apar.conf @@ -1,9 +1,19 @@ online = yes ET.hostname = adaq3.jlab.org -ET.session = par1 +ET.session = par2 ET.station = realtime -enable-mapfile = yes -circular-buffer = 10000 +# Set the interpreted run number to a very high value so we always +# pick up the most recent paramter files. +online.RunNumber = 999999 + +# Update every N events (for TMapFiles and TFile) +mapfile-update-interval = 500 +# circular-buffer = 864000 ## 240 Hz Mode: 864000 = 240 * 60 * 60 +# circular-buffer = 108000 ## 30 Hz Mode: 108000 = 30 *60 *60 +# circular-buffer = 0 # Default is 0, set it to 0 to save significant computation time not using the circular buffer +# compression-level arg (=1) TFile compression level +compression-level = 0 + +enable-tree-trim = yes -enable-tree-trim = no diff --git a/Parity/prminput/parity_hist.in b/Parity/prminput/parity_hist.in old mode 100755 new mode 100644 diff --git a/Parity/prminput/prex.conf b/Parity/prminput/prex.conf index 01aca8ef3..267a14d3a 100644 --- a/Parity/prminput/prex.conf +++ b/Parity/prminput/prex.conf @@ -9,14 +9,10 @@ add-config = prexbankflag.conf detectors = prex_detectors.map -chainfiles = no single-output-file = yes -enable-tree-trim = no -disable-hel-tree = no -disable-histos = no rootfile-stem = prexALL_ codafile-stem = parity_ALL_ codafile-ext = dat ring.size = 200 -ring.stability_cut = -1 +ring.stability_cut = 1 diff --git a/Parity/prminput/prexCH.conf b/Parity/prminput/prexCH.conf index a858142f0..25695aea8 100644 --- a/Parity/prminput/prexCH.conf +++ b/Parity/prminput/prexCH.conf @@ -9,11 +9,7 @@ add-config = prexbankflag.conf detectors = prexCH_detectors.map -chainfiles = no single-output-file = yes -enable-tree-trim = no -disable-hel-tree = no -disable-histos = no rootfile-stem = prexCH_ codafile-stem = parity_CH_ codafile-ext = dat diff --git a/Parity/prminput/prexCH_beamline.1199-.map b/Parity/prminput/prexCH_beamline.1199-.map index 9196e9036..ed599aeb4 100644 --- a/Parity/prminput/prexCH_beamline.1199-.map +++ b/Parity/prminput/prexCH_beamline.1199-.map @@ -12,10 +12,10 @@ sample_size=16564 !ADC0 VQWK, 0, 0, bcm, QWK_0_0 VQWK, 0, 1, bcm, QWK_0_1 - VQWK, 0, 2, bcm, BCM_US - VQWK, 0, 3, bcm, BCM_DS - VQWK, 0, 4, bcm, QWK_0_4 - VQWK, 0, 5, bcm, QWK_0_5 + VQWK, 0, 2, bcm, BCM_AN_US + VQWK, 0, 3, bcm, BCM_AN_DS + VQWK, 0, 4, bcm, BCM_AN_DS3 + VQWK, 0, 5, bcm, BCM_AN_DS10 VQWK, 0, 6, bcm, QWK_0_6 VQWK, 0, 7, bcm, QWK_0_7 @@ -24,16 +24,16 @@ sample_size=16564 VQWK, 1, 1, bpmstripline, BPM4Exm VQWK, 1, 2, bpmstripline, BPM4Eyp VQWK, 1, 3, bpmstripline, BPM4Eym - VQWK, 1, 4, bcm, QWK_1_4 - VQWK, 1, 5, bcm, QWK_1_5 - VQWK, 1, 6, bcm, QWK_1_6 - VQWK, 1, 7, bcm, QWK_1_7 + VQWK, 1, 4, bpmstripline, BPM8xp + VQWK, 1, 5, bpmstripline, BPM8xm + VQWK, 1, 6, bpmstripline, BPM8yp + VQWK, 1, 7, bpmstripline, BPM8ym !ADC2 - VQWK, 2, 0, bcm, QWK_2_0 - VQWK, 2, 1, bcm, QWK_2_1 - VQWK, 2, 2, bcm, QWK_2_2 - VQWK, 2, 3, bcm, QWK_2_3 + VQWK, 2, 0, bpmstripline, BPM12xp + VQWK, 2, 1, bpmstripline, BPM12xm + VQWK, 2, 2, bpmstripline, BPM12yp + VQWK, 2, 3, bpmstripline, BPM12ym VQWK, 2, 4, bpmstripline, BPM4Axp VQWK, 2, 5, bpmstripline, BPM4Axm VQWK, 2, 6, bpmstripline, BPM4Ayp @@ -43,23 +43,23 @@ sample_size=16564 VQWK, 3, 0, bcm, CAV4BX VQWK, 3, 1, bcm, CAV4BY VQWK, 3, 2, bcm, CAV4BQ - VQWK, 3, 3, bcm, QWK_3_3 - VQWK, 3, 4, bcm, CAV4CX - VQWK, 3, 5, bcm, CAV4CY - VQWK, 3, 6, bcm, CAV4CQ - VQWK, 3, 7, bcm, unser + VQWK, 3, 3, bcm, CAV4CX + VQWK, 3, 4, bcm, CAV4CY + VQWK, 3, 5, bcm, CAV4CQ + VQWK, 3, 6, bcm, QWK_3_6 + VQWK, 3, 7, bcm, UNSER !ADC4 VQWK, 4, 0, bcm, CAV4DX VQWK, 4, 1, bcm, CAV4DY VQWK, 4, 2, bcm, CAV4DQ VQWK, 4, 3, bcm, QWK_4_3 - VQWK, 4, 4, bcm, QWK_4_4 - VQWK, 4, 5, bcm, QWK_4_5 - VQWK, 4, 6, bcm, QWK_4_6 - VQWK, 4, 7, bcm, QWK_4_7 + VQWK, 4, 4, bpmstripline, BPM10xm + VQWK, 4, 5, bpmstripline, BPM10xp + VQWK, 4, 6, bpmstripline, BPM10yp + VQWK, 4, 7, bpmstripline, BPM10ym [PUBLISH] ! new.tree.variable.name, analysis.class, old.tree.variable.name, element.to.store - q_targ, bcm, bcm_us, c + q_targ, bcm, bcm_an_ds3, c diff --git a/Parity/prminput/prexCH_beamline.1230-.map b/Parity/prminput/prexCH_beamline.1230-.map new file mode 100644 index 000000000..53ebb989d --- /dev/null +++ b/Parity/prminput/prexCH_beamline.1230-.map @@ -0,0 +1,65 @@ + +ROC=23 +Bank=0x05 +vqwk_buffer_offset = 1 +!same sample size for ADCs in a given bank +sample_size=16564 +!Sample size should be unchanged - ask Paul King +! +! module.type, module.num chan.num, det.type, det.name, if unrotated then last column ->UNROTATED + + +!ADC0 + VQWK, 0, 0, bcm, QWK_0_0 + VQWK, 0, 1, bcm, QWK_0_1 + VQWK, 0, 2, bcm, BCM_AN_US + VQWK, 0, 3, bcm, BCM_AN_DS + VQWK, 0, 4, bcm, BCM_AN_DS3 + VQWK, 0, 5, bcm, BCM_AN_DS10 + VQWK, 0, 6, bcm, BCM_DG_US + VQWK, 0, 7, bcm, BCM_DG_DS + +!ADC1 + VQWK, 1, 0, bpmstripline, BPM4Exp + VQWK, 1, 1, bpmstripline, BPM4Exm + VQWK, 1, 2, bpmstripline, BPM4Eyp + VQWK, 1, 3, bpmstripline, BPM4Eym + VQWK, 1, 4, bpmstripline, BPM8xp + VQWK, 1, 5, bpmstripline, BPM8xm + VQWK, 1, 6, bpmstripline, BPM8yp + VQWK, 1, 7, bpmstripline, BPM8ym + +!ADC2 + VQWK, 2, 0, bpmstripline, BPM12xp + VQWK, 2, 1, bpmstripline, BPM12xm + VQWK, 2, 2, bpmstripline, BPM12yp + VQWK, 2, 3, bpmstripline, BPM12ym + VQWK, 2, 4, bpmstripline, BPM4Axp + VQWK, 2, 5, bpmstripline, BPM4Axm + VQWK, 2, 6, bpmstripline, BPM4Ayp + VQWK, 2, 7, bpmstripline, BPM4Aym + +!ADC3 + VQWK, 3, 0, bcm, CAV4BX + VQWK, 3, 1, bcm, CAV4BY + VQWK, 3, 2, bcm, CAV4BQ + VQWK, 3, 3, bcm, CAV4CX + VQWK, 3, 4, bcm, CAV4CY + VQWK, 3, 5, bcm, CAV4CQ + VQWK, 3, 6, bcm, QWK_3_6 + VQWK, 3, 7, bcm, UNSER + +!ADC4 + VQWK, 4, 0, bcm, CAV4DX + VQWK, 4, 1, bcm, CAV4DY + VQWK, 4, 2, bcm, CAV4DQ + VQWK, 4, 3, bcm, QWK_4_3 + VQWK, 4, 4, bpmstripline, BPM10xm + VQWK, 4, 5, bpmstripline, BPM10xp + VQWK, 4, 6, bpmstripline, BPM10yp + VQWK, 4, 7, bpmstripline, BPM10ym + + +[PUBLISH] +! new.tree.variable.name, analysis.class, old.tree.variable.name, element.to.store + q_targ, bcm, bcm_an_ds3, c diff --git a/Parity/prminput/prexCH_beamline.1283-.map b/Parity/prminput/prexCH_beamline.1283-.map new file mode 100644 index 000000000..02a243671 --- /dev/null +++ b/Parity/prminput/prexCH_beamline.1283-.map @@ -0,0 +1,76 @@ + +ROC=23 +Bank=0x05 +vqwk_buffer_offset = 1 +!same sample size for ADCs in a given bank +sample_size=16564 +!Sample size should be unchanged - ask Paul King +! +! module.type, module.num chan.num, det.type, det.name, if unrotated then last column ->UNROTATED + + +!ADC0 + VQWK, 0, 0, bcm, QWK_0_0 + VQWK, 0, 1, bcm, QWK_0_1 + VQWK, 0, 2, bcm, BCM_AN_US + VQWK, 0, 3, bcm, BCM_AN_DS + VQWK, 0, 4, bcm, BCM_AN_DS3 + VQWK, 0, 5, bcm, BCM_AN_DS10 + VQWK, 0, 6, bcm, BCM_DG_US + VQWK, 0, 7, bcm, BCM_DG_DS + +!ADC1 + VQWK, 1, 0, bpmstripline, BPM4Exp + VQWK, 1, 1, bpmstripline, BPM4Exm + VQWK, 1, 2, bpmstripline, BPM4Eyp + VQWK, 1, 3, bpmstripline, BPM4Eym + VQWK, 1, 4, bpmstripline, BPM8xp + VQWK, 1, 5, bpmstripline, BPM8xm + VQWK, 1, 6, bpmstripline, BPM8yp + VQWK, 1, 7, bpmstripline, BPM8ym + +!ADC2 + VQWK, 2, 0, bpmstripline, BPM12xp + VQWK, 2, 1, bpmstripline, BPM12xm + VQWK, 2, 2, bpmstripline, BPM12yp + VQWK, 2, 3, bpmstripline, BPM12ym + VQWK, 2, 4, bpmstripline, BPM4Axp + VQWK, 2, 5, bpmstripline, BPM4Axm + VQWK, 2, 6, bpmstripline, BPM4Ayp + VQWK, 2, 7, bpmstripline, BPM4Aym + +!ADC3 + VQWK, 3, 0, bcm, CAV4BX + VQWK, 3, 1, bcm, CAV4BY + VQWK, 3, 2, bcm, CAV4BQ + VQWK, 3, 3, bcm, CAV4CX + VQWK, 3, 4, bcm, CAV4CY + VQWK, 3, 5, bcm, CAV4CQ + VQWK, 3, 6, bcm, QWK_3_6 + VQWK, 3, 7, bcm, UNSER + +!ADC4 + VQWK, 4, 0, bcm, CAV4DX + VQWK, 4, 1, bcm, CAV4DY + VQWK, 4, 2, bcm, CAV4DQ + VQWK, 4, 3, bcm, QWK_4_3 + VQWK, 4, 4, bpmstripline, BPM10xm + VQWK, 4, 5, bpmstripline, BPM10xp + VQWK, 4, 6, bpmstripline, BPM10yp + VQWK, 4, 7, bpmstripline, BPM10ym + +Bank=0x03 +!Happex ADC channels start with 3 on the bottom and go up to 0 +!VQWK ADC channels start with 0 on the bottom and go up to 7 + ADC18,0, 3, bcm, ADC18_BPMxm + ADC18,0, 2, bcm, ADC18_BPMxp + ADC18,0, 1, bcm, ADC18_BPMym + ADC18,0, 0, bcm, ADC18_BPMyp + ADC18,1, 3, bcm, ADC18_CAV4BQ + ADC18,1, 2, bcm, ADC18_1_2 + ADC18,1, 1, bcm, ADC18_1_1 + ADC18,1, 0, bcm, ADC18_1_0 + +[PUBLISH] +! new.tree.variable.name, analysis.class, old.tree.variable.name, element.to.store + q_targ, bcm, bcm_an_ds3, c diff --git a/Parity/prminput/prexCH_beamline.1336-1348.map b/Parity/prminput/prexCH_beamline.1336-1348.map new file mode 100644 index 000000000..63a98c3c0 --- /dev/null +++ b/Parity/prminput/prexCH_beamline.1336-1348.map @@ -0,0 +1,76 @@ + +ROC=23 +Bank=0x05 +vqwk_buffer_offset = 1 +!same sample size for ADCs in a given bank +sample_size=1984 +!Sample size should be unchanged - ask Paul King +! +! module.type, module.num chan.num, det.type, det.name, if unrotated then last column ->UNROTATED + + +!ADC0 + VQWK, 0, 0, bcm, QWK_0_0 + VQWK, 0, 1, bcm, QWK_0_1 + VQWK, 0, 2, bcm, BCM_AN_US + VQWK, 0, 3, bcm, BCM_AN_DS + VQWK, 0, 4, bcm, BCM_AN_DS3 + VQWK, 0, 5, bcm, BCM_AN_DS10 + VQWK, 0, 6, bcm, BCM_DG_US + VQWK, 0, 7, bcm, BCM_DG_DS + +!ADC1 + VQWK, 1, 0, bpmstripline, BPM4Exp + VQWK, 1, 1, bpmstripline, BPM4Exm + VQWK, 1, 2, bpmstripline, BPM4Eyp + VQWK, 1, 3, bpmstripline, BPM4Eym + VQWK, 1, 4, bpmstripline, BPM8xp + VQWK, 1, 5, bpmstripline, BPM8xm + VQWK, 1, 6, bpmstripline, BPM8yp + VQWK, 1, 7, bpmstripline, BPM8ym + +!ADC2 + VQWK, 2, 0, bpmstripline, BPM12xp + VQWK, 2, 1, bpmstripline, BPM12xm + VQWK, 2, 2, bpmstripline, BPM12yp + VQWK, 2, 3, bpmstripline, BPM12ym + VQWK, 2, 4, bpmstripline, BPM4Axp + VQWK, 2, 5, bpmstripline, BPM4Axm + VQWK, 2, 6, bpmstripline, BPM4Ayp + VQWK, 2, 7, bpmstripline, BPM4Aym + +!ADC3 + VQWK, 3, 0, bcm, CAV4BX + VQWK, 3, 1, bcm, CAV4BY + VQWK, 3, 2, bcm, CAV4BQ + VQWK, 3, 3, bcm, CAV4CX + VQWK, 3, 4, bcm, CAV4CY + VQWK, 3, 5, bcm, CAV4CQ + VQWK, 3, 6, bcm, QWK_3_6 + VQWK, 3, 7, bcm, UNSER + +!ADC4 + VQWK, 4, 0, bcm, CAV4DX + VQWK, 4, 1, bcm, CAV4DY + VQWK, 4, 2, bcm, CAV4DQ + VQWK, 4, 3, bcm, QWK_4_3 + VQWK, 4, 4, bpmstripline, BPM10xm + VQWK, 4, 5, bpmstripline, BPM10xp + VQWK, 4, 6, bpmstripline, BPM10yp + VQWK, 4, 7, bpmstripline, BPM10ym + +Bank=0x03 +!Happex ADC channels start with 3 on the bottom and go up to 0 +!VQWK ADC channels start with 0 on the bottom and go up to 7 + ADC18,0, 3, bcm, ADC18_BPMxm + ADC18,0, 2, bcm, ADC18_BPMxp + ADC18,0, 1, bcm, ADC18_BPMym + ADC18,0, 0, bcm, ADC18_BPMyp + ADC18,1, 3, bcm, ADC18_CAV4BQ + ADC18,1, 2, bcm, ADC18_1_2 + ADC18,1, 1, bcm, ADC18_1_1 + ADC18,1, 0, bcm, ADC18_1_0 + +[PUBLISH] +! new.tree.variable.name, analysis.class, old.tree.variable.name, element.to.store + q_targ, bcm, bcm_an_ds3, c diff --git a/Parity/prminput/prexCH_beamline.1397-1420.map b/Parity/prminput/prexCH_beamline.1397-1420.map new file mode 100644 index 000000000..778043069 --- /dev/null +++ b/Parity/prminput/prexCH_beamline.1397-1420.map @@ -0,0 +1,76 @@ + +ROC=23 +Bank=0x05 +vqwk_buffer_offset = 1 +!same sample size for ADCs in a given bank +sample_size=1984 +!Sample size should be unchanged - ask Paul King +! +! module.type, module.num chan.num, det.type, det.name, if unrotated then last column ->UNROTATED + + +!ADC0 + VQWK, 0, 0, bcm, QWK_0_0 + VQWK, 0, 1, bcm, QWK_0_1 + VQWK, 0, 2, bcm, BCM_AN_US + VQWK, 0, 3, bcm, BCM_AN_DS + VQWK, 0, 4, bcm, BCM_AN_DS3 + VQWK, 0, 5, bcm, BCM_AN_DS10 + VQWK, 0, 6, bcm, BCM_DG_US + VQWK, 0, 7, bcm, BCM_DG_DS + +!ADC1 + VQWK, 1, 0, bpmstripline, BPM4Exp + VQWK, 1, 1, bpmstripline, BPM4Exm + VQWK, 1, 2, bpmstripline, BPM4Eyp + VQWK, 1, 3, bpmstripline, BPM4Eym + VQWK, 1, 4, bpmstripline, BPM8xp + VQWK, 1, 5, bpmstripline, BPM8xm + VQWK, 1, 6, bpmstripline, BPM8yp + VQWK, 1, 7, bpmstripline, BPM8ym + +!ADC2 + VQWK, 2, 0, bpmstripline, BPM12xp + VQWK, 2, 1, bpmstripline, BPM12xm + VQWK, 2, 2, bpmstripline, BPM12yp + VQWK, 2, 3, bpmstripline, BPM12ym + VQWK, 2, 4, bpmstripline, BPM4Axp + VQWK, 2, 5, bpmstripline, BPM4Axm + VQWK, 2, 6, bpmstripline, BPM4Ayp + VQWK, 2, 7, bpmstripline, BPM4Aym + +!ADC3 + VQWK, 3, 0, bcm, CAV4BX + VQWK, 3, 1, bcm, CAV4BY + VQWK, 3, 2, bcm, CAV4BQ + VQWK, 3, 3, bcm, CAV4CX + VQWK, 3, 4, bcm, CAV4CY + VQWK, 3, 5, bcm, CAV4CQ + VQWK, 3, 6, bcm, QWK_3_6 + VQWK, 3, 7, bcm, UNSER + +!ADC4 + VQWK, 4, 0, bcm, CAV4DX + VQWK, 4, 1, bcm, CAV4DY + VQWK, 4, 2, bcm, CAV4DQ + VQWK, 4, 3, bcm, QWK_4_3 + VQWK, 4, 4, bpmstripline, BPM10xm + VQWK, 4, 5, bpmstripline, BPM10xp + VQWK, 4, 6, bpmstripline, BPM10yp + VQWK, 4, 7, bpmstripline, BPM10ym + +Bank=0x03 +!Happex ADC channels start with 3 on the bottom and go up to 0 +!VQWK ADC channels start with 0 on the bottom and go up to 7 + ADC18,0, 3, bcm, ADC18_BPMxm + ADC18,0, 2, bcm, ADC18_BPMxp + ADC18,0, 1, bcm, ADC18_BPMym + ADC18,0, 0, bcm, ADC18_BPMyp + ADC18,1, 3, bcm, ADC18_CAV4BQ + ADC18,1, 2, bcm, ADC18_1_2 + ADC18,1, 1, bcm, ADC18_1_1 + ADC18,1, 0, bcm, ADC18_1_0 + +[PUBLISH] +! new.tree.variable.name, analysis.class, old.tree.variable.name, element.to.store + q_targ, bcm, bcm_an_us, c diff --git a/Parity/prminput/prexCH_beamline.1421-.map b/Parity/prminput/prexCH_beamline.1421-.map new file mode 100644 index 000000000..7c5aa9e2d --- /dev/null +++ b/Parity/prminput/prexCH_beamline.1421-.map @@ -0,0 +1,79 @@ + +ROC=23 +Bank=0x05 +vqwk_buffer_offset = 1 +!same sample size for ADCs in a given bank +sample_size=16564 +!Sample size should be unchanged - ask Paul King +! +! module.type, module.num chan.num, det.type, det.name, if unrotated then last column ->UNROTATED + + +!ADC0 + VQWK, 0, 0, bcm, QWK_0_0 + VQWK, 0, 1, bcm, QWK_0_1 + VQWK, 0, 2, bcm, BCM_AN_US + VQWK, 0, 3, bcm, BCM_AN_DS + VQWK, 0, 4, bcm, BCM_AN_DS3 + VQWK, 0, 5, bcm, BCM_AN_DS10 + VQWK, 0, 6, bcm, BCM_DG_US + VQWK, 0, 7, bcm, BCM_DG_DS + +!ADC1 + VQWK, 1, 0, bpmstripline, BPM4Exp + VQWK, 1, 1, bpmstripline, BPM4Exm + VQWK, 1, 2, bpmstripline, BPM4Eyp + VQWK, 1, 3, bpmstripline, BPM4Eym + VQWK, 1, 4, bpmstripline, BPM8xp + VQWK, 1, 5, bpmstripline, BPM8xm + VQWK, 1, 6, bpmstripline, BPM8yp + VQWK, 1, 7, bpmstripline, BPM8ym + +!ADC2 + VQWK, 2, 0, bpmstripline, BPM12xp + VQWK, 2, 1, bpmstripline, BPM12xm + VQWK, 2, 2, bpmstripline, BPM12yp + VQWK, 2, 3, bpmstripline, BPM12ym + VQWK, 2, 4, bpmstripline, BPM4Axp + VQWK, 2, 5, bpmstripline, BPM4Axm + VQWK, 2, 6, bpmstripline, BPM4Ayp + VQWK, 2, 7, bpmstripline, BPM4Aym + +!ADC3 + VQWK, 3, 0, bcm, CAV4BX + VQWK, 3, 1, bcm, CAV4BY + VQWK, 3, 2, bcm, CAV4BQ + VQWK, 3, 3, bcm, CAV4CX + VQWK, 3, 4, bcm, CAV4CY + VQWK, 3, 5, bcm, CAV4CQ + VQWK, 3, 6, bcm, QWK_3_6 + VQWK, 3, 7, bcm, UNSER + +!ADC4 + VQWK, 4, 0, bcm, CAV4DX + VQWK, 4, 1, bcm, CAV4DY + VQWK, 4, 2, bcm, CAV4DQ + VQWK, 4, 3, bcm, QWK_4_3 + VQWK, 4, 4, bpmstripline, BPM10xm + VQWK, 4, 5, bpmstripline, BPM10xp + VQWK, 4, 6, bpmstripline, BPM10yp + VQWK, 4, 7, bpmstripline, BPM10ym + +Bank=0x03 +!Example Happex ADC Channel Mapping - Cameron doesn't know the +! identity of the BPM channel plugged in, so no number given +! and the xypm are almost certainly incorrectly identified. +!Happex ADC channels start with 3 on the bottom and go up to 0 +!VQWK ADC channels start with 0 on the bottom and go up to 7 + ADC18,0, 3, bcm, ADC18_BPMxm + ADC18,0, 2, bcm, ADC18_BPMxp + ADC18,0, 1, bcm, ADC18_BPMym + ADC18,0, 0, bcm, ADC18_BPMyp + ADC18,1, 3, bcm, ADC18_1_3 + ADC18,1, 2, bcm, ADC18_1_2 + ADC18,1, 1, bcm, ADC18_1_1 + ADC18,1, 0, bcm, ADC18_1_0 + +[PUBLISH] +! new.tree.variable.name, analysis.class, old.tree.variable.name, element.to.store + q_targ, bcm, bcm_an_ds3, c diff --git a/Parity/prminput/prexCH_beamline.1449-1450.map b/Parity/prminput/prexCH_beamline.1449-1450.map new file mode 100644 index 000000000..b9cafb08c --- /dev/null +++ b/Parity/prminput/prexCH_beamline.1449-1450.map @@ -0,0 +1,79 @@ + +ROC=23 +Bank=0x05 +vqwk_buffer_offset = 1 +!same sample size for ADCs in a given bank +sample_size=8064 +!Sample size should be unchanged - ask Paul King +! +! module.type, module.num chan.num, det.type, det.name, if unrotated then last column ->UNROTATED + + +!ADC0 + VQWK, 0, 0, bcm, QWK_0_0 + VQWK, 0, 1, bcm, QWK_0_1 + VQWK, 0, 2, bcm, BCM_AN_US + VQWK, 0, 3, bcm, BCM_AN_DS + VQWK, 0, 4, bcm, BCM_AN_DS3 + VQWK, 0, 5, bcm, BCM_AN_DS10 + VQWK, 0, 6, bcm, BCM_DG_US + VQWK, 0, 7, bcm, BCM_DG_DS + +!ADC1 + VQWK, 1, 0, bpmstripline, BPM4Exp + VQWK, 1, 1, bpmstripline, BPM4Exm + VQWK, 1, 2, bpmstripline, BPM4Eyp + VQWK, 1, 3, bpmstripline, BPM4Eym + VQWK, 1, 4, bpmstripline, BPM8xp + VQWK, 1, 5, bpmstripline, BPM8xm + VQWK, 1, 6, bpmstripline, BPM8yp + VQWK, 1, 7, bpmstripline, BPM8ym + +!ADC2 + VQWK, 2, 0, bpmstripline, BPM12xp + VQWK, 2, 1, bpmstripline, BPM12xm + VQWK, 2, 2, bpmstripline, BPM12yp + VQWK, 2, 3, bpmstripline, BPM12ym + VQWK, 2, 4, bpmstripline, BPM4Axp + VQWK, 2, 5, bpmstripline, BPM4Axm + VQWK, 2, 6, bpmstripline, BPM4Ayp + VQWK, 2, 7, bpmstripline, BPM4Aym + +!ADC3 + VQWK, 3, 0, bcm, CAV4BX + VQWK, 3, 1, bcm, CAV4BY + VQWK, 3, 2, bcm, CAV4BQ + VQWK, 3, 3, bcm, CAV4CX + VQWK, 3, 4, bcm, CAV4CY + VQWK, 3, 5, bcm, CAV4CQ + VQWK, 3, 6, bcm, QWK_3_6 + VQWK, 3, 7, bcm, UNSER + +!ADC4 + VQWK, 4, 0, bcm, CAV4DX + VQWK, 4, 1, bcm, CAV4DY + VQWK, 4, 2, bcm, CAV4DQ + VQWK, 4, 3, bcm, QWK_4_3 + VQWK, 4, 4, bpmstripline, BPM10xm + VQWK, 4, 5, bpmstripline, BPM10xp + VQWK, 4, 6, bpmstripline, BPM10yp + VQWK, 4, 7, bpmstripline, BPM10ym + +Bank=0x03 +!Example Happex ADC Channel Mapping - Cameron doesn't know the +! identity of the BPM channel plugged in, so no number given +! and the xypm are almost certainly incorrectly identified. +!Happex ADC channels start with 3 on the bottom and go up to 0 +!VQWK ADC channels start with 0 on the bottom and go up to 7 + ADC18,0, 3, bcm, ADC18_BPMxm + ADC18,0, 2, bcm, ADC18_BPMxp + ADC18,0, 1, bcm, ADC18_BPMym + ADC18,0, 0, bcm, ADC18_BPMyp + ADC18,1, 3, bcm, ADC18_1_3 + ADC18,1, 2, bcm, ADC18_1_2 + ADC18,1, 1, bcm, ADC18_1_1 + ADC18,1, 0, bcm, ADC18_1_0 + +[PUBLISH] +! new.tree.variable.name, analysis.class, old.tree.variable.name, element.to.store + q_targ, bcm, bcm_an_ds3, c diff --git a/Parity/prminput/prexCH_beamline_eventcuts.1329-.map b/Parity/prminput/prexCH_beamline_eventcuts.1329-.map new file mode 100644 index 000000000..104318322 --- /dev/null +++ b/Parity/prminput/prexCH_beamline_eventcuts.1329-.map @@ -0,0 +1,66 @@ + +!This file contains beamline event cut properties +!********************************************************************************************* +!Global switch to turn ON and OFF eventcut check +!Available settings +!*************************************************** +!To turn OFF all checks +!EVENTCUTS = 0 + +!*************************************************** +!To turn OFF event cuts and perform only HW checks +!EVENTCUTS = 1 + +!*************************************************** +!To turn ON both event cuts and HW checks +! EVENTCUTS = 2 + +!*************************************************** +!To turn do both event cuts and HW checks and only flag event cut failed events +EVENTCUTS = 3 + +!IMPORTANT +!--------- +!Make sure when puting tabs in the map file entries, always put ", " before inserting a tab. +!Otherwise the routine QwParameterFile::GetNextToken(", ") will get confuse. + +!*************************************************** +!for bcm devices +!device_type, device_name, lower limit, upper limit, local(l)/global(g), stability percentage + bcm, bcm_an_ds3, 2.0, 1e6, g, 0.2 + +!for parity mock data run 1000 9.98608e+06 +!bcm, qwk_bcm0l03, 8.00e+06, 1.20e+07, 1, 0 + + +!bcm, qwk_batery6, 0, 0, 1, 0 +!bcm, qwk_batery7, 95.57778e+9, 95.5788e+9, 1, 0 +!bcm, phasemonitor, 0, 0, 1, 0 + +!**************************************************** +!for bpmstrpline devices +!device_type, device_name, channel_name, lower limit, upper limit +!channel_name can be relx, rely, absx, absy, wsum, xp, xm, yp, ym +!Cuts are applied after the VQwSubsystem::ProcessEvent() routine. +!So pedestals are applied before appyling the cuts. + +!device_type, device_name, channel_name, lower limit, upper limit, local(l)/global(g), stability percentage +! the following line is an example +!bpmstripline, qwk_qpd, relx, 2.67319, 4.45531 + + + +!This file contains beamline event cut properties + +!IMPORTANT +!--------- +!Make sure when puting tabs in the map file entries, always put ", " before inserting a tab. +!Otherwise the routine QwParameterFile::GetNextToken(", ") will extract the entry with the tab character. + +!Comments +!-------- +!Devices that are not in the list are not subjected event cut checks +!All devices will be tested for HW checks. +! +!For device_type =bcm only upper and lower limit of the calibrated charge on the ADC HW sum. (QwVQWK_Channel::fHardwareBlockSum) + diff --git a/Parity/prminput/prexCH_beamline_eventcuts.map b/Parity/prminput/prexCH_beamline_eventcuts.map index f7391f4cc..b07c07eea 100644 --- a/Parity/prminput/prexCH_beamline_eventcuts.map +++ b/Parity/prminput/prexCH_beamline_eventcuts.map @@ -27,7 +27,7 @@ EVENTCUTS = 3 !*************************************************** !for bcm devices !device_type, device_name, lower limit, upper limit, local(l)/global(g), stability percentage - bcm, bcmUS, 1, 1e6, l, 0 + bcm, bcm_an_ds3, 1.0, 1e6, g, 0.2 !for parity mock data run 1000 9.98608e+06 !bcm, qwk_bcm0l03, 8.00e+06, 1.20e+07, 1, 0 diff --git a/Parity/prminput/prexCH_beamline_pedestal.1199-.map b/Parity/prminput/prexCH_beamline_pedestal.1199-.map new file mode 100644 index 000000000..ece05c295 --- /dev/null +++ b/Parity/prminput/prexCH_beamline_pedestal.1199-.map @@ -0,0 +1,49 @@ +! adc sample size 16564 +!---- +!END + +! Unser calibration based on Run 1214 , HAPLOG 3609 +UNSER, -174.1, 2.066e-2 + +! Rough BCM calibration from 2uA and 5uA during run 1224. +bcm_an_us, -634.1 0.00306062 +bcm_an_ds, -810.6 0.00300731 +bcm_an_ds3, -662.6 0.00088747 +bcm_an_ds10, -255.9, 0.00031405 + +! BPM pedestal from run 1245 + bpm4aXM, 3597, 1 + bpm4aXP, 3316, 1 + bpm4aYM, -537.1, 1 + bpm4aYP, -531.5, 1 + + bpm4eXM, -1584, 1 + bpm4eXP, -1512, 1 + bpm4eYM, -1293, 1 + bpm4eYP, -1168, 1 + + bpm10XM, -3190, 1 + bpm10XP, -2872, 1 + bpm10YM, -2744, 1 + bpm10YP, -2850, 1 + + bpm12XM, -3976, 1 + bpm12XP, -4184, 1 + bpm12YM, -3868, 1 + bpm12YP, -3587, 1 + +! cavity BPMs pedestal calibration from zero gain run 1219 + cav4bq, -167.527, 1 + cav4bx, -379.812, 1 + cav4by, -550.257, 1 + + cav4cq, -403.997, 1 + cav4cx, -634.063, 1 + cav4cy, -357.001, 1 + + cav4dq, -216.942, 1 + cav4dx, -242.757, 1 + cav4dy, -203.538, 1 + + + diff --git a/Parity/prminput/prexCH_beamline_pedestal.1230-.map b/Parity/prminput/prexCH_beamline_pedestal.1230-.map new file mode 100644 index 000000000..21ce7989a --- /dev/null +++ b/Parity/prminput/prexCH_beamline_pedestal.1230-.map @@ -0,0 +1,59 @@ +! adc sample size 16564 +!---- +!END + +! Unser calibration based on Run 1214 , HAPLOG 3609 +UNSER, -174.1, 2.066e-2 + +! Rough BCM calibration from 2uA and 5uA during run 1224. +! bcm_an_us, -634.1, 0.00306062 +! bcm_an_ds, -810.6, 0.00300731 +! bcm_an_ds3, -662.6, 0.00088747 +! bcm_an_ds10, -255.9, 0.00031405 +! Rough Digital BCM Calibration from 2uA to 5uA during run 1230 +! bcm_dg_us, -203, 0.0034084 +! bcm_dg_ds, -656, 0.0033521 + + ! BCM Calibration from 5-30 uA runs , 1273, 1266, 1280, HAPLOG 3625 + bcm_an_us, -341.6, 0.002865 + bcm_an_ds, -750.9, 0.002696 + bcm_an_ds3, -671.5, 0.0007971 + bcm_an_ds10, -1811, 0.0002693 + bcm_dg_us, -264.1, 0.002974 + bcm_dg_ds, -720.8, 0.002957 + + ! BPM pedestal from run 1280 current scan with forced gain at ~2300 + bpm4aXM, -650.9, 1 + bpm4aXP, 1000, 1 + bpm4aYM, 772.7, 1 + bpm4aYP, -456.8, 1 + + bpm4eXM, 478.4, 1 + bpm4eXP, 742.2, 1 + bpm4eYM, 672.6, 1 + bpm4eYP, -128.7, 1 + +! BPM pedestal from run 1245 + bpm10XM, -3190, 1 + bpm10XP, -2872, 1 + bpm10YM, -2744, 1 + bpm10YP, -2850, 1 + + bpm12XM, -3976, 1 + bpm12XP, -4184, 1 + bpm12YM, -3868, 1 + bpm12YP, -3587, 1 + +! cavity BPMs pedestal calibration from zero gain run 1219 + cav4bq, -167.527, 0.00529310 + cav4bx, -379.812, 0.00089542 + cav4by, -550.257, 0.00060837 + + cav4cq, -403.997, 0.0071337 + cav4cx, -634.063, 0.0007546 + cav4cy, -357.001, 0.0008082 + + cav4dq, -216.942, 0.0078974 + cav4dx, -242.757, 0.0007698 + cav4dy, -203.538, 0.0006942 + diff --git a/Parity/prminput/prexCH_beamline_pedestal.1329-.map b/Parity/prminput/prexCH_beamline_pedestal.1329-.map new file mode 100644 index 000000000..a27f88039 --- /dev/null +++ b/Parity/prminput/prexCH_beamline_pedestal.1329-.map @@ -0,0 +1,59 @@ +! adc sample size 16564 +!---- +!END + +! Unser calibration based on Run 1214 , HAPLOG 3609 +UNSER, -174.1, 2.066e-2 + + ! BCM Calibration from run 1329~ 35-45 uA (based on scandata1) +bcm_an_us, -1208.87, 0.002596 +bcm_an_ds, -1337.72, 0.002618 +bcm_an_ds3, -3099.53, 0.000765 + +bcm_dg_us, -868.69, 0.002877 +bcm_dg_ds, -1253.71, 0.002875 + + ! ds10x is saturated at this current range, pedestal is copied from 20-30 uA current scan + bcm_an_ds10, -1811, 0.0002693 + + + ! BPM pedestal from run 1329 current scan with forced gain at ~35,40,45 (based on scandata1) + bpm4aXP, -419.02, 1.0 + bpm4aXM, -576.81, 1.0 + bpm4aYP, -815.71, 1.0 + bpm4aYM, -425.93, 1.0 + + bpm4eXP, -63.29, 1.0 + bpm4eXM, -954.70, 1.0 + bpm4eYP, -1132.21, 1.0 + bpm4eYM, -683.48, 1.0 + + bpm8XP, 4166.56, 1.0 + bpm8XM, -334.28, 1.0 + bpm8YP, -992.76, 1.0 + bpm8YM, 4406.21, 1.0 + + bpm10XP, 2033.10, 1.0 + bpm10XM, 4889.11, 1.0 + bpm10YP, 7129.37, 1.0 + bpm10YM, -1030.66, 1.0 + + bpm12XP, -3053.99, 1.0 + bpm12XM, 544.68, 1.0 + bpm12YP, 357.89, 1.0 + bpm12YM, -1840.35, 1.0 + + +! cavity BPMs pedestal calibration from zero gain run 1219 + cav4bq, -167.527, 0.00529310 + cav4bx, -379.812, 0.00089542 + cav4by, -550.257, 0.00060837 + + cav4cq, -403.997, 0.0071337 + cav4cx, -634.063, 0.0007546 + cav4cy, -357.001, 0.0008082 + + cav4dq, -216.942, 0.0078974 + cav4dx, -242.757, 0.0007698 + cav4dy, -203.538, 0.0006942 + diff --git a/Parity/prminput/prexCH_beamline_pedestal.1378-.map b/Parity/prminput/prexCH_beamline_pedestal.1378-.map new file mode 100644 index 000000000..d51a46c4c --- /dev/null +++ b/Parity/prminput/prexCH_beamline_pedestal.1378-.map @@ -0,0 +1,58 @@ +! adc sample size 16564 +!---- +!END + +! Unser calibration based on Run 1214 , HAPLOG 3609 +UNSER, -174.1, 2.066e-2 + + ! BCM Calibration from run 1404 ~25-35 uA (based on scandata1) + bcm_an_us, -947.98, 0.002659 + bcm_an_ds, -1089.09, 0.002672 + bcm_an_ds3, -2241.89, 0.000781 + bcm_dg_us, -696.86, 0.002906 + bcm_dg_ds, -1126.92, 0.002889 + + ! ds10x is saturated at this current range, pedestal is copied from 20-30 uA current scan + bcm_an_ds10, -1811, 0.0002693 + + + ! BPM pedestal from run 1404 current scan with forced gain at ~25,30,35 (based on scandata1) + + bpm4aXP, -56.07, 1.0 + bpm4aXM, -225.61, 1.0 + bpm4aYP, 16.17, 1.0 + bpm4aYM, -449.68, 1.0 + + bpm4eXP, 366.29, 1.0 + bpm4eXM, -402.58, 1.0 + bpm4eYP, -132.63, 1.0 + bpm4eYM, -548.23, 1.0 + + bpm8XP, 2772.13, 1.0 + bpm8XM, -338.26, 1.0 + bpm8YP, 2768.41, 1.0 + bpm8YM, 2375.63, 1.0 + + bpm10XP, 4134.23, 1.0 + bpm10XM, -16.92, 1.0 + bpm10YP, 1902.80, 1.0 + bpm10YM, 1140.99, 1.0 + + bpm12XP, -1140.14, 1.0 + bpm12XM, -517.90, 1.0 + bpm12YP, 217.82, 1.0 + bpm12YM, -552.81, 1.0 + +! cavity BPMs pedestal calibration from zero gain run 1219 + cav4bq, -167.527, 0.00529310 + cav4bx, -379.812, 0.00089542 + cav4by, -550.257, 0.00060837 + + cav4cq, -403.997, 0.0071337 + cav4cx, -634.063, 0.0007546 + cav4cy, -357.001, 0.0008082 + + cav4dq, -216.942, 0.0078974 + cav4dx, -242.757, 0.0007698 + cav4dy, -203.538, 0.0006942 + diff --git a/Parity/prminput/prexCH_beamline_pedestal.map b/Parity/prminput/prexCH_beamline_pedestal.map index a0af6f9fd..ad971f725 100644 --- a/Parity/prminput/prexCH_beamline_pedestal.map +++ b/Parity/prminput/prexCH_beamline_pedestal.map @@ -9,4 +9,6 @@ !---- !bpm1i02XP , 1204.2 , 1. !END - + + ! Based on Run 1214 , HAPLOG 3609 + UNSER, -174.1, 2.066e-2 diff --git a/Parity/prminput/prex_maindet.1336-1348.map b/Parity/prminput/prex_maindet.1336-1348.map new file mode 100644 index 000000000..c6acc13fd --- /dev/null +++ b/Parity/prminput/prex_maindet.1336-1348.map @@ -0,0 +1,33 @@ +ROC=25 +Bank=0x5 +vqwk_buffer_offset=1 + +sample_size=1984 +! +! Force all channels to be "not_blindable" during testing +! + VQWK, 0, 0, IntegrationPMT, usl not_blindable + VQWK, 0, 1, IntegrationPMT, dsl not_blindable + VQWK, 0, 2, IntegrationPMT, atl1 not_blindable + VQWK, 0, 3, IntegrationPMT, atl2 not_blindable + VQWK, 0, 4, IntegrationPMT, vqwk_25_0ch4 not_blindable + VQWK, 0, 5, IntegrationPMT, vqwk_25_0ch5 not_blindable + VQWK, 0, 6, IntegrationPMT, vqwk_25_0ch6 not_blindable + VQWK, 0, 7, IntegrationPMT, vqwk_25_0ch7 not_blindable + +ROC=26 +Bank=0x5 +vqwk_buffer_offset=1 +sample_size=1984 +! +! Force all channels to be "not_blindable" during testing +! + VQWK, 0, 0, IntegrationPMT, usr not_blindable + VQWK, 0, 1, IntegrationPMT, dsr not_blindable + VQWK, 0, 2, IntegrationPMT, atr1 not_blindable + VQWK, 0, 3, IntegrationPMT, atr2 not_blindable + VQWK, 0, 4, IntegrationPMT, vqwk_26_0ch4 not_blindable + VQWK, 0, 5, IntegrationPMT, vqwk_26_0ch5 not_blindable + VQWK, 0, 6, IntegrationPMT, vqwk_26_0ch6 not_blindable + VQWK, 0, 7, IntegrationPMT, vqwk_26_0ch7 not_blindable + diff --git a/Parity/prminput/prex_maindet.1397-1420.map b/Parity/prminput/prex_maindet.1397-1420.map new file mode 100644 index 000000000..c6acc13fd --- /dev/null +++ b/Parity/prminput/prex_maindet.1397-1420.map @@ -0,0 +1,33 @@ +ROC=25 +Bank=0x5 +vqwk_buffer_offset=1 + +sample_size=1984 +! +! Force all channels to be "not_blindable" during testing +! + VQWK, 0, 0, IntegrationPMT, usl not_blindable + VQWK, 0, 1, IntegrationPMT, dsl not_blindable + VQWK, 0, 2, IntegrationPMT, atl1 not_blindable + VQWK, 0, 3, IntegrationPMT, atl2 not_blindable + VQWK, 0, 4, IntegrationPMT, vqwk_25_0ch4 not_blindable + VQWK, 0, 5, IntegrationPMT, vqwk_25_0ch5 not_blindable + VQWK, 0, 6, IntegrationPMT, vqwk_25_0ch6 not_blindable + VQWK, 0, 7, IntegrationPMT, vqwk_25_0ch7 not_blindable + +ROC=26 +Bank=0x5 +vqwk_buffer_offset=1 +sample_size=1984 +! +! Force all channels to be "not_blindable" during testing +! + VQWK, 0, 0, IntegrationPMT, usr not_blindable + VQWK, 0, 1, IntegrationPMT, dsr not_blindable + VQWK, 0, 2, IntegrationPMT, atr1 not_blindable + VQWK, 0, 3, IntegrationPMT, atr2 not_blindable + VQWK, 0, 4, IntegrationPMT, vqwk_26_0ch4 not_blindable + VQWK, 0, 5, IntegrationPMT, vqwk_26_0ch5 not_blindable + VQWK, 0, 6, IntegrationPMT, vqwk_26_0ch6 not_blindable + VQWK, 0, 7, IntegrationPMT, vqwk_26_0ch7 not_blindable + diff --git a/Parity/prminput/prex_maindet.1449-1450.map b/Parity/prminput/prex_maindet.1449-1450.map new file mode 100644 index 000000000..7082aba12 --- /dev/null +++ b/Parity/prminput/prex_maindet.1449-1450.map @@ -0,0 +1,33 @@ +ROC=25 +Bank=0x5 +vqwk_buffer_offset=1 + +sample_size=8064 +! +! Force all channels to be "not_blindable" during testing +! + VQWK, 0, 0, IntegrationPMT, usl not_blindable + VQWK, 0, 1, IntegrationPMT, dsl not_blindable + VQWK, 0, 2, IntegrationPMT, atl1 not_blindable + VQWK, 0, 3, IntegrationPMT, atl2 not_blindable + VQWK, 0, 4, IntegrationPMT, vqwk_25_0ch4 not_blindable + VQWK, 0, 5, IntegrationPMT, vqwk_25_0ch5 not_blindable + VQWK, 0, 6, IntegrationPMT, vqwk_25_0ch6 not_blindable + VQWK, 0, 7, IntegrationPMT, vqwk_25_0ch7 not_blindable + +ROC=26 +Bank=0x5 +vqwk_buffer_offset=1 +sample_size=8064 +! +! Force all channels to be "not_blindable" during testing +! + VQWK, 0, 0, IntegrationPMT, usr not_blindable + VQWK, 0, 1, IntegrationPMT, dsr not_blindable + VQWK, 0, 2, IntegrationPMT, atr1 not_blindable + VQWK, 0, 3, IntegrationPMT, atr2 not_blindable + VQWK, 0, 4, IntegrationPMT, vqwk_26_0ch4 not_blindable + VQWK, 0, 5, IntegrationPMT, vqwk_26_0ch5 not_blindable + VQWK, 0, 6, IntegrationPMT, vqwk_26_0ch6 not_blindable + VQWK, 0, 7, IntegrationPMT, vqwk_26_0ch7 not_blindable + diff --git a/Parity/prminput/prex_sam.1336-1348.map b/Parity/prminput/prex_sam.1336-1348.map new file mode 100644 index 000000000..579a74e9a --- /dev/null +++ b/Parity/prminput/prex_sam.1336-1348.map @@ -0,0 +1,15 @@ +ROC=26 +Bank=0x5 +vqwk_buffer_offset=1 + +sample_size=1984 + + VQWK, 1, 0, IntegrationPMT, sam1 + VQWK, 1, 1, IntegrationPMT, sam2 + VQWK, 1, 2, IntegrationPMT, sam3 + VQWK, 1, 3, IntegrationPMT, sam4 + VQWK, 1, 4, IntegrationPMT, sam5 + VQWK, 1, 5, IntegrationPMT, sam6 + VQWK, 1, 6, IntegrationPMT, sam7 + VQWK, 1, 7, IntegrationPMT, sam8 + diff --git a/Parity/prminput/prex_sam.1397-1420.map b/Parity/prminput/prex_sam.1397-1420.map new file mode 100644 index 000000000..579a74e9a --- /dev/null +++ b/Parity/prminput/prex_sam.1397-1420.map @@ -0,0 +1,15 @@ +ROC=26 +Bank=0x5 +vqwk_buffer_offset=1 + +sample_size=1984 + + VQWK, 1, 0, IntegrationPMT, sam1 + VQWK, 1, 1, IntegrationPMT, sam2 + VQWK, 1, 2, IntegrationPMT, sam3 + VQWK, 1, 3, IntegrationPMT, sam4 + VQWK, 1, 4, IntegrationPMT, sam5 + VQWK, 1, 5, IntegrationPMT, sam6 + VQWK, 1, 6, IntegrationPMT, sam7 + VQWK, 1, 7, IntegrationPMT, sam8 + diff --git a/Parity/prminput/prex_sam.1449-1450.map b/Parity/prminput/prex_sam.1449-1450.map new file mode 100644 index 000000000..da72fc47a --- /dev/null +++ b/Parity/prminput/prex_sam.1449-1450.map @@ -0,0 +1,15 @@ +ROC=26 +Bank=0x5 +vqwk_buffer_offset=1 + +sample_size=8064 + + VQWK, 1, 0, IntegrationPMT, sam1 + VQWK, 1, 1, IntegrationPMT, sam2 + VQWK, 1, 2, IntegrationPMT, sam3 + VQWK, 1, 3, IntegrationPMT, sam4 + VQWK, 1, 4, IntegrationPMT, sam5 + VQWK, 1, 5, IntegrationPMT, sam6 + VQWK, 1, 6, IntegrationPMT, sam7 + VQWK, 1, 7, IntegrationPMT, sam8 + diff --git a/Parity/prminput/prex_sam_pedestal.1221-.map b/Parity/prminput/prex_sam_pedestal.1221-.map new file mode 100644 index 000000000..a63bd6477 --- /dev/null +++ b/Parity/prminput/prex_sam_pedestal.1221-.map @@ -0,0 +1,9 @@ +!! SAM Pedestal based on run 1221, ELOG 3608 +sam1 , -146.90 , 76.293e-6 +sam2 , 13052.83 , 76.293e-6 +sam3 , 12764.05 , 76.293e-6 +sam4 , 12540.92 , 76.293e-6 +sam5 , 12574.12 , 76.293e-6 +sam6 , 13078.08 , 76.293e-6 +sam7 , 12884.76 , 76.293e-6 +sam8 , 12717.26 , 76.293e-6 diff --git a/Parity/prminput/prex_sam_pedestal.1439-.map b/Parity/prminput/prex_sam_pedestal.1439-.map new file mode 100644 index 000000000..4f47d77f1 --- /dev/null +++ b/Parity/prminput/prex_sam_pedestal.1439-.map @@ -0,0 +1,9 @@ +!! SAM Pedestal based on run 1221, ELOG 3608 +sam1 , -964.528 , 76.293e-6 +sam2 , 13188.8 , 76.293e-6 +sam3 , 12712.5 , 76.293e-6 +sam4 , 13018.1 , 76.293e-6 +sam5 , 12505.0 , 76.293e-6 +sam6 , 13108.8 , 76.293e-6 +sam7 , 12353.5 , 76.293e-6 +sam8 , 12318.7 , 76.293e-6 diff --git a/Parity/prminput/prex_sam_pedestal.map b/Parity/prminput/prex_sam_pedestal.map index 8d89ae98f..a63bd6477 100644 --- a/Parity/prminput/prex_sam_pedestal.map +++ b/Parity/prminput/prex_sam_pedestal.map @@ -1,8 +1,9 @@ -sam1 , 0 , 76.293e-6 -sam2 , 0 , 76.293e-6 -sam3 , 0 , 76.293e-6 -sam4 , 0 , 76.293e-6 -sam5 , 0 , 76.293e-6 -sam6 , 0 , 76.293e-6 -sam7 , 0 , 76.293e-6 -sam8 , 0 , 76.293e-6 +!! SAM Pedestal based on run 1221, ELOG 3608 +sam1 , -146.90 , 76.293e-6 +sam2 , 13052.83 , 76.293e-6 +sam3 , 12764.05 , 76.293e-6 +sam4 , 12540.92 , 76.293e-6 +sam5 , 12574.12 , 76.293e-6 +sam6 , 13078.08 , 76.293e-6 +sam7 , 12884.76 , 76.293e-6 +sam8 , 12717.26 , 76.293e-6 diff --git a/Parity/prminput/prex_scaler.1428-.map b/Parity/prminput/prex_scaler.1428-.map new file mode 100644 index 000000000..00cc3482d --- /dev/null +++ b/Parity/prminput/prex_scaler.1428-.map @@ -0,0 +1,21 @@ +ROC=23 +bank=0x2 +! module.type module.num chan.num, det.type, det.name + SIS3801D32, 0, 16, syncscal, chouse_fr + SIS3801D32, 0, 17, syncscal, chouse_f1 + SIS3801D32, 0, 18, syncscal, chouse_f2 + SIS3801D32, 0, 23, syncscal, clock_4mhz + +ROC=25 +bank=0x2 +! module.type module.num chan.num, det.type, det.name + SIS3801D32, 0, 30, syncscal, lhrs_f1 + SIS3801D32, 0, 31, syncscal, lhrs_f2 + +ROC=26 +bank=0x2 +! module.type module.num chan.num, det.type, det.name + SIS3801D32, 0, 30, syncscal, rhrs_f1 + SIS3801D32, 0, 31, syncscal, rhrs_f2 + +!!! Also should be scalers in the injector... diff --git a/Parity/prminput/prex_scaler.1428-1430.map b/Parity/prminput/prex_scaler.1428-1430.map new file mode 100644 index 000000000..7f266d5a2 --- /dev/null +++ b/Parity/prminput/prex_scaler.1428-1430.map @@ -0,0 +1,32 @@ +ROC=23 +bank=0x2 +! module.type module.num chan.num, det.type, det.name + SIS3801D32, 0, 16, syncscal, chouse_fr + SIS3801D32, 0, 17, syncscal, chouse_f1 + SIS3801D32, 0, 18, syncscal, chouse_f2 + SIS3801D32, 0, 23, syncscal, clock_4mhz + +! The following bmod scalers should be removed frmo here and decoded in their own class. + SIS3801D32, 0, 19, syncscal, bmod_trig + SIS3801D32, 0, 24, syncscal, bmod_trim1 + SIS3801D32, 0, 25, syncscal, bmod_trim2 + SIS3801D32, 0, 26, syncscal, bmod_trim3 + SIS3801D32, 0, 27, syncscal, bmod_trim4 + SIS3801D32, 0, 28, syncscal, bmod_trim5 + SIS3801D32, 0, 29, syncscal, bmod_trim6 + SIS3801D32, 0, 30, syncscal, bmod_trim7 + SIS3801D32, 0, 31, syncscal, bmod_trim8 + +ROC=25 +bank=0x2 +! module.type module.num chan.num, det.type, det.name + SIS3801D32, 0, 30, syncscal, lhrs_f1 + SIS3801D32, 0, 31, syncscal, lhrs_f2 + +ROC=26 +bank=0x2 +! module.type module.num chan.num, det.type, det.name + SIS3801D32, 0, 30, syncscal, rhrs_f1 + SIS3801D32, 0, 31, syncscal, rhrs_f2 + +!!! Also should be scalers in the injector... diff --git a/Parity/prminput/prex_scaler.1464-1478.map b/Parity/prminput/prex_scaler.1464-1478.map new file mode 100644 index 000000000..7f266d5a2 --- /dev/null +++ b/Parity/prminput/prex_scaler.1464-1478.map @@ -0,0 +1,32 @@ +ROC=23 +bank=0x2 +! module.type module.num chan.num, det.type, det.name + SIS3801D32, 0, 16, syncscal, chouse_fr + SIS3801D32, 0, 17, syncscal, chouse_f1 + SIS3801D32, 0, 18, syncscal, chouse_f2 + SIS3801D32, 0, 23, syncscal, clock_4mhz + +! The following bmod scalers should be removed frmo here and decoded in their own class. + SIS3801D32, 0, 19, syncscal, bmod_trig + SIS3801D32, 0, 24, syncscal, bmod_trim1 + SIS3801D32, 0, 25, syncscal, bmod_trim2 + SIS3801D32, 0, 26, syncscal, bmod_trim3 + SIS3801D32, 0, 27, syncscal, bmod_trim4 + SIS3801D32, 0, 28, syncscal, bmod_trim5 + SIS3801D32, 0, 29, syncscal, bmod_trim6 + SIS3801D32, 0, 30, syncscal, bmod_trim7 + SIS3801D32, 0, 31, syncscal, bmod_trim8 + +ROC=25 +bank=0x2 +! module.type module.num chan.num, det.type, det.name + SIS3801D32, 0, 30, syncscal, lhrs_f1 + SIS3801D32, 0, 31, syncscal, lhrs_f2 + +ROC=26 +bank=0x2 +! module.type module.num chan.num, det.type, det.name + SIS3801D32, 0, 30, syncscal, rhrs_f1 + SIS3801D32, 0, 31, syncscal, rhrs_f2 + +!!! Also should be scalers in the injector... diff --git a/Parity/prminput/prex_testing.conf b/Parity/prminput/prex_testing.conf index 2b062aebf..66e44a356 100644 --- a/Parity/prminput/prex_testing.conf +++ b/Parity/prminput/prex_testing.conf @@ -9,16 +9,13 @@ add-config = prexbankflag.conf detectors = prex_detectors.map -chainfiles = no single-output-file = yes -enable-tree-trim = no -disable-hel-tree = no -disable-histos = no rootfile-stem = prexALL_ codafile-stem = parity_ALL_ codafile-ext = dat QwDetectorArray.normalize = 0 QwBlindDetectorArray.normalize = 0 +enable-differences = 1 ring.size = 200 ring.stability_cut = -1 diff --git a/Parity/prminput/prexinj.conf b/Parity/prminput/prexinj.conf index f456bf909..1f195e753 100644 --- a/Parity/prminput/prexinj.conf +++ b/Parity/prminput/prexinj.conf @@ -9,11 +9,8 @@ add-config = prexbankflag.conf detectors = prexinj_detectors.map -chainfiles = no + single-output-file = yes -enable-tree-trim = no -disable-hel-tree = no -disable-histos = no rootfile-stem = prexinj_ codafile-stem = parity_INJ_ codafile-ext = dat diff --git a/Parity/prminput/prexinj_beamline.1047-.map b/Parity/prminput/prexinj_beamline.1047-.map new file mode 100644 index 000000000..ea4720dd8 --- /dev/null +++ b/Parity/prminput/prexinj_beamline.1047-.map @@ -0,0 +1,167 @@ + +ROC=24 +Bank=0x02 +vqwk_buffer_offset=1 + +!same sample size for ADCs in a given bank +sample_size=16564 +! +! +! module.type, module.num chan.num, det.type, det.name + + +!ADC0 + VQWK, 0, 0, bpmstripline, bpm0I01Axp + VQWK, 0, 1, bpmstripline, bpm0I01Axm + VQWK, 0, 2, bpmstripline, bpm0I01Ayp + VQWK, 0, 3, bpmstripline, bpm0I01Aym + VQWK, 0, 4, bpmstripline, bpm1I04xp + VQWK, 0, 5, bpmstripline, bpm1I04xm + VQWK, 0, 6, bpmstripline, bpm1I04yp + VQWK, 0, 7, bpmstripline, bpm1I04ym + +!ADC1 + VQWK, 1, 0, bpmstripline, bpm1I02xp + VQWK, 1, 1, bpmstripline, bpm1I02xm + VQWK, 1, 2, bpmstripline, bpm1I02yp + VQWK, 1, 3, bpmstripline, bpm1I02ym + VQWK, 1, 4, bpmstripline, bpm0I01xp + VQWK, 1, 5, bpmstripline, bpm0I01xm + VQWK, 1, 6, bpmstripline, bpm0I01yp + VQWK, 1, 7, bpmstripline, bpm0I01ym + + +!ADC2 + VQWK, 2, 0, bpmstripline, bpm1I06xp + VQWK, 2, 1, bpmstripline, bpm1I06xm + VQWK, 2, 2, bpmstripline, bpm1I06yp + VQWK, 2, 3, bpmstripline, bpm1I06ym + VQWK, 2, 4, bpmstripline, bpm0I02xp + VQWK, 2, 5, bpmstripline, bpm0I02xm + VQWK, 2, 6, bpmstripline, bpm0I02yp + VQWK, 2, 7, bpmstripline, bpm0I02ym + +!ADC3 + VQWK, 3, 0, bpmstripline, bpm0I02Axp + VQWK, 3, 1, bpmstripline, bpm0I02Axm + VQWK, 3, 2, bpmstripline, bpm0I02Ayp + VQWK, 3, 3, bpmstripline, bpm0I02Aym + VQWK, 3, 4, bpmstripline, bpm0I05xp + VQWK, 3, 5, bpmstripline, bpm0I05xm + VQWK, 3, 6, bpmstripline, bpm0I05yp + VQWK, 3, 7, bpmstripline, bpm0I05ym + +!ADC4 + VQWK, 4, 0, bpmstripline, bpm0I07xp + VQWK, 4, 1, bpmstripline, bpm0I07xm + VQWK, 4, 2, bpmstripline, bpm0I07yp + VQWK, 4, 3, bpmstripline, bpm0I07ym + VQWK, 4, 4, bpmstripline, bpm0L01xp + VQWK, 4, 5, bpmstripline, bpm0L01xm + VQWK, 4, 6, bpmstripline, bpm0L01yp + VQWK, 4, 7, bpmstripline, bpm0L01ym + + +!ADC5 + VQWK, 5, 0, bpmstripline, bpm0L02xp + VQWK, 5, 1, bpmstripline, bpm0L02xm + VQWK, 5, 2, bpmstripline, bpm0L02yp + VQWK, 5, 3, bpmstripline, bpm0L02ym + VQWK, 5, 4, bpmstripline, bpm0L03xp + VQWK, 5, 5, bpmstripline, bpm0L03xm + VQWK, 5, 6, bpmstripline, bpm0L03yp + VQWK, 5, 7, bpmstripline, bpm0L03ym + +!ADC6 + VQWK, 6, 0, bpmstripline, bpm0L04xp + VQWK, 6, 1, bpmstripline, bpm0L04xm + VQWK, 6, 2, bpmstripline, bpm0L04yp + VQWK, 6, 3, bpmstripline, bpm0L04ym + VQWK, 6, 4, bpmstripline, bpm0L05xp + VQWK, 6, 5, bpmstripline, bpm0L05xm + VQWK, 6, 6, bpmstripline, bpm0L05yp + VQWK, 6, 7, bpmstripline, bpm0L05ym + +!ADC7 + VQWK, 7, 0, bpmstripline, bpm0L06xp + VQWK, 7, 1, bpmstripline, bpm0L06xm + VQWK, 7, 2, bpmstripline, bpm0L06yp + VQWK, 7, 3, bpmstripline, bpm0L06ym + VQWK, 7, 4, bpmstripline, bpm0L07xp + VQWK, 7, 5, bpmstripline, bpm0L07xm + VQWK, 7, 6, bpmstripline, bpm0L07yp + VQWK, 7, 7, bpmstripline, bpm0L07ym + +!ADC8 + VQWK, 8, 0, bpmstripline, bpm0R02xp + VQWK, 8, 1, bpmstripline, bpm0R02xm + VQWK, 8, 2, bpmstripline, bpm0R02yp + VQWK, 8, 3, bpmstripline, bpm0R02ym + VQWK, 8, 4, bpmstripline, bpm0R05xp + VQWK, 8, 5, bpmstripline, bpm0R05xm + VQWK, 8, 6, bpmstripline, bpm0R05yp + VQWK, 8, 7, bpmstripline, bpm0R05ym + +!ADC9 + VQWK, 9, 0, bpmstripline, bpm0L10xp + VQWK, 9, 1, bpmstripline, bpm0L10xm + VQWK, 9, 2, bpmstripline, bpm0L10yp + VQWK, 9, 3, bpmstripline, bpm0L10ym + VQWK, 9, 4, bpmstripline, bpm2I02xp + VQWK, 9, 5, bpmstripline, bpm2I02xm + VQWK, 9, 6, bpmstripline, bpm2I02yp + VQWK, 9, 7, bpmstripline, bpm2I02ym + +!ADC10 + VQWK, 10, 0, bpmstripline, bpm2I01xp + VQWK, 10, 1, bpmstripline, bpm2I01xm + VQWK, 10, 2, bpmstripline, bpm2I01yp + VQWK, 10, 3, bpmstripline, bpm2I01ym + VQWK, 10, 4, bcm, BCM0L02 + VQWK, 10, 5, bcm, Batery6 + VQWK, 10, 6, bcm, Batery7 + VQWK, 10, 7, bcm, PhaseMonitor + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Bank=0x01 +scaler_buffer_offset=6 +normclock=clk4MHz_1 + + SCALER, 0, 0, clock, sca0_0 + SCALER, 0, 1, clock, sca0_1 + SCALER, 0, 2, clock, sca0_2 + SCALER, 0, 3, clock, sca0_3 + SCALER, 0, 4, clock, sca0_4 + SCALER, 0, 5, clock, sca0_5 + SCALER, 0, 6, clock, sca0_6 + SCALER, 0, 7, clock, sca0_7 + SCALER, 0, 8, clock, sca0_8 + SCALER, 0, 9, clock, sca0_9 + SCALER, 0, 10, clock, sca0_10 + SCALER, 0, 11, clock, sca0_11 + SCALER, 0, 12, clock, sca0_12 + SCALER, 0, 13, clock, sca0_13 + SCALER, 0, 14, clock, sca0_14 + SCALER, 0, 15, clock, sca0_15 + + SCALER, 0, 16, halomonitor, sca0_16 + SCALER, 0, 17, clock, clk4MHz_1 + SCALER, 0, 18, clock, clk4MHz_2 + SCALER, 0, 19, clock, clk4MHz_3 + SCALER, 0, 20, halomonitor, sca0_20 + SCALER, 0, 21, halomonitor, sca0_21 + SCALER, 0, 22, halomonitor, sca0_22 + SCALER, 0, 23, halomonitor, sca0_23 + SCALER, 0, 24, halomonitor, sca0_24 + SCALER, 0, 25, halomonitor, sca0_25 + SCALER, 0, 26, halomonitor, sca0_26 + SCALER, 0, 27, halomonitor, sca0_27 + SCALER, 0, 28, halomonitor, sca0_28 + SCALER, 0, 29, halomonitor, sca0_29 + SCALER, 0, 30, halomonitor, sca0_30 + SCALER, 0, 31, halomonitor, sca0_31 + + +[PUBLISH] +# # q_targ, bcm, bcm0l02, c +# q_targ, bpmstripline, bpm0i02, ef ### Effective charge of BPM0i02 diff --git a/Parity/prminput/prexinj_beamline.1062-1198.map b/Parity/prminput/prexinj_beamline.1062-1198.map new file mode 100644 index 000000000..8a7604d3c --- /dev/null +++ b/Parity/prminput/prexinj_beamline.1062-1198.map @@ -0,0 +1,167 @@ + +ROC=24 +Bank=0x02 +vqwk_buffer_offset=1 + +!same sample size for ADCs in a given bank +sample_size=1984 +! +! +! module.type, module.num chan.num, det.type, det.name + + +!ADC0 + VQWK, 0, 0, bpmstripline, bpm0I01Axp + VQWK, 0, 1, bpmstripline, bpm0I01Axm + VQWK, 0, 2, bpmstripline, bpm0I01Ayp + VQWK, 0, 3, bpmstripline, bpm0I01Aym + VQWK, 0, 4, bpmstripline, bpm1I04xp + VQWK, 0, 5, bpmstripline, bpm1I04xm + VQWK, 0, 6, bpmstripline, bpm1I04yp + VQWK, 0, 7, bpmstripline, bpm1I04ym + +!ADC1 + VQWK, 1, 0, bpmstripline, bpm1I02xp + VQWK, 1, 1, bpmstripline, bpm1I02xm + VQWK, 1, 2, bpmstripline, bpm1I02yp + VQWK, 1, 3, bpmstripline, bpm1I02ym + VQWK, 1, 4, bpmstripline, bpm0I01xp + VQWK, 1, 5, bpmstripline, bpm0I01xm + VQWK, 1, 6, bpmstripline, bpm0I01yp + VQWK, 1, 7, bpmstripline, bpm0I01ym + + +!ADC2 + VQWK, 2, 0, bpmstripline, bpm1I06xp + VQWK, 2, 1, bpmstripline, bpm1I06xm + VQWK, 2, 2, bpmstripline, bpm1I06yp + VQWK, 2, 3, bpmstripline, bpm1I06ym + VQWK, 2, 4, bpmstripline, bpm0I02xp + VQWK, 2, 5, bpmstripline, bpm0I02xm + VQWK, 2, 6, bpmstripline, bpm0I02yp + VQWK, 2, 7, bpmstripline, bpm0I02ym + +!ADC3 + VQWK, 3, 0, bpmstripline, bpm0I02Axp + VQWK, 3, 1, bpmstripline, bpm0I02Axm + VQWK, 3, 2, bpmstripline, bpm0I02Ayp + VQWK, 3, 3, bpmstripline, bpm0I02Aym + VQWK, 3, 4, bpmstripline, bpm0I05xp + VQWK, 3, 5, bpmstripline, bpm0I05xm + VQWK, 3, 6, bpmstripline, bpm0I05yp + VQWK, 3, 7, bpmstripline, bpm0I05ym + +!ADC4 + VQWK, 4, 0, bpmstripline, bpm0I07xp + VQWK, 4, 1, bpmstripline, bpm0I07xm + VQWK, 4, 2, bpmstripline, bpm0I07yp + VQWK, 4, 3, bpmstripline, bpm0I07ym + VQWK, 4, 4, bpmstripline, bpm0L01xp + VQWK, 4, 5, bpmstripline, bpm0L01xm + VQWK, 4, 6, bpmstripline, bpm0L01yp + VQWK, 4, 7, bpmstripline, bpm0L01ym + + +!ADC5 + VQWK, 5, 0, bpmstripline, bpm0L02xp + VQWK, 5, 1, bpmstripline, bpm0L02xm + VQWK, 5, 2, bpmstripline, bpm0L02yp + VQWK, 5, 3, bpmstripline, bpm0L02ym + VQWK, 5, 4, bpmstripline, bpm0L03xp + VQWK, 5, 5, bpmstripline, bpm0L03xm + VQWK, 5, 6, bpmstripline, bpm0L03yp + VQWK, 5, 7, bpmstripline, bpm0L03ym + +!ADC6 + VQWK, 6, 0, bpmstripline, bpm0L04xp + VQWK, 6, 1, bpmstripline, bpm0L04xm + VQWK, 6, 2, bpmstripline, bpm0L04yp + VQWK, 6, 3, bpmstripline, bpm0L04ym + VQWK, 6, 4, bpmstripline, bpm0L05xp + VQWK, 6, 5, bpmstripline, bpm0L05xm + VQWK, 6, 6, bpmstripline, bpm0L05yp + VQWK, 6, 7, bpmstripline, bpm0L05ym + +!ADC7 + VQWK, 7, 0, bpmstripline, bpm0L06xp + VQWK, 7, 1, bpmstripline, bpm0L06xm + VQWK, 7, 2, bpmstripline, bpm0L06yp + VQWK, 7, 3, bpmstripline, bpm0L06ym + VQWK, 7, 4, bpmstripline, bpm0L07xp + VQWK, 7, 5, bpmstripline, bpm0L07xm + VQWK, 7, 6, bpmstripline, bpm0L07yp + VQWK, 7, 7, bpmstripline, bpm0L07ym + +!ADC8 + VQWK, 8, 0, bpmstripline, bpm0R02xp + VQWK, 8, 1, bpmstripline, bpm0R02xm + VQWK, 8, 2, bpmstripline, bpm0R02yp + VQWK, 8, 3, bpmstripline, bpm0R02ym + VQWK, 8, 4, bpmstripline, bpm0R05xp + VQWK, 8, 5, bpmstripline, bpm0R05xm + VQWK, 8, 6, bpmstripline, bpm0R05yp + VQWK, 8, 7, bpmstripline, bpm0R05ym + +!ADC9 + VQWK, 9, 0, bpmstripline, bpm0L10xp + VQWK, 9, 1, bpmstripline, bpm0L10xm + VQWK, 9, 2, bpmstripline, bpm0L10yp + VQWK, 9, 3, bpmstripline, bpm0L10ym + VQWK, 9, 4, bpmstripline, bpm2I02xp + VQWK, 9, 5, bpmstripline, bpm2I02xm + VQWK, 9, 6, bpmstripline, bpm2I02yp + VQWK, 9, 7, bpmstripline, bpm2I02ym + +!ADC10 + VQWK, 10, 0, bpmstripline, bpm2I01xp + VQWK, 10, 1, bpmstripline, bpm2I01xm + VQWK, 10, 2, bpmstripline, bpm2I01yp + VQWK, 10, 3, bpmstripline, bpm2I01ym + VQWK, 10, 4, bcm, BCM0L02 + VQWK, 10, 5, bcm, Batery6 + VQWK, 10, 6, bcm, Batery7 + VQWK, 10, 7, bcm, PhaseMonitor + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Bank=0x01 +scaler_buffer_offset=6 +normclock=clk4MHz_1 + + SCALER, 0, 0, clock, sca0_0 + SCALER, 0, 1, clock, sca0_1 + SCALER, 0, 2, clock, sca0_2 + SCALER, 0, 3, clock, sca0_3 + SCALER, 0, 4, clock, sca0_4 + SCALER, 0, 5, clock, sca0_5 + SCALER, 0, 6, clock, sca0_6 + SCALER, 0, 7, clock, sca0_7 + SCALER, 0, 8, clock, sca0_8 + SCALER, 0, 9, clock, sca0_9 + SCALER, 0, 10, clock, sca0_10 + SCALER, 0, 11, clock, sca0_11 + SCALER, 0, 12, clock, sca0_12 + SCALER, 0, 13, clock, sca0_13 + SCALER, 0, 14, clock, sca0_14 + SCALER, 0, 15, clock, sca0_15 + + SCALER, 0, 16, halomonitor, sca0_16 + SCALER, 0, 17, clock, clk4MHz_1 + SCALER, 0, 18, clock, clk4MHz_2 + SCALER, 0, 19, clock, clk4MHz_3 + SCALER, 0, 20, halomonitor, sca0_20 + SCALER, 0, 21, halomonitor, sca0_21 + SCALER, 0, 22, halomonitor, sca0_22 + SCALER, 0, 23, halomonitor, sca0_23 + SCALER, 0, 24, halomonitor, sca0_24 + SCALER, 0, 25, halomonitor, sca0_25 + SCALER, 0, 26, halomonitor, sca0_26 + SCALER, 0, 27, halomonitor, sca0_27 + SCALER, 0, 28, halomonitor, sca0_28 + SCALER, 0, 29, halomonitor, sca0_29 + SCALER, 0, 30, halomonitor, sca0_30 + SCALER, 0, 31, halomonitor, sca0_31 + + +[PUBLISH] +# # q_targ, bcm, bcm0l02, c +# q_targ, bpmstripline, bpm0i02, ef ### Effective charge of BPM0i02 diff --git a/Parity/prminput/prexinj_beamline.1199-.map b/Parity/prminput/prexinj_beamline.1199-.map new file mode 100644 index 000000000..ea4720dd8 --- /dev/null +++ b/Parity/prminput/prexinj_beamline.1199-.map @@ -0,0 +1,167 @@ + +ROC=24 +Bank=0x02 +vqwk_buffer_offset=1 + +!same sample size for ADCs in a given bank +sample_size=16564 +! +! +! module.type, module.num chan.num, det.type, det.name + + +!ADC0 + VQWK, 0, 0, bpmstripline, bpm0I01Axp + VQWK, 0, 1, bpmstripline, bpm0I01Axm + VQWK, 0, 2, bpmstripline, bpm0I01Ayp + VQWK, 0, 3, bpmstripline, bpm0I01Aym + VQWK, 0, 4, bpmstripline, bpm1I04xp + VQWK, 0, 5, bpmstripline, bpm1I04xm + VQWK, 0, 6, bpmstripline, bpm1I04yp + VQWK, 0, 7, bpmstripline, bpm1I04ym + +!ADC1 + VQWK, 1, 0, bpmstripline, bpm1I02xp + VQWK, 1, 1, bpmstripline, bpm1I02xm + VQWK, 1, 2, bpmstripline, bpm1I02yp + VQWK, 1, 3, bpmstripline, bpm1I02ym + VQWK, 1, 4, bpmstripline, bpm0I01xp + VQWK, 1, 5, bpmstripline, bpm0I01xm + VQWK, 1, 6, bpmstripline, bpm0I01yp + VQWK, 1, 7, bpmstripline, bpm0I01ym + + +!ADC2 + VQWK, 2, 0, bpmstripline, bpm1I06xp + VQWK, 2, 1, bpmstripline, bpm1I06xm + VQWK, 2, 2, bpmstripline, bpm1I06yp + VQWK, 2, 3, bpmstripline, bpm1I06ym + VQWK, 2, 4, bpmstripline, bpm0I02xp + VQWK, 2, 5, bpmstripline, bpm0I02xm + VQWK, 2, 6, bpmstripline, bpm0I02yp + VQWK, 2, 7, bpmstripline, bpm0I02ym + +!ADC3 + VQWK, 3, 0, bpmstripline, bpm0I02Axp + VQWK, 3, 1, bpmstripline, bpm0I02Axm + VQWK, 3, 2, bpmstripline, bpm0I02Ayp + VQWK, 3, 3, bpmstripline, bpm0I02Aym + VQWK, 3, 4, bpmstripline, bpm0I05xp + VQWK, 3, 5, bpmstripline, bpm0I05xm + VQWK, 3, 6, bpmstripline, bpm0I05yp + VQWK, 3, 7, bpmstripline, bpm0I05ym + +!ADC4 + VQWK, 4, 0, bpmstripline, bpm0I07xp + VQWK, 4, 1, bpmstripline, bpm0I07xm + VQWK, 4, 2, bpmstripline, bpm0I07yp + VQWK, 4, 3, bpmstripline, bpm0I07ym + VQWK, 4, 4, bpmstripline, bpm0L01xp + VQWK, 4, 5, bpmstripline, bpm0L01xm + VQWK, 4, 6, bpmstripline, bpm0L01yp + VQWK, 4, 7, bpmstripline, bpm0L01ym + + +!ADC5 + VQWK, 5, 0, bpmstripline, bpm0L02xp + VQWK, 5, 1, bpmstripline, bpm0L02xm + VQWK, 5, 2, bpmstripline, bpm0L02yp + VQWK, 5, 3, bpmstripline, bpm0L02ym + VQWK, 5, 4, bpmstripline, bpm0L03xp + VQWK, 5, 5, bpmstripline, bpm0L03xm + VQWK, 5, 6, bpmstripline, bpm0L03yp + VQWK, 5, 7, bpmstripline, bpm0L03ym + +!ADC6 + VQWK, 6, 0, bpmstripline, bpm0L04xp + VQWK, 6, 1, bpmstripline, bpm0L04xm + VQWK, 6, 2, bpmstripline, bpm0L04yp + VQWK, 6, 3, bpmstripline, bpm0L04ym + VQWK, 6, 4, bpmstripline, bpm0L05xp + VQWK, 6, 5, bpmstripline, bpm0L05xm + VQWK, 6, 6, bpmstripline, bpm0L05yp + VQWK, 6, 7, bpmstripline, bpm0L05ym + +!ADC7 + VQWK, 7, 0, bpmstripline, bpm0L06xp + VQWK, 7, 1, bpmstripline, bpm0L06xm + VQWK, 7, 2, bpmstripline, bpm0L06yp + VQWK, 7, 3, bpmstripline, bpm0L06ym + VQWK, 7, 4, bpmstripline, bpm0L07xp + VQWK, 7, 5, bpmstripline, bpm0L07xm + VQWK, 7, 6, bpmstripline, bpm0L07yp + VQWK, 7, 7, bpmstripline, bpm0L07ym + +!ADC8 + VQWK, 8, 0, bpmstripline, bpm0R02xp + VQWK, 8, 1, bpmstripline, bpm0R02xm + VQWK, 8, 2, bpmstripline, bpm0R02yp + VQWK, 8, 3, bpmstripline, bpm0R02ym + VQWK, 8, 4, bpmstripline, bpm0R05xp + VQWK, 8, 5, bpmstripline, bpm0R05xm + VQWK, 8, 6, bpmstripline, bpm0R05yp + VQWK, 8, 7, bpmstripline, bpm0R05ym + +!ADC9 + VQWK, 9, 0, bpmstripline, bpm0L10xp + VQWK, 9, 1, bpmstripline, bpm0L10xm + VQWK, 9, 2, bpmstripline, bpm0L10yp + VQWK, 9, 3, bpmstripline, bpm0L10ym + VQWK, 9, 4, bpmstripline, bpm2I02xp + VQWK, 9, 5, bpmstripline, bpm2I02xm + VQWK, 9, 6, bpmstripline, bpm2I02yp + VQWK, 9, 7, bpmstripline, bpm2I02ym + +!ADC10 + VQWK, 10, 0, bpmstripline, bpm2I01xp + VQWK, 10, 1, bpmstripline, bpm2I01xm + VQWK, 10, 2, bpmstripline, bpm2I01yp + VQWK, 10, 3, bpmstripline, bpm2I01ym + VQWK, 10, 4, bcm, BCM0L02 + VQWK, 10, 5, bcm, Batery6 + VQWK, 10, 6, bcm, Batery7 + VQWK, 10, 7, bcm, PhaseMonitor + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Bank=0x01 +scaler_buffer_offset=6 +normclock=clk4MHz_1 + + SCALER, 0, 0, clock, sca0_0 + SCALER, 0, 1, clock, sca0_1 + SCALER, 0, 2, clock, sca0_2 + SCALER, 0, 3, clock, sca0_3 + SCALER, 0, 4, clock, sca0_4 + SCALER, 0, 5, clock, sca0_5 + SCALER, 0, 6, clock, sca0_6 + SCALER, 0, 7, clock, sca0_7 + SCALER, 0, 8, clock, sca0_8 + SCALER, 0, 9, clock, sca0_9 + SCALER, 0, 10, clock, sca0_10 + SCALER, 0, 11, clock, sca0_11 + SCALER, 0, 12, clock, sca0_12 + SCALER, 0, 13, clock, sca0_13 + SCALER, 0, 14, clock, sca0_14 + SCALER, 0, 15, clock, sca0_15 + + SCALER, 0, 16, halomonitor, sca0_16 + SCALER, 0, 17, clock, clk4MHz_1 + SCALER, 0, 18, clock, clk4MHz_2 + SCALER, 0, 19, clock, clk4MHz_3 + SCALER, 0, 20, halomonitor, sca0_20 + SCALER, 0, 21, halomonitor, sca0_21 + SCALER, 0, 22, halomonitor, sca0_22 + SCALER, 0, 23, halomonitor, sca0_23 + SCALER, 0, 24, halomonitor, sca0_24 + SCALER, 0, 25, halomonitor, sca0_25 + SCALER, 0, 26, halomonitor, sca0_26 + SCALER, 0, 27, halomonitor, sca0_27 + SCALER, 0, 28, halomonitor, sca0_28 + SCALER, 0, 29, halomonitor, sca0_29 + SCALER, 0, 30, halomonitor, sca0_30 + SCALER, 0, 31, halomonitor, sca0_31 + + +[PUBLISH] +# # q_targ, bcm, bcm0l02, c +# q_targ, bpmstripline, bpm0i02, ef ### Effective charge of BPM0i02 diff --git a/Parity/prminput/prexinj_beamline.1336-1348.map b/Parity/prminput/prexinj_beamline.1336-1348.map new file mode 100644 index 000000000..8a7604d3c --- /dev/null +++ b/Parity/prminput/prexinj_beamline.1336-1348.map @@ -0,0 +1,167 @@ + +ROC=24 +Bank=0x02 +vqwk_buffer_offset=1 + +!same sample size for ADCs in a given bank +sample_size=1984 +! +! +! module.type, module.num chan.num, det.type, det.name + + +!ADC0 + VQWK, 0, 0, bpmstripline, bpm0I01Axp + VQWK, 0, 1, bpmstripline, bpm0I01Axm + VQWK, 0, 2, bpmstripline, bpm0I01Ayp + VQWK, 0, 3, bpmstripline, bpm0I01Aym + VQWK, 0, 4, bpmstripline, bpm1I04xp + VQWK, 0, 5, bpmstripline, bpm1I04xm + VQWK, 0, 6, bpmstripline, bpm1I04yp + VQWK, 0, 7, bpmstripline, bpm1I04ym + +!ADC1 + VQWK, 1, 0, bpmstripline, bpm1I02xp + VQWK, 1, 1, bpmstripline, bpm1I02xm + VQWK, 1, 2, bpmstripline, bpm1I02yp + VQWK, 1, 3, bpmstripline, bpm1I02ym + VQWK, 1, 4, bpmstripline, bpm0I01xp + VQWK, 1, 5, bpmstripline, bpm0I01xm + VQWK, 1, 6, bpmstripline, bpm0I01yp + VQWK, 1, 7, bpmstripline, bpm0I01ym + + +!ADC2 + VQWK, 2, 0, bpmstripline, bpm1I06xp + VQWK, 2, 1, bpmstripline, bpm1I06xm + VQWK, 2, 2, bpmstripline, bpm1I06yp + VQWK, 2, 3, bpmstripline, bpm1I06ym + VQWK, 2, 4, bpmstripline, bpm0I02xp + VQWK, 2, 5, bpmstripline, bpm0I02xm + VQWK, 2, 6, bpmstripline, bpm0I02yp + VQWK, 2, 7, bpmstripline, bpm0I02ym + +!ADC3 + VQWK, 3, 0, bpmstripline, bpm0I02Axp + VQWK, 3, 1, bpmstripline, bpm0I02Axm + VQWK, 3, 2, bpmstripline, bpm0I02Ayp + VQWK, 3, 3, bpmstripline, bpm0I02Aym + VQWK, 3, 4, bpmstripline, bpm0I05xp + VQWK, 3, 5, bpmstripline, bpm0I05xm + VQWK, 3, 6, bpmstripline, bpm0I05yp + VQWK, 3, 7, bpmstripline, bpm0I05ym + +!ADC4 + VQWK, 4, 0, bpmstripline, bpm0I07xp + VQWK, 4, 1, bpmstripline, bpm0I07xm + VQWK, 4, 2, bpmstripline, bpm0I07yp + VQWK, 4, 3, bpmstripline, bpm0I07ym + VQWK, 4, 4, bpmstripline, bpm0L01xp + VQWK, 4, 5, bpmstripline, bpm0L01xm + VQWK, 4, 6, bpmstripline, bpm0L01yp + VQWK, 4, 7, bpmstripline, bpm0L01ym + + +!ADC5 + VQWK, 5, 0, bpmstripline, bpm0L02xp + VQWK, 5, 1, bpmstripline, bpm0L02xm + VQWK, 5, 2, bpmstripline, bpm0L02yp + VQWK, 5, 3, bpmstripline, bpm0L02ym + VQWK, 5, 4, bpmstripline, bpm0L03xp + VQWK, 5, 5, bpmstripline, bpm0L03xm + VQWK, 5, 6, bpmstripline, bpm0L03yp + VQWK, 5, 7, bpmstripline, bpm0L03ym + +!ADC6 + VQWK, 6, 0, bpmstripline, bpm0L04xp + VQWK, 6, 1, bpmstripline, bpm0L04xm + VQWK, 6, 2, bpmstripline, bpm0L04yp + VQWK, 6, 3, bpmstripline, bpm0L04ym + VQWK, 6, 4, bpmstripline, bpm0L05xp + VQWK, 6, 5, bpmstripline, bpm0L05xm + VQWK, 6, 6, bpmstripline, bpm0L05yp + VQWK, 6, 7, bpmstripline, bpm0L05ym + +!ADC7 + VQWK, 7, 0, bpmstripline, bpm0L06xp + VQWK, 7, 1, bpmstripline, bpm0L06xm + VQWK, 7, 2, bpmstripline, bpm0L06yp + VQWK, 7, 3, bpmstripline, bpm0L06ym + VQWK, 7, 4, bpmstripline, bpm0L07xp + VQWK, 7, 5, bpmstripline, bpm0L07xm + VQWK, 7, 6, bpmstripline, bpm0L07yp + VQWK, 7, 7, bpmstripline, bpm0L07ym + +!ADC8 + VQWK, 8, 0, bpmstripline, bpm0R02xp + VQWK, 8, 1, bpmstripline, bpm0R02xm + VQWK, 8, 2, bpmstripline, bpm0R02yp + VQWK, 8, 3, bpmstripline, bpm0R02ym + VQWK, 8, 4, bpmstripline, bpm0R05xp + VQWK, 8, 5, bpmstripline, bpm0R05xm + VQWK, 8, 6, bpmstripline, bpm0R05yp + VQWK, 8, 7, bpmstripline, bpm0R05ym + +!ADC9 + VQWK, 9, 0, bpmstripline, bpm0L10xp + VQWK, 9, 1, bpmstripline, bpm0L10xm + VQWK, 9, 2, bpmstripline, bpm0L10yp + VQWK, 9, 3, bpmstripline, bpm0L10ym + VQWK, 9, 4, bpmstripline, bpm2I02xp + VQWK, 9, 5, bpmstripline, bpm2I02xm + VQWK, 9, 6, bpmstripline, bpm2I02yp + VQWK, 9, 7, bpmstripline, bpm2I02ym + +!ADC10 + VQWK, 10, 0, bpmstripline, bpm2I01xp + VQWK, 10, 1, bpmstripline, bpm2I01xm + VQWK, 10, 2, bpmstripline, bpm2I01yp + VQWK, 10, 3, bpmstripline, bpm2I01ym + VQWK, 10, 4, bcm, BCM0L02 + VQWK, 10, 5, bcm, Batery6 + VQWK, 10, 6, bcm, Batery7 + VQWK, 10, 7, bcm, PhaseMonitor + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Bank=0x01 +scaler_buffer_offset=6 +normclock=clk4MHz_1 + + SCALER, 0, 0, clock, sca0_0 + SCALER, 0, 1, clock, sca0_1 + SCALER, 0, 2, clock, sca0_2 + SCALER, 0, 3, clock, sca0_3 + SCALER, 0, 4, clock, sca0_4 + SCALER, 0, 5, clock, sca0_5 + SCALER, 0, 6, clock, sca0_6 + SCALER, 0, 7, clock, sca0_7 + SCALER, 0, 8, clock, sca0_8 + SCALER, 0, 9, clock, sca0_9 + SCALER, 0, 10, clock, sca0_10 + SCALER, 0, 11, clock, sca0_11 + SCALER, 0, 12, clock, sca0_12 + SCALER, 0, 13, clock, sca0_13 + SCALER, 0, 14, clock, sca0_14 + SCALER, 0, 15, clock, sca0_15 + + SCALER, 0, 16, halomonitor, sca0_16 + SCALER, 0, 17, clock, clk4MHz_1 + SCALER, 0, 18, clock, clk4MHz_2 + SCALER, 0, 19, clock, clk4MHz_3 + SCALER, 0, 20, halomonitor, sca0_20 + SCALER, 0, 21, halomonitor, sca0_21 + SCALER, 0, 22, halomonitor, sca0_22 + SCALER, 0, 23, halomonitor, sca0_23 + SCALER, 0, 24, halomonitor, sca0_24 + SCALER, 0, 25, halomonitor, sca0_25 + SCALER, 0, 26, halomonitor, sca0_26 + SCALER, 0, 27, halomonitor, sca0_27 + SCALER, 0, 28, halomonitor, sca0_28 + SCALER, 0, 29, halomonitor, sca0_29 + SCALER, 0, 30, halomonitor, sca0_30 + SCALER, 0, 31, halomonitor, sca0_31 + + +[PUBLISH] +# # q_targ, bcm, bcm0l02, c +# q_targ, bpmstripline, bpm0i02, ef ### Effective charge of BPM0i02 diff --git a/Parity/prminput/prexinj_beamline.1397-1420.map b/Parity/prminput/prexinj_beamline.1397-1420.map new file mode 100644 index 000000000..8a7604d3c --- /dev/null +++ b/Parity/prminput/prexinj_beamline.1397-1420.map @@ -0,0 +1,167 @@ + +ROC=24 +Bank=0x02 +vqwk_buffer_offset=1 + +!same sample size for ADCs in a given bank +sample_size=1984 +! +! +! module.type, module.num chan.num, det.type, det.name + + +!ADC0 + VQWK, 0, 0, bpmstripline, bpm0I01Axp + VQWK, 0, 1, bpmstripline, bpm0I01Axm + VQWK, 0, 2, bpmstripline, bpm0I01Ayp + VQWK, 0, 3, bpmstripline, bpm0I01Aym + VQWK, 0, 4, bpmstripline, bpm1I04xp + VQWK, 0, 5, bpmstripline, bpm1I04xm + VQWK, 0, 6, bpmstripline, bpm1I04yp + VQWK, 0, 7, bpmstripline, bpm1I04ym + +!ADC1 + VQWK, 1, 0, bpmstripline, bpm1I02xp + VQWK, 1, 1, bpmstripline, bpm1I02xm + VQWK, 1, 2, bpmstripline, bpm1I02yp + VQWK, 1, 3, bpmstripline, bpm1I02ym + VQWK, 1, 4, bpmstripline, bpm0I01xp + VQWK, 1, 5, bpmstripline, bpm0I01xm + VQWK, 1, 6, bpmstripline, bpm0I01yp + VQWK, 1, 7, bpmstripline, bpm0I01ym + + +!ADC2 + VQWK, 2, 0, bpmstripline, bpm1I06xp + VQWK, 2, 1, bpmstripline, bpm1I06xm + VQWK, 2, 2, bpmstripline, bpm1I06yp + VQWK, 2, 3, bpmstripline, bpm1I06ym + VQWK, 2, 4, bpmstripline, bpm0I02xp + VQWK, 2, 5, bpmstripline, bpm0I02xm + VQWK, 2, 6, bpmstripline, bpm0I02yp + VQWK, 2, 7, bpmstripline, bpm0I02ym + +!ADC3 + VQWK, 3, 0, bpmstripline, bpm0I02Axp + VQWK, 3, 1, bpmstripline, bpm0I02Axm + VQWK, 3, 2, bpmstripline, bpm0I02Ayp + VQWK, 3, 3, bpmstripline, bpm0I02Aym + VQWK, 3, 4, bpmstripline, bpm0I05xp + VQWK, 3, 5, bpmstripline, bpm0I05xm + VQWK, 3, 6, bpmstripline, bpm0I05yp + VQWK, 3, 7, bpmstripline, bpm0I05ym + +!ADC4 + VQWK, 4, 0, bpmstripline, bpm0I07xp + VQWK, 4, 1, bpmstripline, bpm0I07xm + VQWK, 4, 2, bpmstripline, bpm0I07yp + VQWK, 4, 3, bpmstripline, bpm0I07ym + VQWK, 4, 4, bpmstripline, bpm0L01xp + VQWK, 4, 5, bpmstripline, bpm0L01xm + VQWK, 4, 6, bpmstripline, bpm0L01yp + VQWK, 4, 7, bpmstripline, bpm0L01ym + + +!ADC5 + VQWK, 5, 0, bpmstripline, bpm0L02xp + VQWK, 5, 1, bpmstripline, bpm0L02xm + VQWK, 5, 2, bpmstripline, bpm0L02yp + VQWK, 5, 3, bpmstripline, bpm0L02ym + VQWK, 5, 4, bpmstripline, bpm0L03xp + VQWK, 5, 5, bpmstripline, bpm0L03xm + VQWK, 5, 6, bpmstripline, bpm0L03yp + VQWK, 5, 7, bpmstripline, bpm0L03ym + +!ADC6 + VQWK, 6, 0, bpmstripline, bpm0L04xp + VQWK, 6, 1, bpmstripline, bpm0L04xm + VQWK, 6, 2, bpmstripline, bpm0L04yp + VQWK, 6, 3, bpmstripline, bpm0L04ym + VQWK, 6, 4, bpmstripline, bpm0L05xp + VQWK, 6, 5, bpmstripline, bpm0L05xm + VQWK, 6, 6, bpmstripline, bpm0L05yp + VQWK, 6, 7, bpmstripline, bpm0L05ym + +!ADC7 + VQWK, 7, 0, bpmstripline, bpm0L06xp + VQWK, 7, 1, bpmstripline, bpm0L06xm + VQWK, 7, 2, bpmstripline, bpm0L06yp + VQWK, 7, 3, bpmstripline, bpm0L06ym + VQWK, 7, 4, bpmstripline, bpm0L07xp + VQWK, 7, 5, bpmstripline, bpm0L07xm + VQWK, 7, 6, bpmstripline, bpm0L07yp + VQWK, 7, 7, bpmstripline, bpm0L07ym + +!ADC8 + VQWK, 8, 0, bpmstripline, bpm0R02xp + VQWK, 8, 1, bpmstripline, bpm0R02xm + VQWK, 8, 2, bpmstripline, bpm0R02yp + VQWK, 8, 3, bpmstripline, bpm0R02ym + VQWK, 8, 4, bpmstripline, bpm0R05xp + VQWK, 8, 5, bpmstripline, bpm0R05xm + VQWK, 8, 6, bpmstripline, bpm0R05yp + VQWK, 8, 7, bpmstripline, bpm0R05ym + +!ADC9 + VQWK, 9, 0, bpmstripline, bpm0L10xp + VQWK, 9, 1, bpmstripline, bpm0L10xm + VQWK, 9, 2, bpmstripline, bpm0L10yp + VQWK, 9, 3, bpmstripline, bpm0L10ym + VQWK, 9, 4, bpmstripline, bpm2I02xp + VQWK, 9, 5, bpmstripline, bpm2I02xm + VQWK, 9, 6, bpmstripline, bpm2I02yp + VQWK, 9, 7, bpmstripline, bpm2I02ym + +!ADC10 + VQWK, 10, 0, bpmstripline, bpm2I01xp + VQWK, 10, 1, bpmstripline, bpm2I01xm + VQWK, 10, 2, bpmstripline, bpm2I01yp + VQWK, 10, 3, bpmstripline, bpm2I01ym + VQWK, 10, 4, bcm, BCM0L02 + VQWK, 10, 5, bcm, Batery6 + VQWK, 10, 6, bcm, Batery7 + VQWK, 10, 7, bcm, PhaseMonitor + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Bank=0x01 +scaler_buffer_offset=6 +normclock=clk4MHz_1 + + SCALER, 0, 0, clock, sca0_0 + SCALER, 0, 1, clock, sca0_1 + SCALER, 0, 2, clock, sca0_2 + SCALER, 0, 3, clock, sca0_3 + SCALER, 0, 4, clock, sca0_4 + SCALER, 0, 5, clock, sca0_5 + SCALER, 0, 6, clock, sca0_6 + SCALER, 0, 7, clock, sca0_7 + SCALER, 0, 8, clock, sca0_8 + SCALER, 0, 9, clock, sca0_9 + SCALER, 0, 10, clock, sca0_10 + SCALER, 0, 11, clock, sca0_11 + SCALER, 0, 12, clock, sca0_12 + SCALER, 0, 13, clock, sca0_13 + SCALER, 0, 14, clock, sca0_14 + SCALER, 0, 15, clock, sca0_15 + + SCALER, 0, 16, halomonitor, sca0_16 + SCALER, 0, 17, clock, clk4MHz_1 + SCALER, 0, 18, clock, clk4MHz_2 + SCALER, 0, 19, clock, clk4MHz_3 + SCALER, 0, 20, halomonitor, sca0_20 + SCALER, 0, 21, halomonitor, sca0_21 + SCALER, 0, 22, halomonitor, sca0_22 + SCALER, 0, 23, halomonitor, sca0_23 + SCALER, 0, 24, halomonitor, sca0_24 + SCALER, 0, 25, halomonitor, sca0_25 + SCALER, 0, 26, halomonitor, sca0_26 + SCALER, 0, 27, halomonitor, sca0_27 + SCALER, 0, 28, halomonitor, sca0_28 + SCALER, 0, 29, halomonitor, sca0_29 + SCALER, 0, 30, halomonitor, sca0_30 + SCALER, 0, 31, halomonitor, sca0_31 + + +[PUBLISH] +# # q_targ, bcm, bcm0l02, c +# q_targ, bpmstripline, bpm0i02, ef ### Effective charge of BPM0i02 diff --git a/Parity/prminput/prexinj_beamline.1449-1450.map b/Parity/prminput/prexinj_beamline.1449-1450.map new file mode 100644 index 000000000..3a48c9008 --- /dev/null +++ b/Parity/prminput/prexinj_beamline.1449-1450.map @@ -0,0 +1,167 @@ + +ROC=24 +Bank=0x02 +vqwk_buffer_offset=1 + +!same sample size for ADCs in a given bank +sample_size=8064 +! +! +! module.type, module.num chan.num, det.type, det.name + + +!ADC0 + VQWK, 0, 0, bpmstripline, bpm0I01Axp + VQWK, 0, 1, bpmstripline, bpm0I01Axm + VQWK, 0, 2, bpmstripline, bpm0I01Ayp + VQWK, 0, 3, bpmstripline, bpm0I01Aym + VQWK, 0, 4, bpmstripline, bpm1I04xp + VQWK, 0, 5, bpmstripline, bpm1I04xm + VQWK, 0, 6, bpmstripline, bpm1I04yp + VQWK, 0, 7, bpmstripline, bpm1I04ym + +!ADC1 + VQWK, 1, 0, bpmstripline, bpm1I02xp + VQWK, 1, 1, bpmstripline, bpm1I02xm + VQWK, 1, 2, bpmstripline, bpm1I02yp + VQWK, 1, 3, bpmstripline, bpm1I02ym + VQWK, 1, 4, bpmstripline, bpm0I01xp + VQWK, 1, 5, bpmstripline, bpm0I01xm + VQWK, 1, 6, bpmstripline, bpm0I01yp + VQWK, 1, 7, bpmstripline, bpm0I01ym + + +!ADC2 + VQWK, 2, 0, bpmstripline, bpm1I06xp + VQWK, 2, 1, bpmstripline, bpm1I06xm + VQWK, 2, 2, bpmstripline, bpm1I06yp + VQWK, 2, 3, bpmstripline, bpm1I06ym + VQWK, 2, 4, bpmstripline, bpm0I02xp + VQWK, 2, 5, bpmstripline, bpm0I02xm + VQWK, 2, 6, bpmstripline, bpm0I02yp + VQWK, 2, 7, bpmstripline, bpm0I02ym + +!ADC3 + VQWK, 3, 0, bpmstripline, bpm0I02Axp + VQWK, 3, 1, bpmstripline, bpm0I02Axm + VQWK, 3, 2, bpmstripline, bpm0I02Ayp + VQWK, 3, 3, bpmstripline, bpm0I02Aym + VQWK, 3, 4, bpmstripline, bpm0I05xp + VQWK, 3, 5, bpmstripline, bpm0I05xm + VQWK, 3, 6, bpmstripline, bpm0I05yp + VQWK, 3, 7, bpmstripline, bpm0I05ym + +!ADC4 + VQWK, 4, 0, bpmstripline, bpm0I07xp + VQWK, 4, 1, bpmstripline, bpm0I07xm + VQWK, 4, 2, bpmstripline, bpm0I07yp + VQWK, 4, 3, bpmstripline, bpm0I07ym + VQWK, 4, 4, bpmstripline, bpm0L01xp + VQWK, 4, 5, bpmstripline, bpm0L01xm + VQWK, 4, 6, bpmstripline, bpm0L01yp + VQWK, 4, 7, bpmstripline, bpm0L01ym + + +!ADC5 + VQWK, 5, 0, bpmstripline, bpm0L02xp + VQWK, 5, 1, bpmstripline, bpm0L02xm + VQWK, 5, 2, bpmstripline, bpm0L02yp + VQWK, 5, 3, bpmstripline, bpm0L02ym + VQWK, 5, 4, bpmstripline, bpm0L03xp + VQWK, 5, 5, bpmstripline, bpm0L03xm + VQWK, 5, 6, bpmstripline, bpm0L03yp + VQWK, 5, 7, bpmstripline, bpm0L03ym + +!ADC6 + VQWK, 6, 0, bpmstripline, bpm0L04xp + VQWK, 6, 1, bpmstripline, bpm0L04xm + VQWK, 6, 2, bpmstripline, bpm0L04yp + VQWK, 6, 3, bpmstripline, bpm0L04ym + VQWK, 6, 4, bpmstripline, bpm0L05xp + VQWK, 6, 5, bpmstripline, bpm0L05xm + VQWK, 6, 6, bpmstripline, bpm0L05yp + VQWK, 6, 7, bpmstripline, bpm0L05ym + +!ADC7 + VQWK, 7, 0, bpmstripline, bpm0L06xp + VQWK, 7, 1, bpmstripline, bpm0L06xm + VQWK, 7, 2, bpmstripline, bpm0L06yp + VQWK, 7, 3, bpmstripline, bpm0L06ym + VQWK, 7, 4, bpmstripline, bpm0L07xp + VQWK, 7, 5, bpmstripline, bpm0L07xm + VQWK, 7, 6, bpmstripline, bpm0L07yp + VQWK, 7, 7, bpmstripline, bpm0L07ym + +!ADC8 + VQWK, 8, 0, bpmstripline, bpm0R02xp + VQWK, 8, 1, bpmstripline, bpm0R02xm + VQWK, 8, 2, bpmstripline, bpm0R02yp + VQWK, 8, 3, bpmstripline, bpm0R02ym + VQWK, 8, 4, bpmstripline, bpm0R05xp + VQWK, 8, 5, bpmstripline, bpm0R05xm + VQWK, 8, 6, bpmstripline, bpm0R05yp + VQWK, 8, 7, bpmstripline, bpm0R05ym + +!ADC9 + VQWK, 9, 0, bpmstripline, bpm0L10xp + VQWK, 9, 1, bpmstripline, bpm0L10xm + VQWK, 9, 2, bpmstripline, bpm0L10yp + VQWK, 9, 3, bpmstripline, bpm0L10ym + VQWK, 9, 4, bpmstripline, bpm2I02xp + VQWK, 9, 5, bpmstripline, bpm2I02xm + VQWK, 9, 6, bpmstripline, bpm2I02yp + VQWK, 9, 7, bpmstripline, bpm2I02ym + +!ADC10 + VQWK, 10, 0, bpmstripline, bpm2I01xp + VQWK, 10, 1, bpmstripline, bpm2I01xm + VQWK, 10, 2, bpmstripline, bpm2I01yp + VQWK, 10, 3, bpmstripline, bpm2I01ym + VQWK, 10, 4, bcm, BCM0L02 + VQWK, 10, 5, bcm, Batery6 + VQWK, 10, 6, bcm, Batery7 + VQWK, 10, 7, bcm, PhaseMonitor + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Bank=0x01 +scaler_buffer_offset=6 +normclock=clk4MHz_1 + + SCALER, 0, 0, clock, sca0_0 + SCALER, 0, 1, clock, sca0_1 + SCALER, 0, 2, clock, sca0_2 + SCALER, 0, 3, clock, sca0_3 + SCALER, 0, 4, clock, sca0_4 + SCALER, 0, 5, clock, sca0_5 + SCALER, 0, 6, clock, sca0_6 + SCALER, 0, 7, clock, sca0_7 + SCALER, 0, 8, clock, sca0_8 + SCALER, 0, 9, clock, sca0_9 + SCALER, 0, 10, clock, sca0_10 + SCALER, 0, 11, clock, sca0_11 + SCALER, 0, 12, clock, sca0_12 + SCALER, 0, 13, clock, sca0_13 + SCALER, 0, 14, clock, sca0_14 + SCALER, 0, 15, clock, sca0_15 + + SCALER, 0, 16, halomonitor, sca0_16 + SCALER, 0, 17, clock, clk4MHz_1 + SCALER, 0, 18, clock, clk4MHz_2 + SCALER, 0, 19, clock, clk4MHz_3 + SCALER, 0, 20, halomonitor, sca0_20 + SCALER, 0, 21, halomonitor, sca0_21 + SCALER, 0, 22, halomonitor, sca0_22 + SCALER, 0, 23, halomonitor, sca0_23 + SCALER, 0, 24, halomonitor, sca0_24 + SCALER, 0, 25, halomonitor, sca0_25 + SCALER, 0, 26, halomonitor, sca0_26 + SCALER, 0, 27, halomonitor, sca0_27 + SCALER, 0, 28, halomonitor, sca0_28 + SCALER, 0, 29, halomonitor, sca0_29 + SCALER, 0, 30, halomonitor, sca0_30 + SCALER, 0, 31, halomonitor, sca0_31 + + +[PUBLISH] +# # q_targ, bcm, bcm0l02, c +# q_targ, bpmstripline, bpm0i02, ef ### Effective charge of BPM0i02 diff --git a/Parity/prminput/prexinj_beamline_pedestal.1047-.map b/Parity/prminput/prexinj_beamline_pedestal.1047-.map new file mode 100644 index 000000000..472c43597 --- /dev/null +++ b/Parity/prminput/prexinj_beamline_pedestal.1047-.map @@ -0,0 +1,94 @@ +! Pedestals are taken from Caryn's analysis from 22 JAN 2019 +! /adaqfs/home/apar/caryn/paninj2018/pan/controldb/control.db_inj_20190122_20uAHallB +! These are expected to be reasonable for the running through APEX. +! +bpm0i01aXP -2604.930 1.0 +bpm0i01aXM -2601.160 1.0 +bpm0i01aYP -1654.810 1.0 +bpm0i01aYM -1605.750 1.0 +bpm1i04XP -2405.910 1.0 +bpm1i04XM -2585.200 1.0 +bpm1i04YP -976.762 1.0 +bpm1i04YM -713.547 1.0 +bpm1i02XP -2623.490 1.0 +bpm1i02XM -2811.160 1.0 +bpm1i02YP -2892.070 1.0 +bpm1i02YM -2897.230 1.0 +bpm0i01XP -1964.850 1.0 +bpm0i01XM -1426.040 1.0 +bpm0i01YP -1914.250 1.0 +bpm0i01YM -2197.040 1.0 +bpm1i06XP -1469.110 1.0 +bpm1i06XM -1730.260 1.0 +bpm1i06YP -2418.180 1.0 +bpm1i06YM -2378.630 1.0 +bpm0i02XP -1768.670 1.0 +bpm0i02XM -1639.520 1.0 +bpm0i02YP -1625.830 1.0 +bpm0i02YM -1834.070 1.0 +bpm0i02aXP 1478.670 1.0 +bpm0i02aXM -541.400 1.0 +bpm0i02aYP 378.088 1.0 +bpm0i02aYM 790.322 1.0 +bpm0i05XP 661.991 1.0 +bpm0i05XM 585.144 1.0 +bpm0i05YP 411.779 1.0 +bpm0i05YM 895.267 1.0 +bpm0i07XP -964.191 1.0 +bpm0i07XM -157.813 1.0 +bpm0i07YP -135.109 1.0 +bpm0i07YM 299.847 1.0 +bpm0l01XP -627.405 1.0 +bpm0l01XM -493.821 1.0 +bpm0l01YP -1277.160 1.0 +bpm0l01YM -679.362 1.0 +bpm0l02XP 446.173 1.0 +bpm0l02XM -310.379 1.0 +bpm0l02YP -897.325 1.0 +bpm0l02YM -80.647 1.0 +bpm0l03XP -24.343 1.0 +bpm0l03XM 545.542 1.0 +bpm0l03YP 72.308 1.0 +bpm0l03YM -559.071 1.0 +bpm0l04XP -667.464 1.0 +bpm0l04XM -56.794 1.0 +bpm0l04YP 48.150 1.0 +bpm0l04YM -513.805 1.0 +bpm0l05XP -163.069 1.0 +bpm0l05XM -497.898 1.0 +bpm0l05YP 115.034 1.0 +bpm0l05YM -63.297 1.0 +bpm0l06XP -675.142 1.0 +bpm0l06XM -662.160 1.0 +bpm0l06YP -591.049 1.0 +bpm0l06YM 305.864 1.0 +bpm0l07XP 512.767 1.0 +bpm0l07XM 512.755 1.0 +bpm0l07YP 946.555 1.0 +bpm0l07YM 734.040 1.0 +bpm0r02XP 265.510 1.0 +bpm0r02XM 424.975 1.0 +bpm0r02YP 268.745 1.0 +bpm0r02YM 269.683 1.0 +bpm0r05XP -1014.460 1.0 +bpm0r05XM 100.906 1.0 +bpm0r05YP -115.385 1.0 +bpm0r05YM -918.480 1.0 +bpm0l10XP -342.079 1.0 +bpm0l10XM -24.541 1.0 +bpm0l10YP 31.786 1.0 +bpm0l10YM -133.045 1.0 +bpm2i02XP -2865.740 1.0 +bpm2i02XM -3085.900 1.0 +bpm2i02YP -2488.110 1.0 +bpm2i02YM -2293.440 1.0 +bpm2i01XP -2296.850 1.0 +bpm2i01XM -1924.620 1.0 +bpm2i01YP -488.405 1.0 +bpm2i01YM -1005.620 1.0 +! BCM gain for 0L02 is from Qweak parameter files +bcm0l02 -327.751 0.00150841 +! Use calibration into volts for batteries and phase monitor. +batery6 -295.052 76.2939e-6 +batery7 -445.764 76.2939e-6 +phasemonitor -162.172 76.2939e-6 diff --git a/Parity/prminput/prexinj_helicity.1062-1076.map b/Parity/prminput/prexinj_helicity.1062-1076.map new file mode 100644 index 000000000..19335eb6d --- /dev/null +++ b/Parity/prminput/prexinj_helicity.1062-1076.map @@ -0,0 +1,86 @@ +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!! input file for decoding the helicity subsystem +!! Of note in this file: +!! HelicityDecodingMode : will tell which mode of decoding is in use +!! : for now it can be InputRegisterMode, UserbitMode +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!Injector data during happex data taking: run 12331, 12354, 12356 +!HelicityDecodingMode=InputRegisterMode +!PatternPhase=4 +!ROC=23 +! +! Header=0xfdacf000 +! HAPPEX BMW words +!SKIP 148 +!WORD, 0, 0, helicitydata, ha_cleandata +!WORD, 0, 0, helicitydata, ha_scandata1 +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!INPUT REGISTER MODE +HelicityDecodingMode=InputRegisterMode + +InputRegMask_FakeMPS=0 !!! Do not use a input register bit to indicate a "fake" set of helicity bits + +! Set the patternPhase (number of windows in a pattern) for each run range. +! If patternPhase!=4, then also set the NumberPatternsDelayed +! so the reported helicity is delayed by 8 windows (default 2). +!NumberPatternsDelayed=4 +PatternPhase=8 + + + +!Need to set PATTERNPHASEOFFSET = 1 (when pattern phase starts with 1) or 0 (when pattern phase starts with 0) +!default value for PATTERNPHASEOFFSET = 1 is set within the code itself which works fine with regular injector/beamline/parity mock data +!uncomment below line only if phase number start from 0 +PATTERNPHASEOFFSET=0 + + +!seed size is either 24 bit or 30 bit. default is 30 bit +!RandSeedBits=24 + +ROC=24 +Bank=0x3 + +! +! module.type, module.num chan.num, det.type, det.name +! +SKIP 1 ! This is the marker word for PAN +WORD, 0, 0, helicitydata, input_register +WORD, 0, 0, helicitydata, output_register +SKIP 1 ! WORD, 0, 0, helicitydata, sca_MPS_num +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_counter +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_phase +SKIP 3 +WORD, 0, 0, helicitydata, cleandata +WORD, 0, 0, helicitydata, scandata1 +WORD, 0, 0, helicitydata, scandata2 +SKIP 1 +!END +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!USER BIT MODE + +!HelicityDecodingMode= UserbitMode +!PatternPhase=4 +!seed size is either 24 bit or 30 bit. default is 24 bit +!RandSeedBits=24 +!RandSeedBits=30 +!ROC=31 +!Bank=0x3101 +! +! module.type, module.num chan.num, det.type, det.name +! +!WORD, 0, 0, helicitydata, cleandata +!WORD, 0, 0, helicitydata, scandata1 +!WORD, 0, 0, helicitydata, scandata2 +!WORD, 0, 0, helicitydata, scalerheader +!WORD, 0, 0, helicitydata, scalercounter +!WORD, 0, 0, helicitydata, userbit +!END diff --git a/Parity/prminput/prexinj_helicity.1129-1192.map b/Parity/prminput/prexinj_helicity.1129-1192.map new file mode 100644 index 000000000..19335eb6d --- /dev/null +++ b/Parity/prminput/prexinj_helicity.1129-1192.map @@ -0,0 +1,86 @@ +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!! input file for decoding the helicity subsystem +!! Of note in this file: +!! HelicityDecodingMode : will tell which mode of decoding is in use +!! : for now it can be InputRegisterMode, UserbitMode +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!Injector data during happex data taking: run 12331, 12354, 12356 +!HelicityDecodingMode=InputRegisterMode +!PatternPhase=4 +!ROC=23 +! +! Header=0xfdacf000 +! HAPPEX BMW words +!SKIP 148 +!WORD, 0, 0, helicitydata, ha_cleandata +!WORD, 0, 0, helicitydata, ha_scandata1 +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!INPUT REGISTER MODE +HelicityDecodingMode=InputRegisterMode + +InputRegMask_FakeMPS=0 !!! Do not use a input register bit to indicate a "fake" set of helicity bits + +! Set the patternPhase (number of windows in a pattern) for each run range. +! If patternPhase!=4, then also set the NumberPatternsDelayed +! so the reported helicity is delayed by 8 windows (default 2). +!NumberPatternsDelayed=4 +PatternPhase=8 + + + +!Need to set PATTERNPHASEOFFSET = 1 (when pattern phase starts with 1) or 0 (when pattern phase starts with 0) +!default value for PATTERNPHASEOFFSET = 1 is set within the code itself which works fine with regular injector/beamline/parity mock data +!uncomment below line only if phase number start from 0 +PATTERNPHASEOFFSET=0 + + +!seed size is either 24 bit or 30 bit. default is 30 bit +!RandSeedBits=24 + +ROC=24 +Bank=0x3 + +! +! module.type, module.num chan.num, det.type, det.name +! +SKIP 1 ! This is the marker word for PAN +WORD, 0, 0, helicitydata, input_register +WORD, 0, 0, helicitydata, output_register +SKIP 1 ! WORD, 0, 0, helicitydata, sca_MPS_num +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_counter +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_phase +SKIP 3 +WORD, 0, 0, helicitydata, cleandata +WORD, 0, 0, helicitydata, scandata1 +WORD, 0, 0, helicitydata, scandata2 +SKIP 1 +!END +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!USER BIT MODE + +!HelicityDecodingMode= UserbitMode +!PatternPhase=4 +!seed size is either 24 bit or 30 bit. default is 24 bit +!RandSeedBits=24 +!RandSeedBits=30 +!ROC=31 +!Bank=0x3101 +! +! module.type, module.num chan.num, det.type, det.name +! +!WORD, 0, 0, helicitydata, cleandata +!WORD, 0, 0, helicitydata, scandata1 +!WORD, 0, 0, helicitydata, scandata2 +!WORD, 0, 0, helicitydata, scalerheader +!WORD, 0, 0, helicitydata, scalercounter +!WORD, 0, 0, helicitydata, userbit +!END diff --git a/Parity/prminput/prexinj_helicity.1347.map b/Parity/prminput/prexinj_helicity.1347.map new file mode 100644 index 000000000..43e1d0cfd --- /dev/null +++ b/Parity/prminput/prexinj_helicity.1347.map @@ -0,0 +1,86 @@ +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!! input file for decoding the helicity subsystem +!! Of note in this file: +!! HelicityDecodingMode : will tell which mode of decoding is in use +!! : for now it can be InputRegisterMode, UserbitMode +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!Injector data during happex data taking: run 12331, 12354, 12356 +!HelicityDecodingMode=InputRegisterMode +!PatternPhase=4 +!ROC=23 +! +! Header=0xfdacf000 +! HAPPEX BMW words +!SKIP 148 +!WORD, 0, 0, helicitydata, ha_cleandata +!WORD, 0, 0, helicitydata, ha_scandata1 +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!INPUT REGISTER MODE +HelicityDecodingMode=InputRegisterMode + +InputRegMask_FakeMPS=0 !!! Do not use a input register bit to indicate a "fake" set of helicity bits + +! Set the patternPhase (number of windows in a pattern) for each run range. +! If patternPhase!=4, then also set the NumberPatternsDelayed +! so the reported helicity is delayed by 8 windows (default 2). +NumberPatternsDelayed=1 +PatternPhase=8 + + + +!Need to set PATTERNPHASEOFFSET = 1 (when pattern phase starts with 1) or 0 (when pattern phase starts with 0) +!default value for PATTERNPHASEOFFSET = 1 is set within the code itself which works fine with regular injector/beamline/parity mock data +!uncomment below line only if phase number start from 0 +PATTERNPHASEOFFSET=0 + + +!seed size is either 24 bit or 30 bit. default is 30 bit +!RandSeedBits=24 + +ROC=24 +Bank=0x3 + +! +! module.type, module.num chan.num, det.type, det.name +! +SKIP 1 ! This is the marker word for PAN +WORD, 0, 0, helicitydata, input_register +WORD, 0, 0, helicitydata, output_register +SKIP 1 ! WORD, 0, 0, helicitydata, sca_MPS_num +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_counter +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_phase +SKIP 3 +WORD, 0, 0, helicitydata, cleandata +WORD, 0, 0, helicitydata, scandata1 +WORD, 0, 0, helicitydata, scandata2 +SKIP 1 +!END +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!USER BIT MODE + +!HelicityDecodingMode= UserbitMode +!PatternPhase=4 +!seed size is either 24 bit or 30 bit. default is 24 bit +!RandSeedBits=24 +!RandSeedBits=30 +!ROC=31 +!Bank=0x3101 +! +! module.type, module.num chan.num, det.type, det.name +! +!WORD, 0, 0, helicitydata, cleandata +!WORD, 0, 0, helicitydata, scandata1 +!WORD, 0, 0, helicitydata, scandata2 +!WORD, 0, 0, helicitydata, scalerheader +!WORD, 0, 0, helicitydata, scalercounter +!WORD, 0, 0, helicitydata, userbit +!END diff --git a/Parity/prminput/prexinj_helicity.1397-1420.map b/Parity/prminput/prexinj_helicity.1397-1420.map new file mode 100644 index 000000000..43e1d0cfd --- /dev/null +++ b/Parity/prminput/prexinj_helicity.1397-1420.map @@ -0,0 +1,86 @@ +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!! input file for decoding the helicity subsystem +!! Of note in this file: +!! HelicityDecodingMode : will tell which mode of decoding is in use +!! : for now it can be InputRegisterMode, UserbitMode +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!Injector data during happex data taking: run 12331, 12354, 12356 +!HelicityDecodingMode=InputRegisterMode +!PatternPhase=4 +!ROC=23 +! +! Header=0xfdacf000 +! HAPPEX BMW words +!SKIP 148 +!WORD, 0, 0, helicitydata, ha_cleandata +!WORD, 0, 0, helicitydata, ha_scandata1 +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!INPUT REGISTER MODE +HelicityDecodingMode=InputRegisterMode + +InputRegMask_FakeMPS=0 !!! Do not use a input register bit to indicate a "fake" set of helicity bits + +! Set the patternPhase (number of windows in a pattern) for each run range. +! If patternPhase!=4, then also set the NumberPatternsDelayed +! so the reported helicity is delayed by 8 windows (default 2). +NumberPatternsDelayed=1 +PatternPhase=8 + + + +!Need to set PATTERNPHASEOFFSET = 1 (when pattern phase starts with 1) or 0 (when pattern phase starts with 0) +!default value for PATTERNPHASEOFFSET = 1 is set within the code itself which works fine with regular injector/beamline/parity mock data +!uncomment below line only if phase number start from 0 +PATTERNPHASEOFFSET=0 + + +!seed size is either 24 bit or 30 bit. default is 30 bit +!RandSeedBits=24 + +ROC=24 +Bank=0x3 + +! +! module.type, module.num chan.num, det.type, det.name +! +SKIP 1 ! This is the marker word for PAN +WORD, 0, 0, helicitydata, input_register +WORD, 0, 0, helicitydata, output_register +SKIP 1 ! WORD, 0, 0, helicitydata, sca_MPS_num +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_counter +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_phase +SKIP 3 +WORD, 0, 0, helicitydata, cleandata +WORD, 0, 0, helicitydata, scandata1 +WORD, 0, 0, helicitydata, scandata2 +SKIP 1 +!END +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!USER BIT MODE + +!HelicityDecodingMode= UserbitMode +!PatternPhase=4 +!seed size is either 24 bit or 30 bit. default is 24 bit +!RandSeedBits=24 +!RandSeedBits=30 +!ROC=31 +!Bank=0x3101 +! +! module.type, module.num chan.num, det.type, det.name +! +!WORD, 0, 0, helicitydata, cleandata +!WORD, 0, 0, helicitydata, scandata1 +!WORD, 0, 0, helicitydata, scandata2 +!WORD, 0, 0, helicitydata, scalerheader +!WORD, 0, 0, helicitydata, scalercounter +!WORD, 0, 0, helicitydata, userbit +!END diff --git a/Parity/prminput/prexinj_helicity.1464-1478.map b/Parity/prminput/prexinj_helicity.1464-1478.map new file mode 100644 index 000000000..c04e13fbb --- /dev/null +++ b/Parity/prminput/prexinj_helicity.1464-1478.map @@ -0,0 +1,107 @@ +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!! input file for decoding the helicity subsystem +!! Of note in this file: +!! HelicityDecodingMode : will tell which mode of decoding is in use +!! : for now it can be InputRegisterMode, UserbitMode +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!Injector data during happex data taking: run 12331, 12354, 12356 +!HelicityDecodingMode=InputRegisterMode +!PatternPhase=4 +!ROC=23 +! +! Header=0xfdacf000 +! HAPPEX BMW words +!SKIP 148 +!WORD, 0, 0, helicitydata, ha_cleandata +!WORD, 0, 0, helicitydata, ha_scandata1 +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!INPUT REGISTER MODE +HelicityDecodingMode=InputRegisterMode + +InputRegMask_FakeMPS=0 !!! Do not use a input register bit to indicate a "fake" set of helicity bits + +! Set the patternPhase (number of windows in a pattern) for each run range. +! If patternPhase!=4, then also set the NumberPatternsDelayed +! so the reported helicity is delayed by 8 windows (default 2). +!NumberPatternsDelayed=4 +PatternPhase=4 + + + +!Need to set PATTERNPHASEOFFSET = 1 (when pattern phase starts with 1) or 0 (when pattern phase starts with 0) +!default value for PATTERNPHASEOFFSET = 1 is set within the code itself which works fine with regular injector/beamline/parity mock data +!uncomment below line only if phase number start from 0 +PATTERNPHASEOFFSET=0 + + +!seed size is either 24 bit or 30 bit. default is 30 bit +!RandSeedBits=24 + +ROC=24 +Bank=0x3 + +! +! module.type, module.num chan.num, det.type, det.name +! +SKIP 1 ! This is the marker word for PAN +WORD, 0, 0, helicitydata, input_register +WORD, 0, 0, helicitydata, output_register +SKIP 1 ! WORD, 0, 0, helicitydata, sca_MPS_num +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_counter +SKIP 1 ! WORD, 0, 0, helicitydata, sca_PAT_phase +SKIP 3 +WORD, 0, 0, helicitydata, cleandata +WORD, 0, 0, helicitydata, scandata1 +WORD, 0, 0, helicitydata, scandata2 +SKIP 1 +!END + + +!!!! HACK to decode BMW words +ROC=23 +Bank=0x4 + +SKIP 8 +WORD, 0, 0, helicitydata, bmwphase +WORD, 0, 0, helicitydata, bmwperiod +WORD, 0, 0, helicitydata, bmwobj +WORD, 0, 0, helicitydata, bmwfreq +WORD, 0, 0, helicitydata, bmwcycnum +!! +WORD, 0, 0, helicitydata, roc23_cleandata +WORD, 0, 0, helicitydata, roc23_scandata1 +WORD, 0, 0, helicitydata, roc23_scandata2 +!! +WORD, 0, 0, helicitydata, roc23_ioctime +WORD, 0, 0, helicitydata, roc23_ncnt + + +! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!USER BIT MODE + +!HelicityDecodingMode= UserbitMode +!PatternPhase=4 +!seed size is either 24 bit or 30 bit. default is 24 bit +!RandSeedBits=24 +!RandSeedBits=30 +!ROC=31 +!Bank=0x3101 +! +! module.type, module.num chan.num, det.type, det.name +! +!WORD, 0, 0, helicitydata, cleandata +!WORD, 0, 0, helicitydata, scandata1 +!WORD, 0, 0, helicitydata, scandata2 +!WORD, 0, 0, helicitydata, scalerheader +!WORD, 0, 0, helicitydata, scalercounter +!WORD, 0, 0, helicitydata, userbit +!END diff --git a/Parity/prminput/qwparity_mapfile.conf b/Parity/prminput/qwparity_mapfile.conf new file mode 100644 index 000000000..e293fde88 --- /dev/null +++ b/Parity/prminput/qwparity_mapfile.conf @@ -0,0 +1,37 @@ +# +# Configuration file for the ISU tests. +# + +detectors = mock_detectors.map + +enable-mapfile = true +mapfile-update-interval = 1000 +circular-buffer = 10000 + +rootfile-stem = QwMock_ +codafile-stem = QwMock_ +codafile-ext = log + +chainfiles = no +single-output-file = TRUE +disable-slow-tree = yes +disable-burst-tree = yes +enable-burstsum = no +enable-differences = no +enable-alternateasym = no + +ring.size = 1 +ring.stability_cut = 0 + +QwBlindDetectorArray.normalize = no +QwDetectorArray.normalize = yes + +write-promptsummary = no +blinder.force-target-out = true + +[QwLog] +color = no +loglevel-file = 0 +#loglevel-screen = 0 +print-function = no +print-signature = no diff --git a/Parity/prminput/qwparity_simple.conf b/Parity/prminput/qwparity_simple.conf old mode 100755 new mode 100644 diff --git a/Parity/prminput/simulate_online_disk_file.conf b/Parity/prminput/simulate_online_disk_file.conf new file mode 100644 index 000000000..b5dabc441 --- /dev/null +++ b/Parity/prminput/simulate_online_disk_file.conf @@ -0,0 +1,20 @@ +#online = yes +#ET.hostname = adaq3.jlab.org +#ET.session = par2 +#ET.station = realtime + +# Set the interpreted run number to a very high value so we always +# pick up the most recent paramter files. +#online.RunNumber = 999999 + +# Update every N events (for TMapFiles and TFile) +mapfile-update-interval = 500 +# circular-buffer = 864000 ## 240 Hz Mode: 864000 = 240 * 60 * 60 +# circular-buffer = 108000 ## 30 Hz Mode: 108000 = 30 *60 *60 +# circular-buffer = 0 # Default is 0, set it to 0 to save significant computation time not using the circular buffer +# compression-level arg (=1) TFile compression level +compression-level = 0 + +enable-tree-trim = yes + + diff --git a/Parity/prminput/tree_trim.in b/Parity/prminput/tree_trim.in index 6b234efa7..0c9096d2c 100644 --- a/Parity/prminput/tree_trim.in +++ b/Parity/prminput/tree_trim.in @@ -1,24 +1,43 @@ -[HallCBeamLine] +# Wildcard the susbsystem name, but the channel designators +# below are specific to QwBeamLine subsystems. They will +# be used by all QwBeamLine subsystems, irrespective of the name +# If you wanted different behavior for the hall and injector, you'd +# need a block for each of them. +[.*] hw_sum + Device_Error_Code -# -# hw_sum + + hw_sum + Device_Error_Code -# -# hw_sum + + hw_sum + Device_Error_Code + + hw_sum + Device_Error_Code -# -# hw_sum + + hw_sum + Device_Error_Code + + hw_sum + Device_Error_Code -# -# hw_sum +# Wildcard for any subsystems with QwIntegratingPMTs, such +# as the main detectors and SAMs. +[.*] + + hw_sum + Device_Error_Code - -# -# hw_sum + + hw_sum + Device_Error_Code [DEVICELIST] @@ -32,8 +51,19 @@ output_register ps_counter pat_counter pat_phase -cleandata -scandata1 -scandata2 +.*data.* CodaEventNumber CodaEventType + +# Wildcarded patterns to match the beamline element +# branch names in both the evt and mul tree +.*bpm.*X +.*bpm.*Y +.*bpm.*WS +.*bcm_.* +.*cav.*x +.*cav.*y +.*cav.*q + +# Wildcarded pattern for the SAM element branch names +.*sam.* diff --git a/Parity/src/QwBCM.cc b/Parity/src/QwBCM.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwBPMCavity.cc b/Parity/src/QwBPMCavity.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwBPMStripline.cc b/Parity/src/QwBPMStripline.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwBeamDetectorID.cc b/Parity/src/QwBeamDetectorID.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwBeamLine.cc b/Parity/src/QwBeamLine.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwBlinder.cc b/Parity/src/QwBlinder.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwClock.cc b/Parity/src/QwClock.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwCombinedBCM.cc b/Parity/src/QwCombinedBCM.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwCombinedBPM.cc b/Parity/src/QwCombinedBPM.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwCombinedPMT.cc b/Parity/src/QwCombinedPMT.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwComptonElectronDetector.cc b/Parity/src/QwComptonElectronDetector.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwDetectorArray.cc b/Parity/src/QwDetectorArray.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwEnergyCalculator.cc b/Parity/src/QwEnergyCalculator.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwEventRing.cc b/Parity/src/QwEventRing.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwFakeHelicity.cc b/Parity/src/QwFakeHelicity.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwHaloMonitor.cc b/Parity/src/QwHaloMonitor.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwHelicity.cc b/Parity/src/QwHelicity.cc index a8cb28072..c0108e740 100644 --- a/Parity/src/QwHelicity.cc +++ b/Parity/src/QwHelicity.cc @@ -914,9 +914,12 @@ Int_t QwHelicity::LoadChannelMap(TString mapfile) if(bankindex!=GetSubbankIndex(fCurrentROC_ID,fCurrentBank_ID)) { bankindex=GetSubbankIndex(fCurrentROC_ID,fCurrentBank_ID); - if (fWordsPerSubbank.size()(fWord.size(),fWord.size())); + if ((bankindex+1)>0){ + UInt_t numbanks = UInt_t(bankindex+1); + if (fWordsPerSubbank.size()(fWord.size(),fWord.size())); + } } wordsofar=0; } @@ -1533,7 +1536,7 @@ UInt_t QwHelicity::GetRandbit24(UInt_t& ranseed) if(ranseed & IB24) // if bit 24 of ranseed = 1, then output 1 { - ranseed = ((ranseed^MASK) << 1|IB1); + ranseed = (((ranseed^MASK) << 1)|IB1); result = 1; } else @@ -1600,7 +1603,7 @@ UInt_t QwHelicity::GetRandomSeed(UShort_t* first24randbits) b[1] = first24randbits[24]^b[21]^b[22]^b[24];// h24^b22^b24 = b1 ///assign the values in the h aray and into the sead - for(size_t i=24;i>=1;i--) ranseed=ranseed << 1|(b[i]&1); + for(size_t i=24;i>=1;i--) ranseed = (ranseed << 1) | (b[i]&1); ranseed = ranseed&0xFFFFFF; //put a mask diff --git a/Parity/src/QwHelicityPattern.cc b/Parity/src/QwHelicityPattern.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwIntegrationPMT.cc b/Parity/src/QwIntegrationPMT.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwLinearDiodeArray.cc b/Parity/src/QwLinearDiodeArray.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwMollerDetector.cc b/Parity/src/QwMollerDetector.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwParityDB.cc b/Parity/src/QwParityDB.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwQPD.cc b/Parity/src/QwQPD.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwScaler.cc b/Parity/src/QwScaler.cc old mode 100755 new mode 100644 diff --git a/Parity/src/QwSubsystemArrayParity.cc b/Parity/src/QwSubsystemArrayParity.cc old mode 100755 new mode 100644 diff --git a/Parity/src/VQwBCM.cc b/Parity/src/VQwBCM.cc old mode 100755 new mode 100644 diff --git a/Parity/src/VQwBPM.cc b/Parity/src/VQwBPM.cc old mode 100755 new mode 100644 diff --git a/Parity/src/VQwClock.cc b/Parity/src/VQwClock.cc old mode 100755 new mode 100644 diff --git a/Tests/004_qwmockdatagenerator.ref b/Tests/004_qwmockdatagenerator.ref new file mode 100644 index 000000000..7ca7e85e7 --- /dev/null +++ b/Tests/004_qwmockdatagenerator.ref @@ -0,0 +1,43 @@ +/home/wdconinc/qweak/QwScratch/setupfiles is a directory; adding it to the search path +/home/wdconinc/git/japan/Analysis/prminput is a directory; adding it to the search path +/home/wdconinc/git/japan/Parity/prminput is a directory; adding it to the search path +Adding user-defined configuration file qwmockdatagenerator.conf +Warning: Overriding the default configuration files with user-defined configuration file qwparity_simple.conf +Parameter file: /home/wdconinc/git/japan/Parity/prminput/qwparity_simple.conf +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_detectors.map +Loading subsystems from mock_detectors.map. +Creating subsystem of type QwHelicity with name Helicity Info. +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_qweak_helicity.map + **** Input Register Mode **** +Creating subsystem of type QwBeamLine with name Injector BeamLine. +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_qweak_beamline.map +Error: At end of processing the combined device  +Error: At end of processing the combined device  +Error: At end of processing the combined device  +Variables to publish: +q_targ combobcm bcm_target c +x_targ combobpm bpm_target x +y_targ combobpm bpm_target y +xp_targ combobpm bpm_target xp +yp_targ combobpm bpm_target yp +e_targ comboenergy target_energy e +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_qweak_pedestal.map +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_beamline_geometry.map +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_beamline_eventcuts.map +Creating subsystem of type QwDetectorArray with name Main Detector. +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_moller_maindet_adc.map +Variables to publish: +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_moller_maindet_pedestal.map +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_moller_maindet_eventcuts.map +QwHelicity::ProcessOptions + fPatternBits 0x69 +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_data_parameters.map +Opening data file: /home/wdconinc/qweak/QwScratch/data/QwMock_10.log +Generated 0 events. +Generated 10000 events. +Run Number: 10 +Run Type: 0 +End Event Counter: 0 +Run Duration (sec): 3 +Number of Pauses during this run: 0 +Wrote mock data run /home/wdconinc/qweak/QwScratch/data/QwMock_10.log successfully. diff --git a/Tests/004_qwparity.sh b/Tests/004_qwparity.sh new file mode 100755 index 000000000..e36d22a1e --- /dev/null +++ b/Tests/004_qwparity.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Test 004: +# +# Run the mock data generator and the analysis and make sure it succeeds. +# + +setupscript=SetupFiles/SET_ME_UP.bash + +if [ ! -e ${setupscript} ] ; then + echo "Setup script ${setupscript} could not be found." + exit -1 +fi + +source ${setupscript} || exit -1 + +OUT=`mktemp -t qwparity.XXXXXX.out` +build/qwmockdatagenerator -r 10 -e :10000 --config qwparity_simple.conf --detectors mock_detectors.map | grep -i -v time | tee $OUT || exit -1 +diff $OUT Tests/004_qwmockdatagenerator.ref || exit -1 + +OUT=`mktemp -t qwparity.XXXXXX.out` +build/qwparity_simple -r 10 -e :10000 --config qwparity_simple.conf --detectors mock_detectors.map | grep -i -v time | grep -v `hostname` | grep -v "Processing event" | tee $OUT || exit -1 +diff $OUT Tests/004_qwparity_simple.ref || exit -1 + +exit 0 diff --git a/Tests/004_qwparity_simple.ref b/Tests/004_qwparity_simple.ref new file mode 100644 index 000000000..9a1920f07 --- /dev/null +++ b/Tests/004_qwparity_simple.ref @@ -0,0 +1,435 @@ +/home/wdconinc/qweak/QwScratch/setupfiles is a directory; adding it to the search path +/home/wdconinc/git/japan/Parity/prminput is a directory; adding it to the search path +/home/wdconinc/git/japan/Analysis/prminput is a directory; adding it to the search path +Adding user-defined configuration file qwparity_simple.conf +Config files: +qwparity_simple.conf +Warning: Overriding the default configuration files with user-defined configuration file qwparity_simple.conf +Parameter file: /home/wdconinc/git/japan/Parity/prminput/qwparity_simple.conf +tree-trim is disabled +histo-trim is disabled +Parameter file: /home/wdconinc/git/japan/Parity/prminput/parity_hist.in +Opening data file: /home/wdconinc/qweak/QwScratch/data/QwMock_10.log +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_detectors.map +Loading subsystems from mock_detectors.map. +Creating subsystem of type QwHelicity with name Helicity Info. +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_qweak_helicity.map + **** Input Register Mode **** +Creating subsystem of type QwBeamLine with name Injector BeamLine. +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_qweak_beamline.map +Error: At end of processing the combined device +Error: At end of processing the combined device +Error: At end of processing the combined device +Variables to publish: +q_targ combobcm bcm_target c +x_targ combobpm bpm_target x +y_targ combobpm bpm_target y +xp_targ combobpm bpm_target xp +yp_targ combobpm bpm_target yp +e_targ comboenergy target_energy e +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_qweak_pedestal.map +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_beamline_geometry.map +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_beamline_eventcuts.map +Creating subsystem of type QwDetectorArray with name Main Detector. +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_moller_maindet_adc.map +Variables to publish: +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_moller_maindet_pedestal.map +Parameter file: /home/wdconinc/git/japan/Parity/prminput/mock_moller_maindet_eventcuts.map +QwHelicity::ProcessOptions + fPatternBits 0x69 +List of published values: +e_targ: published-value +q_targ: published-value +x_targ: published-value +xp_targ: published-value +y_targ: published-value +yp_targ: published-value +Blinding parameters have been calculated. +QwBlinder::InitTestValues(): A total of 10 test values have been calculated successfully. +Warning: enable-lrbcorrection is set to false. Skipping LoadChannelMap for LRBCorrector +QwHelicity::MaxPatternPhase = 4 +QwBlinder: First set target blindability to NotBlindable +New tree: evt, MPS event data tree +New tree: mul, Helicity event data tree +Collecting information (-) from event #0 to generate helicity seed (need 30 bit, so far got 0 bits ) +Collecting information (-) from event #4 to generate helicity seed (need 30 bit, so far got 1 bits ) +Collecting information (-) from event #8 to generate helicity seed (need 30 bit, so far got 2 bits ) +Collecting information (+) from event #12 to generate helicity seed (need 30 bit, so far got 3 bits ) +Collecting information (+) from event #16 to generate helicity seed (need 30 bit, so far got 4 bits ) +Collecting information (-) from event #20 to generate helicity seed (need 30 bit, so far got 5 bits ) +Collecting information (-) from event #24 to generate helicity seed (need 30 bit, so far got 6 bits ) +Collecting information (+) from event #28 to generate helicity seed (need 30 bit, so far got 7 bits ) +Collecting information (+) from event #32 to generate helicity seed (need 30 bit, so far got 8 bits ) +Collecting information (-) from event #36 to generate helicity seed (need 30 bit, so far got 9 bits ) +Collecting information (-) from event #40 to generate helicity seed (need 30 bit, so far got 10 bits ) +Collecting information (+) from event #44 to generate helicity seed (need 30 bit, so far got 11 bits ) +Collecting information (+) from event #48 to generate helicity seed (need 30 bit, so far got 12 bits ) +Collecting information (+) from event #52 to generate helicity seed (need 30 bit, so far got 13 bits ) +Collecting information (-) from event #56 to generate helicity seed (need 30 bit, so far got 14 bits ) +Collecting information (-) from event #60 to generate helicity seed (need 30 bit, so far got 15 bits ) +Collecting information (+) from event #64 to generate helicity seed (need 30 bit, so far got 16 bits ) +Collecting information (+) from event #68 to generate helicity seed (need 30 bit, so far got 17 bits ) +Collecting information (+) from event #72 to generate helicity seed (need 30 bit, so far got 18 bits ) +Collecting information (+) from event #76 to generate helicity seed (need 30 bit, so far got 19 bits ) +Collecting information (+) from event #80 to generate helicity seed (need 30 bit, so far got 20 bits ) +Collecting information (-) from event #84 to generate helicity seed (need 30 bit, so far got 21 bits ) +Collecting information (-) from event #88 to generate helicity seed (need 30 bit, so far got 22 bits ) +Collecting information (+) from event #92 to generate helicity seed (need 30 bit, so far got 23 bits ) +Collecting information (-) from event #96 to generate helicity seed (need 30 bit, so far got 24 bits ) +Collecting information (-) from event #100 to generate helicity seed (need 30 bit, so far got 25 bits ) +Collecting information (-) from event #104 to generate helicity seed (need 30 bit, so far got 26 bits ) +Collecting information (-) from event #108 to generate helicity seed (need 30 bit, so far got 27 bits ) +Collecting information (+) from event #112 to generate helicity seed (need 30 bit, so far got 28 bits ) +Collecting information (+) from event #116 to generate helicity seed (need 30 bit, so far got 29 bits ) +Number of events processed at end of run: 10001 +Root file is /home/wdconinc/qweak/QwScratch/rootfiles/isu_sample_10.root + ------------ error counters ------------------ + +*********QwHelicity Error Summary**************** +First helicity gate counter: -1; last helicity gate counter: 9999 +First pattern counter: -1; last pattern counter: 2499 +Missed 0 helicity gates in 0 blocks of missed events. +Number of multiplet-sync-bit errors: 0 +Number of helicity prediction errors: 0 +--------------------------------------------------- + +*********QwBeamLine Error Summary**************** +--------------------------------------------------------------------------------------------- + Device name HW Sat Sample SW_HW Sequence SameHW ZeroHW EventCut +--------------------------------------------------------------------------------------------- + + qwk_bcm0l00 0 0 0 0 8 0 0 + qwk_bcm0l01 0 0 0 0 8 0 0 + qwk_bcm0l02 0 0 0 0 8 0 0 + qwk_bcm0l03 0 0 0 0 8 0 0 + qwk_bcm0l04 0 0 0 0 8 0 0 + qwk_bcm0l05 0 0 0 0 8 0 0 + qwk_bcm0l06 0 0 0 0 8 0 0 + qwk_bcm0l07 0 0 0 0 8 0 0 + + + qwk_0r06XP 0 0 0 0 9999 0 0 + qwk_0r06YP 0 0 0 0 9999 0 0 + qwk_0r06RelX 0 0 0 0 9999 0 0 + qwk_0r06X 0 0 0 0 9999 0 0 + qwk_0r06RelY 0 0 0 0 9999 0 0 + qwk_0r06Y 0 0 0 0 9999 0 0 + qwk_0r06WS 0 0 0 0 9999 0 0 + + qwk_0l06XP 0 0 0 0 9999 0 0 + qwk_0l06YM 0 0 0 0 9999 0 0 + qwk_0l06RelX 0 0 0 0 9999 0 0 + qwk_0l06X 0 0 0 0 9999 0 0 + qwk_0l06RelY 0 0 0 0 9999 0 0 + qwk_0l06Y 0 0 0 0 9999 0 0 + qwk_0l06WS 0 0 0 0 9999 0 0 + + qwk_1c12XM 0 0 0 0 9999 0 0 + qwk_1c12YM 0 0 0 0 9999 0 0 + qwk_1c12RelX 0 0 0 0 9999 0 0 + qwk_1c12X 0 0 0 0 9999 0 0 + qwk_1c12RelY 0 0 0 0 9999 0 0 + qwk_1c12Y 0 0 0 0 9999 0 0 + qwk_1c12WS 0 0 0 0 9999 0 0 + + qwk_1h04XP 0 0 0 0 9999 0 0 + qwk_1h04YM 0 0 0 0 9999 0 0 + qwk_1h04RelX 0 0 0 0 9999 0 0 + qwk_1h04X 0 0 0 0 9999 0 0 + qwk_1h04RelY 0 0 0 0 9999 0 0 + qwk_1h04Y 0 0 0 0 9999 0 0 + qwk_1h04WS 0 0 0 0 9999 0 0 + + + + + bcm_target 0 0 0 0 8 0 0 + + bpm_targetX 0 0 0 0 9999 0 0 + bpm_targetXSlope 0 0 0 0 9999 0 0 + bpm_targetXIntercept 0 0 0 0 9999 0 0 + bpm_targetXMinChiSquare 0 0 0 0 9999 0 0 + bpm_targetY 0 0 0 0 9999 0 0 + bpm_targetYSlope 0 0 0 0 9999 0 0 + bpm_targetYIntercept 0 0 0 0 9999 0 0 + bpm_targetYMinChiSquare 0 0 0 0 9999 0 0 + bpm_target_EffectiveCharge 0 0 0 0 9999 0 0 + + target_energy 0 0 0 0 9999 0 0 +--------------------------------------------------------------------------------------------- +*********QwDetectorArray Error Summary**************** +--------------------------------------------------------------------------------------------- + Device name HW Sat Sample SW_HW Sequence SameHW ZeroHW EventCut +--------------------------------------------------------------------------------------------- + s1_r1_tr1 0 0 0 0 13 0 0 + s1_r1_open 0 0 0 0 10 0 0 + s1_r1_tr2 0 0 0 0 16 0 0 + s1_r1_closed 0 0 0 0 14 0 0 + s1_r2_tr1 0 0 0 0 15 0 0 + s1_r2_open 0 0 0 0 21 0 0 + s1_r2_tr2 0 0 0 0 11 0 0 + s1_r2_closed 0 0 0 0 15 0 0 + s1_r3_tr1 0 0 0 0 12 0 0 + s1_r3_open 0 0 0 0 12 0 0 + s1_r3_tr2 0 0 0 0 13 0 0 + s1_r3_closed 0 0 0 0 12 0 0 + s1_r4_tr1 0 0 0 0 13 0 0 + s1_r4_open 0 0 0 0 14 0 0 + s1_r4_tr2 0 0 0 0 12 0 0 + s1_r4_closed 0 0 0 0 13 0 0 + s1_r5a_tr1 0 0 0 0 16 0 0 + s1_r5a_open 0 0 0 0 15 0 0 + s1_r5a_tr2 0 0 0 0 12 0 0 + s1_r5a_closed 0 0 0 0 12 0 0 + s1_r5b_tr1 0 0 0 0 11 0 0 + s1_r5b_open 0 0 0 0 14 0 0 + s1_r5b_tr2 0 0 0 0 13 0 0 + s1_r5b_closed 0 0 0 0 12 0 0 + s1_r5c_tr1 0 0 0 0 17 0 0 + s1_r5c_open 0 0 0 0 15 0 0 + s1_r5c_tr2 0 0 0 0 8 0 0 + s1_r5c_closed 0 0 0 0 9 0 0 + s1_r6_tr1 0 0 0 0 13 0 0 + s1_r6_open 0 0 0 0 13 0 0 + s1_r6_tr2 0 0 0 0 12 0 0 + s1_r6_closed 0 0 0 0 15 0 0 + s2_r1_tr1 0 0 0 0 16 0 0 + s2_r1_open 0 0 0 0 14 0 0 + s2_r1_tr2 0 0 0 0 15 0 0 + s2_r1_closed 0 0 0 0 18 0 0 + s2_r2_tr1 0 0 0 0 14 0 0 + s2_r2_open 0 0 0 0 13 0 0 + s2_r2_tr2 0 0 0 0 16 0 0 + s2_r2_closed 0 0 0 0 14 0 0 + s2_r3_tr1 0 0 0 0 16 0 0 + s2_r3_open 0 0 0 0 14 0 0 + s2_r3_tr2 0 0 0 0 12 0 0 + s2_r3_closed 0 0 0 0 13 0 0 + s2_r4_tr1 0 0 0 0 14 0 0 + s2_r4_open 0 0 0 0 16 0 0 + s2_r4_tr2 0 0 0 0 16 0 0 + s2_r4_closed 0 0 0 0 14 0 0 + s2_r5a_tr1 0 0 0 0 14 0 0 + s2_r5a_open 0 0 0 0 15 0 0 + s2_r5a_tr2 0 0 0 0 16 0 0 + s2_r5a_closed 0 0 0 0 13 0 0 + s2_r5b_tr1 0 0 0 0 11 0 0 + s2_r5b_open 0 0 0 0 17 0 0 + s2_r5b_tr2 0 0 0 0 14 0 0 + s2_r5b_closed 0 0 0 0 14 0 0 + s2_r5c_tr1 0 0 0 0 13 0 0 + s2_r5c_open 0 0 0 0 13 0 0 + s2_r5c_tr2 0 0 0 0 16 0 0 + s2_r5c_closed 0 0 0 0 12 0 0 + s2_r6_tr1 0 0 0 0 15 0 0 + s2_r6_open 0 0 0 0 16 0 0 + s2_r6_tr2 0 0 0 0 17 0 0 + s2_r6_closed 0 0 0 0 17 0 0 + s3_r1_tr1 0 0 0 0 13 0 0 + s3_r1_open 0 0 0 0 14 0 0 + s3_r1_tr2 0 0 0 0 10 0 0 + s3_r1_closed 0 0 0 0 15 0 0 + s3_r2_tr1 0 0 0 0 14 0 0 + s3_r2_open 0 0 0 0 16 0 0 + s3_r2_tr2 0 0 0 0 17 0 0 + s3_r2_closed 0 0 0 0 14 0 0 + s3_r3_tr1 0 0 0 0 14 0 0 + s3_r3_open 0 0 0 0 15 0 0 + s3_r3_tr2 0 0 0 0 16 0 0 + s3_r3_closed 0 0 0 0 15 0 0 + s3_r4_tr1 0 0 0 0 15 0 0 + s3_r4_open 0 0 0 0 14 0 0 + s3_r4_tr2 0 0 0 0 17 0 0 + s3_r4_closed 0 0 0 0 14 0 0 + s3_r5a_tr1 0 0 0 0 15 0 0 + s3_r5a_open 0 0 0 0 11 0 0 + s3_r5a_tr2 0 0 0 0 15 0 0 + s3_r5a_closed 0 0 0 0 19 0 0 + s3_r5b_tr1 0 0 0 0 16 0 0 + s3_r5b_open 0 0 0 0 14 0 0 + s3_r5b_tr2 0 0 0 0 11 0 0 + s3_r5b_closed 0 0 0 0 18 0 0 + s3_r5c_tr1 0 0 0 0 15 0 0 + s3_r5c_open 0 0 0 0 22 0 0 + s3_r5c_tr2 0 0 0 0 18 0 0 + s3_r5c_closed 0 0 0 0 16 0 0 + s3_r6_tr1 0 0 0 0 12 0 0 + s3_r6_open 0 0 0 0 18 0 0 + s3_r6_tr2 0 0 0 0 16 0 0 + s3_r6_closed 0 0 0 0 18 0 0 + s4_r1_tr1 0 0 0 0 12 0 0 + s4_r1_open 0 0 0 0 13 0 0 + s4_r1_tr2 0 0 0 0 9 0 0 + s4_r1_closed 0 0 0 0 10 0 0 + s4_r2_tr1 0 0 0 0 16 0 0 + s4_r2_open 0 0 0 0 15 0 0 + s4_r2_tr2 0 0 0 0 15 0 0 + s4_r2_closed 0 0 0 0 12 0 0 + s4_r3_tr1 0 0 0 0 15 0 0 + s4_r3_open 0 0 0 0 13 0 0 + s4_r3_tr2 0 0 0 0 12 0 0 + s4_r3_closed 0 0 0 0 15 0 0 + s4_r4_tr1 0 0 0 0 10 0 0 + s4_r4_open 0 0 0 0 12 0 0 + s4_r4_tr2 0 0 0 0 15 0 0 + s4_r4_closed 0 0 0 0 16 0 0 + s4_r5a_tr1 0 0 0 0 16 0 0 + s4_r5a_open 0 0 0 0 11 0 0 + s4_r5a_tr2 0 0 0 0 12 0 0 + s4_r5a_closed 0 0 0 0 12 0 0 + s4_r5b_tr1 0 0 0 0 14 0 0 + s4_r5b_open 0 0 0 0 12 0 0 + s4_r5b_tr2 0 0 0 0 12 0 0 + s4_r5b_closed 0 0 0 0 10 0 0 + s4_r5c_tr1 0 0 0 0 15 0 0 + s4_r5c_open 0 0 0 0 15 0 0 + s4_r5c_tr2 0 0 0 0 12 0 0 + s4_r5c_closed 0 0 0 0 12 0 0 + s4_r6_tr1 0 0 0 0 14 0 0 + s4_r6_open 0 0 0 0 13 0 0 + s4_r6_tr2 0 0 0 0 14 0 0 + s4_r6_closed 0 0 0 0 12 0 0 + s5_r1_tr1 0 0 0 0 13 0 0 + s5_r1_open 0 0 0 0 14 0 0 + s5_r1_tr2 0 0 0 0 22 0 0 + s5_r1_closed 0 0 0 0 18 0 0 + s5_r2_tr1 0 0 0 0 14 0 0 + s5_r2_open 0 0 0 0 12 0 0 + s5_r2_tr2 0 0 0 0 17 0 0 + s5_r2_closed 0 0 0 0 16 0 0 + s5_r3_tr1 0 0 0 0 16 0 0 + s5_r3_open 0 0 0 0 14 0 0 + s5_r3_tr2 0 0 0 0 17 0 0 + s5_r3_closed 0 0 0 0 12 0 0 + s5_r4_tr1 0 0 0 0 13 0 0 + s5_r4_open 0 0 0 0 14 0 0 + s5_r4_tr2 0 0 0 0 11 0 0 + s5_r4_closed 0 0 0 0 17 0 0 + s5_r5a_tr1 0 0 0 0 9 0 0 + s5_r5a_open 0 0 0 0 15 0 0 + s5_r5a_tr2 0 0 0 0 18 0 0 + s5_r5a_closed 0 0 0 0 12 0 0 + s5_r5b_tr1 0 0 0 0 11 0 0 + s5_r5b_open 0 0 0 0 16 0 0 + s5_r5b_tr2 0 0 0 0 13 0 0 + s5_r5b_closed 0 0 0 0 16 0 0 + s5_r5c_tr1 0 0 0 0 10 0 0 + s5_r5c_open 0 0 0 0 16 0 0 + s5_r5c_tr2 0 0 0 0 14 0 0 + s5_r5c_closed 0 0 0 0 11 0 0 + s5_r6_tr1 0 0 0 0 11 0 0 + s5_r6_open 0 0 0 0 15 0 0 + s5_r6_tr2 0 0 0 0 17 0 0 + s5_r6_closed 0 0 0 0 15 0 0 + s6_r1_tr1 0 0 0 0 13 0 0 + s6_r1_open 0 0 0 0 12 0 0 + s6_r1_tr2 0 0 0 0 14 0 0 + s6_r1_closed 0 0 0 0 17 0 0 + s6_r2_tr1 0 0 0 0 13 0 0 + s6_r2_open 0 0 0 0 13 0 0 + s6_r2_tr2 0 0 0 0 15 0 0 + s6_r2_closed 0 0 0 0 15 0 0 + s6_r3_tr1 0 0 0 0 13 0 0 + s6_r3_open 0 0 0 0 12 0 0 + s6_r3_tr2 0 0 0 0 13 0 0 + s6_r3_closed 0 0 0 0 14 0 0 + s6_r4_tr1 0 0 0 0 12 0 0 + s6_r4_open 0 0 0 0 13 0 0 + s6_r4_tr2 0 0 0 0 15 0 0 + s6_r4_closed 0 0 0 0 14 0 0 + s6_r5a_tr1 0 0 0 0 14 0 0 + s6_r5a_open 0 0 0 0 10 0 0 + s6_r5a_tr2 0 0 0 0 15 0 0 + s6_r5a_closed 0 0 0 0 22 0 0 + s6_r5b_tr1 0 0 0 0 11 0 0 + s6_r5b_open 0 0 0 0 14 0 0 + s6_r5b_tr2 0 0 0 0 17 0 0 + s6_r5b_closed 0 0 0 0 17 0 0 + s6_r5c_tr1 0 0 0 0 18 0 0 + s6_r5c_open 0 0 0 0 14 0 0 + s6_r5c_tr2 0 0 0 0 14 0 0 + s6_r5c_closed 0 0 0 0 14 0 0 + s6_r6_tr1 0 0 0 0 16 0 0 + s6_r6_open 0 0 0 0 13 0 0 + s6_r6_tr2 0 0 0 0 13 0 0 + s6_r6_closed 0 0 0 0 12 0 0 + s7_r1_tr1 0 0 0 0 14 0 0 + s7_r1_open 0 0 0 0 17 0 0 + s7_r1_tr2 0 0 0 0 15 0 0 + s7_r1_closed 0 0 0 0 14 0 0 + s7_r2_tr1 0 0 0 0 12 0 0 + s7_r2_open 0 0 0 0 14 0 0 + s7_r2_tr2 0 0 0 0 18 0 0 + s7_r2_closed 0 0 0 0 14 0 0 + s7_r3_tr1 0 0 0 0 12 0 0 + s7_r3_open 0 0 0 0 10 0 0 + s7_r3_tr2 0 0 0 0 11 0 0 + s7_r3_closed 0 0 0 0 13 0 0 + s7_r4_tr1 0 0 0 0 14 0 0 + s7_r4_open 0 0 0 0 16 0 0 + s7_r4_tr2 0 0 0 0 16 0 0 + s7_r4_closed 0 0 0 0 11 0 0 + s7_r5a_tr1 0 0 0 0 14 0 0 + s7_r5a_open 0 0 0 0 11 0 0 + s7_r5a_tr2 0 0 0 0 14 0 0 + s7_r5a_closed 0 0 0 0 15 0 0 + s7_r5b_tr1 0 0 0 0 15 0 0 + s7_r5b_open 0 0 0 0 16 0 0 + s7_r5b_tr2 0 0 0 0 13 0 0 + s7_r5b_closed 0 0 0 0 11 0 0 + s7_r5c_tr1 0 0 0 0 21 0 0 + s7_r5c_open 0 0 0 0 16 0 0 + s7_r5c_tr2 0 0 0 0 10 0 0 + s7_r5c_closed 0 0 0 0 17 0 0 + s7_r6_tr1 0 0 0 0 12 0 0 + s7_r6_open 0 0 0 0 16 0 0 + s7_r6_tr2 0 0 0 0 12 0 0 + s7_r6_closed 0 0 0 0 11 0 0 +--------------------------------------------------------------------------------------------- +Warning: Starting CloseStream. +Run Number: 10 +Run Type: 0 +End Event Counter: 0 +Run Duration (sec): n/a +Number of Pauses during this run: 0 + +Analysis of run 10 +10000 physics events were processed + +destructor QwkRegBlueCorrelator=input +destructor QwkRegBlueCorrelator done +QwBlinder::PrintFinalValues(): Begin summary +================================================ +Blinder Passed Patterns + Patterns with blinding disabled: 0 + Patterns on a non-blindable target: 2471 + Patterns with transverse beam: 0 + Patterns on blindable target with beam present: 0 +Blinder Failed Patterns + Patterns with unknown target position: 0 + Patterns with changed target position: 0 + Patterns with an undefined Wien setting: 0 + Patterns with a changed Wien setting: 0 + Patterns with an undefined IHWP setting: 0 + Patterns with a changed IHWP setting: 0 + Patterns on blindable target with no beam: 0 + Patterns with other blinding failure: 0 +================================================ +The blinding parameters checksum for seed ID 0 is: +97b0bed785d0a063d21343abfd3504e0 +================================================ +The test results are: + Index Original value Blinded value Orig.-Unblind value + 0 [CENSORED] 544.773 ppb epsilon + 1 [CENSORED] -433.088 ppb epsilon + 2 [CENSORED] 416.474 ppb epsilon + 3 [CENSORED] -643.277 ppb epsilon + 4 [CENSORED] -386.498 ppb epsilon + 5 [CENSORED] -344.967 ppb epsilon + 6 [CENSORED] -417.540 ppb epsilon + 7 [CENSORED] -511.812 ppb epsilon + 8 [CENSORED] -836.650 ppb epsilon + 9 [CENSORED] 550.060 ppb epsilon +================================================ +QwBlinder::PrintFinalValues(): End of summary +I have done everything I can do... diff --git a/Tests/004_qwtracking.sh b/Tests/004_qwtracking.sh deleted file mode 100755 index a11333df2..000000000 --- a/Tests/004_qwtracking.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -# Test 004: -# -# Run the analysis code without arguments and make sure it succeeds. This -# test is meant to catch problems in linked libraries and the environment -# variables. -# - -setupscript=SetupFiles/SET_ME_UP.bash - -if [ ! -e ${setupscript} ] ; then - echo "Setup script ${setupscript} could not be found." - exit -1 -fi - -source ${setupscript} || exit -1 - -bin/qwtracking || exit -1 - -exit 0 diff --git a/cmake/modules/CMakeMacroParseArguments.cmake b/cmake/modules/CMakeMacroParseArguments.cmake old mode 100755 new mode 100644 diff --git a/cmake/modules/COPYING-CMAKE-SCRIPTS b/cmake/modules/COPYING-CMAKE-SCRIPTS old mode 100755 new mode 100644 diff --git a/cmake/modules/FindMYSQLPP.cmake b/cmake/modules/FindMYSQLPP.cmake old mode 100755 new mode 100644 diff --git a/cmake/modules/FindROOT.cmake b/cmake/modules/FindROOT.cmake index b5eab412c..1cce17540 100644 --- a/cmake/modules/FindROOT.cmake +++ b/cmake/modules/FindROOT.cmake @@ -121,7 +121,7 @@ string(REPLACE "-l" "" ROOT_LIB_FLAGS "${ROOT_LIB_FLAGS}") set(ROOT_LIBRARIES) set(targetlist) list(REMOVE_DUPLICATES ROOT_FIND_COMPONENTS) -foreach(_lib IN LISTS ROOT_LIB_FLAGS ROOT_FIND_COMPONENTS) +foreach(_lib IN LISTS ROOT_FIND_COMPONENTS ROOT_LIB_FLAGS) if(_lib MATCHES "^[A-Z].+") find_library(ROOT_${_lib}_LIBRARY ${_lib} HINTS ${ROOT_LIBRARY_DIR} NO_CMAKE_ENVIRONMENT_PATH) mark_as_advanced(ROOT_${_lib}_LIBRARY) diff --git a/cmake/modules/FindSqlite3.cmake b/cmake/modules/FindSqlite3.cmake old mode 100755 new mode 100644 diff --git a/evio/Makefile b/evio/Makefile old mode 100755 new mode 100644 diff --git a/evio/README b/evio/README old mode 100755 new mode 100644 diff --git a/evio/include/THaCodaData.h b/evio/include/THaCodaData.h old mode 100755 new mode 100644 diff --git a/evio/include/THaCodaFile.h b/evio/include/THaCodaFile.h old mode 100755 new mode 100644 diff --git a/evio/include/THaEtClient.h b/evio/include/THaEtClient.h old mode 100755 new mode 100644 diff --git a/evio/include/evio.h b/evio/include/evio.h old mode 100755 new mode 100644 diff --git a/evio/snippet.dat b/evio/snippet.dat old mode 100755 new mode 100644 diff --git a/evio/src/THaCodaData.C b/evio/src/THaCodaData.C old mode 100755 new mode 100644 diff --git a/evio/src/THaCodaFile.C b/evio/src/THaCodaFile.C old mode 100755 new mode 100644 diff --git a/evio/src/THaEtClient.C b/evio/src/THaEtClient.C old mode 100755 new mode 100644 diff --git a/evio/src/etHeartbeat_main.C b/evio/src/etHeartbeat_main.C old mode 100755 new mode 100644 diff --git a/evio/src/etclient_main.C b/evio/src/etclient_main.C old mode 100755 new mode 100644 diff --git a/evio/src/etclient_main_nonptr.C b/evio/src/etclient_main_nonptr.C old mode 100755 new mode 100644 diff --git a/evio/src/etclient_main_ptr.C b/evio/src/etclient_main_ptr.C old mode 100755 new mode 100644 diff --git a/evio/src/evio.C b/evio/src/evio.C old mode 100755 new mode 100644 diff --git a/evio/src/swap_util.C b/evio/src/swap_util.C old mode 100755 new mode 100644 diff --git a/evio/src/tstcoda_main.C b/evio/src/tstcoda_main.C old mode 100755 new mode 100644 diff --git a/evio/src/tstcoda_main_brief.C b/evio/src/tstcoda_main_brief.C old mode 100755 new mode 100644 diff --git a/evio/src/tstio_main.C b/evio/src/tstio_main.C old mode 100755 new mode 100644 diff --git a/panguin/CMakeLists.txt b/panguin/CMakeLists.txt old mode 100755 new mode 100644 index 599fa204b..9e5563394 --- a/panguin/CMakeLists.txt +++ b/panguin/CMakeLists.txt @@ -40,7 +40,7 @@ endif() include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) # Load ROOT and setup include directory -find_package(ROOT 6 REQUIRED New Gui Minuit2) +find_package(ROOT 6 REQUIRED Gui Minuit2) include_directories(${ROOT_INCLUDE_DIR}) add_definitions(-std=c++11) diff --git a/panguin/README.md b/panguin/README.md index 8b195a71c..b1ebf8b82 100644 --- a/panguin/README.md +++ b/panguin/README.md @@ -27,4 +27,28 @@ This will read in the configuration files and execute the commands within. ``` This can(should) be used in conjuction with the previous options. It will use your config file (or the default) to print a file called summaryplots.pdf with plots generated from the rootfile it reads. +### V option +``` +./build/panguin -v N +``` + This will run with a verbosity level of N (higher is more noisy). + + +## Online monitor +With the **watchfile** option enabled the GUI will reload the file every 30 s and will redraw the current canvas (for default usage please look at defaultOnline.cfg). + +The process to run the online monitor goes as follows: +a) Run the ET connected japan output: +``` +cd mainJapanDir +build/qwparity --config prex.conf --add-config online_apar.conf +``` +This will connect to the ET system and analyze events as they come through the ET system. It will update the output file every ~30s. The output file will be placed in the QW_ROOTFILES directory and will have the following pattern: ''prexALL_999999.adaq*.root''. This file can be accessed from the prompt or through panguin. +b) Run panguin: +``` +cd mainJapanDir/pangin +build/panguin -r 999999 -f macros/defaultOnline.cfg +``` +The configuration can be changed with whatever you need but it must have the ''watchfile'' option set. + diff --git a/panguin/include/panguinOnline.hh b/panguin/include/panguinOnline.hh index 76d3bf162..dd4130508 100644 --- a/panguin/include/panguinOnline.hh +++ b/panguin/include/panguinOnline.hh @@ -22,7 +22,7 @@ #include "TH3.h" #include "panguinOnlineConfig.hh" -#define UPDATETIME 2000 +#define UPDATETIME 30000 class OnlineGUI { // Class that takes care of the GUI @@ -63,8 +63,10 @@ private: TH2D *mytemp2d_golden; TH3D *mytemp3d_golden; + int fVerbosity; + public: - OnlineGUI(OnlineConfig&,Bool_t); + OnlineGUI(OnlineConfig&, Bool_t,int); void CreateGUI(const TGWindow *p, UInt_t w, UInt_t h); virtual ~OnlineGUI(); void DoDraw(); @@ -91,6 +93,7 @@ public: void PrintPages(); void MyCloseWindow(); void CloseGUI(); + void SetVerbosity(int ver){fVerbosity=ver;} ClassDef(OnlineGUI,0); }; #endif //panguinOnline_h diff --git a/panguin/include/panguinOnlineConfig.hh b/panguin/include/panguinOnlineConfig.hh index 13532a834..88d1b6c0b 100644 --- a/panguin/include/panguinOnlineConfig.hh +++ b/panguin/include/panguinOnlineConfig.hh @@ -28,10 +28,19 @@ private: std::vector GetDrawIndex(UInt_t); Bool_t fFoundCfg; Bool_t fMonitor; - + int fVerbosity; + int hist2D_nBinsX,hist2D_nBinsY; + TString fPlotFormat; + int fRunNumber; + public: OnlineConfig(); OnlineConfig(TString); + int GetRunNumber(){return fRunNumber;} + TString GetConfFileName(){return confFileName;} + void Get2DnumberBins(int &nX, int &nY){nX = hist2D_nBinsX; nY = hist2D_nBinsY;} + void SetVerbosity(int ver){fVerbosity=ver;} + TString GetPlotFormat(){return fPlotFormat;} Bool_t ParseConfig(); TString GetRootFile() { return rootfilename; }; TString GetGoldenFile() { return goldenrootfilename; }; diff --git a/panguin/macros/Makefile b/panguin/macros/Makefile deleted file mode 100644 index b00b48672..000000000 --- a/panguin/macros/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -make testComp: - g++ -g -c asymmetryPlot_compile.C -o comp.o `root-config --cflags --glibs` - g++ comp.o -o compTest `root-config --cflags --glibs` - rm comp.o - diff --git a/panguin/macros/asymmetryPlot_compile.C b/panguin/macros/asymmetryPlot_compile.C deleted file mode 100644 index 4eb70adc2..000000000 --- a/panguin/macros/asymmetryPlot_compile.C +++ /dev/null @@ -1,120 +0,0 @@ -/************************************************************** - * * - * Author: Cameron Clarke * - * Date: 1-31-2019 * - * Title: asymmetryPlot_example(string channel) * - * Purpose: A script that loops through patterns and generates* - * a new branch with the asymmetries in it. This is * - * intended simply to serve as an example of how to * - * properly access a JAPAN output tree, define a * - * struct to store the data itself, and then make a * - * new tree (or any other manipulation) to look at * - * your results. This is a fully functioning macro * - * in PANGUIN and in ROOT in general as well, and it * - * only represents one possible way of accessing and * - * manipulating JAPAN ROOT output. * - * * - **************************************************************/ - -#include -#include -#include -#include "TTree.h" -#include "TFile.h" -#include "TCanvas.h" -#include -#include -#include -//#include "japantypes.hh" - -int main(int argc, char **argv) -{ - std::string rootfile = "run_1033.root"; - std::string channel = "usr"; - //std::string number = "1111"; - if (argc <= 1 || argc > 3) - { - std::cerr << "Usage: ./compTest char*:rootfileName char*:variable" << std::endl; - exit(0); - } - if (argc >= 2) - { - std::string fileName(argv[1]); - rootfile = fileName; - } - if (argc >= 3) - { - std::string channelName(argv[2]); - channel = channelName; - } - // number = parsed filename, so just the number part. - //int first = 0; - //int last = 99; - //first = rootfile.find("_"); - //last = rootfile.find("."); - //number = rootfile.substr(first+1,last-4).c_str(); - - // To grab the root tree output we can assume that PANGUIN has successfully opened a root file - TFile *oldFile = new TFile(rootfile.c_str(),"READ"); - TTree *oldPatternTree = (TTree*)oldFile->Get("Hel_Tree"); - TTree *oldEventTree = (TTree*)oldFile->Get("Mps_Tree"); - std::string dir = (std::string)gDirectory->CurrentDirectory()->GetPath(); - // Find out how many entries are in the tree so we can loop over the pattern tree later - Int_t numEntries = oldPatternTree->GetEntries(); - // Make a new ROOT tree to store the new data in (this is just an academic example) - TTree *newPatternTree; - TFile *resultsFile; - //std::string outputFile = Form("second_pass_%s_%s.root",number.c_str(),channel.c_str()); - std::string outputFile = Form("second_pass_%s.root",channel.c_str()); - // Check to see if analysis has been run before - std::ifstream file(outputFile.c_str()); - if(!file){ - // Write a new root file for output - resultsFile = new TFile(outputFile.c_str(),"RECREATE"); - // Create a new tree to store results in - newPatternTree = new TTree("noise_Hel_Tree","Tree of Pattern based noise"); - - // Make an instance of the struct we need to read the old Tree's data - typedef struct { - Double_t hw_sum; - Double_t block0; - Double_t block1; - Double_t block2; - Double_t block3; - Double_t numsamp; - Double_t errorcode; - } PATTERNASYMS; - PATTERNASYMS patternAsyms; - // Assign that instance to the new ROOT tree's branch location of interest - oldPatternTree->SetBranchAddress( Form("asym_%s",channel.c_str()), &patternAsyms ); - oldPatternTree->SetBranchAddress( Form("asym_%s",channel.c_str()), &patternAsyms ); - - // Make a double to hold the data that is the result of our manipulation - Double_t patternNoises; // call the asymmetry "noise", as an unblinded asym is also the noise floor - // Make a new branch to hold the data, but this object is ideally not manipulated much - TBranch *patternNoisesBranch; - // Assign that branch to hold the double we made earlier as the contents of each entry - patternNoisesBranch = newPatternTree->Branch(Form("pattern_noise_%s",channel.c_str()), &patternNoises); - for (int j = 0; j < numEntries; j++) { - // Loop over the input file's entries and fill the new tree with the results of one of the leaves - oldPatternTree->GetEntry(j); - patternNoises=patternAsyms.hw_sum; - newPatternTree->Fill(); - } - // Save your root tree for later use - resultsFile->Write(); - newPatternTree->Draw(Form("pattern_noise_%s",channel.c_str())); - } - // Draw your results - else{ - resultsFile = new TFile(outputFile.c_str(),"READ"); - newPatternTree = (TTree*)resultsFile->Get("noise_Hel_Tree"); - newPatternTree->Draw(Form("pattern_noise_%s",channel.c_str())); - } - - delete newPatternTree; - resultsFile->Close(); - delete resultsFile; - delete oldFile; - return 0; -} diff --git a/panguin/macros/asymmetryPlot_diffs.C b/panguin/macros/asymmetryPlot_diffs.C deleted file mode 100644 index a268ed7b7..000000000 --- a/panguin/macros/asymmetryPlot_diffs.C +++ /dev/null @@ -1,46 +0,0 @@ -/************************************************************** - * * - * Author: Cameron Clarke * - * Date: 1-31-2019 * - * Purpose: A script that loops through events in the * - * event-based tree and generates auto-correlations * - * and also estimates the helicity pattern-tree and * - * the alternating-pair-wise ppm asymmetry noise * - * floor for a ~7 volt signal or a mid-range scaler * - * * - **************************************************************/ - -#include -#include -#include -#include "TTree.h" - -void asymmetryPlot(std::string channel) { - - gStyle->SetOptStat(0); - - TTree *oldPatternTree = (TTree*)gDirectory->Get("Hel_Tree"); - Int_t numEntries = oldPatternTree->GetEntries(); - std::cout<<"N entries = "<SetBranchAddress( Form("asym_%s",channel.c_str()), &patternAsyms ); - - Double_t patternNoises; - TBranch *patternNoisesBranch; - patternNoisesBranch = newPatternTree->Branch(Form("pattern_noise_%s",channel.c_str()), &patternNoises); - for (int j = 0; j < numEntries-1; j++) { - oldPatternTree->GetEntry(j); - patternNoises=patternAsyms.hw_sum; - oldPatternTree->GetEntry(j+1); - patternNoises-=patternAsyms.hw_sum; - newPatternTree->Fill(); - } - oldPatternTree->Draw(Form("asym_%s",channel.c_str())); - newPatternTree->SetLineColor(2); - newPatternTree->Draw(Form("pattern_noise_%s",channel.c_str()),"","same"); - newPatternTree->Draw(Form("pattern_noise_%s",channel.c_str())); -} diff --git a/panguin/macros/asymmetryPlot_example.C b/panguin/macros/asymmetryPlot_example.C deleted file mode 100644 index bcd99f6c8..000000000 --- a/panguin/macros/asymmetryPlot_example.C +++ /dev/null @@ -1,87 +0,0 @@ -/************************************************************** - * * - * Author: Cameron Clarke * - * Date: 1-31-2019 * - * Title: asymmetryPlot_example(string channel) * - * Purpose: A script that loops through patterns and generates* - * a new branch with the asymmetries in it. This is * - * intended simply to serve as an example of how to * - * properly access a JAPAN output tree, define a * - * struct to store the data itself, and then make a * - * new tree (or any other manipulation) to look at * - * your results. This is a fully functioning macro * - * in PANGUIN and in ROOT in general as well, and it * - * only represents one possible way of accessing and * - * manipulating JAPAN ROOT output. * - * * - **************************************************************/ - -#include -#include -#include -#include "TTree.h" -//#include "japantypes.hh" - -void asymmetryPlot_example(std::string channel) { - - gStyle->SetOptStat(0); - - // To grab the root tree output we can assume that PANGUIN has successfully opened a root file - TFile *oldFile = gFile; - TTree *oldPatternTree = (TTree*)oldFile->Get("Hel_Tree"); - std::string dir = (std::string)gDirectory->CurrentDirectory()->GetPath(); - // Find out how many entries are in the tree so we can loop over the pattern tree later - Int_t numEntries = oldPatternTree->GetEntries(); - // Make a new ROOT tree to store the new data in (this is just an academic example) - TTree *newPatternTree; - TFile *resultsFile; - std::string outputFile = Form("second_pass_%s.root",channel.c_str()); - // Check to see if analysis has been run before - if(gSystem->AccessPathName(outputFile.c_str())){ - // Write a new root file for output - resultsFile = new TFile(outputFile.c_str(),"RECREATE"); - // Create a new tree to store results in - newPatternTree = new TTree("noise_Hel_Tree","Tree of Pattern based noise"); - - // Make an instance of the struct we need to read the old Tree's data - typedef struct { - Double_t hw_sum; - Double_t block0; - Double_t block1; - Double_t block2; - Double_t block3; - Double_t numsamp; - Double_t errorcode; - } PATTERNASYMS; - PATTERNASYMS patternAsyms; - // Assign that instance to the new ROOT tree's branch location of interest - oldPatternTree->SetBranchAddress( Form("asym_%s",channel.c_str()), &patternAsyms ); - - // Make a double to hold the data that is the result of our manipulation - Double_t patternNoises; // call the asymmetry "noise", as an unblinded asym is also the noise floor - // Make a new branch to hold the data, but this object is ideally not manipulated much - TBranch *patternNoisesBranch; - // Assign that branch to hold the double we made earlier as the contents of each entry - patternNoisesBranch = newPatternTree->Branch(Form("pattern_noise_%s",channel.c_str()), &patternNoises); - for (int j = 0; j < numEntries; j++) { - // Loop over the input file's entries and fill the new tree with the results of one of the leaves - oldPatternTree->GetEntry(j); - patternNoises=patternAsyms.hw_sum; - newPatternTree->Fill(); - } - // Save your root tree for later use - resultsFile->Write(); - newPatternTree->Draw(Form("pattern_noise_%s",channel.c_str())); - } - // Draw your results - else{ - resultsFile = new TFile(outputFile.c_str(),"READ"); - newPatternTree = (TTree*)resultsFile->Get("noise_Hel_Tree"); - newPatternTree->Draw(Form("pattern_noise_%s",channel.c_str())); - } - - delete newPatternTree; - resultsFile->Close(); - delete resultsFile; - gFile=oldFile; -} diff --git a/panguin/macros/asymmetryPlot_modular.C b/panguin/macros/asymmetryPlot_modular.C index 197c29e3b..9e4617734 100644 --- a/panguin/macros/asymmetryPlot_modular.C +++ b/panguin/macros/asymmetryPlot_modular.C @@ -29,12 +29,12 @@ void asymmetryPlot_modular(std::string channel) { // Make an instance of the relevant data type's struct PATTERNASYMS patternAsyms; - std::string tree = "Hel_Tree"; + std::string tree = "mul"; std::string modifier = "noise"; std::string description = "Tree of Pattern based noise"; // To grab the root tree output we can assume that PANGUIN has successfully opened a root file - TTree *oldPatternTree = (TTree*)gDirectory->Get("Hel_Tree"); + TTree *oldPatternTree = (TTree*)gDirectory->Get("mul"); // Assign that instance to the new ROOT tree's branch location of interest oldPatternTree->SetBranchAddress( Form("asym_%s",channel.c_str()), &patternAsyms ); // Make a new ROOT tree to store the new data in (this is just an academic example) diff --git a/panguin/macros/asymmetryPlot_vector.C b/panguin/macros/asymmetryPlot_vector.C deleted file mode 100644 index e2fb01633..000000000 --- a/panguin/macros/asymmetryPlot_vector.C +++ /dev/null @@ -1,35 +0,0 @@ -/************************************************************** - * * - * Author: Cameron Clarke * - * Date: 1-31-2019 * - * Purpose: A script that loops through events in the * - * event-based tree and generates auto-correlations * - * and also estimates the helicity pattern-tree and * - * the alternating-pair-wise ppm asymmetry noise * - * floor for a ~7 volt signal or a mid-range scaler * - * * - **************************************************************/ - -#include -#include -#include "TTree.h" - -void asymmetryPlot(std::string channel) { - - gStyle->SetOptStat(0); - - TTree *oldPatternTree = (TTree*)gDirectory->Get("Hel_Tree"); - TTree *newPatternTree = new TTree("noise_Hel_Tree","Tree of Pattern based noise"); - - std::vector < Double_t > *patternAsyms = 0; - oldPatternTree->SetBranchAddress( Form("asym_%s",channel.c_str()) , &patternAsyms ); - - // Calculate noise floor from pattern tree directly, no steps for this - std::vector < Double_t > *patternNoises; - newPatternTree->Branch(Form("pattern_noise_%s",channel.c_str()), &patternNoises); - for (size_t i = 0; i < oldPatternTree->GetEntries(); i++) { - oldPatternTree->GetEntry(i); - patternNoises->push_back(patternAsyms->at(patternAsyms->size()-1)); - } - newPatternTree->Draw(Form("pattern_noise_%s",channel.c_str())); -} diff --git a/panguin/macros/asymmetryPlot_wrapper.C b/panguin/macros/asymmetryPlot_wrapper.C deleted file mode 100644 index 86f85cdf0..000000000 --- a/panguin/macros/asymmetryPlot_wrapper.C +++ /dev/null @@ -1,98 +0,0 @@ -/************************************************************** - * * - * Author: Cameron Clarke * - * Date: 1-31-2019 * - * Title: asymmetryPlot_example(string channel) * - * Purpose: A script that loops through patterns and generates* - * a new branch with the asymmetries in it. This is * - * intended simply to serve as an example of how to * - * properly access a JAPAN output tree, define a * - * struct to store the data itself, and then make a * - * new tree (or any other manipulation) to look at * - * your results. This is a fully functioning macro * - * in PANGUIN and in ROOT in general as well, and it * - * only represents one possible way of accessing and * - * manipulating JAPAN ROOT output. * - * * - **************************************************************/ - -#include -#include -#include -#include "TTree.h" -//#include "japantypes.hh" - -void asymmetryPlot_wrapper(std::string channel) { - - gStyle->SetOptStat(0); - - // To grab the root tree output we can assume that PANGUIN has successfully opened a root file - TFile *oldFile = gFile; - TTree *oldPatternTree = (TTree*)oldFile->Get("Hel_Tree"); - //std::string dir = (std::string)gDirectory->CurrentDirectory()->GetPath(); - // Find out how many entries are in the tree so we can loop over the pattern tree later - Int_t numEntries = oldPatternTree->GetEntries(); - // Make a new ROOT tree to store the new data in (this is just an academic example) - TTree *newPatternTree; - TFile *resultsFile; - - //std::string number = "1111"; - - //number = dir.substr(dir.find("_")+1,4).c_str(); - //std::string outputFile = Form("second_pass_%s_%s.root",number.c_str(),channel.c_str()); - std::string outputFile = Form("second_pass_%s.root",channel.c_str()); - //gSystem->Exec(Form("CURRENT_RUN=%s"),dir.substr(dir.find("_")+1,4).c_str()); - - // Check to see if analysis has been run before - //gSystem->Exec(Form("ln -sf ${QW_ROOTFILES}/prex*%s.root run_%s.root",number.c_str(),number.c_str())); - //gSystem->Exec(Form("./compTest run_%s.root %s",number.c_str(),channel.c_str())); - gSystem->Exec(Form("./compTest run.root %s",channel.c_str())); - if(gSystem->AccessPathName(outputFile.c_str())){ - // Write a new root file for output - resultsFile = new TFile(outputFile.c_str(),"RECREATE"); - // Create a new tree to store results in - newPatternTree = new TTree("noise_Hel_Tree","Tree of Pattern based noise"); - - // Make an instance of the struct we need to read the old Tree's data - typedef struct { - Double_t hw_sum; - Double_t block0; - Double_t block1; - Double_t block2; - Double_t block3; - Double_t numsamp; - Double_t errorcode; - } PATTERNASYMS; - PATTERNASYMS patternAsyms; - // Assign that instance to the new ROOT tree's branch location of interest - oldPatternTree->SetBranchAddress( Form("asym_%s",channel.c_str()), &patternAsyms ); - - // Make a double to hold the data that is the result of our manipulation - Double_t patternNoises; // call the asymmetry "noise", as an unblinded asym is also the noise floor - // Make a new branch to hold the data, but this object is ideally not manipulated much - TBranch *patternNoisesBranch; - // Assign that branch to hold the double we made earlier as the contents of each entry - patternNoisesBranch = newPatternTree->Branch(Form("pattern_noise_%s",channel.c_str()), &patternNoises); - for (int j = 0; j < numEntries; j++) { - // Loop over the input file's entries and fill the new tree with the results of one of the leaves - oldPatternTree->GetEntry(j); - patternNoises=patternAsyms.hw_sum; - newPatternTree->Fill(); - } - // Save your root tree for later use - resultsFile->Write(); - newPatternTree->Draw(Form("pattern_noise_%s",channel.c_str())); - } - // Draw your results - else{ - resultsFile = new TFile(outputFile.c_str(),"READ"); - newPatternTree = (TTree*)resultsFile->Get("noise_Hel_Tree"); - newPatternTree->Draw(Form("pattern_noise_%s",channel.c_str())); - } - - delete newPatternTree; - resultsFile->Close(); - delete resultsFile; - //delete dir; - gFile=oldFile; -} diff --git a/panguin/macros/bcm_calibrated.cfg b/panguin/macros/bcm_calibrated.cfg new file mode 100644 index 000000000..030a81050 --- /dev/null +++ b/panguin/macros/bcm_calibrated.cfg @@ -0,0 +1,47 @@ +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// +#// // +#// Config for plotting BCM vs event number and some correlations from the mul tree. // +#// // +#// Robert Radloff, Ohio University, 2019 // +#// // +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// + +# Default root file to look at +rootfile /adaq1/work1/apar/japanOutput/prexALL_1033.root + +# Defined cuts +definecut evcut (event_number>1) +definecut bcmds_cut (-1*bcm_ds>1) + +# Uncomment the below line to monitor the fill of a ROOTfile. +#watchfile + +newpage 3 3 + title BCMs + macro ./macros/noStatBox.C() + yield_bcm0l02 ErrorFlag==0 -tree mul -title "BCM 0l02" + yield_bcm_an_us ErrorFlag==0 -tree mul -title "BCM AN Upstream" + yield_bcm_dg_us ErrorFlag==0 -tree mul -title "BCM DG Upstream" + yield_bcm_an_ds ErrorFlag==0 -tree mul -title "BCM AN Downstream" + yield_bcm_dg_ds ErrorFlag==0 -tree mul -title "BCM DG Downstream" + yield_bcm_an_ds3 ErrorFlag==0 -tree mul -title "BCM3 Downstream" + yield_bcm_an_ds10 ErrorFlag==0 -tree mul -title "BCM10 Downstream" + +newpage 1 3 + title BCM vs Time Upstream + yield_bcm0l02:Entry$ ErrorFlag==0 -type . -tree mul -title "BCM 0l02 vs Entry Number" + yield_bcm_an_us:Entry$ ErrorFlag==0 -type . -tree mul -title "BCM AN Upstream vs Entry Number" + yield_bcm_dg_us:Entry$ ErrorFlag==0 -type . -tree mul -title "BCM DG Upstream vs Entry Number" + +newpage 1 4 + title BCM vs Time Downstream + yield_bcm_an_ds:Entry$ ErrorFlag==0 -type . -tree mul -title "BCM AN Downstream vs Entry Number" + yield_bcm_dg_ds:Entry$ ErrorFlag==0 -type . -tree mul -title "BCM DG Downstream vs Entry Number" + yield_bcm_an_ds3:Entry$ ErrorFlag==0 -type . -tree mul -title "BCM3 Downstream vs Entry Number" + yield_bcm_an_ds10:Entry$ ErrorFlag==0 -type . -tree mul -title "BCM10 Downstream vs Entry Number" + +newpage 1 2 + title BCM Upstream:Downstream Correlations + #yield_bcm_an_us:yield_bcm_an_ds ErrorFlag==0 -type . -tree mul -title BCM AN: "Upstream vs Downstream" + macro ../../../rradloff/FindCorrelation.C(\"mul\",\"yield_bcm_an_us\",\"yield_bcm_an_ds\",\"ErrorFlag == 0\",true,true) + yield_bcm_dg_us:yield_bcm_dg_ds ErrorFlag==0 -type . -tree mul -title BCM DG: "Upstream vs Downstream" diff --git a/panguin/macros/bcm_raw.cfg b/panguin/macros/bcm_raw.cfg new file mode 100644 index 000000000..1bcafd032 --- /dev/null +++ b/panguin/macros/bcm_raw.cfg @@ -0,0 +1,46 @@ +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// +#// // +#// Config for plotting BCM vs event number and some correlations from the evt tree. // +#// // +#// Robert Radloff, Ohio University, 2019 // +#// // +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// + +# Default root file to look at +rootfile /adaq1/work1/apar/japanOutput/prexALL_1033.root + +# Defined cuts +definecut evcut (event_number>1) +definecut bcmds_cut (-1*bcm_ds>1) + +# Uncomment the below line to monitor the fill of a ROOTfile. +#watchfile + +newpage 3 3 + title BCMs + macro ./macros/noStatBox.C() + bcm0l02 ErrorFlag==0 -tree evt -title "BCM 0l02" + bcm_an_us ErrorFlag==0 -tree evt -title "BCM AN Upstream" + bcm_dg_us ErrorFlag==0 -tree evt -title "BCM DG Upstream" + bcm_an_ds ErrorFlag==0 -tree evt -title "BCM AN Downstream" + bcm_dg_ds ErrorFlag==0 -tree evt -title "BCM DG Downstream" + bcm_an_ds3 ErrorFlag==0 -tree evt -title "BCM3 Downstream" + bcm_an_ds10 ErrorFlag==0 -tree evt -title "BCM10 Downstream" + +newpage 1 3 + title BCM vs Time Upstream + bcm0l02:Entry$ ErrorFlag==0 -type . -tree evt -title "BCM 0l02 vs Entry Number" + bcm_an_us:Entry$ ErrorFlag==0 -type . -tree evt -title "BCM AN Upstream vs Entry Number" + bcm_dg_us:Entry$ ErrorFlag==0 -type . -tree evt -title "BCM DG Upstream vs Entry Number" + +newpage 1 4 + title BCM vs Time Downstream + bcm_an_ds:Entry$ ErrorFlag==0 -type . -tree evt -title "BCM AN Downstream vs Entry Number" + bcm_dg_ds:Entry$ ErrorFlag==0 -type . -tree evt -title "BCM DG Downstream vs Entry Number" + bcm_an_ds3:Entry$ ErrorFlag==0 -type . -tree evt -title "BCM3 Downstream vs Entry Number" + bcm_an_ds10:Entry$ ErrorFlag==0 -type . -tree evt -title "BCM10 Downstream vs Entry Number" + +newpage 1 2 + title BCM Upstream:Downstream Correlations + bcm_an_us:bcm_an_ds ErrorFlag==0 -type . -tree evt -title BCM AN: "Upstream vs Downstream" + bcm_dg_us:bcm_dg_ds ErrorFlag==0 -type . -tree evt -title BCM DG: "Upstream vs Downstream" diff --git a/panguin/macros/bpm4_e_a_calibrated.cfg b/panguin/macros/bpm4_e_a_calibrated.cfg new file mode 100644 index 000000000..556968893 --- /dev/null +++ b/panguin/macros/bpm4_e_a_calibrated.cfg @@ -0,0 +1,54 @@ +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// +#// // +#// Config for plotting BPM4 vs event number and some correlations from the mul tree. // +#// // +#// Robert Radloff, Ohio University, 2019 // +#// // +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// + +# Default root file to look at +rootfile /adaq1/work1/apar/japanOutput/prexALL_1033.root + +# Defined cuts +definecut evcut (event_number>1) +definecut bcmds_cut (-1*bcm_ds>1) + +# Uncomment the below line to monitor the fill of a ROOTfile. +#watchfile + +newpage 3 2 + title BPMs: x, y, and WS + macro ./macros/noStatBox.C() + yield_bpm4eX ErrorFlag==0 -tree mul -title "BPM4e X" + yield_bpm4eY ErrorFlag==0 -tree mul -title "BPM4e Y" + yield_bpm4eWS ErrorFlag==0 -tree mul -title "BPM4e WS" + yield_bpm4aX ErrorFlag==0 -tree mul -title "BPM4s X" + yield_bpm4aY ErrorFlag==0 -tree mul -title "BPM4a Y" + yield_bpm4aWS ErrorFlag==0 -tree mul -title "BPM4a WS" + +newpage 1 3 + title BPM4e vs Time + yield_bpm4eX:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM4e X vs Entry Number" + yield_bpm4eY:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM4e Y vs Entry Number" + yield_bpm4eWS:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM4e WS vs Entry Number" + +newpage 1 3 + title BPM4a vs Time + yield_bpm4aX:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM4a X vs Entry Number" + yield_bpm4aY:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM4a Y vs Entry Number" + yield_bpm4aWS:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM4a WS vs Entry Number" + +newpage 1 3 + title BPM4 a:e Correlations + yield_bpm4aX:yield_bpm4eX ErrorFlag==0 -type . -tree mul -title "BPM4a X vs BPM4e X" + yield_bpm4aY:yield_bpm4eY ErrorFlag==0 -type . -tree mul -title "BPM4a Y vs BPM4e Y" + yield_bpm4aWS:yield_bpm4eWS ErrorFlag==0 -type . -tree mul -title "BPM4a WS vs BPM4e WS" + +newpage 3 2 + title BPM4 X:Y, Y:WS, and WS:X Correlations + yield_bpm4aX:yield_bpm4aY ErrorFlag==0 -type . -tree mul -title "BPM4a X vs Y" + yield_bpm4aY:yield_bpm4aWS ErrorFlag==0 -type . -tree mul -title "BPM4a Y vs WS" + yield_bpm4aWS:yield_bpm4aX ErrorFlag==0 -type . -tree mul -title "BPM4a WS vs X" + yield_bpm4eX:yield_bpm4eY ErrorFlag==0 -type . -tree mul -title "BPM4e X vs Y" + yield_bpm4eY:yield_bpm4eWS ErrorFlag==0 -type . -tree mul -title "BPM4e Y vs WS" + yield_bpm4eWS:yield_bpm4eX ErrorFlag==0 -type . -tree mul -title "BPM4e WS vs X" diff --git a/panguin/macros/bpm4_e_a_raw.cfg b/panguin/macros/bpm4_e_a_raw.cfg new file mode 100644 index 000000000..20f56829b --- /dev/null +++ b/panguin/macros/bpm4_e_a_raw.cfg @@ -0,0 +1,48 @@ +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// +#// // +#// Config for plotting BPM4 vs event number and some correlations from the evt tree. // +#// // +#// Robert Radloff, Ohio University, 2019 // +#// // +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// + +# Default root file to look at +rootfile /adaq1/work1/apar/japanOutput/prexALL_1033.root + +# Defined cuts +definecut evcut (event_number>1) +definecut bcmds_cut (-1*bcm_ds>1) + +# Uncomment the below line to monitor the fill of a ROOTfile. +#watchfile + +newpage 3 2 + title BPMs: x, y, and WS + macro ./macros/noStatBox.C() + bpm4eX ErrorFlag==0 -tree evt -title "BPM4e X" + bpm4eY ErrorFlag==0 -tree evt -title "BPM4e Y" + bpm4eWS ErrorFlag==0 -tree evt -title "BPM4e WS" + bpm4aX ErrorFlag==0 -tree evt -title "BPM4s X" + bpm4aY ErrorFlag==0 -tree evt -title "BPM4a Y" + bpm4aWS ErrorFlag==0 -tree evt -title "BPM4a WS" + +newpage 1 3 + title BPM4a vs Time + bpm4aX:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM4a X vs Entry Number" + bpm4aY:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM4a Y vs Entry Number" + bpm4aWS:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM4a WS vs Entry Number" + +newpage 1 3 + title BPM4 a:e Correlations + bpm4aX:bpm4eX ErrorFlag==0 -type . -tree evt -title "BPM4a X vs BPM4e X" + bpm4aY:bpm4eY ErrorFlag==0 -type . -tree evt -title "BPM4a Y vs BPM4e Y" + bpm4aWS:bpm4eWS ErrorFlag==0 -type . -tree evt -title "BPM4a WS vs BPM4e WS" + +newpage 3 2 + title BPM4 X:Y, Y:WS, and WS:X Correlations + bpm4aX:bpm4aY ErrorFlag==0 -type . -tree evt -title "BPM4a X vs Y" + bpm4aY:bpm4aWS ErrorFlag==0 -type . -tree evt -title "BPM4a Y vs WS" + bpm4aWS:bpm4aX ErrorFlag==0 -type . -tree evt -title "BPM4a WS vs X" + bpm4eX:bpm4eY ErrorFlag==0 -type . -tree evt -title "BPM4e X vs Y" + bpm4eY:bpm4eWS ErrorFlag==0 -type . -tree evt -title "BPM4e Y vs WS" + bpm4eWS:bpm4eX ErrorFlag==0 -type . -tree evt -title "BPM4e WS vs X" diff --git a/panguin/macros/bpm8_bpm10_bpm12_calibrated.cfg b/panguin/macros/bpm8_bpm10_bpm12_calibrated.cfg new file mode 100644 index 000000000..98ac628b5 --- /dev/null +++ b/panguin/macros/bpm8_bpm10_bpm12_calibrated.cfg @@ -0,0 +1,73 @@ +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// +#// // +#// Config for plotting BPM8, BPM10, and BPM12 vs event number and some correlations // +#// from the mul tree. // +#// // +#// Robert Radloff, Ohio University, 2019 // +#// // +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// + +# Default root file to look at +rootfile /adaq1/work1/apar/japanOutput/prexALL_1033.root + +# Defined cuts +definecut evcut (event_number>1) +definecut bcmds_cut (-1*bcm_ds>1) + +# Uncomment the below line to monitor the fill of a ROOTfile. +#watchfile + +newpage 3 3 + title BPMs 8, 10, and 12: x, y, and WS + macro ./macros/noStatBox.C() + yield_bpm8X ErrorFlag==0 -tree mul -title "BPM8 X" + yield_bpm8Y ErrorFlag==0 -tree mul -title "BPM8 Y" + yield_bpm8WS ErrorFlag==0 -tree mul -title "BPM8 WS" + yield_bpm10X ErrorFlag==0 -tree mul -title "BPM10 X" + yield_bpm10Y ErrorFlag==0 -tree mul -title "BPM10 Y" + yield_bpm10WS ErrorFlag==0 -tree mul -title "BPM10 WS" + yield_bpm12X ErrorFlag==0 -tree mul -title "BPM12 X" + yield_bpm12Y ErrorFlag==0 -tree mul -title "BPM12 Y" + yield_bpm12WS ErrorFlag==0 -tree mul -title "BPM12 WS" + +newpage 1 3 + title BPM8 vs Time + yield_bpm8X:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM8 X vs Entry Number" + yield_bpm8Y:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM8 Y vs Entry Number" + yield_bpm8WS:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM8 WS vs Entry Number" + +newpage 1 3 + title BPM10 vs Time + yield_bpm10X:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM10 X vs Entry Number" + yield_bpm10Y:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM10 Y vs Entry Number" + yield_bpm10WS:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM10 WS vs Entry Number" + +newpage 1 3 + title BPM12 vs Time + yield_bpm12X:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM12 X vs Entry Number" + yield_bpm12Y:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM12 Y vs Entry Number" + yield_bpm12WS:Entry$ ErrorFlag==0 -type . -tree mul -title "BPM12 WS vs Entry Number" + +newpage 3 3 + title BPM 8:10, 10:12, and 12:8 Correlations + yield_bpm8X:yield_bpm10X ErrorFlag==0 -type . -tree mul -title "BPM8 X vs BPM10 X" + yield_bpm10X:yield_bpm12X ErrorFlag==0 -type . -tree mul -title "BPM10 X vs BPM12 X" + yield_bpm12X:yield_bpm8X ErrorFlag==0 -type . -tree mul -title "BPM12 X vs BPM8 X" + yield_bpm8Y:yield_bpm10Y ErrorFlag==0 -type . -tree mul -title "BPM8 Y vs BPM10 Y" + yield_bpm10Y:yield_bpm12Y ErrorFlag==0 -type . -tree mul -title "BPM10 Y vs BPM12 Y" + yield_bpm12Y:yield_bpm8Y ErrorFlag==0 -type . -tree mul -title "BPM12 Y vs BPM8 Y" + yield_bpm8WS:yield_bpm10WS ErrorFlag==0 -type . -tree mul -title "BPM8 WS vs BPM10 WS" + yield_bpm10WS:yield_bpm12WS ErrorFlag==0 -type . -tree mul -title "BPM10 WS vs BPM12 WS" + yield_bpm12WS:yield_bpm8WS ErrorFlag==0 -type . -tree mul -title "BPM12 WS vs BPM8 WS" + +newpage 3 3 + title BPM X:Y, Y:WS, and WS:X Correlations + yield_bpm8X:yield_bpm8Y ErrorFlag==0 -type . -tree mul -title "BPM8 X vs BPM8 Y" + yield_bpm8Y:yield_bpm8WS ErrorFlag==0 -type . -tree mul -title "BPM8 Y vs BPM8 WS" + yield_bpm8WS:yield_bpm8X ErrorFlag==0 -type . -tree mul -title "BPM8 WS vs BPM8 X" + yield_bpm10X:yield_bpm10Y ErrorFlag==0 -type . -tree mul -title "BPM10 X vs BPM10 Y" + yield_bpm10Y:yield_bpm10WS ErrorFlag==0 -type . -tree mul -title "BPM10 Y vs BPM10 WS" + yield_bpm10WS:yield_bpm10X ErrorFlag==0 -type . -tree mul -title "BPM10 WS vs BPM10 X" + yield_bpm12X:yield_bpm12Y ErrorFlag==0 -type . -tree mul -title "BPM12 X vs BPM12 Y" + yield_bpm12Y:yield_bpm12WS ErrorFlag==0 -type . -tree mul -title "BPM12 Y vs BPM12 WS" + yield_bpm12WS:yield_bpm12X ErrorFlag==0 -type . -tree mul -title "BPM12 WS vs BPM12 X" diff --git a/panguin/macros/bpm8_bpm10_bpm12_raw.cfg b/panguin/macros/bpm8_bpm10_bpm12_raw.cfg new file mode 100644 index 000000000..ae8b69bd3 --- /dev/null +++ b/panguin/macros/bpm8_bpm10_bpm12_raw.cfg @@ -0,0 +1,73 @@ +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// +#// // +#// Config for plotting BPM8, BPM10, and BPM12 vs event number and some correlations // +#// from the evt tree. // +#// // +#// Robert Radloff, Ohio University, 2019 // +#// // +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// + +# Default root file to look at +rootfile /adaq1/work1/apar/japanOutput/prexALL_1033.root + +# Defined cuts +definecut evcut (event_number>1) +definecut bcmds_cut (-1*bcm_ds>1) + +# Uncomment the below line to monitor the fill of a ROOTfile. +#watchfile + +newpage 3 3 + title BPMs 8, 10, and 12: x, y, and WS + macro ./macros/noStatBox.C() + bpm8X ErrorFlag==0 -tree evt -title "BPM8 X" + bpm8Y ErrorFlag==0 -tree evt -title "BPM8 Y" + bpm8WS ErrorFlag==0 -tree evt -title "BPM8 WS" + bpm10X ErrorFlag==0 -tree evt -title "BPM10 X" + bpm10Y ErrorFlag==0 -tree evt -title "BPM10 Y" + bpm10WS ErrorFlag==0 -tree evt -title "BPM10 WS" + bpm12X ErrorFlag==0 -tree evt -title "BPM12 X" + bpm12Y ErrorFlag==0 -tree evt -title "BPM12 Y" + bpm12WS ErrorFlag==0 -tree evt -title "BPM12 WS" + +newpage 1 3 + title BPM8 vs Time + bpm8X:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM8 X vs Entry Number" + bpm8Y:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM8 Y vs Entry Number" + bpm8WS:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM8 WS vs Entry Number" + +newpage 1 3 + title BPM10 vs Time + bpm10X:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM10 X vs Entry Number" + bpm10Y:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM10 Y vs Entry Number" + bpm10WS:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM10 WS vs Entry Number" + +newpage 1 3 + title BPM12 vs Time + bpm12X:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM12 X vs Entry Number" + bpm12Y:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM12 Y vs Entry Number" + bpm12WS:Entry$ ErrorFlag==0 -type . -tree evt -title "BPM12 WS vs Entry Number" + +newpage 3 3 + title BPM 8:10, 10:12, and 12:8 Correlations + bpm8X:bpm10X ErrorFlag==0 -type . -tree evt -title "BPM8 X vs BPM10 X" + bpm10X:bpm12X ErrorFlag==0 -type . -tree evt -title "BPM10 X vs BPM12 X" + bpm12X:bpm8X ErrorFlag==0 -type . -tree evt -title "BPM12 X vs BPM8 X" + bpm8Y:bpm10Y ErrorFlag==0 -type . -tree evt -title "BPM8 Y vs BPM10 Y" + bpm10Y:bpm12Y ErrorFlag==0 -type . -tree evt -title "BPM10 Y vs BPM12 Y" + bpm12Y:bpm8Y ErrorFlag==0 -type . -tree evt -title "BPM12 Y vs BPM8 Y" + bpm8WS:bpm10WS ErrorFlag==0 -type . -tree evt -title "BPM8 WS vs BPM10 WS" + bpm10WS:bpm12WS ErrorFlag==0 -type . -tree evt -title "BPM10 WS vs BPM12 WS" + bpm12WS:bpm8WS ErrorFlag==0 -type . -tree evt -title "BPM12 WS vs BPM8 WS" + +newpage 3 3 + title BPM X:Y, Y:WS, and WS:X Correlations + bpm8X:bpm8Y ErrorFlag==0 -type . -tree evt -title "BPM8 X vs BPM8 Y" + bpm8Y:bpm8WS ErrorFlag==0 -type . -tree evt -title "BPM8 Y vs BPM8 WS" + bpm8WS:bpm8X ErrorFlag==0 -type . -tree evt -title "BPM8 WS vs BPM8 X" + bpm10X:bpm10Y ErrorFlag==0 -type . -tree evt -title "BPM10 X vs BPM10 Y" + bpm10Y:bpm10WS ErrorFlag==0 -type . -tree evt -title "BPM10 Y vs BPM10 WS" + bpm10WS:bpm10X ErrorFlag==0 -type . -tree evt -title "BPM10 WS vs BPM10 X" + bpm12X:bpm12Y ErrorFlag==0 -type . -tree evt -title "BPM12 X vs BPM12 Y" + bpm12Y:bpm12WS ErrorFlag==0 -type . -tree evt -title "BPM12 Y vs BPM12 WS" + bpm12WS:bpm12X ErrorFlag==0 -type . -tree evt -title "BPM12 WS vs BPM12 X" diff --git a/panguin/macros/cavities_calibrated.cfg b/panguin/macros/cavities_calibrated.cfg new file mode 100644 index 000000000..c8192b6fc --- /dev/null +++ b/panguin/macros/cavities_calibrated.cfg @@ -0,0 +1,48 @@ +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// +#// // +#// Config for plotting Cavity Yields vs event number and some correlations from the mul tree. // +#// // +#// Robert Radloff, Ohio University, 2019 // +#// // +#//////////////////////////////////////////////////////////////////////////////////////////////////////////// + +# Default root file to look at +rootfile /adaq1/work1/apar/japanOutput/prexALL_1033.root + +# Defined cuts +definecut evcut (event_number>1) +definecut bcmds_cut (-1*bcm_ds>1) + +# Uncomment the below line to monitor the fill of a ROOTfile. +#watchfile + +newpage 3 3 + title Cav4 B, C, and D: x, y, and q + macro ./macros/noStatBox.C() + yield_cav4bx ErrorFlag==0 -tree mul -title "Cavity Bx" + yield_cav4by ErrorFlag==0 -tree mul -title "Cavity By" + yield_cav4bq ErrorFlag==0 -tree mul -title "Cavity Bq" + yield_cav4cx ErrorFlag==0 -tree mul -title "Cavity Cx" + yield_cav4cy ErrorFlag==0 -tree mul -title "Cavity Cy" + yield_cav4cq ErrorFlag==0 -tree mul -title "Cavity Cq" + yield_cav4dx ErrorFlag==0 -tree mul -title "Cavity Dx" + yield_cav4dy ErrorFlag==0 -tree mul -title "Cavity Dy" + yield_cav4dq ErrorFlag==0 -tree mul -title "Cavity Dq" + +newpage 1 3 + title Cav4B vs Time + yield_cav4bx:Entry$ ErrorFlag==0 -type . -tree mul -title "Cavity Bx vs Entry Number" + yield_cav4by:Entry$ ErrorFlag==0 -type . -tree mul -title "Cavity By vs Entry Number" + yield_cav4bq:Entry$ ErrorFlag==0 -type . -tree mul -title "Cavity Bq vs Entry Number" + +newpage 1 3 + title Cav4C vs Time + yield_cav4cx:Entry$ ErrorFlag==0 -type . -tree mul -title "Cavity Cx vs Entry Number" + yield_cav4cy:Entry$ ErrorFlag==0 -type . -tree mul -title "Cavity Cy vs Entry Number" + yield_cav4cq:Entry$ ErrorFlag==0 -type . -tree mul -title "Cavity Cq vs Entry Number" + +newpage 1 3 + title Cav4D vs Time + yield_cav4dx:Entry$ ErrorFlag==0 -type . -tree mul -title "Cavity Dx vs Entry Number" + yield_cav4dy:Entry$ ErrorFlag==0 -type . -tree mul -title "Cavity Dy vs Entry Number" + yield_cav4dq:Entry$ ErrorFlag==0 -type . -tree mul -title "Cavity Dq vs Entry Number" diff --git a/panguin/macros/cwac_checkrun.cfg b/panguin/macros/cwac_checkrun.cfg new file mode 100644 index 000000000..faa48dbf1 --- /dev/null +++ b/panguin/macros/cwac_checkrun.cfg @@ -0,0 +1,663 @@ +# Configuration file for the online GUI +# This file is for ADCs +# All lines containing "#" are treated as comments (ignored) +# Last line MUST be blank. +# Multiple spaces are treated as one space. +# To switch to log scale, add the option logy after the name of +# the histogram + +#guicolor white +# Default root file to look at +#rootfile /adaq1/work1/apar/japanOutput/prexALL_1388.root +#something is wrong with bpm 4a and 4e in 1391 tails +protorootfile $QW_ROOTFILES/prexALL_XXXXX.root + +# Prototype rootfilename.. overrides GetRootFileName.C +#protorootfile ROOTfiles/parity05_XXXXX_standard.root +##protorootfile /adaql1/work1/parity/parity04_XXXXX_standard.root + +# +#macros +#macro ./macros/noStatBox.C() +# macro ../../../rradloff/FindCorrelation.C(\"mul\",\"yield_bcm_an_us\",\"yield_bcm_an_ds\",\"ErrorFlag == 0\",true,true) +#macro ./showIntegrated.C() + + +# Defined cuts +# View last 1 minute of helicity windows (assumes no oversampling, 120Hz) +definecut raw_evcut ((Entries$-Entry$)<7200) +#view last 1 minute of helicity multiplets (assumes no oversampling, quartet pattern, 120Hz) +definecut pair_evcut ((Entries$-Entry$)<1800) +#view last 1 minute of helicity multiplets (assumes no oversampling, octet pattern, 120Hz) +definecut pair_evcut ((Entries$-Entry$)<900) +#startup events +definecut evcut (pattern_number>1) +definecut cuts (CodaEventNumber>10) +#beam off events +definecut bcmds_cut (-1*bcm_ds>1) +#japan hasn't got ok_cut so define myok_cut +definecut myok_cut (ErrorFlag==0&&yield_bcm_an_us>32.5&&abs(1e6*asym_bcm_an_us)<2e3&&abs(diff_bpm12Y*1e3)<25) +#define a cut for hallC BCM that doesn't exist yets +definecut injcut (ErrorFlag==0&&yield_bcm0l02>61&&abs(1e6*asym_bcm0l02)<2e3) +#define a cut for last 100 events +definecut events100 (Entries$-Entry$)<100 +#cavity cut +#definecut + + +#cannot do two cuts at once +#cannot have more than first plot label work +#cannout use showIntegrated.C +#Error in : macro panguin/showIntegrated.C not found in path .:./macro:./macros:/adaqfs/apps/ROOT/6.14-04/macros + +newpage 2 4 + title Raw BCMs + yield_bcm_an_us:pattern_number myok_cut -type scat -title "Upstream BCMx1" + yield_bcm_an_ds:pattern_number myok_cut -type scat -title "Downstream BCMx1" + yield_bcm_an_ds3:pattern_number myok_cut -type scat -title "Downstream BCMx3" + yield_bcm_dg_us:pattern_number myok_cut -type scat -title "Upstream BCM DG" + yield_bcm_dg_ds:pattern_number myok_cut -type scat -title "Downstream BCM DG" + yield_unser:pattern_number myok_cut -type scat -title "UNSER" + yield_bcm_an_ds10*0:pattern_number myok_cut injcut -type scat -title "Hall-C BCM" + yield_bcm0l02:pattern_number injcut -type scat -title "0L02 Inj BCM" + + +newpage 2 3 + title Raw Dithering BPMs + yield_bpm4eX:pattern_number myok_cut -type scat -title "BPM4ex" + yield_bpm4eY:pattern_number myok_cut -type scat -title "BPM4ey" + yield_bpm4aX:pattern_number myok_cut -type scat -title "BPM4ax" + yield_bpm4aY:pattern_number myok_cut -type scat -title "BPM4ay" + yield_bpm12X:pattern_number myok_cut -type scat -title "BPM12x" + yield_bpm12Y:pattern_number myok_cut -type scat -title "BPM12y" + + +newpage 3 3 + title Cavity BPMs + yield_cav4bq:pattern_number myok_cut myok_cut&&injcut -type scat -title "BPMCAV4bq" + yield_cav4bx:pattern_number myok_cut myok_cut&&injcut -type scat -title "BPMCAV4bx" + yield_cav4by:pattern_number myok_cut myok_cut&&injcut -type scat -title "BPMCAV4by" + yield_cav4cq:pattern_number myok_cut myok_cut&&injcut -type scat -title "BPMCAV4cq" + yield_cav4cx:pattern_number myok_cut myok_cut&&injcut -type scat -title "BPMCAV4cx" + yield_cav4cy:pattern_number myok_cut myok_cut&&injcut -type scat -title "BPMCAV4cy" + yield_cav4dq:pattern_number myok_cut myok_cut&&injcut -type scat -title "BPMCAV4dq" + yield_cav4dx:pattern_number myok_cut myok_cut&&injcut -type scat -title "BPMCAV4dx" + yield_cav4dy:pattern_number myok_cut myok_cut&&injcut -type scat -title "BPMCAV4dy" + +newpage 3 2 + title Normalized Cavity BPMs + yield_cav4bx/yield_cav4bq:pattern_number myok_cut&&injcut -type scat -title "BPMCAV4bx/4bq" + yield_cav4by/yield_cav4bq:pattern_number myok_cut&&injcut -type scat -title "BPMCAV4by/4bq" + yield_cav4cx/yield_cav4cq:pattern_number myok_cut&&injcut -type scat -title "BPMCAV4cx/4cq" + yield_cav4cy/yield_cav4cq:pattern_number myok_cut&&injcut -type scat -title "BPMCAV4cy/4cq" + yield_cav4dx/yield_cav4dq:pattern_number myok_cut&&injcut -type scat -title "BPMCAV4dx/4dq" + yield_cav4dy/yield_cav4dq:pattern_number myok_cut&&injcut -type scat -title "BPMCAV4dy/4dq" + +newpage 2 4 + title Raw SAM + yield_sam1:pattern_number myok_cut -type scat -title "SAM1" + yield_sam5:pattern_number myok_cut -type scat -title "SAM5" + yield_sam2:pattern_number myok_cut -type scat -title "SAM2" + yield_sam6:pattern_number myok_cut -type scat -title "SAM6" + yield_sam3:pattern_number myok_cut -type scat -title "SAM3" + yield_sam7:pattern_number myok_cut -type scat -title "SAM7" + yield_sam4:pattern_number myok_cut -type scat -title "SAM4" + yield_sam8:pattern_number myok_cut -type scat -title "SAM8" + + +newpage 2 4 + title Raw Normalized SAM: SAM/current + yield_sam1/yield_bcm_an_ds:pattern_number myok_cut -type scat -title "SAM1/BCM" + yield_sam5/yield_bcm_an_ds:pattern_number myok_cut -type scat -title "SAM5/BCM" + yield_sam2/yield_bcm_an_ds:pattern_number myok_cut -type scat -title "SAM2/BCM" + yield_sam6/yield_bcm_an_ds:pattern_number myok_cut -type scat -title "SAM6/BCM" + yield_sam3/yield_bcm_an_ds:pattern_number myok_cut -type scat -title "SAM3/BCM" + yield_sam7/yield_bcm_an_ds:pattern_number myok_cut -type scat -title "SAM7/BCM" + yield_sam4/yield_bcm_an_ds:pattern_number myok_cut -type scat -title "SAM4/BCM" + yield_sam8/yield_bcm_an_ds:pattern_number myok_cut -type scat -title "SAM8/BCM" + +#newpage 1 2 +# title Raw Normalized FLumi +# yield_n_flumi1:pattern_number myok_cut -type scat -title "FLumi1" + # yield_n_flumi2:pattern_number myok_cut -type scat -title "FLumi2" + +#newpage 1 2 + # title Raw Normalized Detectors + # yield_n_det1:pattern_number myok_cut -type scat -title "Left Arm - Detector 1" +# yield_n_det2:pattern_number myok_cut -type scat -title "Left Arm - Detector 2" + # yield_n_det3:pattern_number myok_cut -type scat -title "Right Arm - Detector 3" +# yield_n_det4:pattern_number myok_cut -type scat -title "Right Arm - Detector 4" + +newpage 6 3 + title Charge Asymmetry + asym_bcm_an_us*1e6 myok_cut -title "Upstream BCM analog" + asym_bcm_an_ds*1e6 myok_cut -title "Downstream BCM analog" + asym_bcm_an_ds3*1e6 myok_cut -title "Downstream BCM 3x" + asym_bcm_dg_us*1e6 myok_cut -title "Upstream BCM digital" + asym_bcm_dg_ds*1e6 myok_cut -title "Downstream BCM analog" + asym_bcm0l02*1e6 injcut myok_cut -title "Inj BCM" + + asym_bcm_an_us*1e6:pattern_number myok_cut -type scat -title "Upstream BCM analog" + asym_bcm_an_ds*1e6:pattern_number myok_cut -type scat -title "Downstream BCM analog" + asym_bcm_an_ds3*1e6:pattern_number myok_cut -type scat -title "Downstream BCM 3x" + asym_bcm_dg_us*1e6:pattern_number myok_cut -type scat -title "Upstream BCM digital" + asym_bcm_dg_ds*1e6:pattern_number myok_cut -type scat -title "Downstream BCM digital" + asym_bcm0l02*1e6:pattern_number injcut myok_cut -type scat -title "Inj BCM vs event" +# macro ./showIntegrated.C(\"mul\",\"asym_bcm_an_ds3*1e6\",\"myok_cut\") +# asym_bcm_an_ds*1e6 myok_cut -title "Downstream BCM 1x" + asym_bcm_an_us*1e6:pattern_number events100 myok_cut -type line -title "Upstream BCM analog" + asym_bcm_an_ds*1e6:pattern_number events100 myok_cut -type line -title "Downstream BCM analog" + asym_bcm_dg_us*1e6:pattern_number events100 myok_cut -type line -title "Upstream BCM digital" + asym_bcm_dg_ds*1e6:pattern_number events100 myok_cut -type line -title "Downstream BCM digital" + asym_bcm_an_ds3*1e6:pattern_number events100 myok_cut -type line -title "Downstream BCM 3x" + asym_bcm0l02*1e6:pattern_number events100 injcut -type line -title "Inj BCM " + + +#newpage 1 3 + # title Hall-C Charge Asymmetry (right now it is inj 0L02) +# asym_bcm0l02*1e6 injcut myok_cut -title "Inj BCM" + # asym_bcm0l02*1e6:pattern_number injcut myok_cut -type scat -title "Inj BCM vs event" + # macro .//showIntegrated.C("mul","asym_bcm0l02","injcut") + # asym_bcm0l02*1e6:pattern_number events100 myok_cut -type line -title "Injector BCM vs event" + +newpage 4 3 + title BCM correlations + asym_bcm_an_us*1e6:asym_bcm_an_ds*1e6 myok_cut -type scat -title "Aq analog us:Aq analog ds" + asym_bcm_dg_us*1e6:asym_bcm_dg_ds*1e6 myok_cut -type scat -title "Aq digital us:Aq digital ds" + asym_bcm_an_us*1e6:asym_bcm_dg_us*1e6 myok_cut -type scat -title "Aq analog us:Aq digital us" + asym_bcm_an_ds*1e6:asym_bcm_dg_ds*1e6 myok_cut -type scat -title "Aq analog ds:Aq digital ds" + asym_bcm_an_us*1e6/sqrt(2)-asym_bcm_an_ds*1e6/sqrt(2) myok_cut -type scat -title "(Aq analog us- Aq analog ds)/sqrt(2)" + asym_bcm_dg_us*1e6/sqrt(2)-asym_bcm_dg_ds*1e6/sqrt(2) myok_cut -type scat -title "(Aq digital us- Aq digital ds)/sqrt(2)" + asym_bcm_an_us*1e6/sqrt(2)-asym_bcm_dg_us*1e6/sqrt(2) myok_cut -type scat -title "(Aq analog us- Aq digital us)/sqrt(2)" + asym_bcm_an_ds*1e6/sqrt(2)-asym_bcm_dg_ds*1e6/sqrt(2) myok_cut -type scat -title "(Aq analog ds- Aq digital ds)/sqrt(2)" + asym_bcm_an_us*1e6:asym_bcm_an_ds*1e6 myok_cut -type prof -title "Aq analog us:Aq analog ds" + asym_bcm_dg_us*1e6:asym_bcm_dg_ds*1e6 myok_cut -type prof -title "Aq digital us:Aq digital ds" + asym_bcm_an_us*1e6:asym_bcm_dg_us*1e6 myok_cut -type prof -title "Aq analog us:Aq digital us" + asym_bcm_an_ds*1e6:asym_bcm_dg_ds*1e6 myok_cut -type prof -title "Aq analog ds:Aq digital ds" + + + +newpage 2 5 + title BPM Diffs Stripcharts + diff_bpm4eX*1000:pattern_number myok_cut -type scat -title "BPM1H04ex" + diff_bpm4eY*1000:pattern_number myok_cut -type scat -title "BPM1H04ey" + diff_bpm4aX*1000:pattern_number myok_cut -type scat -title "BPM1H04ax" + diff_bpm4aY*1000:pattern_number myok_cut -type scat -title "BPM1H04ay" + diff_bpm12X*1000:pattern_number myok_cut -type scat -title "BPM1C12x" + diff_bpm12Y*1000:pattern_number myok_cut -type scat -title "BPM1C12y" + diff_bpm10X*1000:pattern_number myok_cut -type scat -title "BPM1C10x" + diff_bpm10Y*1000:pattern_number myok_cut -type scat -title "BPM1C10y" + diff_bpm8X*1000:pattern_number myok_cut -type scat -title "BPM1C08x" + diff_bpm8Y*1000:pattern_number myok_cut -type scat -title "BPM1C08y" + + +newpage 2 5 + title Average BPM Diffs + diff_bpm4eX*1000 myok_cut -title "BPM1H04ex" + diff_bpm4eY*1000 myok_cut -title "BPM1H04ey" + diff_bpm4aX*1000 myok_cut -title "BPM1H04ax" + diff_bpm4aY*1000 myok_cut -title "BPM1H04ay" + diff_bpm12X*1000 myok_cut -title "BPM1C12x" + diff_bpm12Y*1000 myok_cut -title "BPM1C12y" + diff_bpm10X*1000 myok_cut -title "BPM1C10x" + diff_bpm10Y*1000 myok_cut -title "BPM1C10y" + diff_bpm8X*1000 myok_cut -title "BPM1C08x" + diff_bpm8Y*1000 myok_cut -title "BPM1C08y" + +newpage 5 5 + title BPM X Correlations + diff_bpm4aX*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D4aX:D4aX" + diff_bpm4eX*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D4eX:D4aX" + diff_bpm12X*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D12X:D4aX" + diff_bpm10X*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D10X:D4aX" + diff_bpm8X*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D8X:D4aX" + + diff_bpm4aX*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D4aX:D4eX" + diff_bpm4eX*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D4eX:D4eX" + diff_bpm12X*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D12X:D4eX" + diff_bpm10X*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D10X:D4eX" + diff_bpm8X*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D8X:D4eX" + + diff_bpm4aX*1000:diff_bpm12X*1000 myok_cut -type prof -title "D4aX:D12X" + diff_bpm4eX*1000:diff_bpm12X*1000 myok_cut -type prof -title "D4eX:D12X" + diff_bpm12X*1000:diff_bpm12X*1000 myok_cut -type prof -title "D12X:D12X" + diff_bpm10X*1000:diff_bpm12X*1000 myok_cut -type prof -title "D10X:D12X" + diff_bpm8X*1000:diff_bpm12X*1000 myok_cut -type prof -title "D8X:D12X" + + diff_bpm4aX*1000:diff_bpm10X*1000 myok_cut -type prof -title "D4aX:D10X" + diff_bpm4eX*1000:diff_bpm10X*1000 myok_cut -type prof -title "D4eX:D10X" + diff_bpm12X*1000:diff_bpm10X*1000 myok_cut -type prof -title "D12X:D10X" + diff_bpm10X*1000:diff_bpm10X*1000 myok_cut -type prof -title "D10X:D10X" + diff_bpm8X*1000:diff_bpm10X*1000 myok_cut -type prof -title "D8X:D10X" + + diff_bpm4aX*1000:diff_bpm8X*1000 myok_cut -type prof -title "D4aX:D8X" + diff_bpm4eX*1000:diff_bpm8X*1000 myok_cut -type prof -title "D4eX:D8X" + diff_bpm12X*1000:diff_bpm8X*1000 myok_cut -type prof -title "D12X:D8X" + diff_bpm10X*1000:diff_bpm8X*1000 myok_cut -type prof -title "D10X:D8X" + diff_bpm8X*1000:diff_bpm8X*1000 myok_cut -type prof -title "D8X:D8X" + +newpage 5 5 + title BPM Y Correlations + diff_bpm4aY*1000:diff_bpm4aY*1000 myok_cut -type prof -title "D4aY:D4aY" + diff_bpm4eY*1000:diff_bpm4aY*1000 myok_cut -type prof -title "D4eY:D4aY" + diff_bpm12Y*1000:diff_bpm4aY*1000 myok_cut -type prof -title "D12Y:D4aY" + diff_bpm10Y*1000:diff_bpm4aY*1000 myok_cut -type prof -title "D10Y:D4aY" + diff_bpm8Y*1000:diff_bpm4aY*1000 myok_cut -type prof -title "D8Y:D4aY" + + diff_bpm4aY*1000:diff_bpm4eY*1000 myok_cut -type prof -title "D4aY:D4eY" + diff_bpm4eY*1000:diff_bpm4eY*1000 myok_cut -type prof -title "D4eY:D4eY" + diff_bpm12Y*1000:diff_bpm4eY*1000 myok_cut -type prof -title "D12Y:D4eY" + diff_bpm10Y*1000:diff_bpm4eY*1000 myok_cut -type prof -title "D10Y:D4eY" + diff_bpm8Y*1000:diff_bpm4eY*1000 myok_cut -type prof -title "D8Y:D4eY" + + diff_bpm4aY*1000:diff_bpm12Y*1000 myok_cut -type prof -title "D4aY:D12Y" + diff_bpm4eY*1000:diff_bpm12Y*1000 myok_cut -type prof -title "D4eY:D12Y" + diff_bpm12Y*1000:diff_bpm12Y*1000 myok_cut -type prof -title "D12Y:D12Y" + diff_bpm10Y*1000:diff_bpm12Y*1000 myok_cut -type prof -title "D10Y:D12Y" + diff_bpm8Y*1000:diff_bpm12Y*1000 myok_cut -type prof -title "D8Y:D12Y" + + diff_bpm4aY*1000:diff_bpm10Y*1000 myok_cut -type prof -title "D4aY:D10Y" + diff_bpm4eY*1000:diff_bpm10Y*1000 myok_cut -type prof -title "D4eY:D10Y" + diff_bpm12Y*1000:diff_bpm10Y*1000 myok_cut -type prof -title "D12Y:D10Y" + diff_bpm10Y*1000:diff_bpm10Y*1000 myok_cut -type prof -title "D10Y:D10Y" + diff_bpm8Y*1000:diff_bpm10Y*1000 myok_cut -type prof -title "D8Y:D10Y" + + diff_bpm4aY*1000:diff_bpm8Y*1000 myok_cut -type prof -title "D4aY:D8Y" + diff_bpm4eY*1000:diff_bpm8Y*1000 myok_cut -type prof -title "D4eY:D8Y" + diff_bpm12Y*1000:diff_bpm8Y*1000 myok_cut -type prof -title "D12Y:D8Y" + diff_bpm10Y*1000:diff_bpm8Y*1000 myok_cut -type prof -title "D10Y:D8Y" + diff_bpm8Y*1000:diff_bpm8Y*1000 myok_cut -type prof -title "D8Y:D8Y" + + + +newpage 5 5 + title BPM XY Correlations + diff_bpm4aY*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D4aY:D4aX" + diff_bpm4eY*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D4eY:D4aX" + diff_bpm12Y*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D12Y:D4aX" + diff_bpm10Y*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D10Y:D4aX" + diff_bpm8Y*1000:diff_bpm4aX*1000 myok_cut -type prof -title "D8Y:D4aX" + + diff_bpm4aY*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D4aY:D4eX" + diff_bpm4eY*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D4eY:D4eX" + diff_bpm12Y*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D12Y:D4eX" + diff_bpm10Y*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D10Y:D4eX" + diff_bpm8Y*1000:diff_bpm4eX*1000 myok_cut -type prof -title "D8Y:D4eX" + + diff_bpm4aY*1000:diff_bpm12X*1000 myok_cut -type prof -title "D4aY:D12X" + diff_bpm4eY*1000:diff_bpm12X*1000 myok_cut -type prof -title "D4eY:D12X" + diff_bpm12Y*1000:diff_bpm12X*1000 myok_cut -type prof -title "D12Y:D12X" + diff_bpm10Y*1000:diff_bpm12X*1000 myok_cut -type prof -title "D10Y:D12X" + diff_bpm8Y*1000:diff_bpm12X*1000 myok_cut -type prof -title "D8Y:D12X" + + diff_bpm4aY*1000:diff_bpm10X*1000 myok_cut -type prof -title "D4aY:D10X" + diff_bpm4eY*1000:diff_bpm10X*1000 myok_cut -type prof -title "D4eY:D10X" + diff_bpm12Y*1000:diff_bpm10X*1000 myok_cut -type prof -title "D12Y:D10X" + diff_bpm10Y*1000:diff_bpm10X*1000 myok_cut -type prof -title "D10Y:D10X" + diff_bpm8Y*1000:diff_bpm10X*1000 myok_cut -type prof -title "D8Y:D10X" + + diff_bpm4aY*1000:diff_bpm8X*1000 myok_cut -type prof -title "D4aY:D8X" + diff_bpm4eY*1000:diff_bpm8X*1000 myok_cut -type prof -title "D4eY:D8X" + diff_bpm12Y*1000:diff_bpm8X*1000 myok_cut -type prof -title "D12Y:D8X" + diff_bpm10Y*1000:diff_bpm8X*1000 myok_cut -type prof -title "D10Y:D8X" + diff_bpm8Y*1000:diff_bpm8X*1000 myok_cut -type prof -title "D8Y:D8X" + + +newpage 10 10 + title BPM Scatter + diff_bpm4aX*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D4aX:D4aX" + diff_bpm4eX*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D4eX:D4aX" + diff_bpm12X*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D12X:D4aX" + diff_bpm10X*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D10X:D4aX" + diff_bpm8X*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D8X:D4aX" + diff_bpm4aY*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D4aY:D4aX" + diff_bpm4eY*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D4eY:D4aX" + diff_bpm12Y*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D12Y:D4aX" + diff_bpm10Y*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D10Y:D4aX" + diff_bpm8Y*1000:diff_bpm4aX*1000 myok_cut -type scat -title "D8Y:D4aX" + + diff_bpm4aX*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D4aX:D4eX" + diff_bpm4eX*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D4eX:D4eX" + diff_bpm12X*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D12X:D4eX" + diff_bpm10X*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D10X:D4eX" + diff_bpm8X*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D8X:D4eX" + diff_bpm4aY*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D4aY:D4eX" + diff_bpm4eY*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D4eY:D4eX" + diff_bpm12Y*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D12Y:D4eX" + diff_bpm10Y*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D10Y:D4eX" + diff_bpm8Y*1000:diff_bpm4eX*1000 myok_cut -type scat -title "D8Y:D4eX" + + diff_bpm4aX*1000:diff_bpm12X*1000 myok_cut -type scat -title "D4aX:D12X" + diff_bpm4eX*1000:diff_bpm12X*1000 myok_cut -type scat -title "D4eX:D12X" + diff_bpm12X*1000:diff_bpm12X*1000 myok_cut -type scat -title "D12X:D12X" + diff_bpm10X*1000:diff_bpm12X*1000 myok_cut -type scat -title "D10X:D12X" + diff_bpm8X*1000:diff_bpm12X*1000 myok_cut -type scat -title "D8X:D12X" + diff_bpm4aY*1000:diff_bpm12X*1000 myok_cut -type scat -title "D4aY:D12X" + diff_bpm4eY*1000:diff_bpm12X*1000 myok_cut -type scat -title "D4eY:D12X" + diff_bpm12Y*1000:diff_bpm12X*1000 myok_cut -type scat -title "D12Y:D12X" + diff_bpm10Y*1000:diff_bpm12X*1000 myok_cut -type scat -title "D10Y:D12X" + diff_bpm8Y*1000:diff_bpm12X*1000 myok_cut -type scat -title "D8Y:D12X" + + diff_bpm4aX*1000:diff_bpm10X*1000 myok_cut -type scat -title "D4aX:D10X" + diff_bpm4eX*1000:diff_bpm10X*1000 myok_cut -type scat -title "D4eX:D10X" + diff_bpm12X*1000:diff_bpm10X*1000 myok_cut -type scat -title "D12X:D10X" + diff_bpm10X*1000:diff_bpm10X*1000 myok_cut -type scat -title "D10X:D10X" + diff_bpm8X*1000:diff_bpm10X*1000 myok_cut -type scat -title "D8X:D10X" + diff_bpm4aY*1000:diff_bpm10X*1000 myok_cut -type scat -title "D4aY:D10X" + diff_bpm4eY*1000:diff_bpm10X*1000 myok_cut -type scat -title "D4eY:D10X" + diff_bpm12Y*1000:diff_bpm10X*1000 myok_cut -type scat -title "D12Y:D10X" + diff_bpm10Y*1000:diff_bpm10X*1000 myok_cut -type scat -title "D10Y:D10X" + diff_bpm8Y*1000:diff_bpm10X*1000 myok_cut -type scat -title "D8Y:D10X" + + diff_bpm4aX*1000:diff_bpm8X*1000 myok_cut -type scat -title "D4aX:D8X" + diff_bpm4eX*1000:diff_bpm8X*1000 myok_cut -type scat -title "D4eX:D8X" + diff_bpm12X*1000:diff_bpm8X*1000 myok_cut -type scat -title "D12X:D8X" + diff_bpm10X*1000:diff_bpm8X*1000 myok_cut -type scat -title "D10X:D8X" + diff_bpm8X*1000:diff_bpm8X*1000 myok_cut -type scat -title "D8X:D8X" + diff_bpm4aY*1000:diff_bpm8X*1000 myok_cut -type scat -title "D4aY:D8X" + diff_bpm4eY*1000:diff_bpm8X*1000 myok_cut -type scat -title "D4eY:D8X" + diff_bpm12Y*1000:diff_bpm8X*1000 myok_cut -type scat -title "D12Y:D8X" + diff_bpm10Y*1000:diff_bpm8X*1000 myok_cut -type scat -title "D10Y:D8X" + diff_bpm8Y*1000:diff_bpm8X*1000 myok_cut -type scat -title "D8Y:D8X" + + + diff_bpm4aX*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D4aX:D4aY" + diff_bpm4eX*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D4eX:D4aY" + diff_bpm12X*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D12X:D4aY" + diff_bpm10X*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D10X:D4aY" + diff_bpm8X*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D8X:D4aY" + diff_bpm4aY*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D4aY:D4aY" + diff_bpm4eY*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D4eY:D4aY" + diff_bpm12Y*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D12Y:D4aY" + diff_bpm10Y*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D10Y:D4aY" + diff_bpm8Y*1000:diff_bpm4aY*1000 myok_cut -type scat -title "D8Y:D4aY" + + diff_bpm4aX*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D4aX:D4eY" + diff_bpm4eX*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D4eX:D4eY" + diff_bpm12X*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D12X:D4eY" + diff_bpm10X*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D10X:D4eY" + diff_bpm8X*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D8X:D4eY" + diff_bpm4aY*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D4aY:D4eY" + diff_bpm4eY*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D4eY:D4eY" + diff_bpm12Y*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D12Y:D4eY" + diff_bpm10Y*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D10Y:D4eY" + diff_bpm8Y*1000:diff_bpm4eY*1000 myok_cut -type scat -title "D8Y:D4eY" + + diff_bpm4aX*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D4aX:D12Y" + diff_bpm4eX*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D4eX:D12Y" + diff_bpm12X*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D12X:D12Y" + diff_bpm10X*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D10X:D12Y" + diff_bpm8X*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D8X:D12Y" + diff_bpm4aY*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D4aY:D12Y" + diff_bpm4eY*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D4eY:D12Y" + diff_bpm12Y*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D12Y:D12Y" + diff_bpm10Y*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D10Y:D12Y" + diff_bpm8Y*1000:diff_bpm12Y*1000 myok_cut -type scat -title "D8Y:D12Y" + + diff_bpm4aX*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D4aX:D10Y" + diff_bpm4eX*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D4eX:D10Y" + diff_bpm12X*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D12X:D10Y" + diff_bpm10X*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D10X:D10Y" + diff_bpm8X*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D8X:D10Y" + diff_bpm4aY*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D4aY:D10Y" + diff_bpm4eY*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D4eY:D10Y" + diff_bpm12Y*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D12Y:D10Y" + diff_bpm10Y*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D10Y:D10Y" + diff_bpm8Y*1000:diff_bpm10Y*1000 myok_cut -type scat -title "D8Y:D10Y" + + diff_bpm4aX*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D4aX:D8Y" + diff_bpm4eX*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D4eX:D8Y" + diff_bpm12X*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D12X:D8Y" + diff_bpm10X*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D10X:D8Y" + diff_bpm8X*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D8X:D8Y" + diff_bpm4aY*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D4aY:D8Y" + diff_bpm4eY*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D4eY:D8Y" + diff_bpm12Y*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D12Y:D8Y" + diff_bpm10Y*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D10Y:D8Y" + diff_bpm8Y*1000:diff_bpm8Y*1000 myok_cut -type scat -title "D8Y:D8Y" + + + +#newpage 2 3 + # title Integrated BPM Diffs x2x1000 + # macro ./showIntegrated.C("mul","diff_bpm4eX","myok_cut") + # macro ./showIntegrated.C("mul","diff_bpm4eY","myok_cut") + # macro ./showIntegrated.C("mul","diff_bpm4aX","myok_cut") + # macro ./showIntegrated.C("mul","diff_bpm4aY","myok_cut") + # macro ./showIntegrated.C("mul","diff_bpm12X","myok_cut") + +#newpage 1 3 + # title Normalized Left Detector Asymmetry +# asym_n_det1:pattern_number myok_cut -type prof -title "Left Arm Detector 1" + # asym_n_det1 myok_cut -title "Left Arm Detector 1" + # macro ./showIntegrated.C("P","asym_n_det1","myok_cut") + +#newpage 1 3 + # title Normalized Right Detector Asymmetry + # asym_n_det3:pattern_number myok_cut -type prof -title "Left Arm Detector 3" + # asym_n_det3 myok_cut -title "Left Arm Detector 3" + # macro ./showIntegrated.C("P","asym_n_det3","myok_cut") + +#newpage 1 2 + # title Normalized Detector Double-Difference + # asym_n_det1-asym_n_det3:pattern_number myok_cut -tree P -type prof -title "Detector 1 - Detector 3" + # asym_n_det1-asym_n_det3 myok_cut -tree P -title "Detector 1 - Detector 3" + +newpage 2 4 + title SAM Asymmetries + asym_sam1*1e6 myok_cut -title "ASAM1" + asym_sam5*1e6 myok_cut -title "ASAM5" + asym_sam2*1e6 myok_cut -title "ASAM2" + asym_sam6*1e6 myok_cut -title "ASAM6" + asym_sam3*1e6 myok_cut -title "ASAM3" + asym_sam7*1e6 myok_cut -title "ASAM7" + asym_sam4*1e6 myok_cut -title "ASAM4" + asym_sam8*1e6 myok_cut -title "ASAM8" + +newpage 2 4 + title Normalized SAM Asymmetries + asym_sam1*1e6-asym_bcm_an_ds*1e6 myok_cut -title "ASAM1-Aqds" + asym_sam5*1e6-asym_bcm_an_ds*1e6 myok_cut -title "ASAM5-Aqds" + asym_sam2*1e6-asym_bcm_an_ds*1e6 myok_cut -title "ASAM2-Aqds" + asym_sam6*1e6-asym_bcm_an_ds*1e6 myok_cut -title "ASAM6-Aqds" + asym_sam3*1e6-asym_bcm_an_ds*1e6 myok_cut -title "ASAM3-Aqds" + asym_sam7*1e6-asym_bcm_an_ds*1e6 myok_cut -title "ASAM7-Aqds" + asym_sam4*1e6-asym_bcm_an_ds*1e6 myok_cut -title "ASAM4-Aqds" + asym_sam8*1e6-asym_bcm_an_ds*1e6 myok_cut -title "ASAM8-Aqds" + +newpage 5 4 + title Normalized SAM common mode correlations + asym_sam1*1e6/2+asym_sam5*1e6/2-asym_bcm_an_ds*1e6 myok_cut -title "(ASAM1+ASAM5)/2-Aq" + asym_sam2*1e6/2+asym_sam6*1e6/2-asym_bcm_an_ds*1e6 myok_cut -title "(ASAM2+ASAM6)/2-Aq" + asym_sam3*1e6/2+asym_sam7*1e6/2-asym_bcm_an_ds*1e6 myok_cut -title "(ASAM3+ASAM7)/2-Aq" + asym_sam4*1e6/2+asym_sam8*1e6/2-asym_bcm_an_ds*1e6 myok_cut -title "(ASAM4+ASAM8)/2-Aq" + + asym_sam1*1e6/2+asym_sam5*1e6/2-asym_bcm_an_ds*1e6:asym_sam2*1e6/2+asym_sam6*1e6/2-asym_bcm_an_ds*1e6 myok_cut -type scat -title "(ASAM1+ASAM5)/2-Aq:(ASAM2+ASAM6)/2-Aq" + asym_sam2*1e6/2+asym_sam6*1e6/2-asym_bcm_an_ds*1e6:asym_sam2*1e6/2+asym_sam6*1e6/2-asym_bcm_an_ds*1e6 myok_cut -type scat -title "(ASAM2+ASAM6)/2-Aq:(ASAM2+ASAM6)/2-Aq" + asym_sam4*1e6/2+asym_sam8*1e6/2-asym_bcm_an_ds*1e6:asym_sam2*1e6/2+asym_sam6*1e6/2-asym_bcm_an_ds*1e6 myok_cut -type scat -title "(ASAM4+ASAM8)/2-Aq:(ASAM2+ASAM6)/2-Aq" + + asym_sam1*1e6/2+asym_sam5*1e6/2-asym_bcm_an_ds*1e6:asym_sam3*1e6/2+asym_sam7*1e6/2-asym_bcm_an_ds*1e6 myok_cut -type scat -title "(ASAM1+ASAM5)/2-Aq:(ASAM3+ASAM7)/2-Aq" + asym_sam2*1e6/2+asym_sam6*1e6/2-asym_bcm_an_ds*1e6:asym_sam3*1e6/2+asym_sam7*1e6/2-asym_bcm_an_ds*1e6 myok_cut -type scat -title "(ASAM2+ASAM6)/2-Aq:(ASAM3+ASAM7)/2-Aq" + asym_sam4*1e6/2+asym_sam8*1e6/2-asym_bcm_an_ds*1e6:asym_sam3*1e6/2+asym_sam7*1e6/2-asym_bcm_an_ds*1e6 myok_cut -type scat -title "(ASAM4+ASAM8)/2-Aq:(ASAM3+ASAM7)/2-Aq" + + asym_sam1*1e6/2+asym_sam5*1e6/2-asym_bcm_an_ds*1e6:asym_sam4*1e6/2+asym_sam8*1e6/2-asym_bcm_an_ds*1e6 myok_cut -type scat -title "(ASAM1+ASAM5)/2-Aq:(ASAM4+ASAM8)/2-Aq" + asym_sam2*1e6/2+asym_sam6*1e6/2-asym_bcm_an_ds*1e6:asym_sam4*1e6/2+asym_sam8*1e6/2-asym_bcm_an_ds*1e6 myok_cut -type scat -title "(ASAM2+ASAM6)/2-Aq:(ASAM4+ASAM8)/2-Aq" + asym_sam3*1e6/2+asym_sam7*1e6/2-asym_bcm_an_ds*1e6:asym_sam4*1e6/2+asym_sam8*1e6/2-asym_bcm_an_ds*1e6 myok_cut -type scat -title "(ASAM3+ASAM7)/2-Aq:(ASAM4+ASAM8)/2-Aq" + + asym_sam1*1e6/2+asym_sam5*1e6/2-asym_sam3*1e6/2-asym_sam7*1e6/2 myok_cut -title "(ASAM1+ASAM5)/2-(ASAM3+ASAM7)/2" + asym_sam2*1e6/2+asym_sam6*1e6/2-asym_sam3*1e6/2-asym_sam7*1e6/2 myok_cut -title "(ASAM2+ASAM6)/2-(ASAM3+ASAM7)/2" + asym_sam4*1e6/2+asym_sam8*1e6/2-asym_sam3*1e6/2-asym_sam7*1e6/2 myok_cut -title "(ASAM4+ASAM8)/2-(ASAM3+ASAM7)/2" + + asym_sam1*1e6/2+asym_sam5*1e6/2-asym_sam2*1e6/2-asym_sam6*1e6/2 myok_cut -title "(ASAM1+ASAM5)/2-(ASAM2+ASAM6)/2" + asym_sam1*1e6/2+asym_sam5*1e6/2-asym_sam2*1e6/2-asym_sam6*1e6/2 myok_cut -title "(ASAM4+ASAM8)/2-(ASAM2+ASAM6)/2" + + asym_sam2*1e6/2+asym_sam6*1e6/2-asym_sam4*1e6/2-asym_sam8*1e6/2 myok_cut -title "(ASAM2+ASAM6)/2-(ASAM4+ASAM8)/2" + + +newpage 2 4 + title Normalized SAM Asymmetries vs us bcm + asym_sam1*1e6-asym_bcm_an_ds*1e6:asym_bcm_an_us*1e6 myok_cut -type prof -title "ASAM1-Aqds:Aqus" + asym_sam5*1e6-asym_bcm_an_ds*1e6:asym_bcm_an_us*1e6 myok_cut -type prof -title "ASAM5-Aqds:Aqus" + asym_sam2*1e6-asym_bcm_an_ds*1e6:asym_bcm_an_us*1e6 myok_cut -type prof -title "ASAM2-Aqds:Aqus" + asym_sam6*1e6-asym_bcm_an_ds*1e6:asym_bcm_an_us*1e6 myok_cut -type prof -title "ASAM6-Aqds:Aqus" + asym_sam3*1e6-asym_bcm_an_ds*1e6:asym_bcm_an_us*1e6 myok_cut -type prof -title "ASAM3-Aqds:Aqus" + asym_sam7*1e6-asym_bcm_an_ds*1e6:asym_bcm_an_us*1e6 myok_cut -type prof -title "ASAM7-Aqds:Aqus" + asym_sam4*1e6-asym_bcm_an_ds*1e6:asym_bcm_an_us*1e6 myok_cut -type prof -title "ASAM4-Aqds:Aqus" + asym_sam8*1e6-asym_bcm_an_ds*1e6:asym_bcm_an_us*1e6 myok_cut -type prof -title "ASAM8-Aqds:Aqus" + +newpage 2 4 + title Normalized SAM Asymmetry Stripcharts + asym_sam1*1e6-asym_bcm_an_ds*1e6:pattern_number myok_cut -type scat -title "SAM1" + asym_sam5*1e6-asym_bcm_an_ds*1e6:pattern_number myok_cut -type scat -title "SAM5" + asym_sam2*1e6-asym_bcm_an_ds*1e6:pattern_number myok_cut -type scat -title "SAM2" + asym_sam6*1e6-asym_bcm_an_ds*1e6:pattern_number myok_cut -type scat -title "SAM6" + asym_sam3*1e6-asym_bcm_an_ds*1e6:pattern_number myok_cut -type scat -title "SAM3" + asym_sam7*1e6-asym_bcm_an_ds*1e6:pattern_number myok_cut -type scat -title "SAM7" + asym_sam4*1e6-asym_bcm_an_ds*1e6:pattern_number myok_cut -type scat -title "SAM4" + asym_sam8*1e6-asym_bcm_an_ds*1e6:pattern_number myok_cut -type scat -title "SAM8" + +newpage 8 6 + title Normalized SAM Asymmetries vs BPMs + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type prof -title "ASAM1-Aqds:D4aX" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type prof -title "ASAM5-Aqds:D4aX" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type prof -title "ASAM2-Aqds:D4aX" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type prof -title "ASAM6-Aqds:D4aX" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type prof -title "ASAM3-Aqds:D4aX" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type prof -title "ASAM7-Aqds:D4aX" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type prof -title "ASAM4-Aqds:D4aX" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type prof -title "ASAM8-Aqds:D4aX" + +#newpage 2 4 + # title Normalized SAM Asymmetries vs BPM4aY + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type prof -title "ASAM1-Aqds:D4aY" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type prof -title "ASAM5-Aqds:D4aY" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type prof -title "ASAM2-Aqds:D4aY" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type prof -title "ASAM6-Aqds:D4aY" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type prof -title "ASAM3-Aqds:D4aY" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type prof -title "ASAM7-Aqds:D4aY" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type prof -title "ASAM4-Aqds:D4aY" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type prof -title "ASAM8-Aqds:D4aY" + +#newpage 2 4 +# title Normalized SAM Asymmetries vs BPM4eX + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type prof -title "ASAM1-Aqds:D4eX" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type prof -title "ASAM5-Aqds:D4eX" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type prof -title "ASAM2-Aqds:D4eX" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type prof -title "ASAM6-Aqds:D4eX" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type prof -title "ASAM3-Aqds:D4eX" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type prof -title "ASAM7-Aqds:D4eX" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type prof -title "ASAM4-Aqds:D4eX" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type prof -title "ASAM8-Aqds:D4eX" + +#newpage 2 4 + # title Normalized SAM Asymmetries vs BPM4eY + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type prof -title "ASAM1-Aqds:D4eY" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type prof -title "ASAM5-Aqds:D4eY" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type prof -title "ASAM2-Aqds:D4eY" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type prof -title "ASAM6-Aqds:D4eY" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type prof -title "ASAM3-Aqds:D4eY" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type prof -title "ASAM7-Aqds:D4eY" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type prof -title "ASAM4-Aqds:D4eY" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type prof -title "ASAM8-Aqds:D4eY" + +#newpage 2 4 + # title Normalized SAM Asymmetries vs BPM12X + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type prof -title "ASAM1-Aqds:D12X" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type prof -title "ASAM5-Aqds:D12X" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type prof -title "ASAM2-Aqds:D12X" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type prof -title "ASAM6-Aqds:D12X" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type prof -title "ASAM3-Aqds:D12X" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type prof -title "ASAM7-Aqds:D12X" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type prof -title "ASAM4-Aqds:D12X" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type prof -title "ASAM8-Aqds:D12X" + +#newpage 2 4 + # title Normalized SAM Asymmetries vs BPM12Y + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type prof -title "ASAM1-Aqds:D12Y" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type prof -title "ASAM5-Aqds:D12Y" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type prof -title "ASAM2-Aqds:D12Y" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type prof -title "ASAM6-Aqds:D12Y" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type prof -title "ASAM3-Aqds:D12Y" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type prof -title "ASAM7-Aqds:D12Y" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type prof -title "ASAM4-Aqds:D12Y" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type prof -title "ASAM8-Aqds:D12Y" + + +#---- + + +newpage 8 6 + title Normalized SAM Asymmetries vs BPMs scatter + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type scat -title "ASAM1-Aqds:D4aX" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type scat -title "ASAM5-Aqds:D4aX" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type scat -title "ASAM2-Aqds:D4aX" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type scat -title "ASAM6-Aqds:D4aX" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type scat -title "ASAM3-Aqds:D4aX" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type scat -title "ASAM7-Aqds:D4aX" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type scat -title "ASAM4-Aqds:D4aX" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm4aX*1e3 myok_cut -type scat -title "ASAM8-Aqds:D4aX" + +#newpage 2 4 + # title Normalized SAM Asymmetries vs BPM4aY scatter + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type scat -title "ASAM1-Aqds:D4aY" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type scat -title "ASAM5-Aqds:D4aY" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type scat -title "ASAM2-Aqds:D4aY" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type scat -title "ASAM6-Aqds:D4aY" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type scat -title "ASAM3-Aqds:D4aY" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type scat -title "ASAM7-Aqds:D4aY" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type scat -title "ASAM4-Aqds:D4aY" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm4aY*1e3 myok_cut -type scat -title "ASAM8-Aqds:D4aY" + +#newpage 2 4 + # title Normalized SAM Asymmetries vs BPM4eX scatter + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type scat -title "ASAM1-Aqds:D4eX" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type scat -title "ASAM5-Aqds:D4eX" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type scat -title "ASAM2-Aqds:D4eX" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type scat -title "ASAM6-Aqds:D4eX" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type scat -title "ASAM3-Aqds:D4eX" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type scat -title "ASAM7-Aqds:D4eX" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type scat -title "ASAM4-Aqds:D4eX" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm4eX*1e3 myok_cut -type scat -title "ASAM8-Aqds:D4eX" + +#newpage 2 4 + # title Normalized SAM Asymmetries vs BPM4eY scatter + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type scat -title "ASAM1-Aqds:D4eY" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type scat -title "ASAM5-Aqds:D4eY" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type scat -title "ASAM2-Aqds:D4eY" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type scat -title "ASAM6-Aqds:D4eY" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type scat -title "ASAM3-Aqds:D4eY" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type scat -title "ASAM7-Aqds:D4eY" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type scat -title "ASAM4-Aqds:D4eY" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm4eY*1e3 myok_cut -type scat -title "ASAM8-Aqds:D4eY" + +#newpage 2 4 + # title Normalized SAM Asymmetries vs BPM12X scatter + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type scat -title "ASAM1-Aqds:D12X" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type scat -title "ASAM5-Aqds:D12X" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type scat -title "ASAM2-Aqds:D12X" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type scat -title "ASAM6-Aqds:D12X" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type scat -title "ASAM3-Aqds:D12X" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type scat -title "ASAM7-Aqds:D12X" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type scat -title "ASAM4-Aqds:D12X" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm12X*1e3 myok_cut -type scat -title "ASAM8-Aqds:D12X" +#newpage 2 4 + # title Normalized SAM Asymmetries vs BPM12Y scatter + asym_sam1*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type scat -title "ASAM1-Aqds:D12Y" + asym_sam5*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type scat -title "ASAM5-Aqds:D12Y" + asym_sam2*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type scat -title "ASAM2-Aqds:D12Y" + asym_sam6*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type scat -title "ASAM6-Aqds:D12Y" + asym_sam3*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type scat -title "ASAM3-Aqds:D12Y" + asym_sam7*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type scat -title "ASAM7-Aqds:D12Y" + asym_sam4*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type scat -title "ASAM4-Aqds:D12Y" + asym_sam8*1e6-asym_bcm_an_ds*1e6:diff_bpm12Y*1e3 myok_cut -type scat -title "ASAM8-Aqds:D12Y" + + +#newpage 1 2 + # title Normalized Flumi Asymmetries +# asym_n_flumi1 myok_cut -title "Flumi1" + # asym_n_flumi2 myok_cut -title "Flumi2" + +#newpage 1 2 + # title Normalized Flumi Asymmetry Stripcharts + # asym_n_flumi1:pattern_number myok_cut -type prof -title "Flumi1" + # asym_n_flumi2:pattern_number myok_cut -type prof -title "Flumi2" \ No newline at end of file diff --git a/panguin/macros/default.cfg b/panguin/macros/default.cfg index 93d64fbd0..4676ae800 100644 --- a/panguin/macros/default.cfg +++ b/panguin/macros/default.cfg @@ -6,36 +6,46 @@ # To switch to log scale, add the option logy after the name of # the histogram -# Default root file to look at -#rootfile pan.root -rootfile /adaqfs/home/apar/ciprian/pan/ROOTfiles/parity18_4416_standard.root -##rootfile /adaq1/work1/apar/ciprian/parity18_4416_standard.root -##rootfile /dev/shm//QwMemMapFile.map +# fixed root file to look at +## can be overwritten by -r XXX option +#rootfile $QW_ROOTFILES/prexALL_1227.root + +## plot directory where print output is placed (directory has to already exist) +plotsdir ./output +## output format (pdf, gif, png). without this option we'll do pdf +plotFormat pdf + +## set the color for the gui by name (like red, blue, white) +#guicolor white # Prototype rootfilename.. overrides GetRootFileName.C - ##protorootfile /adaql1/work1/parity/parity04_XXXXX_standard.root -#protorootfile /adaql1/work1/apar/ciprian/parity18_4416_standard.root +protorootfile $QW_ROOTFILES/prexALL_XXXXX.root # Defined cuts -definecut evcut (ev_num>1000) -definecut mevcut (m_ev_num>1000) +definecut evcut CodaEventNumber>1000 +definecut myok_cut (pattern_number>10&&ErrorFlag==0&&yield_bcm_an_us>32.5&&abs(1e6*asym_bcm_an_us)<2e3&&abs(diff_bpm12Y*1e3)<25) + +## Set default 2D number of bins +#2DbinsX 2000 +#2DbinsY 2000 # Uncomment the below line to monitor the fill of a ROOTfile. #watchfile +### column row newpage 1 4 title BCMs vs Event Number - bcm1:ev_num evcut -type scat -title "BCM1 vs Eventnumber" - bcm2:ev_num -title "BCM2 vs Event Number" -type box - bcm5:ev_num evcut -type prof -title "Prof example" - (1-bcm1/bcm2):(ev_num*3600) abs(bcm1<5e4) -title "What is this?" -tree R + bcm_an_us:CodaEventNumber -type scat evcut -title "BCM1 vs Eventnumber" + yield_bcm_an_us:pattern_number myok_cut -type box -title "US Analog BCM" + bcm_an_ds10:CodaEventNumber evcut -type prof -title "Prof example" + (1-bcm_an_us/bcm_an_ds):(CodaEventNumber) ErrorFlag==0 -title "What is this?" -tree evt newpage 1 2 title BCM asymmetries - asym_bcm1 ok_cut - asym_bcm2 ok_cut + asym_bcm_an_us + asym_bcm_an_ds ErrorFlag==0 newpage 1 3 title Use some macros - macro exampleMacro1.C + macro exampleMacro1.C(10) macro exampleMacro2.C diff --git a/panguin/macros/defaultOnline.cfg b/panguin/macros/defaultOnline.cfg new file mode 100644 index 000000000..b7d4ac558 --- /dev/null +++ b/panguin/macros/defaultOnline.cfg @@ -0,0 +1,24 @@ +# Configuration file for the online GUI +# All lines containing "#" are treated as comments (ignored) +# Last line MUST be blank. +# Multiple spaces are treated as one space. +# To switch to log scale, add the option logy after the name of +# the histogram + +# Uncomment the below line to monitor the fill of a ROOTfile. +watchfile + +# Defined cuts +definecut evcut (CodaEventNumber>10) + +### column row +newpage 1 2 + title BCMs vs Event Number + bcm_an_us:CodaEventNumber evcut -title "BCM1 vs Eventnumber" + bcm_an_us evcut -title "BCM1 vs Eventnumber" + +newpage 1 2 + title BCM asymmetries + asym_bcm_an_us:CodaEventNumber evcut -title "BCM1 asymmetry vs Eventnumber" + asym_bcm_an_us-asym_bcm_an_ds evcut -title "Double difference of BCM US and DS" + diff --git a/panguin/macros/drawEVT.C b/panguin/macros/drawEVT.C new file mode 100644 index 000000000..7e1282fd6 --- /dev/null +++ b/panguin/macros/drawEVT.C @@ -0,0 +1,27 @@ +#include +#include +#include +#include "TTree.h" +#include "japantypes.hh" + +void drawEVT(std::string title, std::string draws, std::string cuts,int binsx, double binlowx, double binhighx, int binsy, double binlowy, double binhighy){ + gStyle->SetOptStat(0); + TTree *evtTree = (TTree*)gDirectory->Get("evt"); + // Make an instance of the relevant data type's struct +// EVTTREE evtTreeVal; +// evtTree->SetBranchAddress( Form("%s",draws.c_str()), &evtTreeVal ); + TH2F *h1=new TH2F("h1",title.c_str(),binsx,binlowx,binhighx,binsy,binlowy,binhighy); + +// Int_t numEntries = evtTree->GetEntries(); +// +// for (int j = 0; j < numEntries; j++) { +// // Loop over the input file's entries and fill the new stuff with the results of one of the leaves +// evtTree->GetEntry(j); +// variable = evtTreeVal.hw_sum; +// } + // Draw your results + h1->SetMarkerStyle(20); + h1->SetMarkerSize(0.4); + evtTree->Draw(Form("%s>>h1",draws.c_str()),Form("%s",cuts.c_str())); + h1->Draw(); +} diff --git a/panguin/macros/exampleCFG2.cfg b/panguin/macros/exampleCFG2.cfg new file mode 100644 index 000000000..a28f18635 --- /dev/null +++ b/panguin/macros/exampleCFG2.cfg @@ -0,0 +1,32 @@ +# Configuration file for the online GUI +# This file is for ADCs +# All lines containing "#" are treated as comments (ignored) +# Last line MUST be blank. +# Multiple spaces are treated as one space. +# To switch to log scale, add the option logy after the name of +# the histogram + +# Usage: exampleMacro2(std::string title, std::string draws, std:;string cuts,int binsx, double binlowx, double binhighx, int binsy, double binlowy, double binhighy) + +# Default root file to look at +#rootfile pan.root +rootfile /adaq1/work1/apar/japanOutput/prexALL_1098.root +##rootfile /adaq1/work1/apar/ciprian/parity18_4416_standard.root +##rootfile /dev/shm//QwMemMapFile.map + +# Prototype rootfilename.. overrides GetRootFileName.C +##protorootfile /adaql1/work1/parity/parity04_XXXXX_standard.root +#protorootfile /adaql1/work1/apar/ciprian/parity18_4416_standard.root + +# Defined cuts +definecut evcut (pattern_number>1) +definecut cuts (CodaEventNumber>10) +definecut bcmds_cut (-1*bcm_ds>1) + +# Uncomment the below line to monitor the fill of a ROOTfile. +#watchfile + +newpage 1 2 + title SAMs test + macro ./macros/drawEVT.C("BPM4A-x-vs-y","bpm4aX:bpm4aY","bcm_an_ds10>10",100,2.4,2.55,100,1.9,2.1) + macro ./macros/drawEVT.C("BPM4E-x-vs-y","bpm4eX:bpm4eY","bcm_an_ds10>10",100,2.1,2.4,100,0.90,1.30) diff --git a/panguin/macros/exampleMacro1.C b/panguin/macros/exampleMacro1.C index fd8293205..dda1aa435 100644 --- a/panguin/macros/exampleMacro1.C +++ b/panguin/macros/exampleMacro1.C @@ -1,4 +1,4 @@ -void exampleMacro1(){ - TF1 *f=new TF1("f1","sin(x)/x",0.,10.); +void exampleMacro1(double scale=4){ + TF1 *f=new TF1("f1",Form("sin(x)/x*%f",scale),0.,10.); f->Draw(); } diff --git a/panguin/macros/exampleMacro2.C b/panguin/macros/exampleMacro2.C index 6eba9d33e..9f47d59f3 100644 --- a/panguin/macros/exampleMacro2.C +++ b/panguin/macros/exampleMacro2.C @@ -1,3 +1,3 @@ void exampleMacro2(){ - R->Draw("bcm1:ev_num","ev_num>1000"); + evt->Draw("unser:Entry$","CodaEventNumber>1000"); } diff --git a/panguin/macros/japan_compiled_example.cfg b/panguin/macros/japan_compiled_example.cfg deleted file mode 100644 index cfca5b5fc..000000000 --- a/panguin/macros/japan_compiled_example.cfg +++ /dev/null @@ -1,62 +0,0 @@ -# Configuration file for the online GUI -# This file is for ADCs -# All lines containing "#" are treated as comments (ignored) -# Last line MUST be blank. -# Multiple spaces are treated as one space. -# To switch to log scale, add the option logy after the name of -# the histogram - -# Valid entries include: -# To create a new TCanvas with a set number of plots in it -# Specify with: newpage [x] [y] [TCanvas options] -# Tree drawing -# Specify with: -# Variable drawing -# Specify with: [variables] [cuts] -type [type] -title [title] -tree [tree name] -# Page title setting: -# Specify with: title Your Title Here -# Macro execution -# Specify with: macro path/to/macro.C(options) -# Additional options: -# -noshow golden - -# Default root file to look at -#rootfile pan.root -#goldenrootfile /adaq1/work1/apar/japanOutput/prexALL_1033.root -rootfile /adaq1/work1/apar/japanOutput/prexALL_1033.root -##rootfile /dev/shm/QwMemMapFile.map - -# Prototype rootfilename.. overrides GetRootFileName.C - ##protorootfile /adaql1/work1/parity/parity04_XXXXX_standard.root -#protorootfile /adaql1/work1/apar/ciprian/parity18_4416_standard.root - -# Defined cuts -definecut evcut (event_number>1) -definecut bcmds_cut (-1*bcm_ds>1) - -# Uncomment the below line to monitor the fill of a ROOTfile. -#watchfile - -newpage 1 2 - title Color Test - yield_bcm_us:yield_bcm_ds:(yield_bcm_us-yield_bcm_ds) ErrorFlag==0 -type * - macro ./macros/setPlotStyle.C() - yield_bcm_us:yield_bcm_ds:(yield_bcm_us-yield_bcm_ds) ErrorFlag==0 -type COLZ - -newpage 2 2 - title Noise Floor Test - macro ./macros/asymmetryPlot_wrapper.C("vqwk_26_0ch7") - macro ./macros/asymmetryPlot_wrapper.C("vqwk_26_0ch6") - macro ./macros/asymmetryPlot_wrapper.C("vqwk_26_0ch5") - macro ./macros/asymmetryPlot_wrapper.C("vqwk_26_0ch4") - -newpage 2 4 - title Noise Floor Test - macro ./macros/asymmetryPlot_wrapper.C("sam1") - macro ./macros/asymmetryPlot_wrapper.C("sam2") - macro ./macros/asymmetryPlot_wrapper.C("sam3") - macro ./macros/asymmetryPlot_wrapper.C("sam4") - macro ./macros/asymmetryPlot_wrapper.C("sam5") - macro ./macros/asymmetryPlot_wrapper.C("sam6") - macro ./macros/asymmetryPlot_wrapper.C("sam7") - macro ./macros/asymmetryPlot_wrapper.C("sam8") diff --git a/panguin/macros/japantypes.hh b/panguin/macros/japantypes.hh index 2bb7e6267..5f5f0dd77 100644 --- a/panguin/macros/japantypes.hh +++ b/panguin/macros/japantypes.hh @@ -8,3 +8,12 @@ typedef struct { Double_t numsamp; Double_t errorcode; } PATTERNASYMS; +typedef struct { + Double_t hw_sum; + Double_t block0; + Double_t block1; + Double_t block2; + Double_t block3; + Double_t numsamp; + Double_t errorcode; +} EVTTREE; diff --git a/panguin/macros/noStatBox.C b/panguin/macros/noStatBox.C new file mode 100644 index 000000000..f5ce8110f --- /dev/null +++ b/panguin/macros/noStatBox.C @@ -0,0 +1,6 @@ +void noStatBox() +{ + gStyle->SetOptStat(0); + gROOT->ForceStyle(); + gPad->Close(); +} diff --git a/panguin/macros/sams-bcm.cfg b/panguin/macros/sams-bcm.cfg new file mode 100644 index 000000000..f714a4d81 --- /dev/null +++ b/panguin/macros/sams-bcm.cfg @@ -0,0 +1,59 @@ +# Configuration file for the online GUI +# This file is for ADCs +# All lines containing "#" are treated as comments (ignored) +# Last line MUST be blank. +# Multiple spaces are treated as one space. +# To switch to log scale, add the option logy after the name of +# the histogram + +# Default root file to look at +#rootfile pan.root +rootfile /adaq1/work1/apar/japanOutput/prexALL_1098.root +##rootfile /adaq1/work1/apar/ciprian/parity18_4416_standard.root +##rootfile /dev/shm//QwMemMapFile.map + +# Prototype rootfilename.. overrides GetRootFileName.C +##protorootfile /adaql1/work1/parity/parity04_XXXXX_standard.root +#protorootfile /adaql1/work1/apar/ciprian/parity18_4416_standard.root + +# Defined cuts +definecut evcut (pattern_number>1) +definecut cuts (CodaEventNumber>10) +definecut bcmds_cut (-1*bcm_ds>1) + +# Uncomment the below line to monitor the fill of a ROOTfile. +#watchfile + +newpage 2 4 + title SAMs test + bcm_an_ds.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam2.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam3.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam4.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam5.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam6.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam7.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam8.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + +newpage 2 4 + title SAMs PPM noise floor signal + yield_sam1 evcut -tree mul -title "yield_sam1" + yield_sam2 evcut -tree mul -title "yield_sam2" + yield_sam3 evcut -tree mul -title "yield_sam3" + yield_sam4 evcut -tree mul -title "yield_sam4" + yield_sam5 evcut -tree mul -title "yield_sam5" + yield_sam6 evcut -tree mul -title "yield_sam6" + yield_sam7 evcut -tree mul -title "yield_sam7" + yield_sam8 evcut -tree mul -title "yield_sam8 test" + +newpage 2 4 + title SAMs raw-adc_channels + sam1.hw_sum_raw/sam1.num_samples:CodaEventNumber cuts -tree evt -type l + sam2.hw_sum_raw/sam2.num_samples:CodaEventNumber cuts -tree evt -type l + sam3.hw_sum_raw/sam3.num_samples:CodaEventNumber cuts -tree evt -type l + sam4.hw_sum_raw/sam4.num_samples:CodaEventNumber cuts -tree evt -type l + sam5.hw_sum_raw/sam5.num_samples:CodaEventNumber cuts -tree evt -type l + sam6.hw_sum_raw/sam5.num_samples:CodaEventNumber cuts -tree evt -type l + sam7.hw_sum_raw/sam6.num_samples:CodaEventNumber cuts -tree evt -type l + sam8.hw_sum_raw/sam7.num_samples:CodaEventNumber cuts -tree evt -type l + diff --git a/panguin/macros/sams.cfg b/panguin/macros/sams.cfg index db49108db..55723de72 100644 --- a/panguin/macros/sams.cfg +++ b/panguin/macros/sams.cfg @@ -13,41 +13,47 @@ rootfile /adaq1/work1/apar/japanOutput/prexALL_1098.root ##rootfile /dev/shm//QwMemMapFile.map # Prototype rootfilename.. overrides GetRootFileName.C - ##protorootfile /adaql1/work1/parity/parity04_XXXXX_standard.root +##protorootfile /adaql1/work1/parity/parity04_XXXXX_standard.root #protorootfile /adaql1/work1/apar/ciprian/parity18_4416_standard.root # Defined cuts definecut evcut (pattern_number>1) -definecut cuts (event_number>1) +definecut cuts (CodaEventNumber>10) definecut bcmds_cut (-1*bcm_ds>1) # Uncomment the below line to monitor the fill of a ROOTfile. #watchfile -newpage 1 3 +newpage 2 4 title SAMs test - sam1>>g1(100,-0.0112,-0.0108) cuts -tree Mps_Tree -title Volts - sam1:event_number>>g2(2500,0,2500,100,-0.0112,-0.0108) cuts -tree Mps_Tree -type * -title Volts vs Event - asym_sam1*yield_sam1/7 -title PPM noise floor at max 7V signal + sam1.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam2.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam3.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam4.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam5.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam6.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam7.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event + sam8.hw_sum:CodaEventNumber cuts -tree evt -type l -title Volts vs Event newpage 2 4 - title SAMs PPM noise floor at max 7V signal - asym_sam1*yield_sam1/7>>h1(100,-1e-5,1e-5) evcut -tree Hel_Tree - asym_sam2*yield_sam2/7>>h2(100,-1e-5,1e-5) evcut -tree Hel_Tree - asym_sam3*yield_sam3/7>>h3(100,-1e-5,1e-5) evcut -tree Hel_Tree - asym_sam4*yield_sam4/7>>h4(100,-1e-5,1e-5) evcut -tree Hel_Tree - asym_sam5*yield_sam5/7>>h5(100,-1e-5,1e-5) evcut -tree Hel_Tree - asym_sam6*yield_sam6/7>>h6(100,-1e-5,1e-5) evcut -tree Hel_Tree - asym_sam7*yield_sam7/7>>h7(100,-1e-5,1e-5) evcut -tree Hel_Tree - asym_sam8*yield_sam8/7>>h8(100,-1e-5,1e-5) evcut -tree Hel_Tree + title SAMs PPM noise floor signal + yield_sam1 evcut -tree mul -title "yield_sam1" + yield_sam2 evcut -tree mul -title "yield_sam2" + yield_sam3 evcut -tree mul -title "yield_sam3" + yield_sam4 evcut -tree mul -title "yield_sam4" + yield_sam5 evcut -tree mul -title "yield_sam5" + yield_sam6 evcut -tree mul -title "yield_sam6" + yield_sam7 evcut -tree mul -title "yield_sam7" + yield_sam8 evcut -tree mul -title "yield_sam8 test" newpage 2 4 - title SAMs (PPM noise floor at max 7V signal) correlations w.r.t. SAM 1 - asym_sam1*yield_sam1/7:asym_sam1*yield_sam1/7>>j1(100,-1e-5,1e-5,100,-1e-5,1e-5) evcut -tree Hel_Tree -type . - asym_sam2*yield_sam2/7:asym_sam1*yield_sam1/7>>j2(100,-1e-5,1e-5,100,-1e-5,1e-5) evcut -tree Hel_Tree -type . - asym_sam3*yield_sam3/7:asym_sam1*yield_sam1/7>>j3(100,-1e-5,1e-5,100,-1e-5,1e-5) evcut -tree Hel_Tree -type . - asym_sam4*yield_sam4/7:asym_sam1*yield_sam1/7>>j4(100,-1e-5,1e-5,100,-1e-5,1e-5) evcut -tree Hel_Tree -type . - asym_sam5*yield_sam5/7:asym_sam1*yield_sam1/7>>j5(100,-1e-5,1e-5,100,-1e-5,1e-5) evcut -tree Hel_Tree -type . - asym_sam6*yield_sam6/7:asym_sam1*yield_sam1/7>>j6(100,-1e-5,1e-5,100,-1e-5,1e-5) evcut -tree Hel_Tree -type . - asym_sam7*yield_sam7/7:asym_sam1*yield_sam1/7>>j7(100,-1e-5,1e-5,100,-1e-5,1e-5) evcut -tree Hel_Tree -type . - asym_sam8*yield_sam8/7:asym_sam1*yield_sam1/7>>j8(100,-1e-5,1e-5,100,-1e-5,1e-5) evcut -tree Hel_Tree -type . + title SAMs raw-adc_channels + sam1.hw_sum_raw/sam1.num_samples:CodaEventNumber cuts -tree evt -type l + sam2.hw_sum_raw/sam2.num_samples:CodaEventNumber cuts -tree evt -type l + sam3.hw_sum_raw/sam3.num_samples:CodaEventNumber cuts -tree evt -type l + sam4.hw_sum_raw/sam4.num_samples:CodaEventNumber cuts -tree evt -type l + sam5.hw_sum_raw/sam5.num_samples:CodaEventNumber cuts -tree evt -type l + sam6.hw_sum_raw/sam5.num_samples:CodaEventNumber cuts -tree evt -type l + sam7.hw_sum_raw/sam6.num_samples:CodaEventNumber cuts -tree evt -type l + sam8.hw_sum_raw/sam7.num_samples:CodaEventNumber cuts -tree evt -type l + diff --git a/panguin/macros/showIntegrated.C b/panguin/macros/showIntegrated.C new file mode 100644 index 000000000..807f56b5b --- /dev/null +++ b/panguin/macros/showIntegrated.C @@ -0,0 +1,20 @@ +////////////////////////////////////////////////////////////////////// +// +// showIntegrated.C +// Bryan Moffit - July 2005 +// +// helper routine for PANGUIN. Plots the integrated +// convergence of a given quantity +//edit by Caryn Palatchi 3/8/2019 for japan + +void showIntegrated(TString treename, TString given_quantity, + TCut given_cut, UInt_t nbins=20) { + + gROOT->LoadMacro("~/PREX/japan/macro/Integrated.C"); + TTree *T = (TTree*)gROOT->FindObject(treename); + TGraphErrors *gr = Integrated(T, given_quantity, given_cut, nbins); + gr->SetMarkerStyle(20); + gPad->SetGridy(1); + gr->Draw("AP"); + +} diff --git a/panguin/panguin.cc b/panguin/panguin.cc index d05e39730..e820a7927 100644 --- a/panguin/panguin.cc +++ b/panguin/panguin.cc @@ -3,20 +3,28 @@ #include #include #include +#include using namespace std; +clock_t tStart; void Usage(); -void online(TString type="standard",UInt_t run=0,Bool_t printonly=kFALSE); +void online(TString type="standard",UInt_t run=0,Bool_t printonly=kFALSE, int verbosity=0); int main(int argc, char **argv){ + tStart = clock(); + TString type="default"; UInt_t run=0; Bool_t printonly=kFALSE; Bool_t showedUsage=kFALSE; + int verbosity(0); TApplication theApp("App",&argc,argv,NULL,-1); + cout<<"Starting processing arg. Time passed: " + <<(double) ((clock() - tStart)/CLOCKS_PER_SEC)<<" s!"<IsBatch()) { @@ -56,15 +73,25 @@ void online(TString type,UInt_t run,Bool_t printonly){ } } - OnlineConfig *fconfig = new OnlineConfig(type); + cout<<"Starting processing cfg. Time passed: " + <<(double) ((clock() - tStart)/CLOCKS_PER_SEC)<<" s!"<SetVerbosity(ver); if(!fconfig->ParseConfig()) { gApplication->Terminate(); } if(run!=0) fconfig->OverrideRootFile(run); - new OnlineGUI(*fconfig,printonly); + cout<<"Finished processing cfg. Init OnlineGUI. Time passed: " + <<(double) ((clock() - tStart)/CLOCKS_PER_SEC)<<" s!"<0)" << endl; cerr << " -P : Only Print Summary Plots" << endl; cerr << endl; } diff --git a/panguin/src/panguinOnline.cc b/panguin/src/panguinOnline.cc index e5ab33476..b116a4d09 100644 --- a/panguin/src/panguinOnline.cc +++ b/panguin/src/panguinOnline.cc @@ -21,10 +21,11 @@ #include #include "TPaveText.h" #include -//#define DEBUG -//#define DEBUG2 -//#define NOISY -//#define OLDTIMERUPDATE +#include "TEnv.h" +#include "TRegexp.h" +#include "TGraph.h" + +#define OLDTIMERUPDATE using namespace std; @@ -35,14 +36,24 @@ using namespace std; // // -OnlineGUI::OnlineGUI(OnlineConfig& config, Bool_t printonly): +OnlineGUI::OnlineGUI(OnlineConfig& config, Bool_t printonly=0, int ver=0): runNumber(0), timer(0), - fFileAlive(kFALSE) + fFileAlive(kFALSE), + fVerbosity(ver) { // Constructor. Get the config pointer, and make the GUI. fConfig = &config; + int bin2Dx(0), bin2Dy(0); + fConfig->Get2DnumberBins(bin2Dx,bin2Dy); + if(bin2Dx>0 && bin2Dy>0){ + gEnv->SetValue("Hist.Binning.2D.x",bin2Dx); + gEnv->SetValue("Hist.Binning.2D.y",bin2Dy); + if(fVerbosity>1){ + cout<<"Set 2D default bins to x, y: "<GetRunNumber(); // Open the Root Trees. Give a warning if it's not there.. GetFileObjects(); GetRootTree(); @@ -133,7 +144,7 @@ void OnlineGUI::CreateGUI(const TGWindow *p, UInt_t w, UInt_t h) fTopframe = new TGHorizontalFrame(fMain,200,200); fTopframe->SetBackgroundColor(mainguicolor); fMain->AddFrame(fTopframe, new TGLayoutHints(kLHintsExpandX - | kLHintsExpandY,10,10,10,1)); + | kLHintsExpandY,10,10,10,1)); // Create a verticle frame widget with radio buttons // This will hold the page buttons @@ -151,7 +162,7 @@ void OnlineGUI::CreateGUI(const TGWindow *p, UInt_t w, UInt_t h) for (UInt_t i=0; iGetPageCount(); i++) { vframe->AddFrame(fRadioPage[i], new TGLayoutHints(kLHintsLeft | - kLHintsCenterY,5,5,3,4)); + kLHintsCenterY,5,5,3,4)); fRadioPage[i]->Connect("Pressed()", "OnlineGUI", this, "DoRadio()"); } if(!fConfig->IsMonitor()) { @@ -238,9 +249,8 @@ void OnlineGUI::CreateGUI(const TGWindow *p, UInt_t w, UInt_t h) // Map main frame fMain->MapWindow(); -#ifdef DEBUG - fMain->Print(); -#endif + if(fVerbosity>=1) + fMain->Print(); if(fFileAlive) DoDraw(); @@ -267,14 +277,14 @@ void OnlineGUI::DoDraw() } else { gStyle->SetOptLogy(0); } -// gStyle->SetTitleH(0.10); -// gStyle->SetTitleW(0.40); + // gStyle->SetTitleH(0.10); + // gStyle->SetTitleW(0.40); gStyle->SetTitleH(0.10); gStyle->SetTitleW(0.60); gStyle->SetStatH(0.70); gStyle->SetStatW(0.35); -// gStyle->SetLabelSize(0.10,"X"); -// gStyle->SetLabelSize(0.10,"Y"); + // gStyle->SetLabelSize(0.10,"X"); + // gStyle->SetLabelSize(0.10,"Y"); gStyle->SetLabelSize(0.05,"X"); gStyle->SetLabelSize(0.05,"Y"); gStyle->SetPadLeftMargin(0.14); @@ -288,13 +298,12 @@ void OnlineGUI::DoDraw() gStyle->SetLabelSize(0.08,"X"); gStyle->SetLabelSize(0.08,"Y"); } -// Int_t dim = Int_t(round(sqrt(double(draw_count)))); + // Int_t dim = Int_t(round(sqrt(double(draw_count)))); pair dim = fConfig->GetPageDim(current_page); -#ifdef DEBUG - cout << "Dimensions: " << dim.first << "X" - << dim.second << endl; -#endif + if(fVerbosity>=1) + cout << "Dimensions: " << dim.first << "X" + << dim.second << endl; // Create a nice clean canvas. fCanvas->Clear(); @@ -391,10 +400,10 @@ Bool_t OnlineGUI::IsHistogram(TString objectname) for(UInt_t i=0; i=2) + cout << fileObjects[i].first << " " + << fileObjects[i].second << endl; + if(fileObjects[i].second.Contains("TH")) return kTRUE; } @@ -409,14 +418,14 @@ void OnlineGUI::GetFileObjects() // Utility to find all of the objects within a File (TTree, TH1F, etc). // The pair stored in the vector is // If there's no good keys.. do nothing. -#ifdef DEBUG - cout << "Keys = " << fRootFile->ReadKeys() << endl; -#endif + if(fVerbosity>=1) + cout << "Keys = " << fRootFile->ReadKeys() << endl; + if(fRootFile->ReadKeys()==0) { fUpdate = kFALSE; -// delete fRootFile; -// fRootFile = 0; -// CheckRootFile(); + // delete fRootFile; + // fRootFile = 0; + // CheckRootFile(); return; } fileObjects.clear(); @@ -425,14 +434,15 @@ void OnlineGUI::GetFileObjects() // Do the search while((key=(TKey*)next())!=0) { -#ifdef DEBUG - cout << "Key = " << key << endl; -#endif + if(fVerbosity>=1) + cout << "Key = " << key << endl; + TString objname = key->GetName(); TString objtype = key->GetClassName(); -#ifdef DEBUG - cout << objname << " " << objtype << endl; -#endif + + if(fVerbosity>=1) + cout << objname << " " << objtype << endl; + fileObjects.push_back(make_pair(objname,objtype)); } fUpdate = kTRUE; @@ -460,14 +470,15 @@ void OnlineGUI::GetTreeVars() } treeVars.push_back(currentTree); } -#ifdef DEBUG2 - for(UInt_t iTree=0; iTree=2){ + for(UInt_t iTree=0; iTree found; for(UInt_t i=0; iGetListOfBranches(); - TIter next(branchList); - TBranch *brc; - - while((brc=(TBranch*)next())!=0) { - TString found = brc->GetName(); - if (found == var) { - return i; - } - } - } -#else + if(fVerbosity>=3) + cout<<__PRETTY_FUNCTION__<<"\t"<<__LINE__<=4) + cout<<"Checking tree "<GetName() + <<" \t var "<> "<=1) + cout<<__PRETTY_FUNCTION__<<"\t"<<__LINE__<=2) + cout<<"\t rtFile: "<GetRootFile()<GetRootFile(),"READ"); if(fRootFile->IsZombie()) { cout << "New run not yet available. Waiting..." << endl; @@ -628,7 +630,7 @@ void OnlineGUI::TimerUpdate() { } // Update the runnumber - //ObtainRunNumber();//FIXME CG + runNumber = fConfig -> GetRunNumber(); if(runNumber != 0) { TString rnBuff = "Run #"; rnBuff += runNumber; @@ -686,7 +688,7 @@ void OnlineGUI::BadDraw(TString errMessage) { pt->SetTextColor(2); pt->AddText(errMessage.Data()); pt->Draw(); -// cout << errMessage << endl; + // cout << errMessage << endl; } @@ -733,7 +735,7 @@ Int_t OnlineGUI::OpenRootFile() { } // Update the runnumber - //ObtainRunNumber();//FIXME cg + runNumber = fConfig->GetRunNumber(); if(runNumber != 0) { TString rnBuff = "Run #"; rnBuff += runNumber; @@ -803,16 +805,16 @@ void OnlineGUI::HistDraw(vector command) { if(mytemp2d->GetEntries()==0) { BadDraw("Empty Histogram"); } else { -// These are commented out for some reason (specific to DVCS?) -// if(showGolden) { -// fGoldenFile->cd(); -// mytemp2d_golden = (TH2D*)gDirectory->Get(command[0]); -// mytemp2d_golden->SetMarkerColor(2); -// mytemp2d_golden->Draw(); - //mytemp2d->Draw("sames"); -// } else { + // These are commented out for some reason (specific to DVCS?) + // if(showGolden) { + // fGoldenFile->cd(); + // mytemp2d_golden = (TH2D*)gDirectory->Get(command[0]); + // mytemp2d_golden->SetMarkerColor(2); + // mytemp2d_golden->Draw(); + //mytemp2d->Draw("sames"); + // } else { mytemp2d->Draw(); -// } + // } } break; } @@ -845,6 +847,18 @@ void OnlineGUI::TreeDraw(vector command) { TString var = command[0]; + // Check to see if we're projecting to a specific histogram + TString histoname = command[0](TRegexp(">>.+(?")); + if (histoname.Length()>0){ + histoname.Remove(0,2); + Int_t bracketindex = histoname.First("("); + if (bracketindex>0) histoname.Remove(bracketindex); + if(fVerbosity>=3) + std::cout << histoname << " "<< command[0](TRegexp(">>.+(?")) < command) { UInt_t iTree; if(command[4].IsNull()) { iTree = GetTreeIndex(var); + if(fVerbosity>=2) + cout<<"got index from variable "<=2) + cout<<"got index from command "<=3) + cout<<"\tDraw option:"<Draw(var,cut,drawopt, - 1000000000,fTreeEntries[iTree]); - TObject *hobj = (TObject*)gROOT->FindObject("htemp"); + if(fVerbosity>=1){ + cout<<__PRETTY_FUNCTION__<<"\t"<<__LINE__<=2) + cout<<"\tProcessing from tree: "<GetTitle()<<"\t" + <GetName()<Draw(var,cut,drawopt); + + TObject *hobj = (TObject*)gROOT->FindObject(histoname); + if(fVerbosity>=3) + cout<<"Finished drawing with error code "<SetTitle(command[3]); + thathist->SetNameTitle(myMD5,command[3]); } } else { BadDraw("Empty Histogram"); @@ -925,7 +965,7 @@ void OnlineGUI::PrintPages() { // a postscript file. (good for making sample histograms). // Open the RootFile - // unless we're watching a file. + // unless we're watching a file. fRootFile = new TFile(fConfig->GetRootFile(),"READ"); if(!fRootFile->IsOpen()) { cout << "ERROR: rootfile: " << fConfig->GetRootFile() @@ -934,8 +974,6 @@ void OnlineGUI::PrintPages() { gApplication->Terminate(); } else { fFileAlive = kTRUE; - //ObtainRunNumber();//FIXME cg - // Open the Root Trees. Give a warning if it's not there.. GetFileObjects(); GetRootTree(); GetTreeVars(); @@ -963,22 +1001,19 @@ void OnlineGUI::PrintPages() { fGoldenFile=NULL; } - // Added this decision to make reasonable aspect ration for web content - // if (confFileName) { - fCanvas = new TCanvas("fCanvas","trythis",1000,800); - // } else { - // I'm not sure exactly how this works. But it does. - // fCanvas = new TCanvas("fCanvas","trythis",850,1100); - // } -// TCanvas *maincanvas = new TCanvas("maincanvas","whatever",850,1100); -// maincanvas->SetCanvas(fCanvas); + fCanvas = new TCanvas("fCanvas","trythis",1000,800); TLatex *lt = new TLatex(); TString plotsdir = fConfig->GetPlotsDir(); - Bool_t useGIF = kFALSE; - if(!plotsdir.IsNull()) useGIF = kTRUE; + if(plotsdir.IsNull()) plotsdir="."; - TString filename = "summaryplots"; + Bool_t pagePrint = kFALSE; + TString printFormat = fConfig->GetPlotFormat(); + if(printFormat.IsNull()) printFormat="pdf"; + if(printFormat!="pdf") pagePrint = kTRUE; + + TString filename = "summaryPlots"; + runNumber = fConfig->GetRunNumber(); if(runNumber!=0) { filename += "_"; filename += runNumber; @@ -986,11 +1021,13 @@ void OnlineGUI::PrintPages() { printf(" Warning for pretty plots: runNumber = %i\n",runNumber); } - if(useGIF) { - filename.Prepend(plotsdir+"/"); - filename += "_pageXXXX.gif"; - } - else filename += ".pdf"; + filename.Prepend(plotsdir+"/"); + if(pagePrint) + filename += "_pageXXXX"; + TString fConfName = fConfig->GetConfFileName(); + TString fCfgNm = fConfName(fConfName.Last('/')+1,fConfName.Length()); + filename += "_" + fCfgNm(0,fCfgNm.Last('.')); + filename += "."+printFormat; TString pagehead = "Summary Plots"; if(runNumber!=0) { @@ -1006,7 +1043,7 @@ void OnlineGUI::PrintPages() { gStyle->SetPadBorderMode(0); gStyle->SetHistLineColor(1); gStyle->SetHistFillColor(1); - if(!useGIF) fCanvas->Print(filename+"["); + if(!pagePrint) fCanvas->Print(filename+"["); TString origFilename = filename; for(UInt_t i=0; iGetPageCount(); i++) { current_page=i; @@ -1018,7 +1055,7 @@ void OnlineGUI::PrintPages() { pagename += fConfig->GetPageTitle(current_page); lt->SetTextSize(0.025); lt->DrawLatex(0.05,0.98,pagename); - if(useGIF) { + if(pagePrint) { filename = origFilename; filename.ReplaceAll("XXXX",Form("%02d",current_page)); cout << "Printing page " << current_page @@ -1026,7 +1063,7 @@ void OnlineGUI::PrintPages() { } fCanvas->Print(filename); } - if(!useGIF) fCanvas->Print(filename+"]"); + if(!pagePrint) fCanvas->Print(filename+"]"); gApplication->Terminate(); } diff --git a/panguin/src/panguinOnlineConfig.cc b/panguin/src/panguinOnlineConfig.cc index 827fbe72d..051a430c9 100644 --- a/panguin/src/panguinOnlineConfig.cc +++ b/panguin/src/panguinOnlineConfig.cc @@ -5,33 +5,28 @@ #include #include #include -//#define DEBUG -//#define DEBUG2 -//#define NOISY -//#define OLDTIMERUPDATE +#include using namespace std; -/////////////////////////////////////////////////////////////////// -// Class: OnlineConfig -// -// Utility class that reads in a text file (.cfg) and -// stores it's contents. -// - OnlineConfig::OnlineConfig() + :hist2D_nBinsX(0),hist2D_nBinsY(0), + fPlotFormat(""),fRunNumber(0) { // Constructor. Without an argument, will use default "standard" config fMonitor = kFALSE; + fVerbosity = 0; OnlineConfig("standard"); } -OnlineConfig::OnlineConfig(TString anatype) +OnlineConfig::OnlineConfig(TString anatype): + confFileName(anatype),fVerbosity(0), + hist2D_nBinsX(0),hist2D_nBinsY(0), + fPlotFormat(""),fRunNumber(0) { // Constructor. Takes the config anatype as the only argument. // Loads up the configuration file, and stores it's contents for access. - confFileName = anatype; //confFileName += ".cfg";//Not sure what this would be needed DELETEME cg fMonitor = kFALSE; fFoundCfg = kFALSE; @@ -94,15 +89,15 @@ void OnlineConfig::ParseFile() sConfFile.push_back(strvect); } -#ifdef DEBUG - cout << "OnlineConfig::ParseFile()\n"; - for(UInt_t ii=0; ii=1){ + cout << "OnlineConfig::ParseFile()\n"; + for(UInt_t ii=0; ii3) { cerr << "cut command has too many arguments" << endl; continue; } TCut tempCut(sConfFile[i][1],sConfFile[i][2]); - // cutList.push_back(make_pair(sConfFile[i][1],sConfFile[i][2])); cutList.push_back(tempCut); } if(sConfFile[i][0] == "rootfile") { @@ -161,6 +161,8 @@ Bool_t OnlineConfig::ParseConfig() continue; } rootfilename = sConfFile[i][1]; + TString temp = sConfFile[i][1](sConfFile[i][1].Last('_')+1,sConfFile[i][1].Length()); + fRunNumber = atoi(temp(0,temp.Last('.')).Data()); } if(sConfFile[i][0] == "goldenrootfile") { if(sConfFile[i].size() != 2) { @@ -222,17 +224,26 @@ Bool_t OnlineConfig::ParseConfig() } plotsdir = sConfFile[i][1]; } + if(sConfFile[i][0] == "plotFormat") { + if(sConfFile[i].size() != 2) { + cerr << "WARNING: plotsdir command does not have the " + << "correct number of arguments (needs 1)" + << endl; + continue; + } + fPlotFormat = sConfFile[i][1]; + } } -#ifdef NOISY - cout << "OnlineConfig::ParseConfig()\n"; - for(UInt_t i=0; i=3){ + cout << "OnlineConfig::ParseConfig()\n"; + for(UInt_t i=0; i=1){ + cout << "OnlineConfig::IsLogy() " << option << " " << page_index << " " << word_index + << " " << sConfFile[page_index].size() << endl; + for (Int_t i= 0; i < sConfFile[page_index].size(); i++) { + cout << sConfFile[page_index][i] << " "; + } } -#endif + return kFALSE; } @@ -404,19 +416,21 @@ vector OnlineConfig::GetDrawCommand(UInt_t page, UInt_t nCommand) vector command_vector = GetDrawIndex(page); UInt_t index = command_vector[nCommand]; -#ifdef DEBUG - cout << "OnlineConfig::GetDrawCommand(" << page << "," - << nCommand << ")" << endl; -#endif + if(fVerbosity > 1){ + cout<<__PRETTY_FUNCTION__<<"\t"<<__LINE__<=1) { out_command[0] = sConfFile[index][0]; } + if(sConfFile[index].size()>=2) { if((sConfFile[index][1] != "-type") && (sConfFile[index][1] != "-title") && @@ -437,39 +451,42 @@ vector OnlineConfig::GetDrawCommand(UInt_t page, UInt_t nCommand) TString word = sConfFile[index][j]; if( (word.BeginsWith("\"")) && (word.EndsWith("\"")) ) { title = word.ReplaceAll("\"",""); - out_command[3] = title; i = j; break; } else if(word.BeginsWith("\"")) { title = word.ReplaceAll("\"",""); } else if(word.EndsWith("\"")) { title += " " + word.ReplaceAll("\"",""); - out_command[3] = title; i = j; break; + } else if (title.Length()==0){ + title = word; } else { + // This case uses neither "i = j;" or "break;", because + // we want to be able to include all the words in the title. + // The title will end before the end of the line only if + // it is delimited by quotes. title += " " + word; } } + out_command[3] = title; } else if(sConfFile[index][i]=="-tree") { out_command[4] = sConfFile[index][i+1]; i = i+1; } + } -#ifdef DEBUG + if(fVerbosity>=1){ + cout << sConfFile[index].size() << ": "; + for(UInt_t i=0; id_name; + if(fullname.find(partialname) != std::string::npos){ + rootfilename = fnmRoot + "/" + fullname; + found++; + } + } + if(found) break; } + closedir (dirSearch); } - if(found) + + if(found){ cout<<"\t found file "<< rootfilename< +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char** argv) +{ + gROOT->Reset(); + + // Create a new canvas and 3 pads + TCanvas *c1; + TPad *pad1, *pad2, *pad3; + if (!gROOT->IsBatch()) { + c1 = new TCanvas("c1","Shared Memory Consumer Example",200,10,700,780); + pad1 = new TPad("pad1","This is pad1",0.02,0.52,0.98,0.98,21); + pad2 = new TPad("pad2","This is pad2",0.02,0.02,0.48,0.48,21); + pad3 = new TPad("pad3","This is pad3",0.52,0.02,0.98,0.48,21); + pad1->Draw(); + pad2->Draw(); + pad3->Draw(); + } + + // Open the memory mapped file "hsimple.map" in "READ" (default) mode. + TMapFile* mfile = TMapFile::Create("hsimple.map"); + + // Print status of mapped file and list its contents + mfile->Print(); + mfile->ls(); + + // Create pointers to the objects in shared memory. + TH1F *hpx = 0; + TH2F *hpxpy = 0; + TProfile *hprof = 0; + + // Loop displaying the histograms. Once the producer stops this + // script will break out of the loop. + Double_t oldentries = 0; + while (1) { + hpx = (TH1F *) mfile->Get("hpx", hpx); + hpxpy = (TH2F *) mfile->Get("hpxpy", hpxpy); + hprof = (TProfile *) mfile->Get("hprof", hprof); + if (hpx->GetEntries() == oldentries) break; + oldentries = hpx->GetEntries(); + if (!gROOT->IsBatch()) { + pad1->cd(); + hpx->Draw(); + pad2->cd(); + hprof->Draw(); + pad3->cd(); + hpxpy->Draw("cont"); + c1->Modified(); + c1->Update(); + } else { + printf("Entries, hpx=%g, Mean=%g, RMS=%g\n",hpx->GetEntries(),hpx->GetMean(),hpx->GetRMS()); + } + gSystem->Sleep(100); // sleep for 0.1 seconds + if (gSystem->ProcessEvents()) + break; + } +} diff --git a/rootScripts/mapfile/hprod.C b/rootScripts/mapfile/hprod.C new file mode 100644 index 000000000..84cd0d99d --- /dev/null +++ b/rootScripts/mapfile/hprod.C @@ -0,0 +1,66 @@ +/// \file +/// \ingroup tutorial_net +/// Histogram producer script. This script creates a memory mapped +/// file and stores three histogram objects in it (a TH1F, a TH2F and a +/// TProfile). It then fills, in an infinite loop (so use ctrl-c to +/// stop this script), the three histogram objects with random numbers. +/// Every 10 fills the objects are updated in shared memory. +/// Use the hcons.C script to map this file and display the histograms. +/// +/// \macro_code +/// +/// \author Fons Rademakers + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char** argv) +{ + gROOT->Reset(); + + // Create a new memory mapped file. The memory mapped file can be + // opened in an other process on the same machine and the objects + // stored in it can be accessed. + TStorage::PrintStatistics(); + + TMapFile::SetMapAddress(0xb46a5000); + TMapFile* mfile = TMapFile::Create("hsimple.map","RECREATE", 1000000, + "Demo memory mapped file with histograms"); + + // Create a 1d, a 2d and a profile histogram. These objects will + // be automatically added to the current directory, i.e. mfile. + TH1F* hpx = new TH1F("hpx","This is the px distribution",100,-4,4); + TH2F* hpxpy = new TH2F("hpxpy","py vs px",40,-4,4,40,-4,4); + TProfile* hprof = new TProfile("hprof","Profile of pz versus px",100,-4,4,0,20); + + // Set a fill color for the TH1F + hpx->SetFillColor(48); + + // Print status of mapped file + mfile->Print(); + + // Endless loop filling histograms with random numbers + Float_t px, py, pz; + int ii = 0; + while (1) { + gRandom->Rannor(px,py); + pz = px*px + py*py; + hpx->Fill(px); + hpxpy->Fill(px,py); + hprof->Fill(px,pz); + if (!(ii % 10)) { + mfile->Update(); // updates all objects in shared memory + if (!ii) mfile->ls(); // print contents of mapped file after + } // first update + ii++; + } +} diff --git a/rootScripts/mapfile/qwcons.C b/rootScripts/mapfile/qwcons.C new file mode 100644 index 000000000..ee10859c3 --- /dev/null +++ b/rootScripts/mapfile/qwcons.C @@ -0,0 +1,62 @@ +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char** argv) +{ + gROOT->Reset(); + + // Create a new canvas and 3 pads + TCanvas *c1; + TPad *pad1, *pad2; + if (!gROOT->IsBatch()) { + c1 = new TCanvas("c1","Shared Memory Consumer Example",200,10,700,780); + pad1 = new TPad("pad1","This is pad1",0.02,0.52,0.98,0.98,21); + pad2 = new TPad("pad2","This is pad2",0.02,0.02,0.48,0.48,21); + pad1->Draw(); + pad2->Draw(); + } + + // Open the memory mapped file "hsimple.map" in "READ" (default) mode. + TMapFile* mfile = 0; + while (mfile == 0) { + mfile = TMapFile::Create("/dev/shm//QwMemMapFile.map"); + if (mfile->IsZombie()) { + delete mfile; + mfile = 0; + } + gSystem->Sleep(1000); // sleep for 1 seconds + } + + // Print status of mapped file and list its contents + mfile->Print(); + mfile->ls(); + + // Create pointers to the objects in shared memory. + TTree *mps = 0; + TTree *hel = 0; + + // Loop displaying the histograms. Once the producer stops this + // script will break out of the loop. + while (1) { + mps = (TTree *) mfile->Get("Mps_Tree", mps); + hel = (TTree *) mfile->Get("Hel_Tree", hel); + if (!gROOT->IsBatch()) { + pad1->cd(); + mps->Draw("CodaEventNumber"); + pad2->cd(); + hel->Draw("CodaEventNumber"); + c1->Modified(); + c1->Update(); + } else { + printf("Entries, mps=%lld, hel=%lld\n",mps->GetEntries(),hel->GetEntries()); + } + gSystem->Sleep(1000); // sleep for 1 seconds + if (gSystem->ProcessEvents()) + break; + } +}