AltDeMuxDisplay Class Reference

#include <AltDeMuxDisplay.h>

List of all members.

Public Member Functions

 AltDeMuxDisplay ()
void Ana (const MomNavigator *mom)
bool Draw (int ipad)
int MaxPlane (int irun)
void FindNearestEdge (float x, float y, int &idege, float &d)

Private Attributes

bool amPSing
bool amCutting
bool amVetoing
int _maxPlane
int _lastRun
int xMaxPlane
int NdemuxedHitsU
float demuxedHitPlaneU [20000]
float demuxedHitStripU [20000]
float demuxedHitQU [20000]
float demuxedHitTU [20000]
float QSPlane [520]
float QPlane [520]
int NdemuxedHitsV
float demuxedHitPlaneV [20000]
float demuxedHitStripV [20000]
float demuxedHitQV [20000]
float demuxedHitTV [20000]
int NdemuxedPairsV
int NdemuxedPairsU
float demuxedPairPlaneV [20000]
float demuxedPairPlaneU [20000]
float demuxedPairTimeV [20000]
float demuxedPairTimeU [20000]
int NVeto
float xVeto [1000]
float yVeto [1000]
float zVeto [1000]
std::vector< PlexSEIdAltL * > PlanesAltListsE [500]
std::vector< PlexSEIdAltL * > PlanesAltListsW [500]
std::vector< DeMuxedPair_demuxedPairs
TCanvas * fCanvas
TPad * fUpad
TPad * fVpad
TPad * fXYpad
TPad * fZQpad
TPad * fZTpad
TH2F * fUview
TH2F * fVview
TH2F * fXYview
TH1F * fZQview
TH2F * fZTview
TList * fList
TPolyLine * pZTFit
TPolyLine * pCut1
TPolyLine * pCut2
TPolyLine * pSM1
TPolyLine * pSM2
TPolyLine * pBoxSM1
TPolyLine * pBoxSM2
TPolyLine * pOctagon
TPolyLine * pOctagonC
TArc * pCircle

Detailed Description

Definition at line 25 of file AltDeMuxDisplay.h.


Constructor & Destructor Documentation

AltDeMuxDisplay::AltDeMuxDisplay (  ) 

Definition at line 36 of file AltDeMuxDisplay.cxx.

References _lastRun, _maxPlane, amCutting, amPSing, amVetoing, DISPLAY_TYPE, fCanvas, fList, fUpad, fVpad, fXYpad, fZQpad, fZTpad, pBoxSM1, pBoxSM2, pCircle, pOctagon, pOctagonC, and xMaxPlane.

00037 {
00038 
00039   amVetoing = false;
00040   amPSing   = false;
00041   amCutting = false;
00042   xMaxPlane = 0;
00043   _maxPlane = 0;
00044   _lastRun  = 0;
00045   fList = new TList();
00046   
00047   fCanvas = new TCanvas("AltDeMuxDisplay","MyAnalysis",750,900);
00048 
00049   // Create the pads;  Pad takes xlo, ylo, xhi, yhi in NC
00050   fUpad  = new TPad("upad","U pad",0.010,0.670,0.990,0.990);
00051   fVpad  = new TPad("vpad","V pad",0.010,0.340,0.990,0.660);
00052   fXYpad  = new TPad("xypad","XY pad",0.010,0.010,0.620,0.330);
00053   fZQpad  = new TPad("zqpad","ZQ pad",0.640,0.010,0.990,0.165);
00054   fZTpad  = new TPad("zqpad","Zt pad",0.640,0.175,0.990,0.330);
00055 
00056    // white background
00057   fUpad->SetFillColor(10);
00058   fVpad->SetFillColor(10);
00059   fXYpad->SetFillColor(10);
00060   fZQpad->SetFillColor(10);
00061   fZTpad->SetFillColor(10);
00062 
00063 
00064    // tweak the margins to maximize histogram use of pads
00065   fUpad->SetLeftMargin(0.05);
00066   fUpad->SetRightMargin(0.0001);
00067   fUpad->SetTopMargin(0.0001);
00068   fUpad->SetBottomMargin(0.055);
00069   fVpad->SetLeftMargin(0.05);
00070   fVpad->SetRightMargin(0.0001);
00071   fVpad->SetTopMargin(0.0001);
00072   fVpad->SetBottomMargin(0.055);
00073   fXYpad->SetLeftMargin(0.05);
00074   fXYpad->SetRightMargin(0.0001);
00075   fXYpad->SetTopMargin(0.0001);
00076   fXYpad->SetBottomMargin(0.055);
00077   fZQpad->SetLeftMargin(0.05);
00078   fZQpad->SetRightMargin(0.0001);
00079   fZQpad->SetTopMargin(0.0001);
00080   fZQpad->SetBottomMargin(0.055);
00081   fZTpad->SetLeftMargin(0.05);
00082   fZTpad->SetRightMargin(0.0001);
00083   fZTpad->SetTopMargin(0.0001);
00084   fZTpad->SetBottomMargin(0.055);
00085 
00086    // draw the pads and the canvas
00087   if(DISPLAY_TYPE==1){
00088     fUpad->Draw();
00089     fVpad->Draw();
00090     fXYpad->Draw();
00091     fZQpad->Draw();
00092     fZTpad->Draw();
00093   }
00094 
00095   fCanvas->Draw();
00096   
00097   float x[9];
00098   float y[9];
00099  
00100   x[0] = 0.;
00101   x[1] = 249.;
00102   x[2] = 249.;
00103   x[3] = 0.;
00104   x[4] = 0.;
00105 
00106   y[0] = 0.;
00107   y[1] = 0.;
00108   y[2] = 192.;
00109   y[3] = 192.;
00110   y[4] = 0.;
00111   pBoxSM1 = new TPolyLine(5,x,y);
00112   pBoxSM2 = 0;
00113 
00114 
00115   x[0] = -1.65;
00116   x[1] = +1.64;
00117   x[2] = +4;
00118   x[3] = +4;
00119   x[4] = +1.65;
00120   x[5] = -1.65;
00121   x[6] = -4;
00122   x[7] = -4;
00123   x[8] = -1.65;
00124 
00125   y[0] = -4;
00126   y[1] = -4;
00127   y[2] = -1.65;
00128   y[3] = +1.65;
00129   y[4] = +4;
00130   y[5] = +4;
00131   y[6] = +1.65;
00132   y[7] = -1.65;
00133   y[8] = -4;
00134 
00135  pOctagon = new TPolyLine(9,x,y);
00136 
00137 
00138   x[0] = -1.44375;
00139   x[1] = +1.44375;
00140   x[2] = +3.5;
00141   x[3] = +3.5;
00142   x[4] = +1.44375;
00143   x[5] = -1.44375;
00144   x[6] = -3.5;
00145   x[7] = -3.5;
00146   x[8] = -1.44375;
00147 
00148   y[0] = -3.5;
00149   y[1] = -3.5;
00150   y[2] = -1.44375;
00151   y[3] = +1.44375;
00152   y[4] = +3.5;
00153   y[5] = +3.5;
00154   y[6] = +1.44375;
00155   y[7] = -1.44375;
00156   y[8] = -3.5;
00157   
00158   pOctagonC = new TPolyLine(9,x,y);
00159 
00160  pCircle  = new TArc(0.,0.,3.5, 0., 360.);
00161 
00162 }


