Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:56:25

0001 #include "Alignment/LaserAlignment/interface/LASGlobalLoop.h"
0002 #include "DataFormats/Common/interface/DetSetVector.h"
0003 #include "DataFormats/SiStripCommon/interface/SiStripEventSummary.h"
0004 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h"
0005 #include "DataFormats/SiStripDigi/interface/SiStripProcessedRawDigi.h"
0006 #include "DataFormats/SiStripDigi/interface/SiStripRawDigi.h"
0007 #include "FWCore/Framework/interface/EventSetup.h"
0008 #include "FWCore/Framework/interface/EventSetupRecord.h"
0009 #include "FWCore/Framework/interface/MakerMacros.h"
0010 
0011 #include "TFile.h"
0012 #include "TTree.h"
0013 
0014 #include "RawDataConverter.h"
0015 
0016 ///
0017 /// constructors and destructor
0018 ///
0019 RawDataConverter::RawDataConverter(const edm::ParameterSet& iConfig)
0020     : theOutputFile(nullptr),
0021       theOutputTree(nullptr),
0022       latency(-1),
0023       eventnumber(-1),
0024       runnumber(-1),
0025       lumiBlock(-1)
0026 
0027 {
0028   theOutputFile = new TFile(iConfig.getUntrackedParameter<std::string>("OutputFileName").c_str(), "RECREATE");
0029   theOutputFile->cd();
0030   theOutputTree = new TTree("lasRawDataTree", "lasRawDataTree");
0031   theOutputTree->Branch("lasRawData", &theData);
0032   theOutputTree->Branch("latency", &latency, "latency/I");
0033   theOutputTree->Branch("eventnumber", &eventnumber, "eventnumber/I");
0034   theOutputTree->Branch("runnumber", &runnumber, "runnumber/I");
0035   theOutputTree->Branch("lumiblock", &lumiBlock, "lumiblock/I");
0036 
0037   theDigiModuleLabels = iConfig.getParameter<std::vector<std::string> >("DigiModuleLabels");
0038   theProductInstanceLabels = iConfig.getParameter<std::vector<std::string> >("ProductInstanceLabels");
0039 }
0040 
0041 ///
0042 ///
0043 ///
0044 void RawDataConverter::beginJob() { fillDetectorId(); }
0045 
0046 ///
0047 ///
0048 ///
0049 void RawDataConverter::beginRun(edm::Run const& theRun, edm::EventSetup const& theEventSetup) {
0050   std::vector<edm::eventsetup::EventSetupRecordKey> oToFill;
0051   theEventSetup.fillAvailableRecordKeys(oToFill);
0052   std::ostringstream o;
0053   for (std::vector<edm::eventsetup::EventSetupRecordKey>::size_type i = 0; i < oToFill.size(); i++) {
0054     o << oToFill[i].name() << "\n";
0055   }
0056   LogDebug("RawDataConverter") << "The size of EventSetup is: " << oToFill.size() << "\n" << o.str();
0057 }
0058 
0059 RawDataConverter::DigiType RawDataConverter::GetValidLabels(
0060     const edm::Event& iEvent)  // Check what kind of file is being processed and get valid module and instance labels
0061 {
0062   // Clear the current labels
0063   CurrentModuleLabel = "";
0064   CurrentInstanceLabel = "";
0065 
0066   //Create handles for testing
0067   edm::Handle<edm::DetSetVector<SiStripDigi> > theStripDigis;
0068   edm::Handle<edm::DetSetVector<SiStripRawDigi> > theStripRawDigis;
0069   edm::Handle<edm::DetSetVector<SiStripProcessedRawDigi> > theStripProcessedRawDigis;
0070 
0071   // Create stream foer debug message
0072   std::ostringstream search_message;
0073   search_message << "Searching for SiStripDigis\n";
0074   // Loop through Module and instance labels that were defined in the configuration
0075   for (std::vector<std::string>::iterator moduleLabel = theDigiModuleLabels.begin();
0076        moduleLabel != theDigiModuleLabels.end();
0077        ++moduleLabel) {
0078     for (std::vector<std::string>::iterator instanceLabel = theProductInstanceLabels.begin();
0079          instanceLabel != theProductInstanceLabels.end();
0080          ++instanceLabel) {
0081       search_message << "Checking for Module " << *moduleLabel << " Instance " << *instanceLabel << "\n";
0082 
0083       //First try ZeroSuppressed Digis
0084       iEvent.getByLabel(*moduleLabel, *instanceLabel, theStripDigis);
0085       if (theStripDigis.isValid()) {
0086         search_message << "Found ZeroSuppressed\n";
0087         edm::LogInfo("RawDataConverter") << search_message.str();
0088         CurrentModuleLabel = *moduleLabel;
0089         CurrentInstanceLabel = *instanceLabel;
0090         return ZeroSuppressed;
0091       }
0092 
0093       // Next try VirginRaw Digis
0094       iEvent.getByLabel(*moduleLabel, *instanceLabel, theStripRawDigis);
0095       if (theStripRawDigis.isValid()) {
0096         search_message << "Found Raw\n";
0097         edm::LogInfo("RawDataConverter") << search_message.str();
0098         CurrentModuleLabel = *moduleLabel;
0099         CurrentInstanceLabel = *instanceLabel;
0100         return VirginRaw;
0101       }
0102 
0103       // Next try ProcessedRaw Digis
0104       iEvent.getByLabel(*moduleLabel, *instanceLabel, theStripProcessedRawDigis);
0105       if (theStripProcessedRawDigis.isValid()) {
0106         search_message << "Found ProcessedRaw\n";
0107         edm::LogInfo("RawDataConverter") << search_message.str();
0108         CurrentModuleLabel = *moduleLabel;
0109         CurrentInstanceLabel = *instanceLabel;
0110         return ProcessedRaw;
0111       }
0112     }
0113   }
0114   return Unknown;
0115 }
0116 
0117 ///
0118 ///
0119 ///
0120 void RawDataConverter::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0121   // Determine the digi type to be used (only for the first time this methosd is called)
0122   static DigiType digitype = Unknown;  // Type of digis in this run
0123   if (digitype == Unknown)
0124     digitype = GetValidLabels(iEvent);  // Initialization of Digi Type
0125 
0126   //////////////////////////////////////////////////////////
0127   // Retrieve SiStripEventSummary produced by the digitizer
0128   //////////////////////////////////////////////////////////
0129   edm::Handle<SiStripEventSummary> summary;
0130   //iEvent.getByLabel( digiProducer, summary );
0131   iEvent.getByLabel("siStripDigis", summary);
0132   latency = static_cast<int32_t>(summary->latency());
0133   eventnumber = iEvent.id().event();
0134   runnumber = iEvent.run();
0135   lumiBlock = iEvent.luminosityBlock();
0136   //edm::LogAbsolute("RawdataConverter") << " > run: " << runnumber << " event: " << eventnumber << " lumiBlock: " << lumiBlock << " latency: " << latency << std::endl;
0137 
0138   ///////////////////////////////////////////////////////////
0139   // Handles for holding possible Digis
0140   edm::Handle<edm::DetSetVector<SiStripRawDigi> > theStripRawDigis;
0141   edm::Handle<edm::DetSetVector<SiStripProcessedRawDigi> > theStripProcessedRawDigis;
0142 
0143   // Get the Digis as definef by digitype
0144   // Currently only ZeroSuppressed is implemented properly
0145   switch (digitype) {
0146     case ZeroSuppressed:
0147       GetDigis<SiStripDigi>(iEvent);
0148       break;
0149     case VirginRaw:
0150       throw std::runtime_error("RawDataConverter is not yet able to process VirginRaw Data");
0151       break;
0152     case ProcessedRaw:
0153       throw std::runtime_error("RawDataConverter is not yet able to process ProcessedRaw Data");
0154       break;
0155     default:
0156       throw std::runtime_error("Did not find valid Module or Instance label");
0157   }
0158 
0159   // Push Container into the Tree
0160   theOutputTree->Fill();
0161 
0162   return;
0163 }
0164 
0165 ///
0166 ///
0167 ///
0168 void RawDataConverter::endJob() {
0169   theOutputFile->Write();
0170   theOutputFile->Close();
0171 }
0172 
0173 ///
0174 /// set all strips to zero
0175 ///
0176 void RawDataConverter::ClearData(void) {
0177   // Assign a vector filled with zeros to all module entries
0178   // The vector is const static to increase performance
0179   // Even more performant would be to have a complete data object that is filled with zero
0180 
0181   // Empty object to be assigned to all modules
0182   static const std::vector<float> zero_buffer(512, 0);
0183 
0184   // loop helper and its variables
0185   LASGlobalLoop loop;
0186   int det, ring, beam, disk, pos;
0187 
0188   // loop TEC+- (internal)
0189   det = 0;
0190   ring = 0;
0191   beam = 0;
0192   disk = 0;
0193   do {
0194     theData.GetTECEntry(det, ring, beam, disk) = zero_buffer;
0195   } while (loop.TECLoop(det, ring, beam, disk));
0196 
0197   // loop TIB/TOB
0198   det = 2;
0199   beam = 0;
0200   pos = 0;  // <- set det = 2 (TIB)
0201   do {
0202     theData.GetTIBTOBEntry(det, beam, pos) = zero_buffer;
0203   } while (loop.TIBTOBLoop(det, beam, pos));
0204 
0205   // loop TEC (AT)
0206   det = 0;
0207   beam = 0;
0208   disk = 0;
0209   do {
0210     theData.GetTEC2TECEntry(det, beam, disk) = zero_buffer;
0211   } while (loop.TEC2TECLoop(det, beam, disk));
0212 }
0213 
0214 ///
0215 /// all the detector ids for the LAS modules hard-coded (this should be changed...)
0216 ///
0217 void RawDataConverter::fillDetectorId(void) {
0218   // TEC+
0219   detectorId.SetTECEntry(0, 0, 0, 0, 470307208);
0220   detectorId.SetTECEntry(0, 0, 0, 1, 470323592);
0221   detectorId.SetTECEntry(0, 0, 0, 2, 470339976);
0222   detectorId.SetTECEntry(0, 0, 0, 3, 470356360);
0223   detectorId.SetTECEntry(0, 0, 0, 4, 470372744);
0224   detectorId.SetTECEntry(0, 0, 0, 5, 470389128);
0225   detectorId.SetTECEntry(0, 0, 0, 6, 470405512);
0226   detectorId.SetTECEntry(0, 0, 0, 7, 470421896);
0227   detectorId.SetTECEntry(0, 0, 0, 8, 470438280);
0228   detectorId.SetTECEntry(0, 0, 1, 0, 470307464);
0229   detectorId.SetTECEntry(0, 0, 1, 1, 470323848);
0230   detectorId.SetTECEntry(0, 0, 1, 2, 470340232);
0231   detectorId.SetTECEntry(0, 0, 1, 3, 470356616);
0232   detectorId.SetTECEntry(0, 0, 1, 4, 470373000);
0233   detectorId.SetTECEntry(0, 0, 1, 5, 470389384);
0234   detectorId.SetTECEntry(0, 0, 1, 6, 470405768);
0235   detectorId.SetTECEntry(0, 0, 1, 7, 470422152);
0236   detectorId.SetTECEntry(0, 0, 1, 8, 470438536);
0237   detectorId.SetTECEntry(0, 0, 2, 0, 470307720);
0238   detectorId.SetTECEntry(0, 0, 2, 1, 470324104);
0239   detectorId.SetTECEntry(0, 0, 2, 2, 470340488);
0240   detectorId.SetTECEntry(0, 0, 2, 3, 470356872);
0241   detectorId.SetTECEntry(0, 0, 2, 4, 470373256);
0242   detectorId.SetTECEntry(0, 0, 2, 5, 470389640);
0243   detectorId.SetTECEntry(0, 0, 2, 6, 470406024);
0244   detectorId.SetTECEntry(0, 0, 2, 7, 470422408);
0245   detectorId.SetTECEntry(0, 0, 2, 8, 470438792);
0246   detectorId.SetTECEntry(0, 0, 3, 0, 470307976);
0247   detectorId.SetTECEntry(0, 0, 3, 1, 470324360);
0248   detectorId.SetTECEntry(0, 0, 3, 2, 470340744);
0249   detectorId.SetTECEntry(0, 0, 3, 3, 470357128);
0250   detectorId.SetTECEntry(0, 0, 3, 4, 470373512);
0251   detectorId.SetTECEntry(0, 0, 3, 5, 470389896);
0252   detectorId.SetTECEntry(0, 0, 3, 6, 470406280);
0253   detectorId.SetTECEntry(0, 0, 3, 7, 470422664);
0254   detectorId.SetTECEntry(0, 0, 3, 8, 470439048);
0255   detectorId.SetTECEntry(0, 0, 4, 0, 470308232);
0256   detectorId.SetTECEntry(0, 0, 4, 1, 470324616);
0257   detectorId.SetTECEntry(0, 0, 4, 2, 470341000);
0258   detectorId.SetTECEntry(0, 0, 4, 3, 470357384);
0259   detectorId.SetTECEntry(0, 0, 4, 4, 470373768);
0260   detectorId.SetTECEntry(0, 0, 4, 5, 470390152);
0261   detectorId.SetTECEntry(0, 0, 4, 6, 470406536);
0262   detectorId.SetTECEntry(0, 0, 4, 7, 470422920);
0263   detectorId.SetTECEntry(0, 0, 4, 8, 470439304);
0264   detectorId.SetTECEntry(0, 0, 5, 0, 470308488);
0265   detectorId.SetTECEntry(0, 0, 5, 1, 470324872);
0266   detectorId.SetTECEntry(0, 0, 5, 2, 470341256);
0267   detectorId.SetTECEntry(0, 0, 5, 3, 470357640);
0268   detectorId.SetTECEntry(0, 0, 5, 4, 470374024);
0269   detectorId.SetTECEntry(0, 0, 5, 5, 470390408);
0270   detectorId.SetTECEntry(0, 0, 5, 6, 470406792);
0271   detectorId.SetTECEntry(0, 0, 5, 7, 470423176);
0272   detectorId.SetTECEntry(0, 0, 5, 8, 470439560);
0273   detectorId.SetTECEntry(0, 0, 6, 0, 470308744);
0274   detectorId.SetTECEntry(0, 0, 6, 1, 470325128);
0275   detectorId.SetTECEntry(0, 0, 6, 2, 470341512);
0276   detectorId.SetTECEntry(0, 0, 6, 3, 470357896);
0277   detectorId.SetTECEntry(0, 0, 6, 4, 470374280);
0278   detectorId.SetTECEntry(0, 0, 6, 5, 470390664);
0279   detectorId.SetTECEntry(0, 0, 6, 6, 470407048);
0280   detectorId.SetTECEntry(0, 0, 6, 7, 470423432);
0281   detectorId.SetTECEntry(0, 0, 6, 8, 470439816);
0282   detectorId.SetTECEntry(0, 0, 7, 0, 470309000);
0283   detectorId.SetTECEntry(0, 0, 7, 1, 470325384);
0284   detectorId.SetTECEntry(0, 0, 7, 2, 470341768);
0285   detectorId.SetTECEntry(0, 0, 7, 3, 470358152);
0286   detectorId.SetTECEntry(0, 0, 7, 4, 470374536);
0287   detectorId.SetTECEntry(0, 0, 7, 5, 470390920);
0288   detectorId.SetTECEntry(0, 0, 7, 6, 470407304);
0289   detectorId.SetTECEntry(0, 0, 7, 7, 470423688);
0290   detectorId.SetTECEntry(0, 0, 7, 8, 470440072);
0291   detectorId.SetTECEntry(0, 1, 0, 0, 470307272);
0292   detectorId.SetTECEntry(0, 1, 0, 1, 470323656);
0293   detectorId.SetTECEntry(0, 1, 0, 2, 470340040);
0294   detectorId.SetTECEntry(0, 1, 0, 3, 470356424);
0295   detectorId.SetTECEntry(0, 1, 0, 4, 470372808);
0296   detectorId.SetTECEntry(0, 1, 0, 5, 470389192);
0297   detectorId.SetTECEntry(0, 1, 0, 6, 470405576);
0298   detectorId.SetTECEntry(0, 1, 0, 7, 470421960);
0299   detectorId.SetTECEntry(0, 1, 0, 8, 470438344);
0300   detectorId.SetTECEntry(0, 1, 1, 0, 470307528);
0301   detectorId.SetTECEntry(0, 1, 1, 1, 470323912);
0302   detectorId.SetTECEntry(0, 1, 1, 2, 470340296);
0303   detectorId.SetTECEntry(0, 1, 1, 3, 470356680);
0304   detectorId.SetTECEntry(0, 1, 1, 4, 470373064);
0305   detectorId.SetTECEntry(0, 1, 1, 5, 470389448);
0306   detectorId.SetTECEntry(0, 1, 1, 6, 470405832);
0307   detectorId.SetTECEntry(0, 1, 1, 7, 470422216);
0308   detectorId.SetTECEntry(0, 1, 1, 8, 470438600);
0309   detectorId.SetTECEntry(0, 1, 2, 0, 470307784);
0310   detectorId.SetTECEntry(0, 1, 2, 1, 470324168);
0311   detectorId.SetTECEntry(0, 1, 2, 2, 470340552);
0312   detectorId.SetTECEntry(0, 1, 2, 3, 470356936);
0313   detectorId.SetTECEntry(0, 1, 2, 4, 470373320);
0314   detectorId.SetTECEntry(0, 1, 2, 5, 470389704);
0315   detectorId.SetTECEntry(0, 1, 2, 6, 470406088);
0316   detectorId.SetTECEntry(0, 1, 2, 7, 470422472);
0317   detectorId.SetTECEntry(0, 1, 2, 8, 470438856);
0318   detectorId.SetTECEntry(0, 1, 3, 0, 470308040);
0319   detectorId.SetTECEntry(0, 1, 3, 1, 470324424);
0320   detectorId.SetTECEntry(0, 1, 3, 2, 470340808);
0321   detectorId.SetTECEntry(0, 1, 3, 3, 470357192);
0322   detectorId.SetTECEntry(0, 1, 3, 4, 470373576);
0323   detectorId.SetTECEntry(0, 1, 3, 5, 470389960);
0324   detectorId.SetTECEntry(0, 1, 3, 6, 470406344);
0325   detectorId.SetTECEntry(0, 1, 3, 7, 470422728);
0326   detectorId.SetTECEntry(0, 1, 3, 8, 470439112);
0327   detectorId.SetTECEntry(0, 1, 4, 0, 470308296);
0328   detectorId.SetTECEntry(0, 1, 4, 1, 470324680);
0329   detectorId.SetTECEntry(0, 1, 4, 2, 470341064);
0330   detectorId.SetTECEntry(0, 1, 4, 3, 470357448);
0331   detectorId.SetTECEntry(0, 1, 4, 4, 470373832);
0332   detectorId.SetTECEntry(0, 1, 4, 5, 470390216);
0333   detectorId.SetTECEntry(0, 1, 4, 6, 470406600);
0334   detectorId.SetTECEntry(0, 1, 4, 7, 470422984);
0335   detectorId.SetTECEntry(0, 1, 4, 8, 470439368);
0336   detectorId.SetTECEntry(0, 1, 5, 0, 470308552);
0337   detectorId.SetTECEntry(0, 1, 5, 1, 470324936);
0338   detectorId.SetTECEntry(0, 1, 5, 2, 470341320);
0339   detectorId.SetTECEntry(0, 1, 5, 3, 470357704);
0340   detectorId.SetTECEntry(0, 1, 5, 4, 470374088);
0341   detectorId.SetTECEntry(0, 1, 5, 5, 470390472);
0342   detectorId.SetTECEntry(0, 1, 5, 6, 470406856);
0343   detectorId.SetTECEntry(0, 1, 5, 7, 470423240);
0344   detectorId.SetTECEntry(0, 1, 5, 8, 470439624);
0345   detectorId.SetTECEntry(0, 1, 6, 0, 470308808);
0346   detectorId.SetTECEntry(0, 1, 6, 1, 470325192);
0347   detectorId.SetTECEntry(0, 1, 6, 2, 470341576);
0348   detectorId.SetTECEntry(0, 1, 6, 3, 470357960);
0349   detectorId.SetTECEntry(0, 1, 6, 4, 470374344);
0350   detectorId.SetTECEntry(0, 1, 6, 5, 470390728);
0351   detectorId.SetTECEntry(0, 1, 6, 6, 470407112);
0352   detectorId.SetTECEntry(0, 1, 6, 7, 470423496);
0353   detectorId.SetTECEntry(0, 1, 6, 8, 470439880);
0354   detectorId.SetTECEntry(0, 1, 7, 0, 470309064);
0355   detectorId.SetTECEntry(0, 1, 7, 1, 470325448);
0356   detectorId.SetTECEntry(0, 1, 7, 2, 470341832);
0357   detectorId.SetTECEntry(0, 1, 7, 3, 470358216);
0358   detectorId.SetTECEntry(0, 1, 7, 4, 470374600);
0359   detectorId.SetTECEntry(0, 1, 7, 5, 470390984);
0360   detectorId.SetTECEntry(0, 1, 7, 6, 470407368);
0361   detectorId.SetTECEntry(0, 1, 7, 7, 470423752);
0362   detectorId.SetTECEntry(0, 1, 7, 8, 470440136);
0363 
0364   // TEC-
0365   detectorId.SetTECEntry(1, 0, 0, 0, 470045064);
0366   detectorId.SetTECEntry(1, 0, 0, 1, 470061448);
0367   detectorId.SetTECEntry(1, 0, 0, 2, 470077832);
0368   detectorId.SetTECEntry(1, 0, 0, 3, 470094216);
0369   detectorId.SetTECEntry(1, 0, 0, 4, 470110600);
0370   detectorId.SetTECEntry(1, 0, 0, 5, 470126984);
0371   detectorId.SetTECEntry(1, 0, 0, 6, 470143368);
0372   detectorId.SetTECEntry(1, 0, 0, 7, 470159752);
0373   detectorId.SetTECEntry(1, 0, 0, 8, 470176136);
0374   detectorId.SetTECEntry(1, 0, 1, 0, 470045320);
0375   detectorId.SetTECEntry(1, 0, 1, 1, 470061704);
0376   detectorId.SetTECEntry(1, 0, 1, 2, 470078088);
0377   detectorId.SetTECEntry(1, 0, 1, 3, 470094472);
0378   detectorId.SetTECEntry(1, 0, 1, 4, 470110856);
0379   detectorId.SetTECEntry(1, 0, 1, 5, 470127240);
0380   detectorId.SetTECEntry(1, 0, 1, 6, 470143624);
0381   detectorId.SetTECEntry(1, 0, 1, 7, 470160008);
0382   detectorId.SetTECEntry(1, 0, 1, 8, 470176392);
0383   detectorId.SetTECEntry(1, 0, 2, 0, 470045576);
0384   detectorId.SetTECEntry(1, 0, 2, 1, 470061960);
0385   detectorId.SetTECEntry(1, 0, 2, 2, 470078344);
0386   detectorId.SetTECEntry(1, 0, 2, 3, 470094728);
0387   detectorId.SetTECEntry(1, 0, 2, 4, 470111112);
0388   detectorId.SetTECEntry(1, 0, 2, 5, 470127496);
0389   detectorId.SetTECEntry(1, 0, 2, 6, 470143880);
0390   detectorId.SetTECEntry(1, 0, 2, 7, 470160264);
0391   detectorId.SetTECEntry(1, 0, 2, 8, 470176648);
0392   detectorId.SetTECEntry(1, 0, 3, 0, 470045832);
0393   detectorId.SetTECEntry(1, 0, 3, 1, 470062216);
0394   detectorId.SetTECEntry(1, 0, 3, 2, 470078600);
0395   detectorId.SetTECEntry(1, 0, 3, 3, 470094984);
0396   detectorId.SetTECEntry(1, 0, 3, 4, 470111368);
0397   detectorId.SetTECEntry(1, 0, 3, 5, 470127752);
0398   detectorId.SetTECEntry(1, 0, 3, 6, 470144136);
0399   detectorId.SetTECEntry(1, 0, 3, 7, 470160520);
0400   detectorId.SetTECEntry(1, 0, 3, 8, 470176904);
0401   detectorId.SetTECEntry(1, 0, 4, 0, 470046088);
0402   detectorId.SetTECEntry(1, 0, 4, 1, 470062472);
0403   detectorId.SetTECEntry(1, 0, 4, 2, 470078856);
0404   detectorId.SetTECEntry(1, 0, 4, 3, 470095240);
0405   detectorId.SetTECEntry(1, 0, 4, 4, 470111624);
0406   detectorId.SetTECEntry(1, 0, 4, 5, 470128008);
0407   detectorId.SetTECEntry(1, 0, 4, 6, 470144392);
0408   detectorId.SetTECEntry(1, 0, 4, 7, 470160776);
0409   detectorId.SetTECEntry(1, 0, 4, 8, 470177160);
0410   detectorId.SetTECEntry(1, 0, 5, 0, 470046344);
0411   detectorId.SetTECEntry(1, 0, 5, 1, 470062728);
0412   detectorId.SetTECEntry(1, 0, 5, 2, 470079112);
0413   detectorId.SetTECEntry(1, 0, 5, 3, 470095496);
0414   detectorId.SetTECEntry(1, 0, 5, 4, 470111880);
0415   detectorId.SetTECEntry(1, 0, 5, 5, 470128264);
0416   detectorId.SetTECEntry(1, 0, 5, 6, 470144648);
0417   detectorId.SetTECEntry(1, 0, 5, 7, 470161032);
0418   detectorId.SetTECEntry(1, 0, 5, 8, 470177416);
0419   detectorId.SetTECEntry(1, 0, 6, 0, 470046600);
0420   detectorId.SetTECEntry(1, 0, 6, 1, 470062984);
0421   detectorId.SetTECEntry(1, 0, 6, 2, 470079368);
0422   detectorId.SetTECEntry(1, 0, 6, 3, 470095752);
0423   detectorId.SetTECEntry(1, 0, 6, 4, 470112136);
0424   detectorId.SetTECEntry(1, 0, 6, 5, 470128520);
0425   detectorId.SetTECEntry(1, 0, 6, 6, 470144904);
0426   detectorId.SetTECEntry(1, 0, 6, 7, 470161288);
0427   detectorId.SetTECEntry(1, 0, 6, 8, 470177672);
0428   detectorId.SetTECEntry(1, 0, 7, 0, 470046856);
0429   detectorId.SetTECEntry(1, 0, 7, 1, 470063240);
0430   detectorId.SetTECEntry(1, 0, 7, 2, 470079624);
0431   detectorId.SetTECEntry(1, 0, 7, 3, 470096008);
0432   detectorId.SetTECEntry(1, 0, 7, 4, 470112392);
0433   detectorId.SetTECEntry(1, 0, 7, 5, 470128776);
0434   detectorId.SetTECEntry(1, 0, 7, 6, 470145160);
0435   detectorId.SetTECEntry(1, 0, 7, 7, 470161544);
0436   detectorId.SetTECEntry(1, 0, 7, 8, 470177928);
0437   detectorId.SetTECEntry(1, 1, 0, 0, 470045128);
0438   detectorId.SetTECEntry(1, 1, 0, 1, 470061512);
0439   detectorId.SetTECEntry(1, 1, 0, 2, 470077896);
0440   detectorId.SetTECEntry(1, 1, 0, 3, 470094280);
0441   detectorId.SetTECEntry(1, 1, 0, 4, 470110664);
0442   detectorId.SetTECEntry(1, 1, 0, 5, 470127048);
0443   detectorId.SetTECEntry(1, 1, 0, 6, 470143432);
0444   detectorId.SetTECEntry(1, 1, 0, 7, 470159816);
0445   detectorId.SetTECEntry(1, 1, 0, 8, 470176200);
0446   detectorId.SetTECEntry(1, 1, 1, 0, 470045384);
0447   detectorId.SetTECEntry(1, 1, 1, 1, 470061768);
0448   detectorId.SetTECEntry(1, 1, 1, 2, 470078152);
0449   detectorId.SetTECEntry(1, 1, 1, 3, 470094536);
0450   detectorId.SetTECEntry(1, 1, 1, 4, 470110920);
0451   detectorId.SetTECEntry(1, 1, 1, 5, 470127304);
0452   detectorId.SetTECEntry(1, 1, 1, 6, 470143688);
0453   detectorId.SetTECEntry(1, 1, 1, 7, 470160072);
0454   detectorId.SetTECEntry(1, 1, 1, 8, 470176456);
0455   detectorId.SetTECEntry(1, 1, 2, 0, 470045640);
0456   detectorId.SetTECEntry(1, 1, 2, 1, 470062024);
0457   detectorId.SetTECEntry(1, 1, 2, 2, 470078408);
0458   detectorId.SetTECEntry(1, 1, 2, 3, 470094792);
0459   detectorId.SetTECEntry(1, 1, 2, 4, 470111176);
0460   detectorId.SetTECEntry(1, 1, 2, 5, 470127560);
0461   detectorId.SetTECEntry(1, 1, 2, 6, 470143944);
0462   detectorId.SetTECEntry(1, 1, 2, 7, 470160328);
0463   detectorId.SetTECEntry(1, 1, 2, 8, 470176712);
0464   detectorId.SetTECEntry(1, 1, 3, 0, 470045896);
0465   detectorId.SetTECEntry(1, 1, 3, 1, 470062280);
0466   detectorId.SetTECEntry(1, 1, 3, 2, 470078664);
0467   detectorId.SetTECEntry(1, 1, 3, 3, 470095048);
0468   detectorId.SetTECEntry(1, 1, 3, 4, 470111432);
0469   detectorId.SetTECEntry(1, 1, 3, 5, 470127816);
0470   detectorId.SetTECEntry(1, 1, 3, 6, 470144200);
0471   detectorId.SetTECEntry(1, 1, 3, 7, 470160584);
0472   detectorId.SetTECEntry(1, 1, 3, 8, 470176968);
0473   detectorId.SetTECEntry(1, 1, 4, 0, 470046152);
0474   detectorId.SetTECEntry(1, 1, 4, 1, 470062536);
0475   detectorId.SetTECEntry(1, 1, 4, 2, 470078920);
0476   detectorId.SetTECEntry(1, 1, 4, 3, 470095304);
0477   detectorId.SetTECEntry(1, 1, 4, 4, 470111688);
0478   detectorId.SetTECEntry(1, 1, 4, 5, 470128072);
0479   detectorId.SetTECEntry(1, 1, 4, 6, 470144456);
0480   detectorId.SetTECEntry(1, 1, 4, 7, 470160840);
0481   detectorId.SetTECEntry(1, 1, 4, 8, 470177224);
0482   detectorId.SetTECEntry(1, 1, 5, 0, 470046408);
0483   detectorId.SetTECEntry(1, 1, 5, 1, 470062792);
0484   detectorId.SetTECEntry(1, 1, 5, 2, 470079176);
0485   detectorId.SetTECEntry(1, 1, 5, 3, 470095560);
0486   detectorId.SetTECEntry(1, 1, 5, 4, 470111944);
0487   detectorId.SetTECEntry(1, 1, 5, 5, 470128328);
0488   detectorId.SetTECEntry(1, 1, 5, 6, 470144712);
0489   detectorId.SetTECEntry(1, 1, 5, 7, 470161096);
0490   detectorId.SetTECEntry(1, 1, 5, 8, 470177480);
0491   detectorId.SetTECEntry(1, 1, 6, 0, 470046664);
0492   detectorId.SetTECEntry(1, 1, 6, 1, 470063048);
0493   detectorId.SetTECEntry(1, 1, 6, 2, 470079432);
0494   detectorId.SetTECEntry(1, 1, 6, 3, 470095816);
0495   detectorId.SetTECEntry(1, 1, 6, 4, 470112200);
0496   detectorId.SetTECEntry(1, 1, 6, 5, 470128584);
0497   detectorId.SetTECEntry(1, 1, 6, 6, 470144968);
0498   detectorId.SetTECEntry(1, 1, 6, 7, 470161352);
0499   detectorId.SetTECEntry(1, 1, 6, 8, 470177736);
0500   detectorId.SetTECEntry(1, 1, 7, 0, 470046920);
0501   detectorId.SetTECEntry(1, 1, 7, 1, 470063304);
0502   detectorId.SetTECEntry(1, 1, 7, 2, 470079688);
0503   detectorId.SetTECEntry(1, 1, 7, 3, 470096072);
0504   detectorId.SetTECEntry(1, 1, 7, 4, 470112456);
0505   detectorId.SetTECEntry(1, 1, 7, 5, 470128840);
0506   detectorId.SetTECEntry(1, 1, 7, 6, 470145224);
0507   detectorId.SetTECEntry(1, 1, 7, 7, 470161608);
0508   detectorId.SetTECEntry(1, 1, 7, 8, 470177992);
0509 
0510   // TIB
0511   detectorId.SetTIBTOBEntry(2, 0, 0, 369174604);
0512   detectorId.SetTIBTOBEntry(2, 0, 1, 369174600);
0513   detectorId.SetTIBTOBEntry(2, 0, 2, 369174596);
0514   detectorId.SetTIBTOBEntry(2, 0, 3, 369170500);
0515   detectorId.SetTIBTOBEntry(2, 0, 4, 369170504);
0516   detectorId.SetTIBTOBEntry(2, 0, 5, 369170508);
0517   detectorId.SetTIBTOBEntry(2, 1, 0, 369174732);
0518   detectorId.SetTIBTOBEntry(2, 1, 1, 369174728);
0519   detectorId.SetTIBTOBEntry(2, 1, 2, 369174724);
0520   detectorId.SetTIBTOBEntry(2, 1, 3, 369170628);
0521   detectorId.SetTIBTOBEntry(2, 1, 4, 369170632);
0522   detectorId.SetTIBTOBEntry(2, 1, 5, 369170636);
0523   detectorId.SetTIBTOBEntry(2, 2, 0, 369174812);
0524   detectorId.SetTIBTOBEntry(2, 2, 1, 369174808);
0525   detectorId.SetTIBTOBEntry(2, 2, 2, 369174804);
0526   detectorId.SetTIBTOBEntry(2, 2, 3, 369170708);
0527   detectorId.SetTIBTOBEntry(2, 2, 4, 369170712);
0528   detectorId.SetTIBTOBEntry(2, 2, 5, 369170716);
0529   detectorId.SetTIBTOBEntry(2, 3, 0, 369174940);
0530   detectorId.SetTIBTOBEntry(2, 3, 1, 369174936);
0531   detectorId.SetTIBTOBEntry(2, 3, 2, 369174932);
0532   detectorId.SetTIBTOBEntry(2, 3, 3, 369170836);
0533   detectorId.SetTIBTOBEntry(2, 3, 4, 369170840);
0534   detectorId.SetTIBTOBEntry(2, 3, 5, 369170844);
0535   detectorId.SetTIBTOBEntry(2, 4, 0, 369175068);
0536   detectorId.SetTIBTOBEntry(2, 4, 1, 369175064);
0537   detectorId.SetTIBTOBEntry(2, 4, 2, 369175060);
0538   detectorId.SetTIBTOBEntry(2, 4, 3, 369170964);
0539   detectorId.SetTIBTOBEntry(2, 4, 4, 369170968);
0540   detectorId.SetTIBTOBEntry(2, 4, 5, 369170972);
0541   detectorId.SetTIBTOBEntry(2, 5, 0, 369175164);
0542   detectorId.SetTIBTOBEntry(2, 5, 1, 369175160);
0543   detectorId.SetTIBTOBEntry(2, 5, 2, 369175156);
0544   detectorId.SetTIBTOBEntry(2, 5, 3, 369171060);
0545   detectorId.SetTIBTOBEntry(2, 5, 4, 369171064);
0546   detectorId.SetTIBTOBEntry(2, 5, 5, 369171068);
0547   detectorId.SetTIBTOBEntry(2, 6, 0, 369175292);
0548   detectorId.SetTIBTOBEntry(2, 6, 1, 369175288);
0549   detectorId.SetTIBTOBEntry(2, 6, 2, 369175284);
0550   detectorId.SetTIBTOBEntry(2, 6, 3, 369171188);
0551   detectorId.SetTIBTOBEntry(2, 6, 4, 369171192);
0552   detectorId.SetTIBTOBEntry(2, 6, 5, 369171196);
0553   detectorId.SetTIBTOBEntry(2, 7, 0, 369175372);
0554   detectorId.SetTIBTOBEntry(2, 7, 1, 369175368);
0555   detectorId.SetTIBTOBEntry(2, 7, 2, 369175364);
0556   detectorId.SetTIBTOBEntry(2, 7, 3, 369171268);
0557   detectorId.SetTIBTOBEntry(2, 7, 4, 369171272);
0558   detectorId.SetTIBTOBEntry(2, 7, 5, 369171276);
0559 
0560   // TOB
0561   detectorId.SetTIBTOBEntry(3, 0, 0, 436232314);
0562   detectorId.SetTIBTOBEntry(3, 0, 1, 436232306);
0563   detectorId.SetTIBTOBEntry(3, 0, 2, 436232298);
0564   detectorId.SetTIBTOBEntry(3, 0, 3, 436228198);
0565   detectorId.SetTIBTOBEntry(3, 0, 4, 436228206);
0566   detectorId.SetTIBTOBEntry(3, 0, 5, 436228214);
0567   detectorId.SetTIBTOBEntry(3, 1, 0, 436232506);
0568   detectorId.SetTIBTOBEntry(3, 1, 1, 436232498);
0569   detectorId.SetTIBTOBEntry(3, 1, 2, 436232490);
0570   detectorId.SetTIBTOBEntry(3, 1, 3, 436228390);
0571   detectorId.SetTIBTOBEntry(3, 1, 4, 436228398);
0572   detectorId.SetTIBTOBEntry(3, 1, 5, 436228406);
0573   detectorId.SetTIBTOBEntry(3, 2, 0, 436232634);
0574   detectorId.SetTIBTOBEntry(3, 2, 1, 436232626);
0575   detectorId.SetTIBTOBEntry(3, 2, 2, 436232618);
0576   detectorId.SetTIBTOBEntry(3, 2, 3, 436228518);
0577   detectorId.SetTIBTOBEntry(3, 2, 4, 436228526);
0578   detectorId.SetTIBTOBEntry(3, 2, 5, 436228534);
0579   detectorId.SetTIBTOBEntry(3, 3, 0, 436232826);
0580   detectorId.SetTIBTOBEntry(3, 3, 1, 436232818);
0581   detectorId.SetTIBTOBEntry(3, 3, 2, 436232810);
0582   detectorId.SetTIBTOBEntry(3, 3, 3, 436228710);
0583   detectorId.SetTIBTOBEntry(3, 3, 4, 436228718);
0584   detectorId.SetTIBTOBEntry(3, 3, 5, 436228726);
0585   detectorId.SetTIBTOBEntry(3, 4, 0, 436233018);
0586   detectorId.SetTIBTOBEntry(3, 4, 1, 436233010);
0587   detectorId.SetTIBTOBEntry(3, 4, 2, 436233002);
0588   detectorId.SetTIBTOBEntry(3, 4, 3, 436228902);
0589   detectorId.SetTIBTOBEntry(3, 4, 4, 436228910);
0590   detectorId.SetTIBTOBEntry(3, 4, 5, 436228918);
0591   detectorId.SetTIBTOBEntry(3, 5, 0, 436233146);
0592   detectorId.SetTIBTOBEntry(3, 5, 1, 436233138);
0593   detectorId.SetTIBTOBEntry(3, 5, 2, 436233130);
0594   detectorId.SetTIBTOBEntry(3, 5, 3, 436229030);
0595   detectorId.SetTIBTOBEntry(3, 5, 4, 436229038);
0596   detectorId.SetTIBTOBEntry(3, 5, 5, 436229046);
0597   detectorId.SetTIBTOBEntry(3, 6, 0, 436233338);
0598   detectorId.SetTIBTOBEntry(3, 6, 1, 436233330);
0599   detectorId.SetTIBTOBEntry(3, 6, 2, 436233322);
0600   detectorId.SetTIBTOBEntry(3, 6, 3, 436229222);
0601   detectorId.SetTIBTOBEntry(3, 6, 4, 436229230);
0602   detectorId.SetTIBTOBEntry(3, 6, 5, 436229238);
0603   detectorId.SetTIBTOBEntry(3, 7, 0, 436233466);
0604   detectorId.SetTIBTOBEntry(3, 7, 1, 436233458);
0605   detectorId.SetTIBTOBEntry(3, 7, 2, 436233450);
0606   detectorId.SetTIBTOBEntry(3, 7, 3, 436229350);
0607   detectorId.SetTIBTOBEntry(3, 7, 4, 436229358);
0608   detectorId.SetTIBTOBEntry(3, 7, 5, 436229366);
0609 
0610   // TEC+ AT
0611   detectorId.SetTEC2TECEntry(0, 0, 0, 470307208);
0612   detectorId.SetTEC2TECEntry(0, 0, 1, 470323592);
0613   detectorId.SetTEC2TECEntry(0, 0, 2, 470339976);
0614   detectorId.SetTEC2TECEntry(0, 0, 3, 470356360);
0615   detectorId.SetTEC2TECEntry(0, 0, 4, 470372744);
0616   detectorId.SetTEC2TECEntry(0, 1, 0, 470307468);
0617   detectorId.SetTEC2TECEntry(0, 1, 1, 470323852);
0618   detectorId.SetTEC2TECEntry(0, 1, 2, 470340236);
0619   detectorId.SetTEC2TECEntry(0, 1, 3, 470356620);
0620   detectorId.SetTEC2TECEntry(0, 1, 4, 470373004);
0621   detectorId.SetTEC2TECEntry(0, 2, 0, 470307716);
0622   detectorId.SetTEC2TECEntry(0, 2, 1, 470324100);
0623   detectorId.SetTEC2TECEntry(0, 2, 2, 470340484);
0624   detectorId.SetTEC2TECEntry(0, 2, 3, 470356868);
0625   detectorId.SetTEC2TECEntry(0, 2, 4, 470373252);
0626   detectorId.SetTEC2TECEntry(0, 3, 0, 470307976);
0627   detectorId.SetTEC2TECEntry(0, 3, 1, 470324360);
0628   detectorId.SetTEC2TECEntry(0, 3, 2, 470340744);
0629   detectorId.SetTEC2TECEntry(0, 3, 3, 470357128);
0630   detectorId.SetTEC2TECEntry(0, 3, 4, 470373512);
0631   detectorId.SetTEC2TECEntry(0, 4, 0, 470308236);
0632   detectorId.SetTEC2TECEntry(0, 4, 1, 470324620);
0633   detectorId.SetTEC2TECEntry(0, 4, 2, 470341004);
0634   detectorId.SetTEC2TECEntry(0, 4, 3, 470357388);
0635   detectorId.SetTEC2TECEntry(0, 4, 4, 470373772);
0636   detectorId.SetTEC2TECEntry(0, 5, 0, 470308488);
0637   detectorId.SetTEC2TECEntry(0, 5, 1, 470324872);
0638   detectorId.SetTEC2TECEntry(0, 5, 2, 470341256);
0639   detectorId.SetTEC2TECEntry(0, 5, 3, 470357640);
0640   detectorId.SetTEC2TECEntry(0, 5, 4, 470374024);
0641   detectorId.SetTEC2TECEntry(0, 6, 0, 470308748);
0642   detectorId.SetTEC2TECEntry(0, 6, 1, 470325132);
0643   detectorId.SetTEC2TECEntry(0, 6, 2, 470341516);
0644   detectorId.SetTEC2TECEntry(0, 6, 3, 470357900);
0645   detectorId.SetTEC2TECEntry(0, 6, 4, 470374284);
0646   detectorId.SetTEC2TECEntry(0, 7, 0, 470308996);
0647   detectorId.SetTEC2TECEntry(0, 7, 1, 470325380);
0648   detectorId.SetTEC2TECEntry(0, 7, 2, 470341764);
0649   detectorId.SetTEC2TECEntry(0, 7, 3, 470358148);
0650   detectorId.SetTEC2TECEntry(0, 7, 4, 470374532);
0651 
0652   // TEC- AT
0653   detectorId.SetTEC2TECEntry(1, 0, 0, 470045064);
0654   detectorId.SetTEC2TECEntry(1, 0, 1, 470061448);
0655   detectorId.SetTEC2TECEntry(1, 0, 2, 470077832);
0656   detectorId.SetTEC2TECEntry(1, 0, 3, 470094216);
0657   detectorId.SetTEC2TECEntry(1, 0, 4, 470110600);
0658   detectorId.SetTEC2TECEntry(1, 1, 0, 470045316);
0659   detectorId.SetTEC2TECEntry(1, 1, 1, 470061700);
0660   detectorId.SetTEC2TECEntry(1, 1, 2, 470078084);
0661   detectorId.SetTEC2TECEntry(1, 1, 3, 470094468);
0662   detectorId.SetTEC2TECEntry(1, 1, 4, 470110852);
0663   detectorId.SetTEC2TECEntry(1, 2, 0, 470045580);
0664   detectorId.SetTEC2TECEntry(1, 2, 1, 470061964);
0665   detectorId.SetTEC2TECEntry(1, 2, 2, 470078348);
0666   detectorId.SetTEC2TECEntry(1, 2, 3, 470094732);
0667   detectorId.SetTEC2TECEntry(1, 2, 4, 470111116);
0668   detectorId.SetTEC2TECEntry(1, 3, 0, 470045832);
0669   detectorId.SetTEC2TECEntry(1, 3, 1, 470062216);
0670   detectorId.SetTEC2TECEntry(1, 3, 2, 470078600);
0671   detectorId.SetTEC2TECEntry(1, 3, 3, 470094984);
0672   detectorId.SetTEC2TECEntry(1, 3, 4, 470111368);
0673   detectorId.SetTEC2TECEntry(1, 4, 0, 470046084);
0674   detectorId.SetTEC2TECEntry(1, 4, 1, 470062468);
0675   detectorId.SetTEC2TECEntry(1, 4, 2, 470078852);
0676   detectorId.SetTEC2TECEntry(1, 4, 3, 470095236);
0677   detectorId.SetTEC2TECEntry(1, 4, 4, 470111620);
0678   detectorId.SetTEC2TECEntry(1, 5, 0, 470046344);
0679   detectorId.SetTEC2TECEntry(1, 5, 1, 470062728);
0680   detectorId.SetTEC2TECEntry(1, 5, 2, 470079112);
0681   detectorId.SetTEC2TECEntry(1, 5, 3, 470095496);
0682   detectorId.SetTEC2TECEntry(1, 5, 4, 470111880);
0683   detectorId.SetTEC2TECEntry(1, 6, 0, 470046596);
0684   detectorId.SetTEC2TECEntry(1, 6, 1, 470062980);
0685   detectorId.SetTEC2TECEntry(1, 6, 2, 470079364);
0686   detectorId.SetTEC2TECEntry(1, 6, 3, 470095748);
0687   detectorId.SetTEC2TECEntry(1, 6, 4, 470112132);
0688   detectorId.SetTEC2TECEntry(1, 7, 0, 470046860);
0689   detectorId.SetTEC2TECEntry(1, 7, 1, 470063244);
0690   detectorId.SetTEC2TECEntry(1, 7, 2, 470079628);
0691   detectorId.SetTEC2TECEntry(1, 7, 3, 470096012);
0692   detectorId.SetTEC2TECEntry(1, 7, 4, 470112396);
0693 }
0694 
0695 //define this as a plug-in
0696 DEFINE_FWK_MODULE(RawDataConverter);