ATLAS Offline Software
Loading...
Searching...
No Matches
Root::TTileTripReader Class Reference

#include <TTileTripReader.h>

Collaboration diagram for Root::TTileTripReader:

Public Types

enum  Verbosity { Default =0 , Debug =1 }

Public Member Functions

 TTileTripReader (const char *name="TTileTripReader")
virtual ~TTileTripReader ()
 TTileTripReader (const TTileTripReader &)=delete
TTileTripReaderoperator= (const TTileTripReader &)=delete
const char * getName () const
 Get the name of the class instance.
const asg::AcceptInfogetAcceptInfo () const
asg::AcceptData accept (int run, int lbn, unsigned int event=0, double eta=-99.9, double phi=-99.9, int tileError=0, int tileFlags=0)
double areaTripFraction (int run, int lbn, double eta, double phi, double dR)
float calculate (int run, int lbn, double eta, double phi, double dR, int tileError=0, int tileFlags=0)
bool checkEtaPhi (int run, int lbn, double eta, double phi)
bool checkEvent (unsigned int run, unsigned int lbn, unsigned int event)
bool checkExtendedEtaPhi (int run, int lbn, double eta, double phi, double delEta, double delPhi)
int finalize ()
std::vector< TripRegiongetEtaPhi (int run, int lbn, bool force=false)
int initialize ()
void memLoadTripFile ()
 closes the ability to add more trip files to the chain and loads the current TChain into memory as a TTree.
TripRegion partModToEtaPhi (int part, int mod)
void readTileFlags (int run, int lbn, int tileError, int tileFlags)
int setTripFile (const char *file)
void setVerbosity (int v=Debug, std::ostream &stream=std::cout)

Public Attributes

TripRegion m_LBOffsets
TripRegion m_EBOffsets

Private Member Functions

void buildOffsets ()
 Attempts to correct for improperly built trip list files.
int findStartEntry (int run)
void setBadEventList ()
 Fills the bad event map.

Private Attributes

std::string m_name
 The name of the class instance.
asg::AcceptInfo m_accept
TTree * m_trips
TTree * m_runMap
int m_mapRun
int m_Run
int m_FirstEntry
int m_currentRun
int m_currentLbn
int m_startEntry
int m_verbosity
int m_LastTileFlags
std::map< unsigned int, std::map< unsigned short, unsigned int > > m_badEvents
std::vector< TripRegionm_currentTrips
std::vector< int > m_Offsets
std::vector< char > * m_Partition
std::vector< char > * m_Module
int m_LumiStart
std::vector< int > * m_LumiEnd
std::ostream * m_msglog
bool m_ChainsLoaded

Detailed Description

Definition at line 40 of file TTileTripReader.h.

Member Enumeration Documentation

◆ Verbosity

Enumerator
Default 
Debug 

Definition at line 43 of file TTileTripReader.h.

Constructor & Destructor Documentation

◆ TTileTripReader() [1/2]

Root::TTileTripReader::TTileTripReader ( const char * name = "TTileTripReader")

Definition at line 28 of file TTileTripReader.cxx.

29 : m_name (name)
30{
31 m_trips=new TChain("TripList");
32 m_runMap=new TChain("RunMap");
37 m_Module=0;
38 m_LumiEnd=0;
41 m_Run=0;
42 m_mapRun=0;
45 m_msglog=&cout;
46 m_LBOffsets.eta1=0;
47 m_LBOffsets.eta2=0;
48 m_LBOffsets.phi1=0;
49 m_LBOffsets.phi2=0;
50 m_EBOffsets.eta1=0;
51 m_EBOffsets.eta2=0;
52 m_EBOffsets.phi1=0;
53 m_EBOffsets.phi2=0;
54 m_ChainsLoaded=false;
56}
void setBadEventList()
Fills the bad event map.
std::string m_name
The name of the class instance.
std::vector< char > * m_Module
std::vector< int > * m_LumiEnd
std::vector< char > * m_Partition

◆ ~TTileTripReader()

Root::TTileTripReader::~TTileTripReader ( )
virtual

Definition at line 58 of file TTileTripReader.cxx.

58 {
59 if(m_trips)delete m_trips;
60 if(m_runMap)delete m_runMap;
61}

◆ TTileTripReader() [2/2]

Root::TTileTripReader::TTileTripReader ( const TTileTripReader & )
delete

Member Function Documentation

◆ accept()

asg::AcceptData Root::TTileTripReader::accept ( int run,
int lbn,
unsigned int event = 0,
double eta = -99.9,
double phi = -99.9,
int tileError = 0,
int tileFlags = 0 )
Parameters
runRun number
lbnLumiblock number
eventEvent number
etaEta position
phiPhi position
tileErrorthe tileError value
tileFlagsthe tileFlags value
Returns
Constant AcceptData containing the result of the check

Trip result is stored under "InTrip", event check is stored under "BadEvent"

Definition at line 63 of file TTileTripReader.cxx.

63 {
64 asg::AcceptData acceptData (&m_accept);
65 readTileFlags(run,lbn,tileError,tileFlags);
66 if(eta!=-99.9 && phi!=-99.9)
67 acceptData.setCutResult("InTrip",checkEtaPhi(run,lbn,eta,phi));
68 acceptData.setCutResult("BadEvent",checkEvent((unsigned int)run,
69 (unsigned short)lbn,
70 (unsigned int)event));
71 return acceptData;
72}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
asg::AcceptInfo m_accept
bool checkEtaPhi(int run, int lbn, double eta, double phi)
bool checkEvent(unsigned int run, unsigned int lbn, unsigned int event)
void readTileFlags(int run, int lbn, int tileError, int tileFlags)

◆ areaTripFraction()

double Root::TTileTripReader::areaTripFraction ( int run,
int lbn,
double eta,
double phi,
double dR )
Parameters
runthe run number
lbnthe lumiblock number
etathe area central eta coordinate
phithe area central phi coordinate
dRthe area size
Returns
The fraction of the area in eta phi space covered by tripped modules

Definition at line 74 of file TTileTripReader.cxx.

74 {
75 vector<TripRegion> trips=getEtaPhi(run,lbn);
76 if(phi>pi)phi=phi-2*pi;
77 double dR2=dR*dR;
78 double tripArea=0;
79 size_t ntrips=trips.size();
80 for(size_t i=0;i<ntrips;++i){
81 TripRegion& trip=trips[i];
82 for(double x=trip.eta1+.05;x<trip.eta2;x+=0.1 ){
83 double dx2=pow(eta-x,2);
84 for(double y=trip.phi1+width/8.;y<trip.phi2;y+=width/4.){
85 double deltaR12 = fabs(phi - y);
86 if (deltaR12 > pi)
87 deltaR12 = 2.0 * pi - deltaR12;
88 double dy2=pow(deltaR12,2);
89 double delR2=dx2+dy2;
90 if(delR2<=dR2)
91 tripArea+=0.1*width/4.;
92 }
93 }
94 }
95 double jetArea=pi*dR*dR;
96 return tripArea/jetArea;
97}
const double width
#define pi
#define y
#define x
constexpr int pow(int base, int exp) noexcept
std::vector< TripRegion > getEtaPhi(int run, int lbn, bool force=false)

◆ buildOffsets()

void Root::TTileTripReader::buildOffsets ( )
private

Attempts to correct for improperly built trip list files.

DEPRECIATED

Definition at line 104 of file TTileTripReader.cxx.