Member Function Documentation

void AltDeMuxDisplay::Ana ( const MomNavigator mom  ) 

Definition at line 165 of file AltDeMuxDisplay.cxx.

References _demuxedPairs, amPSing, amVetoing, MomNavigator::At(), UgliStripHandle::ClearFiber(), Munits::cm, demuxedHitPlaneU, demuxedHitPlaneV, demuxedHitQU, demuxedHitQV, demuxedHitStripU, demuxedHitStripV, demuxedPairPlaneU, demuxedPairPlaneV, demuxedPairTimeU, demuxedPairTimeV, Draw(), fCanvas, fList, fUpad, fUview, fVpad, fVview, fXYview, fZQview, fZTview, PlexSEIdAltL::GetBestItem(), PlexSEIdAltL::GetBestSEId(), PlexSEIdAltL::GetBestWeight(), PlexSEIdAltL::GetCurrentSEId(), CandHandle::GetDaughterIterator(), PlexSEIdAltL::GetEnd(), MomNavigator::GetFragment(), UgliStripHandle::GetHalfLength(), PlexSEIdAltLItem::GetPE(), PlexSEIdAltL::GetPlane(), PlexSEIdAltL::GetPlaneView(), RawRecord::GetRawHeader(), RawDaqHeader::GetRun(), PlexSEIdAltLItem::GetSigCorr(), RawDaqSnarlHeader::GetSnarl(), PlexStripEndId::GetStrip(), UgliGeomHandle::GetStripHandle(), PlexSEIdAltLItem::GetTime(), RecMinos::GetVldContext(), UgliStripHandle::GlobalPos(), UgliStripHandle::IsValid(), PlexSEIdAltL::IsValid(), PlexSEIdAltL::IsVetoShield(), StripEnd::kEast, PlaneView::kU, PlaneView::kV, Msg::kWarning, StripEnd::kWest, MaxPlane(), MSG, NdemuxedHitsU, NdemuxedHitsV, NdemuxedPairsU, NdemuxedPairsV, NVeto, PlanesAltListsE, PlanesAltListsW, QPlane, QSPlane, run(), PlexSEIdAltL::SetFirst(), size, UgliStripHandle::WlsPigtail(), xMaxPlane, xVeto, yVeto, and zVeto.

