#include <CDCrossTalker.h>
Public Member Functions | |
| CDCrossTalker (std::map< Int_t, CandStripHandle >, Float_t opt, Int_t cosmic) | |
| std::map< Int_t, CandStripHandle > | GetCleanStripMap () |
| void | GetXTalkStripInfo (TClonesArray *) |
| Int_t | GetNumHitsRemoved () |
| std::map< Int_t, CandStripHandle > | GetXTalkStripMap () |
| std::map< Int_t, Int_t > | GetXTalkSourceStrips () |
| Int_t | SetMap (std::map< Int_t, CandStripHandle > stripmap) |
| Int_t | SetOption (Float_t opt) |
Private Attributes | |
| std::map< Int_t, CandStripHandle > | fAllStrips |
| std::map< Int_t, CandStripHandle > | fCleanedStrips |
| Float_t | fopt |
| std::map< Int_t, CandStripHandle > | fXTalkStrips |
| std::map< Int_t, Int_t > | fXTalkSource |
| std::map< Int_t, Int_t > | fNumSurround |
| Int_t | fnum_xtalk_hits |
| Int_t | fcosmic |
|
||||||||||||||||
|
Definition at line 39 of file CDCrossTalker.cxx. References fcosmic, fnum_xtalk_hits, SetMap(), and SetOption(). 00041 {
00042 this->SetMap(stripmap);
00043 this->SetOption(opt);
00044 fnum_xtalk_hits = -1;
00045 fcosmic = cosmic;
00046 }
|
|
|
Definition at line 66 of file CDCrossTalker.cxx. References PlexStripEndId::Build18BitPlnStripKey(), fAllStrips, fCleanedStrips, fnum_xtalk_hits, fNumSurround, fopt, fXTalkSource, fXTalkStrips, PlexSEIdAltL::GetBestSEId(), CandDigitHandle::GetChannelId(), RawChannelId::GetElecType(), PlexStripEndId::GetEnd(), PlexPixelSpotId::GetPixel(), PlexHandle::GetPixelSpotId(), CandDigitHandle::GetPlexSEIdAltL(), PlexPixelSpotId::GetSpot(), PlexPixelSpotId::GetTube(), Calibrator::Instance(), MSG, and CalScheme::Reset(). Referenced by GetXTalkSourceStrips(), GetXTalkStripInfo(), and GetXTalkStripMap(). 00067 {
00068 if(fnum_xtalk_hits!=-1) return fCleanedStrips;
00069
00070 if(fAllStrips.empty()){
00071 MSG("CDCrossTalker",Msg::kWarning)
00072 <<"CDCrossTalker: No StripMap Set"<<endl;
00073 return fCleanedStrips;
00074 }
00075
00076 if(fopt==-1) {
00077 MSG("CDCrossTalker",Msg::kWarning)
00078 << "CDCrossTalker: No Options Set" << endl;
00079 return fCleanedStrips;
00080 }
00081
00082 fnum_xtalk_hits = 0;
00083
00084 float event[60][48];
00085 float crosstalkhits[60][48];
00086 int crosstalkhitssourceplane[60][48];
00087 int crosstalkhitssourcestrip[60][48];
00088 int crosstalkhitssourcepixelone[60][48];
00089 int crosstalkhitssourcepixeltwo[60][48];
00090 int crosstalkhitssourcepixel[60][48];
00091 int crosstalkhitspixel[60][48];
00092 int crosstalkhitssourcespot[60][48];
00093 int crosstalknumxhits[60][48];
00094 int otubematrix[60][48];
00095 int opixelmatrix[60][48];
00096
00097 int ospotmatrix[60][48];
00098 double otimematrix[60][48];
00099
00100 //initialise arrays
00101 for (int ij=0;ij<60;ij++){
00102 for (int jk=0;jk<48;jk++){
00103 //move here
00104 event[ij][jk]=0;
00105 crosstalkhits[ij][jk]=0;
00106 crosstalkhitssourceplane[ij][jk]=-1;
00107 crosstalkhitssourcestrip[ij][jk]=-1;
00108 crosstalkhitssourcepixelone[ij][jk]=-1;
00109 crosstalkhitssourcepixeltwo[ij][jk]=-1;
00110 crosstalkhitssourcepixel[ij][jk]=-1;
00111 crosstalkhitspixel[ij][jk]=-1;
00112 crosstalkhitssourcespot[ij][jk]=-1;
00113 crosstalknumxhits[ij][jk]=-1;
00114 otubematrix[ij][jk]=0;
00115 opixelmatrix[ij][jk]=-10;
00116 ospotmatrix[ij][jk]=0;
00117 otimematrix[ij][jk]=0;
00118 }
00119 }
00120
00121 map<int,CandStripHandle>::iterator stripIter = fAllStrips.begin();
00122 map<int,CandStripHandle>::iterator stripEnd = fAllStrips.end();
00123
00124 //get a reference to the calibrator
00125 Calibrator& calibrator=Calibrator::Instance();
00126
00127 const VldContext *vc = stripIter->second.GetVldContext();
00128 if(stripIter!=stripEnd) calibrator.Reset(*vc);
00129 PlexHandle plexHand(*vc);
00130
00131 while(stripIter!=stripEnd){
00132
00133 bool IsQIE[2] = {false,false};
00134 TIter cdhIter(stripIter->second.GetDaughterIterator());
00135 while(CandDigitHandle *cdh = dynamic_cast<CandDigitHandle*>(cdhIter())){
00136 if(cdh->GetPlexSEIdAltL().GetBestSEId().GetEnd()==StripEnd::kNegative
00137 &&cdh->GetChannelId().GetElecType()==ElecType::kQIE) IsQIE[0]=true;
00138 if(cdh->GetPlexSEIdAltL().GetBestSEId().GetEnd()==StripEnd::kPositive
00139 &&cdh->GetChannelId().GetElecType()==ElecType::kQIE) IsQIE[1]=true;
00140 }
00141
00142 if(IsQIE[0]) MSG("CDCrossTalker",Msg::kDebug) <<"QIE digit end 1" << endl;
00143 if(IsQIE[1]) MSG("CDCrossTalker",Msg::kDebug) <<"QIE digit end 2" << endl;
00144
00145 // RawChannelId rcid_neg(stripIter->second.GetStripEndId(StripEnd::kNegative).GetEncoded());
00146 // RawChannelId rcid_pos(stripIter->second.GetStripEndId(StripEnd::kPositive).GetEncoded());
00147 // if(rcid_neg.GetElecType()==ElecType::kQIE) {
00148 // MSG("CDCrossTalker",Msg::kDebug) << "QIE digit neg "
00149 // << rcid_neg.GetCrate()
00150 // << endl;
00151 // }
00152 // if(rcid_pos.GetElecType()==ElecType::kQIE) {
00153
00154 // MSG("CDCrossTalker",Msg::kDebug) << "QIE digit pos "
00155 // << rcid_pos.GetCrate()
00156 // << endl;
00157 // }
00158
00159 PlexPixelSpotId spotIdNeg = plexHand.GetPixelSpotId(stripIter->second.GetStripEndId(StripEnd::kNegative));
00160 PlexPixelSpotId spotIdPos = plexHand.GetPixelSpotId(stripIter->second.GetStripEndId(StripEnd::kPositive));
00161
00162 int plane = stripIter->second.GetPlane();
00163 int strip = stripIter->second.GetStrip();
00164
00165 if(plane<=59){
00166
00167 if(stripIter->second.GetNDigit(StripEnd::kNegative)>0&&!IsQIE[0]){
00168
00169 int end = StripEnd::kNegative;
00170 float pe = stripIter->second.GetCharge(CalDigitType::kPE,
00171 StripEnd::kNegative);
00172 int tube = spotIdNeg.GetTube();
00173 int pixel = spotIdNeg.GetPixel();
00174 int spot = spotIdNeg.GetSpot();
00175 double time = stripIter->second.GetTime(StripEnd::kNegative);
00176
00177 event[plane][(end-1)*24 + strip] = pe;
00178 otubematrix[plane][(end-1)*24 + strip] = tube;
00179 opixelmatrix[plane][(end-1)*24 + strip] = pixel;
00180 ospotmatrix[plane][(end-1)*24 + strip] = spot;
00181 otimematrix[plane][(end-1)*24 + strip] = time;
00182 }
00183
00184 if(stripIter->second.GetNDigit(StripEnd::kPositive)>0&&!IsQIE[1]){
00185 int end = StripEnd::kPositive;
00186 float pe = stripIter->second.GetCharge(CalDigitType::kPE,
00187 StripEnd::kPositive);
00188 int tube = spotIdPos.GetTube();
00189 int pixel = spotIdPos.GetPixel();
00190 int spot = spotIdPos.GetSpot();
00191 double time = stripIter->second.GetTime(StripEnd::kPositive);
00192
00193 event[plane][(end-1)*24 + strip] = pe;
00194 otubematrix[plane][(end-1)*24 + strip] = tube;
00195 opixelmatrix[plane][(end-1)*24 + strip] = pixel;
00196 ospotmatrix[plane][(end-1)*24 + strip] = spot;
00197 otimematrix[plane][(end-1)*24 + strip] = time;
00198 }
00199 }
00200
00201 stripIter++;
00202
00203 }
00204
00205 int backplaneflag[200];
00206 int largestbutwrongpixelflag[200];
00207 int refpixel[200];
00208 //int nearby[8];
00209 int pottube[200];
00210 int potpixelone[200];
00211 int potpixeltwo[200];
00212 int potspotone[200];
00213 int potspottwo[200];
00214 int hitnum=0;
00215 int sider[200];
00216 int planeseq[200];
00217 int hitplane[200];
00218 int hitstrip[200];
00219 double timersq[200];
00220
00221 float sumadconeplone;
00222 float sumadconepltwo;
00223 int sourcelocplaneonesidetwo;
00224 int sourcelocplaneonesideone;
00225 int sourcelocstriponesideone;
00226 int sourcelocstriponesidetwo;
00227 float sourceone[200];
00228
00229 float sourceadconeplone;
00230 float sourceadconepltwo;
00231 float sourceadctwoplone;
00232 float sourceadctwopltwo;
00233 float sumadctwoplone;
00234 float sumadctwopltwo;
00235
00236 float sourcetwo[200];
00237 int sourcelocplanetwosidetwo;
00238 int sourcelocplanetwosideone;
00239 int sourcelocstriptwosideone;
00240 int sourcelocstriptwosidetwo;
00241 int sourcespotonepltwo;
00242 int sourcespotoneplone;
00243 int sourcespottwopltwo;
00244 int sourcespottwoplone;
00245 float surroundsumone;
00246 float surroundsumtwo;
00247 int topplaneone;
00248 int topstripone;
00249 float topeventone;
00250 int topplanetwo;
00251 int topstriptwo;
00252 float topeventtwo;
00253
00254 // if theres more than 250 hits then this event is well shat
00255 // just get rid of it
00256 int buggered;
00257
00258 for(int k=2;k<4;k++) {
00259 for(int i=k;i<60;i=i+4) {
00260 // so i start at plane 2 (and also check plane 0) then go up
00261 // planes in steps of 4, then i go to plane 3 and repeat
00262
00263 hitnum=0;
00264 //int sourcecountone=0;
00265 //int sourcecounttwo=0;
00266
00267 for (int resetter=0;resetter<200;resetter++){
00268 backplaneflag[resetter]=-1;
00269 largestbutwrongpixelflag[resetter]=-1;
00270 refpixel[resetter]=-1;
00271 potpixelone[resetter]=-1;
00272 potpixeltwo[resetter]=-1;
00273 potspotone[resetter]=-1;
00274 potspottwo[resetter]=-1;
00275 pottube[resetter]=-1;
00276 sider[resetter]=-1;
00277 planeseq[resetter]=-1;
00278 sourceadconeplone=-1;
00279 sourceadconepltwo=-1;
00280 sourceone[resetter]=-1;
00281 sourceadctwopltwo=-1;
00282 sourceadctwoplone=-1;
00283 sourcetwo[resetter]=-1;
00284
00285 // one is first plane done although it is further
00286 sumadconepltwo=0;
00287 sumadconeplone=0; // in detector
00288 sumadctwoplone=0;
00289 sumadctwopltwo=0;
00290 sourcelocplaneonesideone=-1;
00291 sourcelocplaneonesidetwo=-1;
00292 sourcelocstriponesideone=-1;
00293 sourcelocstriponesidetwo=-1;
00294 sourcelocplanetwosidetwo=-1;
00295 sourcelocplanetwosideone=-1;
00296 sourcelocstriptwosidetwo=-1;
00297 sourcelocstriptwosideone=-1;
00298 sourcespotoneplone=-1;
00299 sourcespotonepltwo=-1;
00300 sourcespottwoplone=-1;
00301 sourcespottwopltwo=-1;
00302 timersq[resetter]=-1;
00303 buggered=-1;
00304 surroundsumone=0;
00305 surroundsumtwo=0;
00306 topplaneone=-1;
00307 topstripone=-1;
00308 topplanetwo=-1;
00309 topstriptwo=-1;
00310 topeventone=0;
00311 topeventtwo=0;
00312 }
00313
00314 for (int dbleplaner=0;dbleplaner<4;dbleplaner=dbleplaner+2) {
00315
00316 for(int j=0;j<48;j++) {
00317
00318 // fills matrix 0->60 0->48 2 planes at a time
00319
00320 if (event[i-dbleplaner][j]!=0) {
00321 // if (dbleplaner>0) backplaneflag[hitnum]=1;
00322 pottube[hitnum]=otubematrix[i-dbleplaner][j];
00323
00324 // potspotone[hitnum]=ospotmatrix[i-dbleplaner][j];
00325 hitstrip[hitnum]=j;
00326 hitplane[hitnum]=(i-dbleplaner);
00327 timersq[hitnum]=otimematrix[i-dbleplaner][j];
00328
00329
00330 if (j<24) {
00331 sider[hitnum]=1;
00332 potspotone[hitnum]=ospotmatrix[i-dbleplaner][j];
00333 potpixelone[hitnum]=opixelmatrix[i-dbleplaner][j];
00334 }
00335
00336 else {
00337 sider[hitnum]=2;
00338 potspottwo[hitnum]=ospotmatrix[i-dbleplaner][j];
00339 potpixeltwo[hitnum]=opixelmatrix[i-dbleplaner][j];
00340 }
00341
00342 // ok so hitnum is the number of hitstrips making the
00343 // total possible number of crosstalk hits= (hitnum)^2
00344
00345 MSG("CDCrossTalker",Msg::kDebug)
00346 << "Pl: " <<hitplane[hitnum]
00347 << " Str: " << hitstrip[hitnum]
00348 << " Tu: " << pottube[hitnum]
00349 << " P1: " << potpixelone[hitnum]
00350 <<" P2: " << potpixeltwo[hitnum]
00351 << " ADC: " << event[i-dbleplaner][j]
00352 << " S1: " << potspotone[hitnum]
00353 << " S2: " << potspottwo[hitnum] << endl;
00354
00355 hitnum++;
00356 }
00357 }
00358 } // doubleplaner
00359
00360 if (hitnum>=14 ) {
00361 buggered=1;
00362 hitnum=0;
00363 }
00364
00365 if(hitnum>1 && buggered!=1) {
00366
00367 //sourcecount is number of crosstalk hits per 2 planes including
00368 //original 'source' hit
00369
00370 //int sourcecountone=0;
00371 //int sourcecounttwo=0;
00372
00373 for (int f=0;f<hitnum;f++) {
00374
00375 int matrixseqplane=hitplane[f];
00376 int matrixseqstrip=hitstrip[f];
00377 int hitser=0;
00378 //f is reference check and d is check-ee -> use f
00379
00380 for (int d=0;d<hitnum;d++) {
00381
00382 int matrixseqcheckeeplane=hitplane[d];
00383 int matrixseqcheckeestrip=hitstrip[d];
00384
00385 // Start of Hi same plane crosstalk
00386
00387 if ((pottube[f] == pottube[d])&&
00388 (f!=d)&&(sider[f]==sider[d])&&
00389 (pottube[f]!=-1)&&(pottube[d]!=-1)&&
00390 (potpixelone[d]!=0) && (potpixeltwo[d]!=0) ) {
00391
00392 // if ((pottube[f] == pottube[d])&&(f!=d)&&
00393 //(sider[f]==sider[d])&&
00394 // (pottube[f]!=-1)&&(pottube[d]!=-1) ) {
00395 //same tube, don't double count, same side,
00396 //valid tube,valid tube,
00397 //same plane,
00398 //remove particles hitting two strips in plane
00399 //in valid strip range
00400
00401 //all these 'nots' remove a few hits at pmt edges that are
00402 //not real cos of simple +-1,+-4,+-3,+-5 formula used
00403
00404 if(((potpixelone[f]==((potpixelone[d])-4)) &&
00405 ((potpixelone[d])-4)>0)){
00406 if(sider[f]==1) {
00407 surroundsumone=surroundsumone+
00408 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00409 hitser++;
00410
00411 if (event[matrixseqcheckeeplane]
00412 [matrixseqcheckeestrip]>topeventone) {
00413 topeventone=event[matrixseqcheckeeplane]
00414 [matrixseqcheckeestrip];
00415 topplaneone=matrixseqcheckeeplane;
00416 topstripone=matrixseqcheckeestrip;
00417 crosstalkhitssourcepixelone[matrixseqplane]
00418 [matrixseqstrip] = potpixelone[d];
00419 crosstalkhitssourcespot[matrixseqplane]
00420 [matrixseqstrip] = potspotone[d];
00421 }
00422 }
00423 }
00424
00425 if(((potpixeltwo[f]==((potpixeltwo[d])-4)) &&
00426 ((potpixeltwo[d])-4)>0)){
00427 if(sider[f]==2) {
00428 surroundsumtwo=surroundsumtwo+
00429 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00430 hitser++;
00431 if (event[matrixseqcheckeeplane]
00432 [matrixseqcheckeestrip]>topeventtwo) {
00433 topeventtwo=event[matrixseqcheckeeplane]
00434 [matrixseqcheckeestrip];
00435 topplanetwo=matrixseqcheckeeplane;
00436 topstriptwo=matrixseqcheckeestrip;
00437 crosstalkhitssourcepixeltwo[matrixseqplane]
00438 [matrixseqstrip] = potpixeltwo[d];
00439 crosstalkhitssourcespot[matrixseqplane]
00440 [matrixseqstrip] = potspottwo[d];
00441 }
00442 }
00443 }
00444
00445 // /////////////
00446
00447 if((potpixelone[f]==((potpixelone[d])+4)) &&
00448 ((potpixelone[d])+4)<17){
00449 if(sider[f]==1) {
00450 surroundsumone=surroundsumone+
00451 event[matrixseqcheckeeplane]
00452 [matrixseqcheckeestrip];
00453 hitser++;
00454
00455 if (event[matrixseqcheckeeplane]
00456 [matrixseqcheckeestrip]>topeventone) {
00457 topeventone=event[matrixseqcheckeeplane]
00458 [matrixseqcheckeestrip];
00459 topplaneone=matrixseqcheckeeplane;
00460 topstripone=matrixseqcheckeestrip;
00461 crosstalkhitssourcepixelone[matrixseqplane]
00462 [matrixseqstrip] = potpixelone[d];
00463 crosstalkhitssourcespot[matrixseqplane]
00464 [matrixseqstrip] = potspotone[d];
00465 }
00466 }
00467 }
00468 if((potpixeltwo[f]==((potpixeltwo[d])+4)) &&
00469 ((potpixeltwo[d])+4)<17){
00470 if(sider[f]==2) {
00471 surroundsumtwo=surroundsumtwo+
00472 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00473 hitser++;
00474 if (event[matrixseqcheckeeplane]
00475 [matrixseqcheckeestrip]>topeventtwo) {
00476 topeventtwo=event[matrixseqcheckeeplane]
00477 [matrixseqcheckeestrip];
00478 topplanetwo=matrixseqcheckeeplane;
00479 topstriptwo=matrixseqcheckeestrip;
00480 crosstalkhitssourcepixeltwo[matrixseqplane]
00481 [matrixseqstrip] = potpixeltwo[d];
00482 crosstalkhitssourcespot[matrixseqplane]
00483 [matrixseqstrip] = potspottwo[d];
00484 }
00485 }
00486 }
00487
00488 // ////////////////
00489
00490
00491 if((potpixelone[f]==((potpixelone[d])+1)) &&
00492 (((potpixelone[d])+1)<17) &&
00493 (((potpixelone[d])+1)!=5) &&
00494 (((potpixelone[d])+1)!=9) &&
00495 (((potpixelone[d])+1)!=13)){
00496 if(sider[f]==1) {
00497 surroundsumone=surroundsumone+
00498 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00499 hitser++;
00500 if (event[matrixseqcheckeeplane]
00501 [matrixseqcheckeestrip]>topeventone) {
00502 topeventone=event[matrixseqcheckeeplane]
00503 [matrixseqcheckeestrip];
00504 topplaneone=matrixseqcheckeeplane;
00505 topstripone=matrixseqcheckeestrip;
00506 crosstalkhitssourcepixelone[matrixseqplane]
00507 [matrixseqstrip] = potpixelone[d];
00508 crosstalkhitssourcespot[matrixseqplane]
00509 [matrixseqstrip] = potspotone[d];
00510 }
00511 }
00512 }
00513 if((potpixeltwo[f]==((potpixeltwo[d])+1)) &&
00514 (((potpixeltwo[d])+1)<17) &&
00515 (((potpixeltwo[d])+1)!=5) &&
00516 (((potpixeltwo[d])+1)!=9) &&
00517 (((potpixeltwo[d])+1)!=13)){
00518 if(sider[f]==2) {
00519 surroundsumtwo=surroundsumtwo+
00520 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00521 hitser++;
00522 if (event[matrixseqcheckeeplane]
00523 [matrixseqcheckeestrip]>topeventtwo){
00524 topeventtwo=event[matrixseqcheckeeplane]
00525 [matrixseqcheckeestrip];
00526 topplanetwo=matrixseqcheckeeplane;
00527 topstriptwo=matrixseqcheckeestrip;
00528 crosstalkhitssourcepixeltwo[matrixseqplane]
00529 [matrixseqstrip] = potpixeltwo[d];
00530 crosstalkhitssourcespot[matrixseqplane]
00531 [matrixseqstrip] = potspottwo[d];
00532 }
00533 }
00534 }
00535
00536 // /////////////
00537
00538 if((potpixelone[f]==((potpixelone[d])-1)) &&
00539 (((potpixelone[d])-1)>0) &&
00540 (((potpixelone[d])-1)!=4) &&
00541 (((potpixelone[d])-1)!=8) &&
00542 (((potpixelone[d])-1)!=12)){
00543 if(sider[f]==1) {
00544 surroundsumone=surroundsumone+
00545 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00546 hitser++;
00547 if (event[matrixseqcheckeeplane]
00548 [matrixseqcheckeestrip]>topeventone) {
00549 topeventone=event[matrixseqcheckeeplane]
00550 [matrixseqcheckeestrip];
00551 topplaneone=matrixseqcheckeeplane;
00552 topstripone=matrixseqcheckeestrip;
00553 crosstalkhitssourcepixelone[matrixseqplane]
00554 [matrixseqstrip] = potpixelone[d];
00555 crosstalkhitssourcespot[matrixseqplane]
00556 [matrixseqstrip] = potspotone[d];
00557 }
00558 }
00559 }
00560 if((potpixeltwo[f]==((potpixeltwo[d])-1)) &&
00561 (((potpixeltwo[d])-1)>0) &&
00562 (((potpixeltwo[d])-1)!=4) &&
00563 (((potpixeltwo[d])-1)!=8) &&
00564 (((potpixeltwo[d])-1)!=12)){
00565 if(sider[f]==2) {
00566 surroundsumtwo=surroundsumtwo+
00567 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00568 hitser++;
00569 if (event[matrixseqcheckeeplane]
00570 [matrixseqcheckeestrip]>topeventtwo) {
00571 topeventtwo=event[matrixseqcheckeeplane]
00572 [matrixseqcheckeestrip];
00573 topplanetwo=matrixseqcheckeeplane;
00574 topstriptwo=matrixseqcheckeestrip;
00575 crosstalkhitssourcepixeltwo[matrixseqplane]
00576 [matrixseqstrip] = potpixeltwo[d];
00577 crosstalkhitssourcespot[matrixseqplane]
00578 [matrixseqstrip] = potspottwo[d];
00579 }
00580 }
00581 }
00582
00583 // //////////////
00584
00585 if((potpixelone[f]==((potpixelone[d])-5)) &&
00586 (((potpixelone[d])-5)>0) &&
00587 (((potpixelone[d])-5)!=4) &&
00588 (((potpixelone[d])-5)!=8)){
00589 if(sider[f]==1) {
00590 surroundsumone=surroundsumone+
00591 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00592 hitser++;
00593 if (event[matrixseqcheckeeplane]
00594 [matrixseqcheckeestrip]>topeventone) {
00595 topeventone=event[matrixseqcheckeeplane]
00596 [matrixseqcheckeestrip];
00597 topplaneone=matrixseqcheckeeplane;
00598 topstripone=matrixseqcheckeestrip;
00599 crosstalkhitssourcepixelone[matrixseqplane]
00600 [matrixseqstrip] = potpixelone[d];
00601 crosstalkhitssourcespot[matrixseqplane]
00602 [matrixseqstrip] = potspotone[d];
00603 }
00604 }
00605 }
00606 if((potpixeltwo[f]==((potpixeltwo[d])-5)) &&
00607 (((potpixeltwo[d])-5)>0) &&
00608 (((potpixeltwo[d])-5)!=4) &&
00609 (((potpixeltwo[d])-5)!=8)){
00610 if(sider[f]==2) {
00611 surroundsumtwo=surroundsumtwo+
00612 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00613 hitser++;
00614 if (event[matrixseqcheckeeplane]
00615 [matrixseqcheckeestrip]>topeventtwo) {
00616 topeventtwo=event[matrixseqcheckeeplane]
00617 [matrixseqcheckeestrip];
00618 topplanetwo=matrixseqcheckeeplane;
00619 topstriptwo=matrixseqcheckeestrip;
00620 crosstalkhitssourcepixeltwo[matrixseqplane]
00621 [matrixseqstrip] = potpixeltwo[d];
00622 crosstalkhitssourcespot[matrixseqplane]
00623 [matrixseqstrip] = potspottwo[d];
00624 }
00625 }
00626 }
00627
00628 // //////////////////
00629
00630 if((potpixelone[f]==((potpixelone[d])+5)) &&
00631 (((potpixelone[d])+5)<17) &&
00632 (((potpixelone[d])+5)!=9) &&
00633 (((potpixelone[d])+5)!=13)){
00634 if(sider[f]==1) {
00635 surroundsumone=surroundsumone+
00636 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00637 hitser++;
00638 if (event[matrixseqcheckeeplane]
00639 [matrixseqcheckeestrip]>topeventone) {
00640 topeventone=event[matrixseqcheckeeplane]
00641 [matrixseqcheckeestrip];
00642 topplaneone=matrixseqcheckeeplane;
00643 topstripone=matrixseqcheckeestrip;
00644 crosstalkhitssourcepixelone[matrixseqplane]
00645 [matrixseqstrip] = potpixelone[d];
00646 crosstalkhitssourcespot[matrixseqplane]
00647 [matrixseqstrip] = potspotone[d];
00648 }
00649 }
00650 }
00651 if((potpixeltwo[f]==((potpixeltwo[d])+5)) &&
00652 (((potpixeltwo[d])+5)<17) &&
00653 (((potpixeltwo[d])+5)!=9) &&
00654 (((potpixeltwo[d])+5)!=13)){
00655 if(sider[f]==2) {
00656 surroundsumtwo=surroundsumtwo+
00657 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00658 hitser++;
00659 if (event[matrixseqcheckeeplane]
00660 [matrixseqcheckeestrip]>topeventtwo) {
00661 topeventtwo=event[matrixseqcheckeeplane]
00662 [matrixseqcheckeestrip];
00663 topplanetwo=matrixseqcheckeeplane;
00664 topstriptwo=matrixseqcheckeestrip;
00665 crosstalkhitssourcepixeltwo[matrixseqplane]
00666 [matrixseqstrip] = potpixeltwo[d];
00667 crosstalkhitssourcespot[matrixseqplane]
00668 [matrixseqstrip] = potspottwo[d];
00669 }
00670 }
00671 }
00672
00673 // /////////////////////
00674
00675 if((potpixelone[f]==((potpixelone[d])-3)) &&
00676 (((potpixelone[d])-3)>0) &&
00677 (((potpixelone[d])-3)!=1) &&
00678 (((potpixelone[d])-3)!=5) &&
00679 (((potpixelone[d])-3)!=9) &&
00680 (((potpixelone[d])-3)!=13)){
00681 if(sider[f]==1) {
00682 surroundsumone=surroundsumone+
00683 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00684 hitser++;
00685 if (event[matrixseqcheckeeplane]
00686 [matrixseqcheckeestrip]>topeventone) {
00687 topeventone=event[matrixseqcheckeeplane]
00688 [matrixseqcheckeestrip];
00689 topplaneone=matrixseqcheckeeplane;
00690 topstripone=matrixseqcheckeestrip;
00691 crosstalkhitssourcepixelone[matrixseqplane]
00692 [matrixseqstrip] = potpixelone[d];
00693 crosstalkhitssourcespot[matrixseqplane]
00694 [matrixseqstrip] = potspotone[d];
00695 }
00696 }
00697 }
00698 if((potpixeltwo[f]==((potpixeltwo[d])-3)) &&
00699 (((potpixeltwo[d])-3)>0) &&
00700 (((potpixeltwo[d])-3)!=1) &&
00701 (((potpixeltwo[d])-3)!=5) &&
00702 (((potpixeltwo[d])-3)!=9) &&
00703 (((potpixeltwo[d])-3)!=13)){
00704 if(sider[f]==2) {
00705 surroundsumtwo=surroundsumtwo+
00706 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00707 hitser++;
00708 if (event[matrixseqcheckeeplane]
00709 [matrixseqcheckeestrip]>topeventtwo) {
00710 topeventtwo=event[matrixseqcheckeeplane]
00711 [matrixseqcheckeestrip];
00712 topplanetwo=matrixseqcheckeeplane;
00713 topstriptwo=matrixseqcheckeestrip;
00714 crosstalkhitssourcepixeltwo[matrixseqplane]
00715 [matrixseqstrip] = potpixeltwo[d];
00716 crosstalkhitssourcespot[matrixseqplane]
00717 [matrixseqstrip] = potspottwo[d];
00718 }
00719 }
00720 }
00721
00722 // ////////////////////
00723
00724 if((potpixelone[f]==((potpixelone[d])+3)) &&
00725 (((potpixelone[d])+3)<17) &&
00726 (((potpixelone[d])+3)!=4) &&
00727 (((potpixelone[d])+3)!=8) &&
00728 (((potpixelone[d])+3)!=12) &&
00729 (((potpixelone[d])+3)!=16)){
00730 if(sider[f]==1) {
00731 surroundsumone=surroundsumone+
00732 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00733 hitser++;
00734 if (event[matrixseqcheckeeplane]
00735 [matrixseqcheckeestrip]>topeventone) {
00736 topeventone=event[matrixseqcheckeeplane]
00737 [matrixseqcheckeestrip];
00738 topplaneone=matrixseqcheckeeplane;
00739 topstripone=matrixseqcheckeestrip;
00740 crosstalkhitssourcepixelone[matrixseqplane]
00741 [matrixseqstrip] = potpixelone[d];
00742 crosstalkhitssourcespot[matrixseqplane]
00743 [matrixseqstrip] = potspotone[d];
00744 }
00745 }
00746 }
00747 if((potpixeltwo[f]==((potpixeltwo[d])+3)) &&
00748 (((potpixeltwo[d])+3)<17) &&
00749 (((potpixeltwo[d])+3)!=4) &&
00750 (((potpixeltwo[d])+3)!=8) &&
00751 (((potpixeltwo[d])+3)!=12) &&
00752 (((potpixeltwo[d])+3)!=16)){
00753 if(sider[f]==2) {
00754 surroundsumtwo=surroundsumtwo+
00755 event[matrixseqcheckeeplane][matrixseqcheckeestrip];
00756 hitser++;
00757 if (event[matrixseqcheckeeplane]
00758 [matrixseqcheckeestrip]>topeventtwo) {
00759 topeventtwo=event[matrixseqcheckeeplane]
00760 [matrixseqcheckeestrip];
00761 topplanetwo=matrixseqcheckeeplane;
00762 topstriptwo=matrixseqcheckeestrip;
00763 crosstalkhitssourcepixeltwo[matrixseqplane]
00764 [matrixseqstrip] = potpixeltwo[d];
00765 crosstalkhitssourcespot[matrixseqplane]
00766 [matrixseqstrip] = potspottwo[d];
00767 }
00768 }
00769 }
00770
00771 }
00772 // }
00773
00774 } // d
00775
00776 // ***********************************
00777
00778 //if(sider[f]==1 &&
00779 // event[matrixseqplane][matrixseqstrip]<
00780 // fopt*surroundsumone &&
00781 // !(matrixseqstrip==topstripone &&
00782 // matrixseqplane==topplaneone) &&
00783 // crosstalkhitssourcepixelone[matrixseqplane]
00784 // [matrixseqstrip]!=0 &&
00785 // event[matrixseqplane][(matrixseqstrip-1)]==0 &&
00786 // event[matrixseqplane][(matrixseqstrip+1)]==0 ) {
00787 //if(sider[f]==1 &&
00788 //event[matrixseqplane][matrixseqstrip]<surroundsumone ) {
00789
00790
00791 // Feb21 : added a load more vetos at the end to try and stop
00792 // crosstalk hits being identified in the middle of a track
00793 // this is high quality code, I'm sure you'll agree
00794
00795 // Mar21 : beam/cosmic flag added. Cosmics have low angle so
00796 // window needs to be a big larger (cosmic)
00797
00798 if (sider[f]==1 &&
00799 event[matrixseqplane][matrixseqstrip]<
00800 fopt*surroundsumone &&
00801 !(matrixseqstrip==topstripone &&
00802 matrixseqplane==topplaneone) &&
00803 crosstalkhitssourcepixelone[matrixseqplane]
00804 [matrixseqstrip]!=0 &&
00805 event[matrixseqplane][(matrixseqstrip-1)]==0 &&
00806 event[matrixseqplane][(matrixseqstrip+1)]==0 &&
00807 event[(matrixseqplane-2)][matrixseqstrip]==0 &&
00808 event[(matrixseqplane+2)][matrixseqstrip]==0 &&
00809 event[(matrixseqplane-2)][(matrixseqstrip-1)]==0 &&
00810 event[(matrixseqplane+2)][(matrixseqstrip-1)]==0 &&
00811 event[(matrixseqplane-2)][(matrixseqstrip+1)]==0 &&
00812 event[(matrixseqplane+2)][(matrixseqstrip+1)]==0 &&
00813 event[(matrixseqplane-2)][(matrixseqstrip-1-fcosmic)]==0&&
00814 event[(matrixseqplane+2)][(matrixseqstrip-1-fcosmic)]==0&&
00815 event[(matrixseqplane-2)][(matrixseqstrip+1+fcosmic)]==0&&
00816 event[(matrixseqplane+2)][(matrixseqstrip+1+fcosmic)]==0){
00817
00818 crosstalkhits[matrixseqplane][matrixseqstrip] =
00819 event[matrixseqplane][matrixseqstrip];
00820 crosstalkhitssourceplane[matrixseqplane][matrixseqstrip] =
00821 topplaneone;
00822 crosstalkhitssourcestrip[matrixseqplane][matrixseqstrip] =
00823 topstripone;
00824 crosstalkhitspixel[matrixseqplane][matrixseqstrip] =
00825 potpixelone[f];
00826 crosstalknumxhits[matrixseqplane][matrixseqstrip] = hitser;
00827 crosstalkhitssourcepixel[matrixseqplane][matrixseqstrip] =
00828 crosstalkhitssourcepixelone[matrixseqplane]
00829 [matrixseqstrip];
00830
00831 MSG("CDCrossTalker",Msg::kDebug)
00832 <<"Crosstalk of "
00833 <<crosstalkhits[matrixseqplane][matrixseqstrip]
00834 << " at " << matrixseqplane
00835 << "," << matrixseqstrip
00836 << " pixel: " << potpixelone[f]
00837 << " from " << topplaneone
00838 << "," << topstripone
00839 << ",pixel: "
00840 << crosstalkhitssourcepixelone[matrixseqplane]
00841 [matrixseqstrip]
00842 << " " << topeventone << endl;
00843 }
00844
00845 if (sider[f]==2 &&
00846 event[matrixseqplane][matrixseqstrip]<
00847 fopt*surroundsumtwo &&
00848 !(matrixseqstrip==topstriptwo &&
00849 matrixseqplane==topplanetwo) &&
00850 crosstalkhitssourcepixeltwo[matrixseqplane]
00851 [matrixseqstrip] &&
00852 event[matrixseqplane][(matrixseqstrip-1)]==0 &&
00853 event[matrixseqplane][(matrixseqstrip+1)]==0 &&
00854 event[(matrixseqplane-2)][matrixseqstrip]==0 &&
00855 event[(matrixseqplane+2)][matrixseqstrip]==0 &&
00856 event[(matrixseqplane-2)][(matrixseqstrip-1)]==0 &&
00857 event[(matrixseqplane+2)][(matrixseqstrip-1)]==0 &&
00858 event[(matrixseqplane-2)][(matrixseqstrip+1)]==0 &&
00859 event[(matrixseqplane+2)][(matrixseqstrip+1)]==0 &&
00860 event[(matrixseqplane-2)][(matrixseqstrip-1-fcosmic)]==0 &&
00861 event[(matrixseqplane+2)][(matrixseqstrip-1-fcosmic)]==0 &&
00862 event[(matrixseqplane-2)][(matrixseqstrip+1+fcosmic)]==0 &&
00863 event[(matrixseqplane+2)][(matrixseqstrip+1+fcosmic)]==0) {
00864
00865 //if(sider[f]==2 &&
00866 //event[matrixseqplane][matrixseqstrip]<surroundsumtwo ) {
00867
00868 crosstalkhits[matrixseqplane][matrixseqstrip] =
00869 event[matrixseqplane][matrixseqstrip];
00870 crosstalkhitssourceplane[matrixseqplane][matrixseqstrip] =
00871 topplanetwo;
00872 crosstalkhitssourcestrip[matrixseqplane][matrixseqstrip] =
00873 topstriptwo;
00874 crosstalkhitspixel[matrixseqplane][matrixseqstrip] =
00875 potpixeltwo[f];
00876 crosstalknumxhits[matrixseqplane][matrixseqstrip] = hitser;
00877
00878 crosstalkhitssourcepixel[matrixseqplane][matrixseqstrip] =
00879 crosstalkhitssourcepixeltwo[matrixseqplane]
00880 [matrixseqstrip];
00881 MSG("CDCrossTalker",Msg::kDebug)
00882 << "Crosstalk of "
00883 << crosstalkhits[matrixseqplane][matrixseqstrip]
00884 << " at " << matrixseqplane
00885 << "," << matrixseqstrip
00886 << " pixel: " << potpixeltwo[f]
00887 << " from " << topplanetwo
00888 << "," << topstriptwo
00889 << " ,pixel: "
00890 << crosstalkhitssourcepixeltwo[matrixseqplane]
00891 [matrixseqstrip]
00892 << " " << topeventtwo << endl;
00893 }
00894 } // f
00895 } // buggered
00896 }
00897 }
00898
00899 stripIter = fAllStrips.begin();
00900
00901 while(stripIter!=stripEnd){
00902
00903 int plane = stripIter->second.GetPlane();
00904 int strip = stripIter->second.GetStrip();
00905
00906 if(plane<=59){
00907
00908 if(stripIter->second.GetNDigit(StripEnd::kNegative)>0){
00909 int end = StripEnd::kNegative;
00910 int sourceplane=crosstalkhitssourceplane[plane][strip+(end-1)*24];
00911 int sourcestrip=(crosstalkhitssourcestrip[plane]
00912 [(strip+(end-1)*24)])%24;
00913 int sourceend=int(crosstalkhitssourcestrip[plane]
00914 [strip+(end-1)*24]/24.)+1;
00915 int numxhits=crosstalknumxhits[plane][strip+(end-1)*24];
00916
00917 if(crosstalkhits[plane][24*(end-1)+strip]<=0) {
00918 fCleanedStrips[stripIter->first] = stripIter->second;
00919 }
00920 else {
00921 fXTalkStrips[stripIter->first] = stripIter->second;
00922 fNumSurround[stripIter->first] = numxhits;
00923 fnum_xtalk_hits+=1;
00924 MSG("CDCrossTalker",Msg::kDebug)<<fnum_xtalk_hits<<endl;
00925 MSG("CDCrossTalker",Msg::kDebug)
00926 <<crosstalkhits[plane][24*(end-1)+strip] << endl;
00927 MSG("CDCrossTalker",Msg::kDebug)
00928 <<sourceend<<" "<<sourcestrip<<" "<<sourceplane<<endl;
00929
00930 StripEnd::EStripEnd dum_strip_end;
00931 if(sourceend==1) dum_strip_end = StripEnd::kNegative;
00932 else dum_strip_end = StripEnd::kPositive;
00933 PlexStripEndId dummyplex(Detector::kCalDet,sourceplane,
00934 sourcestrip,dum_strip_end);
00935 int theKey = dummyplex.Build18BitPlnStripKey();
00936 fXTalkSource[stripIter->first] = theKey;
00937 }
00938 }
00939
00940 if(stripIter->second.GetNDigit(StripEnd::kPositive)>0){
00941 int end = StripEnd::kPositive;
00942 int sourceplane=crosstalkhitssourceplane[plane][strip+(end-1)*24];
00943 int sourcestrip=(crosstalkhitssourcestrip[plane]
00944 [(strip+(end-1)*24)])%24;
00945 int sourceend=int(crosstalkhitssourcestrip[plane]
00946 [strip+(end-1)*24]/24.)+1;
00947 int numxhits=crosstalknumxhits[plane][strip+(end-1)*24];
00948
00949 if(crosstalkhits[plane][24*(end-1)+strip]<=0) {
00950 fCleanedStrips[stripIter->first] = stripIter->second;
00951 }
00952 else {
00953 fXTalkStrips[stripIter->first] = stripIter->second;
00954 fNumSurround[stripIter->first] = numxhits;
00955 fnum_xtalk_hits+=1;
00956 MSG("CDCrossTalker",Msg::kDebug)<<fnum_xtalk_hits<<endl;
00957 MSG("CDCrossTalker",Msg::kDebug)
00958 <<crosstalkhits[plane][24*(end-1)+strip] << endl;
00959 MSG("CDCrossTalker",Msg::kDebug)
00960 <<sourceend<<" "<<sourcestrip<<" "<<sourceplane<<endl;
00961
00962 StripEnd::EStripEnd dum_strip_end;
00963 if(sourceend==1) dum_strip_end = StripEnd::kNegative;
00964 else dum_strip_end = StripEnd::kPositive;
00965 PlexStripEndId dummyplex(Detector::kCalDet,sourceplane,
00966 sourcestrip,dum_strip_end);
00967 int theKey = dummyplex.Build18BitPlnStripKey();
00968 fXTalkSource[stripIter->first] = theKey;
00969 }
00970 }
00971
00972 }
00973 //for Cosmic counter hits
00974 else fCleanedStrips[stripIter->first] = stripIter->second;
00975
00976 stripIter++;
00977 }
00978 return fCleanedStrips;
00979 }
|
|
|
Definition at line 29 of file CDCrossTalker.h. 00029 {return fnum_xtalk_hits;}
|
|
|
Definition at line 991 of file CDCrossTalker.cxx. References fnum_xtalk_hits, and GetCleanStripMap(). 00992 {
00993 if(fnum_xtalk_hits==-1) this->GetCleanStripMap();
00994 return fXTalkSource;
00995 }
|
|
|
Definition at line 999 of file CDCrossTalker.cxx. References fAllStrips, fnum_xtalk_hits, fNumSurround, fXTalkSource, fXTalkStrips, CandStripHandle::GetCharge(), GetCleanStripMap(), Calibrator::GetMIP(), CandStripHandle::GetNDigit(), PlexPixelSpotId::GetPixel(), PlexHandle::GetPixelSpotId(), CandStripHandle::GetPlane(), PlexPixelSpotId::GetSpot(), CandStripHandle::GetStrip(), CandStripHandle::GetStripEndId(), CandStripHandle::GetTime(), Calibrator::Instance(), MSG, and CalScheme::Reset(). 01000 {
01001 if(fnum_xtalk_hits==-1) this->GetCleanStripMap();
01002
01003 TClonesArray &infar = *infoarray;
01004
01005 int cnt=0;
01006
01007 map<int,CandStripHandle>::iterator XTalkIt = fXTalkStrips.begin();
01008 map<int,CandStripHandle>::iterator XTalkEnd = fXTalkStrips.end();
01009
01010 if(XTalkIt==XTalkEnd) return;
01011 const VldContext *vc = XTalkIt->second.GetVldContext();
01012 PlexHandle plexHand(*vc);
01013
01014 //get a reference to the calibrator
01015 Calibrator& calibrator=Calibrator::Instance();
01016 calibrator.Reset(*vc);
01017
01018 while(XTalkIt!=XTalkEnd){
01019 MSG("CDCrossTalker",Msg::kDebug)
01020 << XTalkIt->first << " " << fXTalkSource[XTalkIt->first] << endl;
01021
01022 map<int,CandStripHandle>::iterator sorsIt =
01023 fAllStrips.find(fXTalkSource[XTalkIt->first]);
01024
01025 CandStripHandle& csh = XTalkIt->second;
01026 CandStripHandle& sors_csh = sorsIt->second;
01027
01028 if(csh.GetNDigit(StripEnd::kNegative)>0){
01029
01030 PlexPixelSpotId spotId = plexHand.GetPixelSpotId(csh.GetStripEndId(StripEnd::kNegative));
01031 PlexPixelSpotId sors_spotId = plexHand.GetPixelSpotId(sors_csh.GetStripEndId(StripEnd::kNegative));
01032
01033 new(infar[cnt])
01034 CDXTalkHitInfo
01035 (StripEnd::kNegative,
01036 csh.GetPlane(),
01037 csh.GetStrip(),
01038 spotId.GetPixel(),
01039 fNumSurround[XTalkIt->first],
01040 csh.GetCharge(CalDigitType::kNone,StripEnd::kNegative),
01041 csh.GetCharge(CalDigitType::kSigLin,StripEnd::kNegative),
01042 csh.GetCharge(CalDigitType::kSigCorr,StripEnd::kNegative),
01043 csh.GetCharge(CalDigitType::kPE,StripEnd::kNegative),
01044 calibrator.GetMIP(csh.GetCharge(CalDigitType::kSigCorr,
01045 StripEnd::kNegative)),
01046 StripEnd::kNegative,
01047 sors_csh.GetPlane(),
01048 sors_csh.GetStrip(),
01049 sors_spotId.GetPixel(),
01050 sors_spotId.GetSpot(),
01051 sors_csh.GetCharge(CalDigitType::kNone,StripEnd::kNegative),
01052 csh.GetTime(StripEnd::kNegative));
01053 cnt+=1;
01054 }
01055
01056 if(csh.GetNDigit(StripEnd::kPositive)>0){
01057
01058 PlexPixelSpotId spotId = plexHand.GetPixelSpotId(csh.GetStripEndId(StripEnd::kPositive));
01059 PlexPixelSpotId sors_spotId = plexHand.GetPixelSpotId(sors_csh.GetStripEndId(StripEnd::kPositive));
01060
01061 new(infar[cnt])
01062 CDXTalkHitInfo
01063 (StripEnd::kPositive,
01064 csh.GetPlane(),
01065 csh.GetStrip(),
01066 spotId.GetPixel(),
01067 fNumSurround[XTalkIt->first],
01068 csh.GetCharge(CalDigitType::kNone,StripEnd::kPositive),
01069 csh.GetCharge(CalDigitType::kSigLin,StripEnd::kPositive),
01070 csh.GetCharge(CalDigitType::kSigCorr,StripEnd::kPositive),
01071 csh.GetCharge(CalDigitType::kPE,StripEnd::kPositive),
01072 calibrator.GetMIP(csh.GetCharge(CalDigitType::kSigCorr,
01073 StripEnd::kPositive)),
01074 StripEnd::kPositive,
01075 sors_csh.GetPlane(),
01076 sors_csh.GetStrip(),
01077 sors_spotId.GetPixel(),
01078 sors_spotId.GetSpot(),
01079 sors_csh.GetCharge(CalDigitType::kNone,StripEnd::kPositive),
01080 csh.GetTime(StripEnd::kPositive));
01081 cnt+=1;
01082 }
01083
01084 XTalkIt++;
01085 }
01086 infar.Compress();
01087 }
|
|
|
Definition at line 983 of file CDCrossTalker.cxx. References fnum_xtalk_hits, and GetCleanStripMap(). 00984 {
00985 if(fnum_xtalk_hits==-1) this->GetCleanStripMap();
00986 return fXTalkStrips;
00987 }
|
|
|
Definition at line 50 of file CDCrossTalker.cxx. References fAllStrips. Referenced by CDCrossTalker(). 00051 {
00052 fAllStrips=stripMap;
00053 return 1;
00054 }
|
|
|
Definition at line 58 of file CDCrossTalker.cxx. References fopt. Referenced by CDCrossTalker(). 00059 {
00060 fopt = opt;
00061 return 1;
00062 }
|
|
|
Definition at line 37 of file CDCrossTalker.h. Referenced by GetCleanStripMap(), GetXTalkStripInfo(), and SetMap(). |
|
|
Definition at line 38 of file CDCrossTalker.h. Referenced by GetCleanStripMap(). |
|
|
Definition at line 44 of file CDCrossTalker.h. Referenced by CDCrossTalker(). |
|
|
Definition at line 43 of file CDCrossTalker.h. Referenced by CDCrossTalker(), GetCleanStripMap(), GetXTalkSourceStrips(), GetXTalkStripInfo(), and GetXTalkStripMap(). |
|
|
Definition at line 42 of file CDCrossTalker.h. Referenced by GetCleanStripMap(), and GetXTalkStripInfo(). |
|
|
Definition at line 39 of file CDCrossTalker.h. Referenced by GetCleanStripMap(), and SetOption(). |
|
|
Definition at line 41 of file CDCrossTalker.h. Referenced by GetCleanStripMap(), and GetXTalkStripInfo(). |
|
|
Definition at line 40 of file CDCrossTalker.h. Referenced by GetCleanStripMap(), and GetXTalkStripInfo(). |
1.3.9.1