104 {
105 if(m_ChainsLoaded)return;
106 ostream& msg=*m_msglog;
107 m_Offsets.clear();
108 m_Offsets.push_back(0);
109 int nTrees=static_cast<TChain*>(m_trips)->GetNtrees();
110 if(nTrees==1){
111 int mapentries=m_runMap->GetEntries();
112 for(int i=0;i<mapentries;++i){
113 m_runMap->GetEntry(i);
114 m_trips->GetEntry(m_FirstEntry+m_Offsets.back());
115 if(m_Run!=m_mapRun){
116 int findRun=m_mapRun;
117 m_runMap->GetEntry(i-1);
118 if(m_verbosity==Debug){
119 msg<<"Searching for "<<findRun<<" starting from "<<
120 m_mapRun<<" current offset "<<m_Offsets.back()<<
121 endl;
122 }
123 int tripEntry=m_FirstEntry+m_Offsets.back();
124 while(m_Run!=findRun){
125 if(!m_trips->GetEntry(tripEntry)){
126 msg<<"Overshot the end of the TTree!\n";
127 return;
128 }
129 ++tripEntry;
130 }
131 m_Offsets.push_back(tripEntry-1);
132 }
133 }
134 return;
135 }
136 m_trips->SetBranchStatus("*",0);
137 int tree=0;
138 while(tree<nTrees){
139 m_trips->GetEntry(m_Offsets.back());
140 TTree* currentTree=m_trips->GetTree();
141 m_Offsets.push_back(currentTree->GetEntries()+m_Offsets.back());
142 ++tree;
143 }
144 m_trips->SetBranchStatus("*",1);
145}
std::vector< int > m_Offsets
MsgStream & msg
Definition testRead.cxx:32
TChain * tree

◆ calculate()

float Root::TTileTripReader::calculate ( int run,
int lbn,
double eta,
double phi,
double dR,
int tileError = 0,
int tileFlags = 0 )
Parameters
runRun number
lbnLumiblock number
etaEta value of cone center
phiPhi value of cone center
dRRadius of the cone in (eta,phi) space
tileErrorthe tileError value
tileFlagsthe tileFlags value
Returns
fraction of the area in eta phi space covered by tripped modules

Definition at line 99 of file TTileTripReader.cxx.

99 {
100 readTileFlags(run,lbn,tileError,tileFlags);
101 return areaTripFraction(run,lbn,eta,phi,dR);
102}
double areaTripFraction(int run, int lbn, double eta, double phi, double dR)

◆ checkEtaPhi()

bool Root::TTileTripReader::checkEtaPhi ( int run,
int lbn,
double eta,
double phi )
Parameters
runthe run number
lbnthe lumiblock number
etaeta value to check
phiphi value to check
Returns
true if there's a tripped module in the region

Definition at line 147 of file TTileTripReader.cxx.

147 {
148 ostream& msg=*m_msglog;
149 vector<TripRegion> tripRegions=getEtaPhi(run,lbn);
150 size_t ntrips=tripRegions.size();
151 if(phi>pi)phi=phi-2.*pi;
152 if(m_verbosity==Debug){
153 msg<<"Checking region eta= "<<eta<<", phi="<<phi<<" for run "<<run<<
154 " lbn "<<lbn<<endl;
155 }
156
157 for(size_t i=0;i<ntrips;++i){
158 if(tripRegions[i].eta1==0 || tripRegions[i].eta1==-0.9){// Long Barrel
159 //Use a delta phi check to account for extended regions around pi--
160 double delPhi=tripRegions[i].phi2+m_LBOffsets.phi2-tripRegions[i].phi1+m_LBOffsets.phi1;
161 delPhi/=2.;
162 double tripPhiCenter=fabs(delPhi+tripRegions[i].phi1-m_LBOffsets.phi1) <= pi ?
163 delPhi+tripRegions[i].phi1-m_LBOffsets.phi1 : tripRegions[i].phi2+m_LBOffsets.phi2 - delPhi;
164 double deltaR12 = fabs(phi - tripPhiCenter);
165 if (deltaR12 > pi)
166 deltaR12 = 2.0 * pi - deltaR12;
167 //--
168 if(tripRegions[i].eta1-m_LBOffsets.eta1<=eta &&
169 tripRegions[i].eta2+m_LBOffsets.eta2>=eta &&
170 deltaR12<delPhi)
171 return true;
172 }
173 else{// Extended Barrel
174 //Use a delta phi check to account for extended regions around pi--
175 double delPhi=tripRegions[i].phi2+m_EBOffsets.phi2-tripRegions[i].phi1+m_EBOffsets.phi1;
176 delPhi/=2.;
177 double tripPhiCenter=fabs(delPhi+tripRegions[i].phi1-m_EBOffsets.phi1) <= pi ?
178 delPhi+tripRegions[i].phi1-m_EBOffsets.phi1 : tripRegions[i].phi2+m_EBOffsets.phi2 - delPhi;
179 double deltaR12 = fabs(phi - tripPhiCenter);
180 if (deltaR12 > pi)
181 deltaR12 = 2.0 * pi - deltaR12;
182 //--
183 if(tripRegions[i].eta1-m_EBOffsets.eta1<=eta &&
184 tripRegions[i].eta2+m_EBOffsets.eta2>=eta &&
185 deltaR12<delPhi )
186 return true;
187 }
188 }
189 return false;
190}

◆ checkEvent()

bool Root::TTileTripReader::checkEvent ( unsigned int run,
unsigned int lbn,
unsigned int event )
Parameters
runRun number
lbnLumiblock number
eventevent number
Returns
true if event is good false if bad

Checks against an internal map of 433 bad events

Definition at line 192 of file TTileTripReader.cxx.

192 {
193 ostream& msg=*m_msglog;
194 unsigned int evt;
195 if(m_verbosity==Debug){
196 msg<<"Checking bad event for run= "<<run<<", lbn="<<lbn<<" event "<<
197 event<<endl;
198 }
199 map<unsigned int,map<unsigned short,unsigned int> >::iterator itr=m_badEvents.find(run);
200 if(itr!=m_badEvents.end()){
201 map<unsigned short,unsigned int>& lumi=(*itr).second;
202 map<unsigned short,unsigned int>::iterator litr=lumi.find(lbn);
203 if(litr!=lumi.end()){
204 evt=(*litr).second;
205 if(m_verbosity==Debug){
206 msg<<"run= "<<run<<", lbn="<<lbn<<" event "<<
207 event<<" pass check = "<<(evt!=event)<<endl;
208 }
209 return (evt!=event);
210 }
211 if(m_verbosity==Debug){
212 msg<<"run= "<<run<<", lbn="<<lbn<<" event "<<
213 event<<" pass check = "<<true<<endl;
214 }
215 return true;
216 }
217 if(m_verbosity==Debug){
218 msg<<"run= "<<run<<", lbn="<<lbn<<" event "<<
219 event<<" pass check = "<<true<<endl;
220 }
221 return true;
222}
std::map< unsigned int, std::map< unsigned short, unsigned int > > m_badEvents

◆ checkExtendedEtaPhi()

bool Root::TTileTripReader::checkExtendedEtaPhi ( int run,
int lbn,
double eta,
double phi,
double delEta,
double delPhi )
Parameters
runthe run number
lbnthe lumiblock number
etaeta value to check
phiphi value to check
delEtaextends each trip region checked by delEta on both sides
delPhiextends each trip region checked by delPhi on both sides
Returns
true if there's a tripped module near eta,phi

Definition at line 224 of file TTileTripReader.cxx.