00166 {
00167   cout << " *** AltDeMuxDisplay::Ana *** " << endl; 
00168   NdemuxedHitsU=0;
00169   NdemuxedHitsV=0;
00170   NdemuxedPairsV=0;
00171   NdemuxedPairsU=0;
00172   NVeto = 0;
00173 
00174   // Find PrimaryCandidateRecord fragment in MOM.
00175   CandRecord* candrecord = dynamic_cast<CandRecord*>(mom->GetFragment("CandRecord","PrimaryCandidateRecord"));
00176   
00177   if (candrecord == 0) {
00178     MSG("MyAna", Msg::kWarning) << "No PrimaryCandidateRecord in MOM."
00179                                  << endl;
00180     return;
00181   }
00182 
00183   int run = -1;
00184   int snarl = -1;
00185 
00186   TObject* obj;
00187   for (int i=0; (obj=mom->At(i)); ++i) {
00188     const RawRecord* rr = dynamic_cast<RawRecord*>(obj);
00189     if (rr) {
00190       const RawDaqSnarlHeader* 
00191         rdsh = dynamic_cast<const RawDaqSnarlHeader*>(rr->GetRawHeader());
00192       if (rdsh) {
00193         run   = rdsh->GetRun();
00194         snarl = rdsh->GetSnarl();      }
00195     }
00196   }
00197 
00198   this->MaxPlane(run);
00199 
00200   UgliStripHandle ushE;
00201   UgliStripHandle ushW;
00202   UgliStripHandle ushV;
00203 
00204   for(int i=0;i<500;i++){
00205     QPlane[i]=0.0;
00206     QSPlane[i]=0.0;
00207   }
00208 
00209   _demuxedPairs.erase(_demuxedPairs.begin(),_demuxedPairs.end());
00210   for(int i=0; i<500;i++){
00211     PlanesAltListsE[i].erase(PlanesAltListsE[i].begin(),PlanesAltListsE[i].end());
00212     PlanesAltListsW[i].erase(PlanesAltListsW[i].begin(),PlanesAltListsW[i].end());
00213   }
00214 
00215   // clear the primitives from the pads
00216   fUpad->Clear("");
00217   fVpad->Clear("");
00218   
00219    // remove old histograms if they exists
00220   if ( fUview ) { delete fUview; fUview=0; }
00221   if ( fVview ) { delete fVview; fVview=0; }
00222   if ( fXYview ) { delete fXYview; fXYview=0; }
00223   if ( fZQview ) { delete fZQview; fZQview=0; }
00224   if ( fZTview ) { delete fZTview; fZTview=0; }
00225   
00226   // create histograms that we'll use for World Coordinates
00227   fUview = new TH2F("Uview","U view",1,0.,520.,1,0.,193.);
00228   fVview = new TH2F("Vview","V view",1,0.,520.,1,0.,193.);
00229   fXYview = new TH2F("XYview","XY view",1,-7.5,7.5,1,-5.,5.);
00230   fZQview = new TH1F("ZQview","ZQ view",520,0.,520.);
00231   fZTview = new TH2F("ZTview","ZT view",1,0.,520.,1,0.,50.);
00232   
00233   // don't draw the Stats box
00234   fUview->SetStats(kFALSE);
00235   fVview->SetStats(kFALSE);
00236   fXYview->SetStats(kFALSE);
00237   fZQview->SetStats(kFALSE);
00238   fZTview->SetStats(kFALSE);
00239   
00240 
00241   // take away any association with a "directory" for these histograms
00242   fUview->SetDirectory(0);
00243   fVview->SetDirectory(0);
00244   fXYview->SetDirectory(0);
00245   fZQview->SetDirectory(0);
00246   fZTview->SetDirectory(0);
00247 
00248   PlexSEIdAltL altlist;
00249   PlexSEIdAltL* paltlist;
00250 
00251   
00252   // Find PrimaryCandidateRecord fragment in MOM.
00253   const CandDigitListHandle *canddigit = 
00254     DataUtil::GetCandidate<CandDigitListHandle>(mom,
00255                                                 "CandDigitListHandle", 
00256                                                 "canddigitlist");
00257   if (canddigit == 0) {
00258     MSG("MyAna",Msg::kWarning) << "Failed to get CandDigitListHandle!\n";
00259     return;
00260   }
00261   
00262   // get handle to UgliGeometry
00263   const VldContext* vldc = candrecord->GetVldContext();
00264   UgliGeomHandle ugh(*vldc); 
00265   
00266   CandDigitHandleItr cdhItr(canddigit->GetDaughterIterator());
00267   
00268   int nplanesU=0;
00269   int nplanesV=0;
00270   
00271   while ( CandDigitHandle *cdh = cdhItr() ) {
00272     // for each digit
00273     paltlist = &(cdh->GetPlexSEIdAltLWritable());
00274     float plane = paltlist->GetPlane();
00275     if(plane>499)cout << " HITS in Planes : " << plane << endl; 
00276     if(paltlist->IsVetoShield()){
00277       cout << "VETO SHIELD " << endl;
00278       paltlist->SetFirst();
00279       if(paltlist->IsValid()){
00280         cout << " VETO : IS valid " << plane << endl;
00281         ushV = ugh.GetStripHandle(paltlist->GetCurrentSEId());  
00282         if(ushV.IsValid()){
00283           xVeto[NVeto] = (ushV.GlobalPos(0).X()/Munits::cm)/100.;
00284           yVeto[NVeto] = (ushV.GlobalPos(0).Y()/Munits::cm)/100.;
00285           zVeto[NVeto] = (ushV.GlobalPos(0).Z()/Munits::cm)/100.;
00286           NVeto++;
00287         }else{
00288           cout << " VETO : invalid " << plane << endl;
00289         }
00290       }else{
00291         cout << " VETO : paltlisrt invalid " << plane << endl;
00292 
00293       }
00294     }
00295 
00296     if(amVetoing&&NVeto>0)return;
00297 
00298     if(!paltlist->IsVetoShield()){
00299       if(paltlist->GetBestWeight()>0.99){
00300         int  iplane = static_cast<int>(plane);
00301         if(iplane>xMaxPlane)xMaxPlane = iplane;
00302         if(paltlist->GetEnd()==StripEnd::kEast){
00303           PlanesAltListsE[iplane].push_back(paltlist);
00304         }
00305         if(paltlist->GetEnd()==StripEnd::kWest){
00306           PlanesAltListsW[iplane].push_back(paltlist);
00307         }
00308         if(plane<500){
00309           PlaneView::PlaneView_t kView = paltlist->GetPlaneView();
00310           PlexStripEndId seid = paltlist->GetBestSEId();
00311           float strip = seid.GetStrip();
00312           float QPE = paltlist->GetBestItem().GetPE();
00313           float Q   = paltlist->GetBestItem().GetSigCorr()/60.;   
00314           if(Q/QPE>5. || QPE/Q > 5.)Q=QPE;
00315 
00316           if(plane>248)plane+=20;
00317           if(iplane>248)iplane+=20;
00318           if(kView==PlaneView::kU){
00319             demuxedHitPlaneU[NdemuxedHitsU] = plane;
00320             demuxedHitStripU[NdemuxedHitsU] = strip;
00321             demuxedHitQU[NdemuxedHitsU]     = Q;
00322             NdemuxedHitsU++;
00323             if(QPlane[iplane]<0.001)nplanesU++;
00324           }
00325           if(kView==PlaneView::kV){
00326             demuxedHitPlaneV[NdemuxedHitsV] = plane;
00327             demuxedHitStripV[NdemuxedHitsV] = strip;
00328             demuxedHitQV[NdemuxedHitsV]     = Q;
00329             NdemuxedHitsV++;
00330             if(QPlane[iplane]<0.001)nplanesV++;
00331           }
00332           QSPlane[iplane] += Q*strip;
00333           QPlane[iplane]  += Q;
00334         }
00335       }
00336     }
00337   }
00338 
00339   float stmin=99999.;
00340   for(int iplane = 0; iplane <500; iplane++){
00341     if(PlanesAltListsE[iplane].size()&&PlanesAltListsW[iplane].size()){
00342       for(unsigned int iE=0; iE<PlanesAltListsE[iplane].size();iE++ ){
00343         for(unsigned int iW=0; iW<PlanesAltListsW[iplane].size();iW++ ){
00344           PlexSEIdAltL* pAltE = PlanesAltListsE[iplane][iE];
00345           PlexSEIdAltL* pAltW = PlanesAltListsW[iplane][iW];
00346           if(pAltE->GetBestSEId().GetStrip() == 
00347                   pAltW->GetBestSEId().GetStrip()){
00348             PlaneView::PlaneView_t kView = pAltE->GetPlaneView();
00349             Double_t tE= pAltE->GetBestItem().GetTime();
00350             Double_t tW= pAltW->GetBestItem().GetTime();
00351             ushE = ugh.GetStripHandle(pAltE->GetBestSEId());
00352             float clearE = ushE.ClearFiber(StripEnd::kEast);
00353             float wlsE = ushE.WlsPigtail(StripEnd::kEast);
00354             ushW = ugh.GetStripHandle(pAltW->GetBestSEId());
00355             float clearW = ushW.ClearFiber(StripEnd::kWest);
00356             float wlsW = ushW.WlsPigtail(StripEnd::kWest);
00357             float halflength = ushW.GetHalfLength();
00358 
00359             //      float dt = (tW - tE)*1E9-(clearW-clearE)*6.0-(wlsW-wlsE)*4.6;
00360             float st = (tW + tE)*1E9-(clearW+clearE)*6.0-(wlsW+wlsE)*4.6;
00361             st = st/2.-halflength*6.0;
00362             if(st<stmin)stmin=st;
00363             int jplane = iplane;
00364             if(iplane>248)jplane+=20;
00365             if(kView==PlaneView::kU){
00366               demuxedPairPlaneU[NdemuxedPairsU] = jplane;
00367               demuxedPairTimeU[NdemuxedPairsU] = st;
00368               NdemuxedPairsU++;
00369             }
00370             if(kView==PlaneView::kV){
00371               demuxedPairPlaneV[NdemuxedPairsV] = jplane;
00372               demuxedPairTimeV[NdemuxedPairsV] = st;
00373               NdemuxedPairsV++;
00374             }      
00375           }
00376         }
00377       }
00378     }
00379   }
00380 
00381 
00382   for(int iU=0;iU<NdemuxedPairsU;iU++)demuxedPairTimeU[iU]-=stmin;
00383   for(int iV=0;iV<NdemuxedPairsV;iV++)demuxedPairTimeV[iV]-=stmin;
00384   
00385   bool ok=false;
00386   if(nplanesU>2&&nplanesV>2){
00387     ok = true;
00388 
00389 
00390     ok = this->Draw(1);
00391     if(ok){
00392       cout << "tagged as interesting " << endl;
00393     }    
00394 
00395   }
00396 
00397   if(amPSing)fCanvas->SaveAs("MyAna.eps");
00398   fList->Delete();
00399 
00400   return;
00401 
00402 }

