Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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


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, amVetoing, MomNavigator::At(), UgliStripHandle::ClearFiber(), 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(), CandDigitHandle::GetPlexSEIdAltLWritable(), RawRecord::GetRawHeader(), RawDaqHeader::GetRun(), PlexSEIdAltLItem::GetSigCorr(), RawDaqSnarlHeader::GetSnarl(), PlexStripEndId::GetStrip(), UgliGeomHandle::GetStripHandle(), PlexSEIdAltLItem::GetTime(), RecMinos::GetVldContext(), UgliStripHandle::GlobalPos(), UgliStripHandle::IsValid(), PlexSEIdAltL::IsValid(), PlexSEIdAltL::IsVetoShield(), MaxPlane(), MSG, NdemuxedHitsU, NdemuxedHitsV, NdemuxedPairsU, NdemuxedPairsV, NVeto, PlanesAltListsE, PlanesAltListsW, QPlane, QSPlane, run(), PlexSEIdAltL::SetFirst(), 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, 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, n1, 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

std::vector<DeMuxedPair> AltDeMuxDisplay::_demuxedPairs [private]
 

Definition at line 79 of file AltDeMuxDisplay.h.

Referenced by Ana().

int AltDeMuxDisplay::_lastRun [private]
 

Definition at line 45 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay(), and MaxPlane().

int AltDeMuxDisplay::_maxPlane [private]
 

Definition at line 44 of file AltDeMuxDisplay.h.

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

bool AltDeMuxDisplay::amCutting [private]
 

Definition at line 41 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay().

bool AltDeMuxDisplay::amPSing [private]
 

Definition at line 40 of file AltDeMuxDisplay.h.

Referenced by AltDeMuxDisplay().

bool AltDeMuxDisplay::amVetoing [private]
 

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().

int AltDeMuxDisplay::NdemuxedHitsU [private]
 

Definition at line 48 of file AltDeMuxDisplay.h.

Referenced by Ana().

int AltDeMuxDisplay::NdemuxedHitsV [private]
 

Definition at line 56 of file AltDeMuxDisplay.h.

Referenced by Ana().

int AltDeMuxDisplay::NdemuxedPairsU [private]
 

Definition at line 63 of file AltDeMuxDisplay.h.

Referenced by Ana(), and Draw().

int AltDeMuxDisplay::NdemuxedPairsV [private]
 

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().

int AltDeMuxDisplay::xMaxPlane [private]
 

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 Fri Mar 28 15:54:01 2008 for loon by  doxygen 1.3.9.1