224 {
225 ostream& msg=*m_msglog;
226 vector<TripRegion> tripRegions=getEtaPhi(run,lbn);
227 size_t ntrips=tripRegions.size();
228 if(phi>pi)phi=phi-2.*pi;
229 if(m_verbosity==Debug){
230 msg<<"Checking region eta= "<<eta<<", phi="<<phi<<" for run "<<run<<
231 " lbn "<<lbn<<endl;
232 }
233 for(size_t i=0;i<ntrips;++i){
234 //Use a delta phi check to account for extended regions around pi--
235 double dPhi=tripRegions[i].phi2+delPhi-tripRegions[i].phi1+delPhi;
236 dPhi/=2.;
237 double tripPhiCenter=fabs(dPhi+tripRegions[i].phi1-delPhi) <= pi ?
238 dPhi+tripRegions[i].phi1-delPhi : tripRegions[i].phi2+delPhi - dPhi;
239 double deltaR12 = fabs(phi - tripPhiCenter);
240 if (deltaR12 > pi)
241 deltaR12 = 2.0 * pi - deltaR12;
242 //--
243 if(tripRegions[i].eta1-delEta<=eta && tripRegions[i].eta2+delEta>=eta &&
244 tripRegions[i].phi1-delPhi<=phi && tripRegions[i].phi2+delPhi>=phi )
245 return true;
246 }
247 return false;
248}
bool dPhi(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, float &out)

◆ finalize()

int Root::TTileTripReader::finalize ( )
inline

Definition at line 139 of file TTileTripReader.h.

139{ return 1; }

◆ findStartEntry()

int Root::TTileTripReader::findStartEntry ( int run)
private
Parameters
runRun number
Returns
Position in trip TTree where the run starts

Definition at line 250 of file TTileTripReader.cxx.

250 {
251 ostream& msg=*m_msglog;
252 if(run==m_currentRun)return m_startEntry;
253 int entry=-1;
254 do{
255 ++entry;
256 if(!m_runMap->GetEntry(entry))return -999;
257 }while(run!=m_mapRun);
258 if(m_Offsets.empty()){
259 m_trips->GetEntry(m_FirstEntry);
261 }
262 else{
263 if(m_ChainsLoaded || static_cast<TChain*>(m_runMap)->GetNtrees()==1){
264 size_t nOffsets=m_Offsets.size();
265 for(size_t i=0;i<nOffsets;++i){
266 m_trips->GetEntry(m_FirstEntry+m_Offsets[i]);
267 if(m_Run==run){
269 break;
270 }
271 }
272 if(m_Run!=run)
273 msg<<"Problem! Can't find proper offset\n";
274 }
275 else{
276 int offIdx=m_runMap->GetTreeNumber();
278 m_trips->GetEntry(m_startEntry);
279 }
280 }
281 if(m_Run!=run){
282 msg<<"Problem! Can't find proper offset\n";
283 return -999;
284// buildOffsets();
285// m_runMap->GetEntry(entry);
286// if(m_runMap->GetNtrees()==1){
287// size_t nOffsets=m_Offsets.size();
288// for(size_t i=0;i<nOffsets;++i){
289// m_startEntry=m_FirstEntry+m_Offsets[i];
290// m_trips->GetEntry(m_FirstEntry+m_Offsets[i]);
291// if(m_Run==run)break;
292// }
293// if(m_Run!=run)
294// msg<<"Problem! Can't find proper offset\n";
295// }
296// else{
297// int offIdx=m_runMap->GetTreeNumber();
298// m_startEntry=m_FirstEntry+m_Offsets[offIdx];
299// }
300 }
302 if(m_verbosity==Debug){
303 const string partition[4]={
304 "LBA",
305 "LBC",
306 "EBA",
307 "EBC"
308 };
309 msg<<"Trip list for run "<<run<<endl;
310 msg<<"First entry val="<<m_startEntry<<endl;
311 int loop=m_startEntry;
312 m_trips->GetEntry(loop);
313 msg<<" Run returned = "<<m_Run<<endl;
314 while(m_Run==run){
315 vector<char>& part=*m_Partition;
316 vector<char>& mod=*m_Module;
317 vector<int>& lbend=*m_LumiEnd;
318 size_t ntrips=lbend.size();
319 for(size_t i=0;i<ntrips;++i){
320 msg<<m_Run<<" "<<partition[(int)part[i]]<<
321 setfill('0')<<setw(2)<<(int)mod[i]+1<<setw(4)<<
322 " lbn"<<m_LumiStart<<"-"<<
323 lbend[i]<<endl;
324
325 }
326 ++loop;
327 m_trips->GetEntry(loop);
328 }
329 }
330 return m_startEntry;
331}
static std::vector< uint32_t > lbend
Definition iLumiCalc.h:39
DataModel_detail::iterator< DVL > partition(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, Predicate pred)
Specialization of partition for DataVector/List.

◆ getAcceptInfo()

const asg::AcceptInfo & Root::TTileTripReader::getAcceptInfo ( ) const
inline

Definition at line 57 of file TTileTripReader.h.

58 {
59 return m_accept;
60 }

◆ getEtaPhi()

vector< TripRegion > Root::TTileTripReader::getEtaPhi ( int run,
int lbn,
bool force = false )
Parameters
runthe run number
lbnthe lumiblock number
forceForces regenerating the trip list when the run and lbn haven't changed
Returns
a vector containing TripRegions structs for all trip regions

Definition at line 333 of file TTileTripReader.cxx.

333 {
334 ostream& msg=*m_msglog;
335 if(run==m_currentRun && m_currentLbn==lbn && !force){
336 if(m_verbosity==Debug){
337 msg<<"Trip regions found for run "<<run<<" lbn "<<lbn<<endl;
338 size_t ntrips=m_currentTrips.size();
339 for(size_t i=0;i<ntrips;++i){
340 msg<<m_currentTrips[i].eta1<<" <= eta <= "<<
341 m_currentTrips[i].eta2<<endl<<" "<<
342 m_currentTrips[i].phi1<<" <= phi <= "<<
343 m_currentTrips[i].phi2<<endl;
344 }
345 }
346 return m_currentTrips;
347 }
348 int entry=findStartEntry(run);
349 if(entry==-999){
350 vector<TripRegion> emptyTrips;
351 msg<<"Run not contained in chain!\n";
352 return emptyTrips;
353 }
354 vector<TripRegion>& tripRegions=m_currentTrips;
355 tripRegions.clear();
356// m_currentLbn=lbn;
357 if(m_verbosity==Debug)
358 msg<<"Generating trip regions found for run "<<run<<" lbn "<<lbn<<
359 " Current run = "<<m_currentRun<<" current lbn = "<<
360 m_currentLbn<<endl;
361 if(!m_trips->GetEntry(entry)){
362 msg<<"Run not contained in trip chain!\n";
363 return tripRegions;
364 }
365 while(run==m_Run){
366 vector<char>& part=*m_Partition;
367 vector<char>& mod=*m_Module;
368 vector<int>& lbend=*m_LumiEnd;
369 size_t ntrips=lbend.size();
370 if(m_LumiStart<=lbn){
371 for(size_t i=0;i<ntrips;++i){
372 if(lbend[i]>=lbn){
373 tripRegions.push_back(partModToEtaPhi(part[i],mod[i]));
374 if(m_verbosity==Debug){
375 msg<<tripRegions.back().eta1<<" <= eta <= "<<
376 tripRegions.back().eta2<<endl<<" "<<
377 tripRegions.back().phi1<<" <= phi <= "<<
378 tripRegions.back().phi2<<endl;
379 }
380 }
381 }
382
383 }
384 ++entry;
385 if(!m_trips->GetEntry(entry)){
386 msg<<"Run not contained in trip chain!\n";
387 return tripRegions;
388 }
389 }
390 m_currentLbn=lbn;
391 return tripRegions;
392}
std::vector< TripRegion > m_currentTrips
TripRegion partModToEtaPhi(int part, int mod)

◆ getName()

const char * Root::TTileTripReader::getName ( ) const
inline

Get the name of the class instance.

Definition at line 55 of file TTileTripReader.h.

55{ return m_name.c_str(); };

◆ initialize()

int Root::TTileTripReader::initialize ( )

Definition at line 394 of file TTileTripReader.cxx.

394 {
395#ifndef ROOTCORE
396 m_accept.addCut("InTrip","true if eta phi fall inside a powered off module");
397#endif /*ROOTCORE*/
398 return 1;
399}