bool AltDeMuxDisplay::Draw ( int  ipad  ) 

Definition at line 463 of file AltDeMuxDisplay.cxx.

References _maxPlane, amCutting, demuxedHitPlaneU, demuxedHitPlaneV, demuxedHitQU, demuxedHitQV, demuxedHitStripU, demuxedHitStripV, demuxedHitTU, demuxedHitTV, demuxedPairPlaneU, demuxedPairPlaneV, demuxedPairTimeU, demuxedPairTimeV, DISPLAY_TYPE, fCanvas, FindNearestEdge(), fList, fUpad, fUview, fVpad, fVview, fXYpad, fXYview, fZQpad, fZQview, fZTpad, fZTview, NdemuxedHitsU, NdemuxedHitsV, NdemuxedPairsU, NdemuxedPairsV, NVeto, pBoxSM1, pBoxSM2, pCircle, pCut1, pOctagon, pOctagonC, QPlane, QSPlane, xVeto, and yVeto.

Referenced by Ana().

00464 {  
00465 
00466   cout << "AltDeMuxDisplay::Draw()" << endl;
00467   TPolyMarker* pTPU1;
00468   TPolyMarker* pTPV1;
00469   TPolyMarker* pTPU2;
00470   TPolyMarker* pTPV2;
00471   TPolyMarker* pTPU3;
00472   TPolyMarker* pTPV3;
00473   TPolyMarker* pTPU4;
00474   TPolyMarker* pTPV4;
00475   TPolyMarker* pTPU5;
00476   TPolyMarker* pTPV5;
00477 
00478   TPolyMarker* pTPXY1;
00479   TPolyMarker* pTPXY2;
00480   TPolyMarker* pTPXY3;
00481   TPolyMarker* pTPXY4;
00482   TPolyMarker* pTPXY5;
00483 
00484   TPolyMarker* pTPZTU;
00485   TPolyMarker* pTPZTV;
00486 
00487   TPolyMarker* pTPVeto1;
00488 
00489   int fidPlane[500];
00490 
00491   float xU1[1000];
00492   float yU1[1000];
00493   float xU2[1000];
00494   float yU2[1000];
00495   float xU3[1000];
00496   float yU3[1000];
00497   float xU4[1000];
00498   float yU4[1000];
00499   float xU5[1000];
00500   float yU5[1000];
00501   int nU1=0;
00502   int nU2=0;
00503   int nU3=0;
00504   int nU4=0;
00505   int nU5=0;
00506 
00507   float xV1[1000];
00508   float yV1[1000];
00509   float xV2[1000];
00510   float yV2[1000];
00511   float xV3[1000];
00512   float yV3[1000];
00513   float xV4[1000];
00514   float yV4[1000];
00515   float xV5[1000];
00516   float yV5[1000];
00517   int nV1=0;
00518   int nV2=0;
00519   int nV3=0;
00520   int nV4=0;
00521   int nV5=0;
00522 
00523   float x1[1000];
00524   float y1[1000];
00525   float x2[1000];
00526   float y2[1000];
00527   float x3[1000];
00528   float y3[1000];
00529   float x4[1000];
00530   float y4[1000];
00531   float x5[1000];
00532   float y5[1000];
00533 
00534   int n1=0;
00535   int n2=0;
00536   int n3=0;
00537   int n4=0;
00538   int n5=0;
00539 
00540   float zU[5000];
00541   float zV[5000];
00542   float tU[5000];
00543   float tV[5000];
00544   int nU=0;
00545   int nV=0;
00546 
00547   float QFid=0.;
00548   float d;
00549   int iedge;
00550   float QFiducial[12];
00551   float QFiducialPC[12];
00552 
00553 
00554   for(int i=0;i<12;i++)QFiducial[i]=0.0;
00555   for(int i=0;i<500;i++)fidPlane[i]=0;
00556   for(int i=0;i<12;i++)QFiducialPC[i]=0.0;
00557 
00558   for(int i=0;i<NdemuxedHitsU;i++){
00559     for(int j=i+1;j<NdemuxedHitsU;j++){
00560       if(demuxedHitPlaneU[i]==demuxedHitPlaneU[j]){
00561         if(demuxedHitStripU[i]==demuxedHitStripU[j]){
00562           demuxedHitQU[i] +=demuxedHitQU[j];
00563           demuxedHitQU[j] = 0;
00564         }
00565       }
00566     }
00567   }
00568 
00569 
00570   float planeMin =1000;
00571   float planeMax =0;
00572 
00573   for(int i=0;i<NdemuxedHitsU;i++){
00574     int iU = static_cast<int>(demuxedHitPlaneU[i]); 
00575     fZQview->Fill(demuxedHitPlaneU[i],demuxedHitQU[i]);
00576     zU[nU] = demuxedHitPlaneU[i]; 
00577     tU[nU] = demuxedHitTU[i]; 
00578     nU++;
00579     bool ok = false;
00580     float V;
00581     float U = demuxedHitStripU[i];
00582     float x;
00583     float y;
00584 
00585     if(iU==0){
00586 
00587     }else{
00588       if(QPlane[iU-1]>0 && QPlane[iU+1]>0){
00589         float sm = QSPlane[iU-1]/QPlane[iU-1];
00590         float sp = QSPlane[iU+1]/QPlane[iU+1];
00591         V = (sm+sp)/2.0;
00592         x = ((U-V)*0.0417)/1.4142;
00593         y = ((U+V)*0.0417-8.0)/1.4142;
00594         ok = true;
00595       }
00596       if(!ok){
00597         if(QPlane[iU-3]>0 && QPlane[iU-1]>0){
00598           float smm = QSPlane[iU-3]/QPlane[iU-3];
00599           float sm  = QSPlane[iU-1]/QPlane[iU-1];
00600           V = (3*sm-smm)/2.0;
00601           x = ((U-V)*0.0417)/1.4142;
00602           y = ((U+V)*0.0417-8.0)/1.4142;
00603           ok = true;
00604         }
00605       }
00606       if(!ok){
00607         if(QPlane[iU+3]>0 && QPlane[iU+1]>0){
00608 
00609           float spp = QSPlane[iU+3]/QPlane[iU+3];
00610           float sp  = QSPlane[iU+1]/QPlane[iU+1];
00611           V = (3*sp-spp)/2.0;
00612           x = ((U-V)*0.0417)/1.4142;
00613           y = ((U+V)*0.0417-8.0)/1.4142;
00614           ok = true;
00615         }
00616       }
00617 
00618     }
00619 
00620 
00621     if(ok){
00622 
00623       this->FindNearestEdge(x,y,iedge,d);
00624 
00625 
00626       if(demuxedHitPlaneU[i]<=5)iedge=0;
00627       if(amCutting){
00628         if(demuxedHitPlaneU[i]>=119 &&demuxedHitPlaneU[i]<=124 )iedge=9;
00629         if(demuxedHitPlaneU[i]>=119)iedge=9;
00630       }else{
00631         if(demuxedHitPlaneU[i]>=243&&demuxedHitPlaneU[i]<=249)iedge=9;
00632         if(demuxedHitPlaneU[i]>=269&&demuxedHitPlaneU[i]<=275)iedge=10;
00633         if(demuxedHitPlaneU[i]>=_maxPlane+15)iedge=11;
00634       }
00635       if(d<0.5||iedge==0||iedge>=9)QFiducial[iedge]+=demuxedHitQU[i];
00636 
00637       if(d>=0.5&&iedge!=0&&iedge<9)fidPlane[static_cast<int>(demuxedHitPlaneU[i])]++;
00638       if(demuxedHitPlaneU[i]>=planeMin && demuxedHitPlaneU[i]<=planeMax){
00639         if(d<0.5||iedge==0||iedge>=9)QFiducialPC[iedge]+=demuxedHitQU[i];
00640       }
00641 
00642 
00643       if(demuxedHitQU[i]>=0.1 && demuxedHitQU[i]<=2.0){
00644         x1[n1] = x;
00645         y1[n1] = y;
00646         n1++;
00647       }
00648       if(demuxedHitQU[i]>=2 && demuxedHitQU[i]<=5){
00649         x2[n2] = x;
00650         y2[n2] = y;
00651         n2++;
00652       }
00653       if(demuxedHitQU[i]>=5 && demuxedHitQU[i]<=25){
00654         x3[n3] = x;
00655         y3[n3] = y;
00656         n3++;
00657       }
00658       if(demuxedHitQU[i]>=25 && demuxedHitQU[i]<=100){
00659         x4[n4] = x;
00660         y4[n4] = y;
00661         n4++;
00662       }
00663       if(demuxedHitQU[i]>=100){
00664         x5[n5] = x;
00665         y5[n5] = y;
00666         n5++;
00667       }
00668     }
00669     
00670 
00671     if(demuxedHitQU[i]>=1 && demuxedHitQU[i]<=3){
00672       xU1[nU1] = demuxedHitPlaneU[i];
00673       yU1[nU1] = demuxedHitStripU[i];
00674       nU1++;
00675     }
00676     if(demuxedHitQU[i]>=3 && demuxedHitQU[i]<=10){
00677       xU2[nU2] = demuxedHitPlaneU[i];
00678       yU2[nU2] = demuxedHitStripU[i];
00679       nU2++;
00680     }
00681     if(demuxedHitQU[i]>=10 && demuxedHitQU[i]<=50){
00682       xU3[nU3] = demuxedHitPlaneU[i];
00683       yU3[nU3] = demuxedHitStripU[i];
00684       nU3++;
00685     }
00686     if(demuxedHitQU[i]>=50 && demuxedHitQU[i]<=200){
00687       xU4[nU4] = demuxedHitPlaneU[i];
00688       yU4[nU4] = demuxedHitStripU[i];
00689       nU4++;
00690     }
00691     if(demuxedHitQU[i]>=200){
00692       xU5[nU5] = demuxedHitPlaneU[i];
00693       yU5[nU5] = demuxedHitStripU[i];
00694       nU5++;
00695     }
00696   }
00697 
00698   for(int i=0;i<NdemuxedHitsV;i++){
00699     for(int j=i+1;j<NdemuxedHitsV;j++){
00700       if(demuxedHitPlaneV[i]==demuxedHitPlaneV[j]){
00701         if(demuxedHitStripV[i]==demuxedHitStripV[j]){
00702           demuxedHitQV[i] +=demuxedHitQV[j];
00703           demuxedHitQV[j] = 0;
00704         }
00705       }
00706     }
00707   }
00708 
00709 
00710   for(int i=0;i<NdemuxedHitsV;i++){
00711     int iV = static_cast<int>(demuxedHitPlaneV[i]); 
00712     fZQview->Fill(demuxedHitPlaneV[i],demuxedHitQV[i]);
00713     zV[nU] = demuxedHitPlaneV[i]; 
00714     tV[nU] = demuxedHitTV[i]; 
00715     nV++;
00716 
00717     bool ok = false;
00718     float U;
00719     float V = demuxedHitStripV[i];
00720     float x;
00721     float y;
00722       
00723 
00724     if(iV==0){
00725 
00726     }else{
00727       if(QPlane[iV-1]>0 && QPlane[iV+1]>0){
00728         float sm = QSPlane[iV-1]/QPlane[iV-1];
00729         float sp = QSPlane[iV+1]/QPlane[iV+1];
00730         U = (sm+sp)/2.0;
00731         x = ((U-V)*0.0417)/1.4142;
00732         y = ((U+V)*0.0417-8.0)/1.4142;
00733         ok = true;
00734       }
00735       if(!ok){
00736         if(QPlane[iV-3]>0 && QPlane[iV-1]>0){
00737 
00738           float smm = QSPlane[iV-3]/QPlane[iV-3];
00739           float sm  = QSPlane[iV-1]/QPlane[iV-1];
00740           U = (3*sm-smm)/2.0;
00741           x = ((U-V)*0.0417)/1.4142;
00742           y = ((U+V)*0.0417-8.0)/1.4142;
00743           ok = true;
00744         }
00745       }
00746       if(!ok){
00747         if(QPlane[iV+3]>0 && QPlane[iV+1]>0){
00748 
00749 
00750           float spp = QSPlane[iV+3]/QPlane[iV+3];
00751           float sp  = QSPlane[iV+1]/QPlane[iV+1];
00752           U = (3*sp-spp)/2.0;
00753           x = ((U-V)*0.0417)/1.4142;
00754           y = ((U+V)*0.0417-8.0)/1.4142;
00755           ok = true;
00756         }
00757       }
00758     }
00759 
00760 
00761     if(ok){
00762       this->FindNearestEdge(x,y,iedge,d);
00763 
00764 
00765 
00766       if(demuxedHitPlaneV[i]<=5)iedge=0;
00767       if(amCutting){
00768         if(demuxedHitPlaneV[i]>=119 &&demuxedHitPlaneV[i]<=124 )iedge=9;
00769         if(demuxedHitPlaneV[i]>=119)iedge=9;
00770       }else{
00771         if(demuxedHitPlaneV[i]>=243&&demuxedHitPlaneV[i]<=249)iedge=9;
00772         if(demuxedHitPlaneV[i]>=269&&demuxedHitPlaneV[i]<=275)iedge=10;
00773         if(demuxedHitPlaneV[i]>=_maxPlane+15)iedge=11;
00774       }
00775       if(d<0.5||iedge==0||iedge>=9)QFiducial[iedge]+=demuxedHitQV[i];
00776       if(d>=0.5&&iedge!=0&&iedge<9)fidPlane[static_cast<int>(demuxedHitPlaneV[i])]++;
00777       if(demuxedHitPlaneV[i]>=planeMin && demuxedHitPlaneV[i]<=planeMax){
00778         if(d<0.5||iedge==0||iedge>=9)QFiducialPC[iedge]+=demuxedHitQV[i];
00779       }
00780 
00781 
00782       if(demuxedHitQV[i]>=0.1 && demuxedHitQV[i]<=2){
00783         x1[n1] = x;
00784         y1[n1] = y;
00785         n1++;
00786       }
00787       if(demuxedHitQV[i]>=2 && demuxedHitQV[i]<=5){
00788         x2[n2] = x;
00789         y2[n2] = y;
00790         n2++;
00791       }
00792       if(demuxedHitQV[i]>=5 && demuxedHitQV[i]<=25){
00793         x3[n3] = x;
00794         y3[n3] = y;
00795         n3++;
00796       }
00797       if(demuxedHitQV[i]>=25 && demuxedHitQV[i]<=100){
00798         x4[n4] = x;
00799         y4[n4] = y;
00800         n4++;
00801       }
00802       if(demuxedHitQV[i]>=100){
00803         x5[n5] = x;
00804         y5[n5] = y;
00805         n5++;
00806       }
00807     }
00808     
00809 
00810 
00811     if(demuxedHitQV[i]>=0.1 && demuxedHitQV[i]<=2){
00812       xV1[nV1] = demuxedHitPlaneV[i];
00813       yV1[nV1] = demuxedHitStripV[i];
00814       nV1++;
00815     }
00816     if(demuxedHitQV[i]>=2 && demuxedHitQV[i]<=5){
00817       xV2[nV2] = demuxedHitPlaneV[i];
00818       yV2[nV2] = demuxedHitStripV[i];
00819       nV2++;
00820     }
00821     if(demuxedHitQV[i]>=5 && demuxedHitQV[i]<=25){
00822       xV3[nV3] = demuxedHitPlaneV[i];
00823       yV3[nV3] = demuxedHitStripV[i];
00824       nV3++;
00825     }
00826     if(demuxedHitQV[i]>=25 && demuxedHitQV[i]<=100){
00827       xV4[nV4] = demuxedHitPlaneV[i];
00828       yV4[nV4] = demuxedHitStripV[i];
00829       nV4++;
00830     }
00831     if(demuxedHitQV[i]>=100){
00832       xV5[nV5] = demuxedHitPlaneV[i];
00833       yV5[nV5] = demuxedHitStripV[i];
00834       nV5++;
00835     }
00836   }
00837 
00838   pTPVeto1 = new TPolyMarker(NVeto,xVeto,yVeto);
00839   pTPVeto1->SetMarkerStyle(20);
00840   pTPVeto1->SetMarkerColor(kRed);
00841   pTPVeto1->SetMarkerSize(1.0);
00842 
00843 
00844   pTPZTU = new TPolyMarker(NdemuxedPairsU,demuxedPairPlaneU,demuxedPairTimeU);
00845   pTPZTU->SetMarkerStyle(20);
00846   pTPZTU->SetMarkerColor(kBlue);
00847   pTPZTU->SetMarkerSize(0.5);
00848 
00849 
00850 
00851 
00852 
00853   pTPZTV = new TPolyMarker(NdemuxedPairsV,demuxedPairPlaneV,demuxedPairTimeV);
00854   pTPZTV->SetMarkerStyle(20);
00855   pTPZTV->SetMarkerColor(kRed);
00856   pTPZTV->SetMarkerSize(0.5);
00857 
00858 
00859 
00860 
00861 
00862   pTPU1 = new TPolyMarker(nU1,xU1,yU1);
00863   pTPU1->SetMarkerStyle(20);
00864   pTPU1->SetMarkerColor(kYellow);
00865   pTPU1->SetMarkerSize(0.5);
00866 
00867   pTPU2 = new TPolyMarker(nU2,xU2,yU2);
00868   pTPU2->SetMarkerStyle(20);
00869   pTPU2->SetMarkerColor(kCyan);
00870   pTPU2->SetMarkerSize(0.5);
00871 
00872   pTPU3 = new TPolyMarker(nU3,xU3,yU3);
00873   pTPU3->SetMarkerStyle(20);
00874   pTPU3->SetMarkerColor(kBlue);
00875   pTPU3->SetMarkerSize(0.5);
00876 
00877   pTPU4 = new TPolyMarker(nU4,xU4,yU4);
00878   pTPU4->SetMarkerStyle(20);
00879   pTPU4->SetMarkerColor(kBlack);
00880   pTPU4->SetMarkerSize(0.5);
00881 
00882   pTPU5 = new TPolyMarker(nU5,xU5,yU5);
00883   pTPU5->SetMarkerStyle(20);
00884   pTPU5->SetMarkerColor(kRed);
00885   pTPU5->SetMarkerSize(0.5);
00886 
00887   pTPV1 = new TPolyMarker(nV1,xV1,yV1);
00888   pTPV1->SetMarkerStyle(20);
00889   pTPV1->SetMarkerColor(kYellow);
00890   pTPV1->SetMarkerSize(0.5);
00891 
00892   pTPV2 = new TPolyMarker(nV2,xV2,yV2);
00893   pTPV2->SetMarkerStyle(20);
00894   pTPV2->SetMarkerColor(kCyan);
00895   pTPV2->SetMarkerSize(0.5);
00896 
00897   pTPV3 = new TPolyMarker(nV3,xV3,yV3);
00898   pTPV3->SetMarkerStyle(20);
00899   pTPV3->SetMarkerColor(kBlue);
00900   pTPV3->SetMarkerSize(0.5);
00901 
00902   pTPV4 = new TPolyMarker(nV4,xV4,yV4);
00903   pTPV4->SetMarkerStyle(20);
00904   pTPV4->SetMarkerColor(kBlack);
00905   pTPV4->SetMarkerSize(0.5);
00906 
00907   pTPV5 = new TPolyMarker(nV5,xV5,yV5);
00908   pTPV5->SetMarkerStyle(20);
00909   pTPV5->SetMarkerColor(kRed);
00910   pTPV5->SetMarkerSize(0.5);
00911 
00912 
00913   pTPXY1 = new TPolyMarker(n1,x1,y1);
00914   pTPXY1->SetMarkerStyle(20);
00915   pTPXY1->SetMarkerColor(kYellow);
00916   pTPXY1->SetMarkerSize(0.5);
00917 
00918   pTPXY2 = new TPolyMarker(n2,x2,y2);
00919   pTPXY2->SetMarkerStyle(20);
00920   pTPXY2->SetMarkerColor(kCyan);
00921   pTPXY2->SetMarkerSize(0.5);
00922 
00923   pTPXY3 = new TPolyMarker(n3,x3,y3);
00924   pTPXY3->SetMarkerStyle(20);
00925   pTPXY3->SetMarkerColor(kBlue);
00926   pTPXY3->SetMarkerSize(0.5);
00927 
00928   pTPXY4 = new TPolyMarker(n4,x4,y4);
00929   pTPXY4->SetMarkerStyle(20);
00930   pTPXY4->SetMarkerColor(kBlack);
00931   pTPXY4->SetMarkerSize(0.5);
00932 
00933   pTPXY5 = new TPolyMarker(n5,x5,y5);
00934   pTPXY5->SetMarkerStyle(20);
00935   pTPXY5->SetMarkerColor(kRed);
00936   pTPXY5->SetMarkerSize(0.5);
00937 
00938   // Keep track of the TPolyMarkers - delete them later
00939 
00940   fList->Add(pTPV1);
00941   fList->Add(pTPV2);
00942   fList->Add(pTPV3);
00943   fList->Add(pTPV4);
00944   fList->Add(pTPV5);
00945   fList->Add(pTPU1);
00946   fList->Add(pTPU2);
00947   fList->Add(pTPU3);
00948   fList->Add(pTPU4);
00949   fList->Add(pTPU5);
00950   fList->Add(pTPVeto1);
00951   fList->Add(pTPXY1);
00952   fList->Add(pTPXY2);
00953   fList->Add(pTPXY3);
00954   fList->Add(pTPXY4);
00955   fList->Add(pTPXY5);
00956   fList->Add(pTPZTU);
00957   fList->Add(pTPZTV);
00958 
00959   if(DISPLAY_TYPE==1)fUpad->cd();
00960   if (fUview) fUview->Draw();
00961 
00962   pTPU1->Draw();
00963   pTPU2->Draw();
00964   pTPU3->Draw();
00965   pTPU4->Draw();
00966   pTPU5->Draw();
00967   pBoxSM1->Draw();
00968   pBoxSM2->Draw();
00969   if(amCutting)pCut1->Draw();
00970  
00971 
00972   if(DISPLAY_TYPE==1)fVpad->cd();
00973   if (fVview) fVview->Draw();
00974 
00975   pTPV1->Draw();
00976   pTPV2->Draw();
00977   pTPV3->Draw();
00978   pTPV4->Draw();
00979   pTPV5->Draw();
00980   pBoxSM1->Draw();
00981   pBoxSM2->Draw();
00982   if(amCutting)pCut1->Draw();
00983 
00984   
00985 
00986 
00987   if(DISPLAY_TYPE==1)fXYpad->cd();
00988   if (fXYview) fXYview->Draw();
00989   pTPXY1->Draw();
00990   pTPXY2->Draw();
00991   pTPXY3->Draw();
00992   pTPXY4->Draw();
00993   pTPXY5->Draw();
00994   pTPVeto1->Draw();
00995   pOctagon->Draw();
00996   pOctagonC->Draw();
00997   pCircle->Draw();
00998 
00999 
01000   fZTpad->cd();
01001   if(fZTview)fZTview->Draw();
01002   pTPZTU->Draw();
01003   pTPZTV->Draw();
01004 
01005   fZQpad->cd();
01006   if(fZQview)fZQview->Draw();
01007 
01008 
01009   fCanvas->Update();
01010  
01011   cout << " PEs outside FIDUCIAL cut : " << QFid << endl;
01012 
01013   int icount=0;
01014   int jcount=0;
01015   for(int i=0;i<12;i++){
01016     cout << " Edge " << i << " : " << QFiducial[i] << " : " << QFiducialPC[i] << endl; 
01017     if(QFiducial[i]>1.0)icount++;
01018     if(QFiducialPC[i]>1.0)jcount++;
01019   }
01020 
01021   int nInFid=0;
01022   for(int i=0;i<500;i++){
01023     if(fidPlane[i]>0)nInFid++;
01024   }
01025 
01026   cout << "Hit Planes in Fiducial region : " << nInFid << endl;
01027   
01028   if(nInFid<6)return false;
01029 
01030   if(icount==0)cout << " CONTAINED " << endl;
01031   if(icount==1&&jcount==0)cout << " PARTIALLY CONTAINED " << endl;
01032   if(icount==1&&jcount==1)cout << " STOPPER " << endl;
01033   if(icount>=2&&jcount==1)cout << " THROUGH-GOING " << endl;
01034 
01035 
01036   if(icount>0&&jcount>0)return false;
01037   getchar();
01038 
01039   return true;
01040 
01041 }

