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

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 34 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.

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


Member Function Documentation

void AltDeMuxDisplay::Ana const MomNavigator mom  ) 
 

Definition at line 163 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, PlexSEIdAltL::SetFirst(), UgliStripHandle::WlsPigtail(), xMaxPlane, xVeto, yVeto, and zVeto.

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

bool AltDeMuxDisplay::Draw int  ipad  ) 
 

Definition at line 461 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, NdemuxedPairsU, NdemuxedPairsV, NVeto, pBoxSM1, pBoxSM2, pCircle, pCut1, pOctagon, pOctagonC, QPlane, QSPlane, xVeto, and yVeto.

Referenced by Ana().

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

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

Definition at line 402 of file AltDeMuxDisplay.cxx.

Referenced by Draw().

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

int AltDeMuxDisplay::MaxPlane int  irun  ) 
 

Definition at line 1041 of file AltDeMuxDisplay.cxx.

References _lastRun, _maxPlane, pBoxSM2, and pCut1.

Referenced by Ana().

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


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 Thu Nov 1 15:55:33 2007 for loon by  doxygen 1.3.9.1