◆ memLoadTripFile()

void Root::TTileTripReader::memLoadTripFile ( )

closes the ability to add more trip files to the chain and loads the current TChain into memory as a TTree.

Definition at line 401 of file TTileTripReader.cxx.

401 {
402 if(m_ChainsLoaded)return;
403 TChain* tripMap=static_cast<TChain*>(m_trips);
404 TChain* runMap=static_cast<TChain*>(m_runMap);
405 m_trips=new TTree("TripList_Mem","Memory loaded TripList");
406 m_runMap=new TTree("RunMap_Mem","Starting entry for each run in TripList");
407
408 m_runMap->Branch("Run",&m_mapRun,"Run/I");
409 m_runMap->Branch("FirstEntry",&m_FirstEntry,"FirstEntry/I");
410
411 m_trips->Branch("Run",&m_Run,"Run/I");
412 m_trips->Branch("LumiStart",&m_LumiStart,"LumiStart/I");
413 m_trips->Branch("Partition",&m_Partition);
414 m_trips->Branch("Module",&m_Module);
415 m_trips->Branch("LumiEnd",&m_LumiEnd);
416
417 m_currentRun=0;
418 m_currentLbn=0;
419 m_startEntry=0;
420
421 int entry=0;
422 while(runMap->GetEntry(entry)){
423 m_runMap->Fill();
424 ++entry;
425 }
426 entry=0;
427 while(tripMap->GetEntry(entry)){
428 m_trips->Fill();
429 ++entry;
430 }
431 delete tripMap;
432 delete runMap;
433 m_ChainsLoaded=true;
434
435}

◆ operator=()

TTileTripReader & Root::TTileTripReader::operator= ( const TTileTripReader & )
delete

◆ partModToEtaPhi()

TripRegion Root::TTileTripReader::partModToEtaPhi ( int part,
int mod )
Parameters
parttile partition: LBA=0, LBC=1, EBA=2, EBC=3
modtile module. Note: starts at 0, not 1
Returns
A TripRegion struct containing the limits of the module

Definition at line 437 of file TTileTripReader.cxx.

437 {
438 ostream& msg=*m_msglog;
439 TripRegion region;
440 switch(part){
441 case 0: //LBA
442 region.eta1=0;
443 region.eta2=0.9;
444 break;
445 case 1: //LBC
446 region.eta1=-0.9;
447 region.eta2=0;
448 break;
449 case 2: //EBA
450 region.eta1=0.8;
451 region.eta2=1.7;
452 break;
453 case 3: //EBC
454 region.eta1=-1.7;
455 region.eta2=-0.8;
456 break;
457 default:
458 msg<<"Bad partition value passed!\n";
459 region.eta1=-999;
460 region.eta2=-999;
461 region.phi1=-999;
462 region.phi2=-999;
463 return region;
464 }
465 if(mod<32){
466 region.phi1=((double)mod)*width;
467 region.phi2=region.phi1+width;
468 }
469 else if(mod<64){
470 region.phi1=((double)mod)*width-2.*pi;
471 region.phi2=region.phi1+width;
472 }
473 else{
474 msg<<"Bad module value passed!\n";
475 region.eta1=-999;
476 region.eta2=-999;
477 region.phi1=-999;
478 region.phi2=-999;
479 return region;
480 }
481 if(m_verbosity==Debug){
482 const string partition[4]={
483 "LBA",
484 "LBC",
485 "EBA",
486 "EBC"
487 };
488 msg<<"Module "<<partition[part]<<setfill('0')<<setw(2)<<mod+1<<
489 " region "<<region.eta1<<" <= eta <= "<<region.eta2<<" "<<
490 region.phi1<<" <= phi <= "<<region.phi2<<endl;
491 }
492 return region;
493}

◆ readTileFlags()

void Root::TTileTripReader::readTileFlags ( int run,
int lbn,
int tileError,
int tileFlags )
Parameters
runthe run number
lbnthe lumiblock number
tileErrorthe tileError value
tileFlagsthe tileFlags value

Uses the tileError and tileFlags values to improve the set of trip regions in the event.

Definition at line 495 of file TTileTripReader.cxx.

495 {
496 ostream& msg=*m_msglog;
497 if(tileError==0 && m_LastTileFlags){//force regenerating trip list if tileError=OK and previously an error was present
498 getEtaPhi(run,lbn,true);
500 }
501 if(tileError!=1)return; //Tile flags only contain extra masked module info if tileError==1 or Warning
502 if(tileFlags==m_LastTileFlags){
503 if(m_verbosity==Debug){
504 size_t ntrips=m_currentTrips.size();
505 msg<<"Total masked before reading tileFlags = "<<ntrips<<endl;
506 }
507 return;
508 }//if the flags havent changed since last time, don't regenerate the trip regions
509 m_LastTileFlags=tileFlags;
510 getEtaPhi(run, lbn,true);//Generates a fresh set of TripRegions from DCS to compare to the flags
511 int consecBad = (tileFlags>>16) & 0xF; //consecutive bad modules
512 int badMod1 = (tileFlags>>20) & 0x3F; //first module number
513 int badMod2= (badMod1 + consecBad - 1); //last module number
514 int part = ((tileFlags>>26) & 0x3); //partition number
515
516 int greaterMod=-1;
517 if(badMod2>63){
518 greaterMod=badMod2-64;
519 badMod2=63;
520 }
521
522 int currentMod=badMod1;
523 while(currentMod<=badMod2){
524 TripRegion trip=partModToEtaPhi(part,currentMod);
525 size_t ntrips=m_currentTrips.size();
526 bool inDCSlist=false;
527 for(size_t i=0;i<ntrips;++i){
528 if(m_currentTrips[i].eta1==trip.eta1 &&
529 m_currentTrips[i].eta2==trip.eta2 &&
530 m_currentTrips[i].phi1==trip.phi1 &&
531 m_currentTrips[i].phi2==trip.phi2 ){
532 inDCSlist=true;
533 break;
534 }
535 }
536 if(!inDCSlist){
537 m_currentTrips.push_back(trip);
538 if(m_verbosity==Debug){
539 const string partition[4]={
540 "LBA",
541 "LBC",
542 "EBA",
543 "EBC"
544 };
545 msg<<"Read masked module "<<partition[part]<<setfill('0')<<setw(2)<<currentMod+1<<
546 " region "<<trip.eta1<<" <= eta <= "<<trip.eta2<<" "<<
547 trip.phi1<<" <= phi <= "<<trip.phi2<<endl;
548 }
549 }
550 ++currentMod;
551 }
552
553 if(m_verbosity==Debug){
554 size_t ntrips=m_currentTrips.size();
555 msg<<"Total masked after reading tileFlags = "<<ntrips<<endl;
556 for(size_t i=0;i<ntrips;++i){
557 TripRegion& trip=m_currentTrips[i];
558 msg<<"Region "<<i<<" "<<trip.eta1<<" <= eta <= "<<trip.eta2<<" "<<
559 trip.phi1<<" <= phi <= "<<trip.phi2<<endl;
560 }
561 }
562
563 if(greaterMod<0)return;
564 currentMod=0;
565 while(currentMod<=greaterMod){
566 TripRegion trip=partModToEtaPhi(part,currentMod);
567 size_t ntrips=m_currentTrips.size();
568 bool inDCSlist=false;
569 for(size_t i=0;i<ntrips;++i){
570 if(m_currentTrips[i].eta1==trip.eta1 &&
571 m_currentTrips[i].eta2==trip.eta2 &&
572 m_currentTrips[i].phi1==trip.phi1 &&
573 m_currentTrips[i].phi2==trip.phi2 ){
574 inDCSlist=true;
575 break;
576 }
577 }
578 if(!inDCSlist){
579 m_currentTrips.push_back(trip);
580 if(m_verbosity==Debug){
581 const string partition[4]={
582 "LBA",
583 "LBC",
584 "EBA",
585 "EBC"
586 };
587 msg<<"Read masked module "<<partition[part]<<setfill('0')<<setw(2)<<currentMod+1<<
588 " region "<<trip.eta1<<" <= eta <= "<<trip.eta2<<" "<<
589 trip.phi1<<" <= phi <= "<<trip.phi2<<endl;
590 }
591 }
592 ++currentMod;
593 }
594
595 if(m_verbosity==Debug){
596 size_t ntrips=m_currentTrips.size();
597 msg<<"Total masked after reading tileFlags = "<<ntrips<<endl;
598 for(size_t i=0;i<ntrips;++i){
599 TripRegion& trip=m_currentTrips[i];
600 msg<<"Region "<<i<<" "<<trip.eta1<<" <= eta <= "<<trip.eta2<<" "<<
601 trip.phi1<<" <= phi <= "<<trip.phi2<<endl;
602 }
603 }
604}