void AltDeMuxDisplay::FindNearestEdge ( float  x,
float  y,
int &  idege,
float &  d 
)

Definition at line 404 of file AltDeMuxDisplay.cxx.

Referenced by Draw().

00405 {
00406   
00407   float d1 = fabs(x);
00408   float d2 = fabs(y);
00409   float d3 = 0.70711*fabs(x-y);
00410   float d4 = 0.70711*fabs(x+y);
00411 
00412   if(d1>d2){
00413     if(d3>d4){
00414       if(d1>d3){
00415         d = 4.0-d1;
00416         if(x>0)iedge=3;
00417         if(x<=0)iedge=7;
00418       }else{
00419         d = 4.0-d3;
00420         if(x-y>0)iedge=4;
00421         if(x-y<=0)iedge=8;
00422       }
00423     }else{
00424       if(d1>d4){
00425         d = 4.0-d1;
00426         if(x>0)iedge=3;
00427         if(x<=0)iedge=7;
00428       }else{
00429         d = 4.0-d4;
00430         if(x+y>0)iedge=2;
00431         if(x+y<=0)iedge=6;
00432       }
00433     }
00434   }else{
00435     if(d3>d4){
00436       if(d2>d3){
00437         d = 4.0-d2;
00438         if(y>0)iedge=1;
00439         if(y<=0)iedge=5;
00440 
00441       }else{
00442         d = 4.0-d3;
00443         if(x-y>0)iedge=4;
00444         if(x-y<=0)iedge=8;
00445       }
00446     }else{
00447       if(d2>d4){
00448         d = 4.0-d2;
00449         if(y>0)iedge=1;
00450         if(y<=0)iedge=5;
00451       }else{
00452         d = 4.0-d4;
00453         if(x+y>0)iedge=2;
00454         if(x+y<=0)iedge=6;
00455       }
00456     }
00457   }
00458 
00459   return;
00460 } 