◆ setBadEventList()

void Root::TTileTripReader::setBadEventList ( )
private

Fills the bad event map.

Definition at line 636 of file TTileTripReader.cxx.

636 {
637 m_badEvents[211620][ 809] = 30918608;
638 m_badEvents[211620][ 911] = 50250818;
639 m_badEvents[211670][ 170] = 23991666;
640 m_badEvents[211670][ 249] = 32887308;
641 m_badEvents[211697][ 296] = 20481958;
642 m_badEvents[211772][ 453] = 24016459;
643 m_badEvents[211772][ 487] = 32756300;
644 m_badEvents[211772][ 537] = 43708856;
645 m_badEvents[211772][ 665] = 66256038;
646 m_badEvents[211772][ 677] = 69195161;
647 m_badEvents[211772][ 682] = 70495320;
648 m_badEvents[211772][ 713] = 77315023;
649 m_badEvents[211787][ 137] = 25075877;
650 m_badEvents[211787][ 156] = 27722626;
651 m_badEvents[211787][ 231] = 45498134;
652 m_badEvents[211787][ 327] = 70283778;
653 m_badEvents[211787][ 341] = 73478541;
654 m_badEvents[211787][ 379] = 78891936;
655 m_badEvents[211787][ 495] = 104208286;
656 m_badEvents[211787][ 533] = 112676423;
657 m_badEvents[211787][ 606] = 125346821;
658 m_badEvents[211787][ 674] = 134529732;
659 m_badEvents[211787][ 684] = 136745813;
660 m_badEvents[211787][ 687] = 137325328;
661 m_badEvents[211787][ 705] = 141053713;
662 m_badEvents[211787][ 737] = 145106825;
663 m_badEvents[211787][ 781] = 151535382;
664 m_badEvents[211787][ 808] = 155908888;
665 m_badEvents[211787][ 833] = 160751251;
666 m_badEvents[211867][ 415] = 118577411;
667 m_badEvents[211867][ 446] = 126968304;
668 m_badEvents[211867][ 476] = 135267293;
669 m_badEvents[211867][ 488] = 137377078;
670 m_badEvents[211867][ 504] = 138631284;
671 m_badEvents[211867][ 585] = 156060507;
672 m_badEvents[211867][ 601] = 159474909;
673 m_badEvents[211867][ 643] = 166995382;
674 m_badEvents[211867][ 653] = 169150580;
675 m_badEvents[211867][ 664] = 171728297;
676 m_badEvents[211867][ 682] = 175037695;
677 m_badEvents[211867][ 697] = 177341927;
678 m_badEvents[211867][ 708] = 179982739;
679 m_badEvents[211867][ 869] = 205041330;
680 m_badEvents[211867][ 979] = 217122251;
681 m_badEvents[211867][1080] = 235986744;
682 m_badEvents[211937][ 273] = 79579535;
683 m_badEvents[211937][ 311] = 91096963;
684 m_badEvents[211937][ 344] = 100555317;
685 m_badEvents[211937][ 363] = 106299191;
686 m_badEvents[211937][ 433] = 126166771;
687 m_badEvents[211937][ 442] = 128380852;
688 m_badEvents[211937][ 539] = 149037480;
689 m_badEvents[211937][ 573] = 154820435;
690 m_badEvents[211937][ 626] = 163148429;
691 m_badEvents[211937][ 681] = 172136294;
692 m_badEvents[212034][ 268] = 61304416;
693 m_badEvents[212034][ 295] = 70488269;
694 m_badEvents[212034][ 373] = 92815632;
695 m_badEvents[212034][ 377] = 94077220;
696 m_badEvents[212034][ 447] = 110479727;
697 m_badEvents[212034][ 449] = 111039026;
698 m_badEvents[212103][ 265] = 74171827;
699 m_badEvents[212142][ 159] = 42259370;
700 m_badEvents[212142][ 187] = 49777048;
701 m_badEvents[212142][ 241] = 55650409;
702 m_badEvents[212142][ 251] = 58080132;
703 m_badEvents[212142][ 259] = 60326167;
704 m_badEvents[212142][ 305] = 70626642;
705 m_badEvents[212144][ 336] = 82794753;
706 m_badEvents[212144][ 555] = 123722841;
707 m_badEvents[212144][ 594] = 129844287;
708 m_badEvents[212144][ 904] = 184774366;
709 m_badEvents[212144][ 946] = 193059339;
710 m_badEvents[212144][ 981] = 199214801;
711 m_badEvents[212144][ 994] = 201867125;
712 m_badEvents[212144][1094] = 218050419;
713 m_badEvents[212144][1221] = 237399658;
714 m_badEvents[212172][ 128] = 34183408;
715 m_badEvents[212172][ 133] = 35958783;
716 m_badEvents[212172][ 274] = 68520156;
717 m_badEvents[212172][ 283] = 71005981;
718 m_badEvents[212172][ 303] = 75609633;
719 m_badEvents[212172][ 435] = 102794917;
720 m_badEvents[212172][ 453] = 106963891;
721 m_badEvents[212172][ 587] = 133067590;
722 m_badEvents[212172][ 787] = 165298506;
723 m_badEvents[212172][ 825] = 172232714;
724 m_badEvents[212199][ 131] = 34583718;
725 m_badEvents[212199][ 138] = 36561516;
726 m_badEvents[212199][ 165] = 45222651;
727 m_badEvents[212199][ 368] = 97625582;
728 m_badEvents[212199][ 400] = 105175388;
729 m_badEvents[212199][ 414] = 108306676;
730 m_badEvents[212199][ 479] = 122276322;
731 m_badEvents[212199][ 485] = 123361057;
732 m_badEvents[212199][ 557] = 139813253;
733 m_badEvents[212199][ 628] = 154879540;
734 m_badEvents[212272][ 399] = 112893675;
735 m_badEvents[212272][ 402] = 113746110;
736 m_badEvents[212272][ 467] = 132448931;
737 m_badEvents[212272][ 491] = 139054835;
738 m_badEvents[212272][ 504] = 142569344;
739 m_badEvents[212272][ 520] = 146768355;
740 m_badEvents[212272][ 622] = 170422008;
741 m_badEvents[212272][ 656] = 177673918;
742 m_badEvents[212272][ 824] = 213994461;
743 m_badEvents[212272][ 893] = 227713742;
744 m_badEvents[212663][ 312] = 79790422;
745 m_badEvents[212663][ 316] = 80951546;
746 m_badEvents[212663][ 326] = 83989774;
747 m_badEvents[212663][ 366] = 94212644;
748 m_badEvents[212663][ 381] = 97930421;
749 m_badEvents[212663][ 383] = 98521948;
750 m_badEvents[212663][ 387] = 99677557;
751 m_badEvents[212687][ 114] = 17058218;
752 m_badEvents[212687][ 126] = 21243793;
753 m_badEvents[212687][ 168] = 32985216;
754 m_badEvents[212687][ 271] = 58155185;
755 m_badEvents[212687][ 323] = 70331631;
756 m_badEvents[212687][ 357] = 77176767;
757 m_badEvents[212721][ 201] = 52039190;
758 m_badEvents[212721][ 220] = 58603120;
759 m_badEvents[212721][ 246] = 65278591;
760 m_badEvents[212721][ 252] = 67402330;
761 m_badEvents[212721][ 289] = 75228740;
762 m_badEvents[212721][ 319] = 82842050;
763 m_badEvents[212721][ 479] = 122996628;
764 m_badEvents[212721][ 565] = 142364781;
765 m_badEvents[212721][ 604] = 150988998;
766 m_badEvents[212721][ 632] = 155954020;
767 m_badEvents[212742][ 207] = 60144748;
768 m_badEvents[212742][ 223] = 62405230;
769 m_badEvents[212742][ 241] = 68197732;
770 m_badEvents[212742][ 293] = 83308673;
771 m_badEvents[212742][ 295] = 83626188;
772 m_badEvents[212742][ 317] = 88821259;
773 m_badEvents[212742][ 331] = 92381337;
774 m_badEvents[212742][ 560] = 141298623;
775 m_badEvents[212742][ 565] = 142245925;
776 m_badEvents[212742][ 647] = 157663517;
777 m_badEvents[212809][ 303] = 88340723;
778 m_badEvents[212815][ 109] = 31575524;
779 m_badEvents[212815][ 165] = 49225559;
780 m_badEvents[212815][ 204] = 60227314;
781 m_badEvents[212815][ 205] = 60579290;
782 m_badEvents[212815][ 225] = 65242249;
783 m_badEvents[212815][ 227] = 65919654;
784 m_badEvents[212815][ 274] = 76382992;
785 m_badEvents[212815][ 406] = 105164459;
786 m_badEvents[212815][ 631] = 150577349;
787 m_badEvents[212815][ 638] = 151728427;
788 m_badEvents[212858][ 222] = 62152125;
789 m_badEvents[212858][ 225] = 62891044;
790 m_badEvents[212858][ 274] = 77090238;
791 m_badEvents[212858][ 362] = 99938214;
792 m_badEvents[212858][ 379] = 103224773;
793 m_badEvents[212858][ 646] = 160856798;
794 m_badEvents[212858][ 777] = 184840226;
795 m_badEvents[212858][ 801] = 189409163;
796 m_badEvents[212858][ 885] = 204054306;
797 m_badEvents[212858][ 951] = 214360091;
798 m_badEvents[212967][ 131] = 36562258;
799 m_badEvents[212967][ 257] = 63562358;
800 m_badEvents[212967][ 277] = 67422524;
801 m_badEvents[212967][ 389] = 92025946;
802 m_badEvents[212967][ 433] = 100838299;
803 m_badEvents[212993][ 163] = 46421469;
804 m_badEvents[212993][ 244] = 71271803;
805 m_badEvents[212993][ 290] = 83452971;
806 m_badEvents[212993][ 433] = 114146865;
807 m_badEvents[212993][ 495] = 127176803;
808 m_badEvents[212993][ 518] = 132055043;
809 m_badEvents[212993][ 711] = 161451113;
810 m_badEvents[213039][ 435] = 123595163;
811 m_badEvents[213039][ 442] = 125966331;
812 m_badEvents[213039][ 444] = 126635986;
813 m_badEvents[213039][ 449] = 127047496;
814 m_badEvents[213039][ 491] = 139509462;
815 m_badEvents[213039][ 506] = 143494956;
816 m_badEvents[213039][ 508] = 144037393;
817 m_badEvents[213039][ 664] = 183458266;
818 m_badEvents[213039][ 672] = 185493703;
819 m_badEvents[213039][ 676] = 186652045;
820 m_badEvents[213039][ 810] = 218014014;
821 m_badEvents[213039][ 844] = 226420789;
822 m_badEvents[213039][ 942] = 248131356;
823 m_badEvents[213039][ 984] = 255977737;
824 m_badEvents[213039][ 985] = 256259471;
825 m_badEvents[213039][1028] = 264763402;
826 m_badEvents[213039][1091] = 278267871;
827 m_badEvents[213079][ 76] = 21118131;
828 m_badEvents[213079][ 93] = 26924960;
829 m_badEvents[213079][ 107] = 31629850;
830 m_badEvents[213079][ 108] = 32121270;
831 m_badEvents[213079][ 142] = 42417897;
832 m_badEvents[213079][ 253] = 68071791;
833 m_badEvents[213079][ 388] = 97942628;
834 m_badEvents[213079][ 406] = 101552414;
835 m_badEvents[213079][ 446] = 109435226;
836 m_badEvents[213079][ 491] = 118065478;
837 m_badEvents[213092][ 304] = 89221417;
838 m_badEvents[213092][ 329] = 98196863;
839 m_badEvents[213092][ 336] = 100870506;
840 m_badEvents[213092][ 413] = 125456520;
841 m_badEvents[213092][ 428] = 128742710;
842 m_badEvents[213092][ 442] = 131280992;
843 m_badEvents[213092][ 455] = 135005521;
844 m_badEvents[213092][ 456] = 135419301;
845 m_badEvents[213092][ 461] = 136517543;
846 m_badEvents[213130][ 225] = 66606499;
847 m_badEvents[213130][ 238] = 70706931;
848 m_badEvents[213130][ 302] = 87362821;
849 m_badEvents[213130][ 369] = 104601473;
850 m_badEvents[213155][ 161] = 45502898;
851 m_badEvents[213155][ 226] = 65665665;
852 m_badEvents[213155][ 253] = 74594415;
853 m_badEvents[213155][ 271] = 79960342;
854 m_badEvents[213157][ 96] = 27645561;
855 m_badEvents[213157][ 97] = 27788698;
856 m_badEvents[213157][ 173] = 51882395;
857 m_badEvents[213157][ 175] = 52411595;
858 m_badEvents[213157][ 197] = 57234239;
859 m_badEvents[213157][ 206] = 58514150;
860 m_badEvents[213157][ 242] = 63663521;
861 m_badEvents[213157][ 255] = 67535487;
862 m_badEvents[213157][ 270] = 71637795;
863 m_badEvents[213250][ 205] = 60520332;
864 m_badEvents[213250][ 222] = 65257465;
865 m_badEvents[213250][ 247] = 72263290;
866 m_badEvents[213250][ 320] = 92907476;
867 m_badEvents[213250][ 363] = 103329459;
868 m_badEvents[213250][ 382] = 108284785;
869 m_badEvents[213250][ 451] = 128056187;
870 m_badEvents[213314][ 409] = 124373091;
871 m_badEvents[213359][ 46] = 11973418;
872 m_badEvents[213359][ 100] = 29627794;
873 m_badEvents[213359][ 134] = 41636632;
874 m_badEvents[213431][ 371] = 113733490;
875 m_badEvents[213431][ 383] = 117357719;
876 m_badEvents[213486][ 226] = 62935200;
877 m_badEvents[213486][ 356] = 98460803;
878 m_badEvents[213486][ 369] = 103161912;
879 m_badEvents[213486][ 408] = 116687821;
880 m_badEvents[213486][ 443] = 127413823;
881 m_badEvents[213486][ 470] = 136352132;
882 m_badEvents[213486][ 605] = 172136447;
883 m_badEvents[213539][ 166] = 48261169;
884 m_badEvents[213539][ 343] = 96085689;
885 m_badEvents[213539][ 364] = 101400979;
886 m_badEvents[213539][ 401] = 110923015;
887 m_badEvents[213539][ 437] = 122855066;
888 m_badEvents[213539][ 457] = 129277962;
889 m_badEvents[213539][ 471] = 132857115;
890 m_badEvents[213539][ 596] = 174867207;
891 m_badEvents[213539][ 702] = 206952674;
892 m_badEvents[213539][ 722] = 213262287;
893 m_badEvents[213539][ 867] = 257284352;
894 m_badEvents[213539][ 918] = 271585195;
895 m_badEvents[213539][ 935] = 276532153;
896 m_badEvents[213539][1062] = 311135385;
897 m_badEvents[213539][1093] = 319727565;
898 m_badEvents[213539][1152] = 336490953;
899 m_badEvents[213627][ 272] = 80425704;
900 m_badEvents[213640][ 56] = 12005902;
901 m_badEvents[213640][ 70] = 14918463;
902 m_badEvents[213640][ 81] = 18079040;
903 m_badEvents[213640][ 163] = 39220054;
904 m_badEvents[213684][ 253] = 70685007;
905 m_badEvents[213695][ 260] = 78929129;
906 m_badEvents[213695][ 275] = 83295843;
907 m_badEvents[213695][ 395] = 118353505;
908 m_badEvents[213695][ 422] = 127780110;
909 m_badEvents[213702][ 224] = 65859325;
910 m_badEvents[213702][ 234] = 69356479;
911 m_badEvents[213702][ 241] = 71928803;
912 m_badEvents[213754][ 439] = 130286845;
913 m_badEvents[213754][ 468] = 139658841;
914 m_badEvents[213754][ 487] = 145336905;
915 m_badEvents[213754][ 501] = 149295259;
916 m_badEvents[213754][ 513] = 152831111;
917 m_badEvents[213754][ 530] = 158255438;
918 m_badEvents[213754][ 661] = 194754352;
919 m_badEvents[213754][ 668] = 197140774;
920 m_badEvents[213754][ 826] = 239811696;
921 m_badEvents[213754][ 881] = 258669913;
922 m_badEvents[213754][ 938] = 277098450;
923 m_badEvents[213754][1142] = 338925991;
924 m_badEvents[213754][1329] = 392113583;
925 m_badEvents[213796][ 158] = 44507365;
926 m_badEvents[213796][ 206] = 58985238;
927 m_badEvents[213796][ 301] = 83448459;
928 m_badEvents[213796][ 333] = 93593176;
929 m_badEvents[213796][ 360] = 99781558;
930 m_badEvents[213816][ 192] = 55406360;
931 m_badEvents[213816][ 269] = 78481689;
932 m_badEvents[213816][ 283] = 82641406;
933 m_badEvents[213816][ 370] = 108457578;
934 m_badEvents[213819][ 160] = 46811285;
935 m_badEvents[213819][ 180] = 52871721;
936 m_badEvents[213819][ 202] = 59259282;
937 m_badEvents[213819][ 239] = 68706061;
938 m_badEvents[213819][ 280] = 81117930;
939 m_badEvents[213819][ 305] = 87854925;
940 m_badEvents[213819][ 332] = 95539190;
941 m_badEvents[213900][ 324] = 96085442;
942 m_badEvents[213900][ 349] = 104773361;
943 m_badEvents[213900][ 373] = 110881775;
944 m_badEvents[213900][ 475] = 139955858;
945 m_badEvents[213900][ 491] = 144250720;
946 m_badEvents[213900][ 561] = 167029804;
947 m_badEvents[213900][ 624] = 186510324;
948 m_badEvents[213900][ 722] = 218591613;
949 m_badEvents[213900][ 734] = 221225189;
950 m_badEvents[213900][ 871] = 263297620;
951 m_badEvents[213951][ 271] = 79566293;
952 m_badEvents[213951][ 401] = 118812783;
953 m_badEvents[213951][ 441] = 128654993;
954 m_badEvents[213951][ 457] = 132288337;
955 m_badEvents[213951][ 571] = 154551203;
956 m_badEvents[213951][ 620] = 169085961;
957 m_badEvents[213964][ 52] = 13462948;
958 m_badEvents[213968][ 179] = 52179074;
959 m_badEvents[213968][ 206] = 60769634;
960 m_badEvents[214021][ 377] = 111694242;
961 m_badEvents[214021][ 393] = 116031010;
962 m_badEvents[214021][ 515] = 151050310;
963 m_badEvents[214021][ 529] = 154745174;
964 m_badEvents[214021][ 531] = 155421765;
965 m_badEvents[214021][ 577] = 167678775;
966 m_badEvents[214021][ 687] = 201372055;
967 m_badEvents[214021][ 753] = 223504090;
968 m_badEvents[214021][ 862] = 256032256;
969 m_badEvents[214021][1077] = 315933922;
970 m_badEvents[214086][ 198] = 58661578;
971 m_badEvents[214086][ 222] = 65915113;
972 m_badEvents[214086][ 265] = 78838619;
973 m_badEvents[214086][ 312] = 90367641;
974 m_badEvents[214086][ 337] = 97701655;
975 m_badEvents[214086][ 398] = 117844979;
976 m_badEvents[214086][ 405] = 120239052;
977 m_badEvents[214086][ 505] = 151404219;
978 m_badEvents[214086][ 511] = 152654874;
979 m_badEvents[214086][ 583] = 175508847;
980 m_badEvents[214086][ 620] = 187280092;
981 m_badEvents[214086][ 862] = 259666334;
982 m_badEvents[214086][ 935] = 280635242;
983 m_badEvents[214086][ 949] = 284662039;
984 m_badEvents[214086][1152] = 337584653;
985 m_badEvents[214160][ 120] = 35196096;
986 m_badEvents[214160][ 132] = 39644970;
987 m_badEvents[214160][ 304] = 91735548;
988 m_badEvents[214160][ 446] = 134801908;
989 m_badEvents[214160][ 489] = 148028079;
990 m_badEvents[214160][ 673] = 208029920;
991 m_badEvents[214160][ 713] = 219965263;
992 m_badEvents[214176][ 348] = 101831142;
993 m_badEvents[214216][ 315] = 92809021;
994 m_badEvents[214216][ 327] = 95746910;
995 m_badEvents[214216][ 409] = 119902265;
996 m_badEvents[214216][ 426] = 124577717;
997 m_badEvents[214216][ 443] = 129177081;
998 m_badEvents[214216][ 524] = 157789464;
999 m_badEvents[214216][ 604] = 182047256;
1000 m_badEvents[214216][ 609] = 183268716;
1001 m_badEvents[214216][ 620] = 186867324;
1002 m_badEvents[214216][ 643] = 194803186;
1003 m_badEvents[214216][ 654] = 198743354;
1004 m_badEvents[214216][ 693] = 211156533;
1005 m_badEvents[214216][ 718] = 219502607;
1006 m_badEvents[214388][ 482] = 141016617;
1007 m_badEvents[214388][ 512] = 149507370;
1008 m_badEvents[214388][ 529] = 154431800;
1009 m_badEvents[214388][ 546] = 160010331;
1010 m_badEvents[214390][ 126] = 30550658;
1011 m_badEvents[214390][ 165] = 43024151;
1012 m_badEvents[214390][ 396] = 106759792;
1013 m_badEvents[214494][ 109] = 29478633;
1014 m_badEvents[214494][ 139] = 39122996;
1015 m_badEvents[214494][ 153] = 42985263;
1016 m_badEvents[214494][ 235] = 67626184;
1017 m_badEvents[214494][ 240] = 68658006;
1018 m_badEvents[214494][ 361] = 107230032;
1019 m_badEvents[214494][ 376] = 112238214;
1020 m_badEvents[214494][ 388] = 115761949;
1021 m_badEvents[214494][ 438] = 130702325;
1022 m_badEvents[214494][ 469] = 140339628;
1023 m_badEvents[214494][ 478] = 143408490;
1024 m_badEvents[214494][ 528] = 158894657;
1025 m_badEvents[214494][ 628] = 187805212;
1026 m_badEvents[214523][ 190] = 50181037;
1027 m_badEvents[214523][ 208] = 55621427;
1028 m_badEvents[214523][ 215] = 57401419;
1029 m_badEvents[214523][ 227] = 61119795;
1030 m_badEvents[214523][ 293] = 80518599;
1031 m_badEvents[214523][ 306] = 83568653;
1032 m_badEvents[214523][ 358] = 97821922;
1033 m_badEvents[214523][ 383] = 105821339;
1034 m_badEvents[214523][ 608] = 175714199;
1035 m_badEvents[214523][ 649] = 187930472;
1036 m_badEvents[214523][ 692] = 201168808;
1037 m_badEvents[214523][ 707] = 205911433;
1038 m_badEvents[214544][ 121] = 32531579;
1039 m_badEvents[214544][ 128] = 34278960;
1040 m_badEvents[214544][ 196] = 52990693;
1041 m_badEvents[214544][ 238] = 63202772;
1042 m_badEvents[214544][ 264] = 69547403;
1043 m_badEvents[214544][ 309] = 80169757;
1044 m_badEvents[214544][ 358] = 95684444;
1045 m_badEvents[214544][ 415] = 113028399;
1046 m_badEvents[214544][ 425] = 116453891;
1047 m_badEvents[214544][ 512] = 144322637;
1048 m_badEvents[214544][ 530] = 150403783;
1049 m_badEvents[214544][ 551] = 156914594;
1050 m_badEvents[214544][ 581] = 165650856;
1051 m_badEvents[214544][ 610] = 173948673;
1052 m_badEvents[214544][ 663] = 189356210;
1053 m_badEvents[214553][ 81] = 21848484;
1054 m_badEvents[214553][ 107] = 28867085;
1055 m_badEvents[214553][ 143] = 34975171;
1056 m_badEvents[214553][ 175] = 43375728;
1057 m_badEvents[214553][ 235] = 55710673;
1058 m_badEvents[214553][ 278] = 65777105;
1059 m_badEvents[214553][ 336] = 83565966;
1060 m_badEvents[214553][ 351] = 88977043;
1061 m_badEvents[214553][ 352] = 89040957;
1062 m_badEvents[214553][ 392] = 101340699;
1063 m_badEvents[214553][ 403] = 104486789;
1064 m_badEvents[214553][ 465] = 123363220;
1065 m_badEvents[214553][ 498] = 133139714;
1066 m_badEvents[214553][ 519] = 140070084;
1067 m_badEvents[214553][ 673] = 185284263;
1068 m_badEvents[214553][ 678] = 186353867;
1069 m_badEvents[214553][ 694] = 191167020;
1070
1071}

◆ setTripFile()

int Root::TTileTripReader::setTripFile ( const char * file)
Parameters
filethe file path to the trip list root file
Returns
the number of files added

The trip reader uses TChain to read the TTrees inside the root file.
You can load multiple files by using wildcards.

Definition at line 606 of file TTileTripReader.cxx.

606 {
607 ostream& msg=*m_msglog;
608 if(m_ChainsLoaded){
609 msg<<"ERROR: Cannot add more trip files to the chain after you have closed the file and loaded it into memory!\n";
610 return 0;
611 }
612 int files_connected=0;
613 files_connected=static_cast<TChain*>(m_trips)->Add(file);
614 if(files_connected!=static_cast<TChain*>(m_runMap)->Add(file))
615 msg<<"Connected file missmatch.\n";
616
617 m_mapRun=0;
618 m_FirstEntry=0;
619 m_runMap->SetBranchAddress("Run",&m_mapRun);
620 m_runMap->SetBranchAddress("FirstEntry",&m_FirstEntry);
621
622 m_Run=0;
623 m_Partition=0;
624 m_Module=0;
625 m_LumiStart=0;
626 m_LumiEnd=0;
627 m_trips->SetBranchAddress("Run",&m_Run);
628 m_trips->SetBranchAddress("Partition",&m_Partition);
629 m_trips->SetBranchAddress("Module",&m_Module);
630 m_trips->SetBranchAddress("LumiStart",&m_LumiStart);
631 m_trips->SetBranchAddress("LumiEnd",&m_LumiEnd);
632
633 return files_connected;
634}
TFile * file