int AltDeMuxDisplay::MaxPlane ( int  irun  ) 

Definition at line 1043 of file AltDeMuxDisplay.cxx.

References _lastRun, _maxPlane, pBoxSM2, and pCut1.

Referenced by Ana().

01044 {  
01045 
01046    if(irun==_lastRun)return _maxPlane;  
01047    if(irun<= 1000)_maxPlane = 497;
01048    if(irun>= 8000 && irun < 8504 )_maxPlane = 293;   // 8039 8493 : 293  
01049    if(irun>= 8504 && irun < 8803 )_maxPlane = 305;   // 8580 8802 : 305
01050    if(irun>= 8803 && irun < 9279 )_maxPlane = 313;   
01051    if(irun>= 9279 && irun < 9279 )_maxPlane = 317;   
01052    if(irun>= 9279 && irun < 9530 )_maxPlane = 321;
01053    if(irun>= 9530 && irun < 9700 )_maxPlane = 325;
01054    if(irun>= 9700 && irun < 9988 )_maxPlane = 333;
01055    if(irun>= 9988 && irun <10002 )_maxPlane = 341;
01056    if(irun>=10002 && irun <10299 )_maxPlane = 345;
01057    if(irun>=10299 && irun <10700 )_maxPlane = 349;
01058    if(irun>=10700 && irun <11400 )_maxPlane = 365;
01059    if(irun>=11400 && irun <12433 )_maxPlane = 377;
01060    if(irun>=12433 && irun <99999 )_maxPlane = 498;
01061    _lastRun = irun;          
01062 
01063 
01064   float x[5];
01065   float y[5];
01066  
01067   x[0] = 269.;
01068   x[1] = _maxPlane+20.;
01069   x[2] = _maxPlane+20.;
01070   x[3] = 269.;
01071   x[4] = 269.;
01072 
01073   y[0] = 0.;
01074   y[1] = 0.;
01075   y[2] = 192.;
01076   y[3] = 192.;
01077   y[4] = 0.;
01078 
01079  
01080   if(pBoxSM2)delete pBoxSM2;
01081   pBoxSM2 = new TPolyLine(5,x,y);
01082  
01083   x[0] = 124.;
01084   y[0] = 0.;
01085   x[1] = 124.;
01086   y[1] = 192.;
01087   pCut1 = new TPolyLine(2,x,y);
01088 
01089 
01090   return _maxPlane;
01091 
01092 
01093 }