◆ setVerbosity()

void Root::TTileTripReader::setVerbosity ( int v = Debug,
std::ostream & stream = std::cout )
inline

Definition at line 188 of file TTileTripReader.h.

Member Data Documentation

◆ m_accept

asg::AcceptInfo Root::TTileTripReader::m_accept
private

Definition at line 217 of file TTileTripReader.h.

◆ m_badEvents

std::map<unsigned int,std::map<unsigned short,unsigned int> > Root::TTileTripReader::m_badEvents
private

Definition at line 229 of file TTileTripReader.h.

◆ m_ChainsLoaded

bool Root::TTileTripReader::m_ChainsLoaded
private

Definition at line 237 of file TTileTripReader.h.

◆ m_currentLbn

int Root::TTileTripReader::m_currentLbn
private

Definition at line 225 of file TTileTripReader.h.

◆ m_currentRun

int Root::TTileTripReader::m_currentRun
private

Definition at line 224 of file TTileTripReader.h.

◆ m_currentTrips

std::vector<TripRegion> Root::TTileTripReader::m_currentTrips
private

Definition at line 230 of file TTileTripReader.h.

◆ m_EBOffsets

TripRegion Root::TTileTripReader::m_EBOffsets

Definition at line 194 of file TTileTripReader.h.

◆ m_FirstEntry