Member Data Documentation

Definition at line 79 of file AltDeMuxDisplay.h.

Referenced by Ana().

Definition at line 45 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and MaxPlane().

Definition at line 44 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), Draw(), and MaxPlane().

Definition at line 41 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Draw().

bool AltDeMuxDisplay::amPSing [private]

Definition at line 40 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Ana().

Definition at line 42 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Ana().

float AltDeMuxDisplay::demuxedHitPlaneU[20000] [private]

Definition at line 50 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::demuxedHitPlaneV[20000] [private]

Definition at line 57 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::demuxedHitQU[20000] [private]

Definition at line 52 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::demuxedHitQV[20000] [private]

Definition at line 59 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::demuxedHitStripU[20000] [private]

Definition at line 51 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::demuxedHitStripV[20000] [private]

Definition at line 58 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::demuxedHitTU[20000] [private]

Definition at line 53 of file AltDeMuxDisplay.h.

Referenced by Draw().

float AltDeMuxDisplay::demuxedHitTV[20000] [private]

Definition at line 60 of file AltDeMuxDisplay.h.

Referenced by Draw().

float AltDeMuxDisplay::demuxedPairPlaneU[20000] [private]

Definition at line 65 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::demuxedPairPlaneV[20000] [private]

Definition at line 64 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::demuxedPairTimeU[20000] [private]

Definition at line 67 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::demuxedPairTimeV[20000] [private]

Definition at line 66 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

TCanvas* AltDeMuxDisplay::fCanvas [private]

Definition at line 81 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), Ana(), and Draw().

TList* AltDeMuxDisplay::fList [private]

Definition at line 93 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), Ana(), and Draw().

TPad* AltDeMuxDisplay::fUpad [private]

Definition at line 82 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), Ana(), and Draw().

TH2F* AltDeMuxDisplay::fUview [private]

Definition at line 87 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

TPad* AltDeMuxDisplay::fVpad [private]

Definition at line 83 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), Ana(), and Draw().

TH2F* AltDeMuxDisplay::fVview [private]

Definition at line 88 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

TPad* AltDeMuxDisplay::fXYpad [private]

Definition at line 84 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Draw().

TH2F* AltDeMuxDisplay::fXYview [private]

Definition at line 89 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

TPad* AltDeMuxDisplay::fZQpad [private]

Definition at line 85 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Draw().

TH1F* AltDeMuxDisplay::fZQview [private]

Definition at line 90 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

TPad* AltDeMuxDisplay::fZTpad [private]

Definition at line 86 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Draw().

TH2F* AltDeMuxDisplay::fZTview [private]

Definition at line 91 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

Definition at line 48 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

Definition at line 56 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

Definition at line 63 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

Definition at line 62 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

int AltDeMuxDisplay::NVeto [private]

Definition at line 69 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

TPolyLine* AltDeMuxDisplay::pBoxSM1 [private]

Definition at line 99 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Draw().

TPolyLine* AltDeMuxDisplay::pBoxSM2 [private]

Definition at line 100 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), Draw(), and MaxPlane().

TArc* AltDeMuxDisplay::pCircle [private]

Definition at line 103 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Draw().

TPolyLine* AltDeMuxDisplay::pCut1 [private]

Definition at line 95 of file AltDeMuxDisplay.h.

Referenced by Draw(), and MaxPlane().

TPolyLine* AltDeMuxDisplay::pCut2 [private]

Definition at line 96 of file AltDeMuxDisplay.h.

std::vector<PlexSEIdAltL*> AltDeMuxDisplay::PlanesAltListsE[500] [private]

Definition at line 77 of file AltDeMuxDisplay.h.

Referenced by Ana().

std::vector<PlexSEIdAltL*> AltDeMuxDisplay::PlanesAltListsW[500] [private]

Definition at line 78 of file AltDeMuxDisplay.h.

Referenced by Ana().

TPolyLine* AltDeMuxDisplay::pOctagon [private]

Definition at line 101 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Draw().

TPolyLine* AltDeMuxDisplay::pOctagonC [private]

Definition at line 102 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Draw().

TPolyLine* AltDeMuxDisplay::pSM1 [private]

Definition at line 97 of file AltDeMuxDisplay.h.

TPolyLine* AltDeMuxDisplay::pSM2 [private]

Definition at line 98 of file AltDeMuxDisplay.h.

TPolyLine* AltDeMuxDisplay::pZTFit [private]

Definition at line 94 of file AltDeMuxDisplay.h.

float AltDeMuxDisplay::QPlane[520] [private]

Definition at line 55 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::QSPlane[520] [private]

Definition at line 54 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

Definition at line 46 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and Ana().

float AltDeMuxDisplay::xVeto[1000] [private]

Definition at line 70 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::yVeto[1000] [private]

Definition at line 71 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

float AltDeMuxDisplay::zVeto[1000] [private]

Definition at line 72 of file AltDeMuxDisplay.h.

Referenced by Ana().


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

Generated on 22 Nov 2017 for loon by  doxygen 1.6.1