int Root::TTileTripReader::m_FirstEntry
private

Definition at line 223 of file TTileTripReader.h.

◆ m_LastTileFlags

int Root::TTileTripReader::m_LastTileFlags
private

Definition at line 228 of file TTileTripReader.h.

◆ m_LBOffsets

TripRegion Root::TTileTripReader::m_LBOffsets

Definition at line 193 of file TTileTripReader.h.

◆ m_LumiEnd

std::vector<int>* Root::TTileTripReader::m_LumiEnd
private

Definition at line 235 of file TTileTripReader.h.

◆ m_LumiStart

int Root::TTileTripReader::m_LumiStart
private

Definition at line 234 of file TTileTripReader.h.

◆ m_mapRun

int Root::TTileTripReader::m_mapRun
private

Definition at line 221 of file TTileTripReader.h.

◆ m_Module

std::vector<char>* Root::TTileTripReader::m_Module
private

Definition at line 233 of file TTileTripReader.h.

◆ m_msglog

std::ostream* Root::TTileTripReader::m_msglog
private

Definition at line 236 of file TTileTripReader.h.

◆ m_name

std::string Root::TTileTripReader::m_name
private

The name of the class instance.

Definition at line 215 of file TTileTripReader.h.

◆ m_Offsets

std::vector<int> Root::TTileTripReader::m_Offsets
private

Definition at line 231 of file TTileTripReader.h.

◆ m_Partition

std::vector<char>* Root::TTileTripReader::m_Partition
private

Definition at line 232 of file TTileTripReader.h.

◆ m_Run

int Root::TTileTripReader::m_Run
private

Definition at line 222 of file TTileTripReader.h.

◆ m_runMap

TTree* Root::TTileTripReader::m_runMap
private

Definition at line 220 of file TTileTripReader.h.

◆ m_startEntry

int Root::TTileTripReader::m_startEntry
private

Definition at line 226 of file TTileTripReader.h.

◆ m_trips

TTree* Root::TTileTripReader::m_trips
private

Definition at line 219 of file TTileTripReader.h.

◆ m_verbosity

int Root::TTileTripReader::m_verbosity
private

Definition at line 227 of file TTileTripReader.h.


The documentation for this class was generated from the following files: