FitTrackCamAnalysisModule Class Reference

#include <FitTrackCamAnalysisModule.h>

Inheritance diagram for FitTrackCamAnalysisModule:
JobCModule

List of all members.

Public Member Functions

 FitTrackCamAnalysisModule ()
 ~FitTrackCamAnalysisModule ()
void BeginJob ()
void EndJob ()
void ConfigureAxes (VldContext *vldc)
void SliceSection ()
void ShowerSection ()
void TrackSection ()
void FittedTrackSection ()
void TruthSection (SimSnarlRecord *simrec)
void TruthSliceSection (Truthifier *mytruth)
void EfficiencySection (Truthifier *mytruth)
void Draw ()
void Pause ()
void CleanUp ()
JobCResult Ana (const MomNavigator *mom)
const RegistryDefaultConfig () const
void Config (const Registry &r)

Private Attributes

CandRecordcandrec
TString fListInSlc
TString fListInShw
TString fListInTrk
TString fListInFitTrk
TString fFileName
TCanvas * fTrackCanvas
TPad * fUZPad
TPad * fVZPad
TH2F * fUZAxis
TH2F * fVZAxis
TPad * fUZMCPad
TPad * fVZMCPad
TH2F * fUZMCAxis
TH2F * fVZMCAxis
vector< vector< TMarker > > fUZSliceMarker
vector< vector< TMarker > > fVZSliceMarker
vector< vector< TMarker > > fUZShowerMarker
vector< vector< TMarker > > fVZShowerMarker
vector< vector< TMarker > > fUZTrackMarker
vector< vector< TMarker > > fVZTrackMarker
vector< vector< TMarker > > fUZFitTrackMarker
vector< vector< TMarker > > fVZFitTrackMarker
vector< vector< TMarker > > fUZSliceMarkerTruth
vector< vector< TMarker > > fVZSliceMarkerTruth
vector< vector< TMarker > > fUZTrackMarkerTruth
vector< vector< TMarker > > fVZTrackMarkerTruth
float fMaxZ
float fMinZ
float fMaxUorV
float fMinUorV
int fFitEndPlane
int fFitVtxPlane
int fTrueMaxPlane
int fTrueMinPlane
int isMC
TFile * FTCFile
TTree * FTCTree
bool CareAboutXTalk
bool debug
int Run
int Snarl
int NumFittedTracks
int Pass
double RecoQP
double TrueQP
double QPVtxError
double RecoMomCurve
double RecoMomRange
double TrueMom
double RecoTime
int FitTrackStrips
int TrueMuonStrips
int FitAndTruthAgree
int FitTrackLength
int TrueTrackLength
int TotalStripsInSnarl
int FDFullyContained
int NTrackStrip
int NTrackDigit
double Chi2
int NDOF
int NIterate
int NSwimFail
double TimeSlope
double TimeOffset
double VtxT
double EndT
double TimeFitChi2
double NTimeFitDigit
double TimeForwardFitRMS
int TimeForwardFitNDOF
double TimeBackwardFitRMS
int TimeBackwardFitNDOF
double VtxU
double VtxV
double VtxZ
int VtxPlane
double VtxDirCosU
double VtxDirCosV
double VtxDirCosZ
double VtxUError
double VtxVError
double VtxdUError
double VtxdVError
double EndU
double EndV
double EndZ
int EndPlane
double EndQP
double EndDirCosU
double EndDirCosV
double EndDirCosZ
double EndUError
double EndVError
double EnddUError
double EnddVError
double EndQPError
double Range
double dS
double VtxTrace
double VtxTraceZ
double EndTrace
double EndTraceZ

Detailed Description

Definition at line 27 of file FitTrackCamAnalysisModule.h.


Constructor & Destructor Documentation

FitTrackCamAnalysisModule::FitTrackCamAnalysisModule (  ) 

Definition at line 60 of file FitTrackCamAnalysisModule.cxx.

References Chi2, dS, EndDirCosU, EndDirCosV, EndDirCosZ, EnddUError, EnddVError, EndPlane, EndQP, EndQPError, EndT, EndTrace, EndTraceZ, EndU, EndUError, EndV, EndVError, EndZ, FDFullyContained, FitAndTruthAgree, FitTrackLength, FitTrackStrips, fListInFitTrk, fListInShw, fListInSlc, fListInTrk, FTCFile, FTCTree, fTrackCanvas, fUZAxis, fUZMCAxis, fUZMCPad, fUZPad, fVZAxis, fVZMCAxis, fVZMCPad, fVZPad, isMC, NDOF, NIterate, NSwimFail, NTimeFitDigit, NTrackDigit, NTrackStrip, NumFittedTracks, Pass, QPVtxError, RecoMomCurve, RecoMomRange, RecoQP, RecoTime, Run, Snarl, TimeBackwardFitNDOF, TimeBackwardFitRMS, TimeFitChi2, TimeForwardFitNDOF, TimeForwardFitRMS, TimeOffset, TimeSlope, TotalStripsInSnarl, TrueMom, TrueMuonStrips, TrueQP, TrueTrackLength, VtxDirCosU, VtxDirCosV, VtxDirCosZ, VtxdUError, VtxdVError, VtxPlane, VtxT, VtxTrace, VtxTraceZ, VtxU, VtxUError, VtxV, VtxVError, and VtxZ.

00061 {
00062   isMC=0;
00063 
00064   fListInSlc="CandSliceList";
00065   fListInShw="CandShowerList";
00066   fListInTrk="CandTrackSRList";
00067   fListInFitTrk="CandFitTrackCamList";
00068 
00069   fTrackCanvas = new TCanvas("fTrackCanvas","TrackView",800,500);
00070   fTrackCanvas->Draw();
00071   
00072   // Pads
00073   fUZPad   = new TPad("upad","U pad",0.010,0.505,0.495,0.990);
00074   fVZPad   = new TPad("vpad","V pad",0.010,0.010,0.495,0.495);
00075   fUZMCPad   = new TPad("uMCpad","U pad",0.505,0.505,0.990,0.990);
00076   fVZMCPad   = new TPad("vMCpad","V pad",0.505,0.010,0.990,0.495);
00077 
00078   fUZPad->SetFillColor(10);
00079   fVZPad->SetFillColor(10);
00080   fUZMCPad->SetFillColor(10);
00081   fVZMCPad->SetFillColor(10);
00082 
00083   fUZPad->SetLeftMargin(0.05);
00084   fUZPad->SetRightMargin(0.001);
00085   fUZPad->SetTopMargin(0.0001);
00086   fUZPad->SetBottomMargin(0.055);
00087   fVZPad->SetLeftMargin(0.05);
00088   fVZPad->SetRightMargin(0.001);
00089   fVZPad->SetTopMargin(0.0001);
00090   fVZPad->SetBottomMargin(0.055);
00091 
00092   fUZMCPad->SetLeftMargin(0.05);
00093   fUZMCPad->SetRightMargin(0.001);
00094   fUZMCPad->SetTopMargin(0.0001);
00095   fUZMCPad->SetBottomMargin(0.055);
00096   fVZMCPad->SetLeftMargin(0.05);
00097   fVZMCPad->SetRightMargin(0.001);
00098   fVZMCPad->SetTopMargin(0.0001);
00099   fVZMCPad->SetBottomMargin(0.055);
00100 
00101   fUZPad->Draw();
00102   fVZPad->Draw();
00103   fUZMCPad->Draw();
00104   fVZMCPad->Draw();
00105 
00106   fUZAxis=0;
00107   fVZAxis=0;
00108   fUZMCAxis=0;
00109   fVZMCAxis=0;
00110 
00111 
00112   // For writing results to file
00113   TDirectory* tmpd = 0;
00114   tmpd = gDirectory;  
00115 
00116   FTCFile = new TFile("FTCResults.root","recreate");
00117   FTCTree = new TTree("FTCTree","FTCTree");
00118 
00119   // Header info
00120   FTCTree->Branch("Run",&Run,"Run/I");
00121   FTCTree->Branch("Snarl",&Snarl,"Snarl/I");
00122   FTCTree->Branch("NumFittedTracks",&NumFittedTracks,"NumFittedTracks/I");
00123   FTCTree->Branch("Pass",&Pass,"Pass/I");
00124 
00125   // Momentum-related quantities
00126   FTCTree->Branch("RecoQP",&RecoQP,"RecoQP/D");
00127   FTCTree->Branch("TrueQP",&TrueQP,"TrueQP/D");
00128   FTCTree->Branch("QPVtxError",&QPVtxError,"QPVtxError/D");
00129   FTCTree->Branch("RecoMomCurve",&RecoMomCurve,"RecoMomCurve/D");
00130   FTCTree->Branch("RecoMomRange",&RecoMomRange,"RecoMomRange/D");
00131   FTCTree->Branch("TrueMom",&TrueMom,"TrueMom/D");
00132   FTCTree->Branch("RecoTime",&RecoTime,"RecoTime/D");
00133 
00134   // For checking tracking efficency
00135   FTCTree->Branch("FitTrackStrips",&FitTrackStrips,"FitTrackStrips/I");
00136   FTCTree->Branch("TrueMuonStrips",&TrueMuonStrips,"TrueMuonStrips/I");
00137   FTCTree->Branch("FitAndTruthAgree",&FitAndTruthAgree,"FitAndTruthAgree/I");
00138   FTCTree->Branch("FitTrackLength",&FitTrackLength,"FitTrackLength/I");
00139   FTCTree->Branch("TrueTrackLength",&TrueTrackLength,"TrueTrackLength/I");
00140   FTCTree->Branch("TotalStripsInSnarl",&TotalStripsInSnarl,"TotalStripsInSnarl/I");  
00141   FTCTree->Branch("FDFullyContained",&FDFullyContained,"FDFullyContained/I");
00142   FTCTree->Branch("NTrackStrip",&NTrackStrip,"NTrackStrip/I");
00143   FTCTree->Branch("NTrackDigit",&NTrackDigit,"NTrackDigit/I");
00144 
00145   // Track fit quality
00146   FTCTree->Branch("Chi2",&Chi2,"Chi2/D");
00147   FTCTree->Branch("NDOF",&NDOF,"NDOF/I");
00148   FTCTree->Branch("NIterate",&NIterate,"NIterate/I");
00149   FTCTree->Branch("NSwimFail",&NSwimFail,"NSwimFail/I");
00150 
00151   // Timing info
00152   FTCTree->Branch("TimeSlope",&TimeSlope,"TimeSlope/D");
00153   FTCTree->Branch("TimeOffset",&TimeOffset,"TimeOffset/D");
00154   FTCTree->Branch("VtxT",&VtxT,"VtxT/D");
00155   FTCTree->Branch("EndT",&EndT,"EndT/D");
00156   FTCTree->Branch("TimeFitChi2",&TimeFitChi2,"TimeFitChi2/D");
00157   FTCTree->Branch("NTimeFitDigit",&NTimeFitDigit,"NTimeFitDigit/D");
00158   FTCTree->Branch("TimeForwardFitRMS",&TimeForwardFitRMS,"TimeForwardFitRMS/D");
00159   FTCTree->Branch("TimeForwardFitNDOF",&TimeForwardFitNDOF,"TimeForwardFitNDOF/I");
00160   FTCTree->Branch("TimeBackwardFitRMS",&TimeBackwardFitRMS,"TimeBackwardFitRMS/D");
00161   FTCTree->Branch("TimeBackwardFitNDOF",&TimeBackwardFitNDOF,"TimeBackwardFitNDOF/I");
00162   
00163   // Vtx properties
00164   FTCTree->Branch("VtxU",&VtxU,"VtxU/D");
00165   FTCTree->Branch("VtxV",&VtxV,"VtxV/D");
00166   FTCTree->Branch("VtxZ",&VtxZ,"VtxZ/D");
00167   FTCTree->Branch("VtxPlane",&VtxPlane,"VtxPlane/I");
00168 
00169   FTCTree->Branch("VtxDirCosU",&VtxDirCosU,"VtxDirCosU/D");
00170   FTCTree->Branch("VtxDirCosV",&VtxDirCosV,"VtxDirCosV/D");
00171   FTCTree->Branch("VtxDirCosZ",&VtxDirCosZ,"VtxDirCosZ/D");
00172 
00173   FTCTree->Branch("VtxUError",&VtxUError,"VtxUError/D");
00174   FTCTree->Branch("VtxVError",&VtxVError,"VtxVError/D");
00175   FTCTree->Branch("VtxdUError",&VtxdUError,"VtxdUError/D");
00176   FTCTree->Branch("VtxdVError",&VtxdVError,"VtxdVError/D");
00177 
00178 
00179   // End properties
00180   FTCTree->Branch("EndU",&EndU,"EndU/D");
00181   FTCTree->Branch("EndV",&EndV,"EndV/D");
00182   FTCTree->Branch("EndZ",&EndZ,"EndZ/D");
00183   FTCTree->Branch("EndPlane",&EndPlane,"EndPlane/I");
00184   FTCTree->Branch("EndQP",&EndQP,"EndQP/D");
00185 
00186   FTCTree->Branch("EndDirCosU",&EndDirCosU,"EndDirCosU/D");
00187   FTCTree->Branch("EndDirCosV",&EndDirCosV,"EndDirCosV/D");
00188   FTCTree->Branch("EndDirCosZ",&EndDirCosZ,"EndDirCosZ/D");
00189 
00190   FTCTree->Branch("EndUError",&EndUError,"EndUError/D");
00191   FTCTree->Branch("EndVError",&EndVError,"EndVError/D");
00192   FTCTree->Branch("EnddUError",&EnddUError,"EnddUError/D");
00193   FTCTree->Branch("EnddVError",&EnddVError,"EnddVError/D");
00194   FTCTree->Branch("EndQOError",&EndQPError,"EndQPError/D");
00195 
00196   // Range and dS
00197   FTCTree->Branch("Range",&Range,"Range/D");
00198   FTCTree->Branch("dS",&dS,"dS/D");
00199 
00200 
00201   // Traces
00202   FTCTree->Branch("VtxTrace",&VtxTrace,"VtxTrace/D");
00203   FTCTree->Branch("VtxTraceZ",&VtxTraceZ,"VtxTraceZ/D");
00204   FTCTree->Branch("EndTrace",&EndTrace,"EndTrace/D");
00205   FTCTree->Branch("EndTraceZ",&EndTraceZ,"EndTraceZ/D");
00206 
00207   gDirectory = tmpd;
00208 }

FitTrackCamAnalysisModule::~FitTrackCamAnalysisModule (  ) 

Definition at line 213 of file FitTrackCamAnalysisModule.cxx.

References fTrackCanvas, fUZAxis, fUZMCAxis, fVZAxis, and fVZMCAxis.

00214 {
00215   if(fTrackCanvas) {delete fTrackCanvas;}
00216 
00217   if(fUZAxis) {delete fUZAxis;}
00218   if(fVZAxis) {delete fVZAxis;}
00219   if(fUZMCAxis) {delete fUZMCAxis;} 
00220   if(fVZMCAxis) {delete fVZMCAxis;} 
00221 }


Member Function Documentation

JobCResult FitTrackCamAnalysisModule::Ana ( const MomNavigator mom  )  [virtual]

Implement this for read only access to the MomNavigator

Reimplemented from JobCModule.

Definition at line 246 of file FitTrackCamAnalysisModule.cxx.

References candrec, CareAboutXTalk, Chi2, CleanUp(), ConfigureAxes(), debug, Draw(), dS, EfficiencySection(), EndDirCosU, EndDirCosV, EndDirCosZ, EnddUError, EnddVError, EndPlane, EndQP, EndQPError, EndT, EndTrace, EndTraceZ, EndU, EndUError, EndV, EndVError, EndZ, FDFullyContained, fFitEndPlane, fFitVtxPlane, FitAndTruthAgree, FittedTrackSection(), FitTrackLength, FitTrackStrips, fMaxUorV, fMaxZ, fMinUorV, fMinZ, FTCFile, FTCTree, fTrueMaxPlane, fTrueMinPlane, fUZAxis, fUZMCAxis, fVZAxis, fVZMCAxis, CandRecord::GetCandHeader(), MomNavigator::GetFragment(), CandHeader::GetRun(), VldContext::GetSimFlag(), CandHeader::GetSnarl(), RecMinos::GetVldContext(), isMC, Msg::kDebug, JobCResult::kFailed, SimFlag::kMC, JobCResult::kPassed, Msg::kWarning, MSG, NDOF, NIterate, NSwimFail, NTimeFitDigit, NTrackDigit, NTrackStrip, NumFittedTracks, Pass, QPVtxError, RecoMomCurve, RecoMomRange, RecoQP, RecoTime, Run, ShowerSection(), SliceSection(), Snarl, TimeBackwardFitNDOF, TimeBackwardFitRMS, TimeFitChi2, TimeForwardFitNDOF, TimeForwardFitRMS, TimeOffset, TimeSlope, TotalStripsInSnarl, TrackSection(), TrueMom, TrueMuonStrips, TrueQP, TrueTrackLength, TruthSection(), TruthSliceSection(), VtxDirCosU, VtxDirCosV, VtxDirCosZ, VtxdUError, VtxdVError, VtxPlane, VtxT, VtxTrace, VtxTraceZ, VtxU, VtxUError, VtxV, VtxVError, and VtxZ.

00247 {
00248   MSG("FitTrack", Msg::kDebug) << " FitTrackCamAnalysisModule::Ana(const MomNavigator* mom) " << endl;
00249 
00250   // Do we care about XTalk?
00251   CareAboutXTalk=true;
00252   debug=false;
00253 
00255   // Make sure we have a 'clean' start
00256   if ( fUZAxis ) { delete fUZAxis; fUZAxis=0; }
00257   if ( fVZAxis ) { delete fVZAxis; fVZAxis=0; }
00258   if ( fUZMCAxis ) { delete fUZMCAxis; fUZMCAxis=0; }
00259   if ( fVZMCAxis ) { delete fVZMCAxis; fVZMCAxis=0; }
00260   
00261   fMaxZ = -1;
00262   fMinZ = 50;
00263   fMaxUorV = -20;
00264   fMinUorV = 20;
00265 
00266   fFitEndPlane = -1;
00267   fFitVtxPlane = 500;
00268   fTrueMaxPlane = -1;
00269   fTrueMinPlane = 500;
00270 
00271   Run=-999;
00272   Snarl=-999;
00273   NumFittedTracks=-999;
00274   Pass=-999;
00275 
00276   RecoQP=-999;
00277   TrueQP=-999;
00278   QPVtxError=-999;
00279   RecoMomCurve=-999;
00280   RecoMomRange=-999;
00281   TrueMom=-999;
00282   RecoTime=-999;
00283 
00284   FitTrackStrips=-999;
00285   TrueMuonStrips=-999;
00286   FitAndTruthAgree=-999;
00287   FitTrackLength=-999;
00288   TrueTrackLength=-999;
00289   TotalStripsInSnarl=-999;
00290   FDFullyContained=-999;
00291   NTrackStrip=-999;
00292   NTrackDigit=-999;
00293 
00294   Chi2=-999;
00295   NDOF=-999;
00296   NIterate=-999;
00297   NSwimFail=-999;
00298 
00299   TimeSlope=-999;
00300   TimeOffset=-999;
00301   VtxT=-999;
00302   EndT=-999;
00303   TimeFitChi2=-999;
00304   NTimeFitDigit=-999;
00305   TimeForwardFitRMS=-999;
00306   TimeForwardFitNDOF=-999;
00307   TimeBackwardFitRMS=-999;
00308   TimeBackwardFitNDOF=-999;
00309 
00310   VtxU=-999;
00311   VtxV=-999;       
00312   VtxZ=-999;       
00313   VtxPlane=-999; 
00314                    
00315   VtxDirCosU=-999;
00316   VtxDirCosV=-999;
00317   VtxDirCosZ=-999;
00318   
00319   VtxUError=-999;
00320   VtxVError=-999;
00321   VtxdUError=-999;
00322   VtxdVError=-999;
00323                    
00324   EndU=-999;       
00325   EndV=-999;       
00326   EndZ=-999;       
00327   EndPlane=-999; 
00328   EndQP=-999;
00329 
00330   EndDirCosU=-999;
00331   EndDirCosV=-999;
00332   EndDirCosZ=-999;
00333                    
00334   EndUError=-999;
00335   EndVError=-999;
00336   EnddUError=-999;
00337   EnddVError=-999;
00338   EndQPError=-999;
00339 
00340   Range=-999;      
00341   dS=-999;         
00342   
00343   VtxTrace=-999; 
00344   VtxTraceZ=-999;
00345   EndTrace=-999; 
00346   EndTraceZ=-999;
00348 
00349 
00350   // Needed by methods
00352   candrec = dynamic_cast<CandRecord *> (mom->GetFragment("CandRecord", "PrimaryCandidateRecord"));
00353   
00354   if(!candrec)
00355     {
00356       MSG("FitTrack", Msg::kWarning) << " Failed to Find CandRecord " << endl;
00357       return JobCResult::kFailed;
00358     }
00359 
00360   // Header info
00361   CandHeader* candhead = (CandHeader*)(candrec->GetCandHeader());
00362   Run=candhead->GetRun();
00363   Snarl=candhead->GetSnarl();
00364 
00365   cout << "Snarl: " << Snarl << endl;
00366 
00367   VldContext *vldc = (VldContext*)(candrec->GetVldContext());  
00369 
00370 
00371   // Run methods 
00373   ConfigureAxes(vldc);
00374   SliceSection();
00375   ShowerSection();
00376   TrackSection();
00377   FittedTrackSection();
00378 
00379 
00380   // Truth section
00381   if(vldc->GetSimFlag()==SimFlag::kMC) {
00382     isMC=1;
00383 
00384     Truthifier* mytruth = new Truthifier(mom);
00385 
00386     //Get SimSnarlRecord
00387     SimSnarlRecord* simrec = dynamic_cast<SimSnarlRecord *>(mom->GetFragment("SimSnarlRecord"));
00388     if(simrec) {TruthSection(simrec);}
00389     
00390     TruthSliceSection(mytruth);
00391     EfficiencySection(mytruth);
00392 
00393     delete mytruth;
00394   }
00395 
00396   // Write ntuple
00397   TDirectory* tmpd = 0;
00398   tmpd = gDirectory;  
00399   FTCFile->cd();
00400   FTCTree->Fill();
00401   gDirectory = tmpd;
00402 
00403   Draw();
00404   //  Pause();
00405   CleanUp();
00407 
00408 
00409   return JobCResult::kPassed; // kNoDecision, kFailed, etc.
00410 }

void FitTrackCamAnalysisModule::BeginJob ( void   )  [virtual]

Implement for notification of begin of job

Reimplemented from JobCModule.

Definition at line 226 of file FitTrackCamAnalysisModule.cxx.

00227 {
00228 }

void FitTrackCamAnalysisModule::CleanUp (  ) 

Definition at line 1320 of file FitTrackCamAnalysisModule.cxx.

References fUZFitTrackMarker, fUZShowerMarker, fUZSliceMarker, fUZSliceMarkerTruth, fUZTrackMarker, fUZTrackMarkerTruth, fVZFitTrackMarker, fVZShowerMarker, fVZSliceMarker, fVZSliceMarkerTruth, fVZTrackMarker, and fVZTrackMarkerTruth.

Referenced by Ana().

01321 {
01322   fUZSliceMarker.clear();
01323   fVZSliceMarker.clear();
01324 
01325   fUZShowerMarker.clear();
01326   fVZShowerMarker.clear();
01327 
01328   fUZTrackMarker.clear();
01329   fVZTrackMarker.clear();
01330 
01331   fUZFitTrackMarker.clear();
01332   fVZFitTrackMarker.clear();
01333 
01334   fUZSliceMarkerTruth.clear();
01335   fVZSliceMarkerTruth.clear();
01336 
01337   fUZTrackMarkerTruth.clear();
01338   fVZTrackMarkerTruth.clear();
01339 }

void FitTrackCamAnalysisModule::Config ( const Registry r  )  [virtual]

Return the actual configuration. If your module directly pulls its configuration from the fConfig Registry, you don't need to override this. Override if you have local config variables.

Reimplemented from JobCModule.

Definition at line 1373 of file FitTrackCamAnalysisModule.cxx.

References fFileName, fListInFitTrk, fListInShw, fListInSlc, fListInTrk, and Registry::Get().

01374 {
01375   //======================================================================
01376   // Configure the module given the Registry r
01377   //======================================================================
01378   const char* tmps;
01379   if (r.Get("NameSlcListIn",tmps)) { fListInSlc = tmps; }
01380   if (r.Get("NameShwListIn",tmps)) { fListInShw = tmps; }
01381   if (r.Get("NameTrkListIn",tmps)) { fListInTrk = tmps; }
01382   if (r.Get("NameFitTrkListIn",tmps)) { fListInFitTrk = tmps; }
01383   if (r.Get("NameFileOut",tmps)) { fFileName = tmps; }
01384 }

void FitTrackCamAnalysisModule::ConfigureAxes ( VldContext vldc  ) 

Definition at line 417 of file FitTrackCamAnalysisModule.cxx.

References fTrackCanvas, fUZAxis, fUZMCAxis, fUZMCPad, fUZPad, fVZAxis, fVZMCAxis, fVZMCPad, fVZPad, VldContext::GetDetector(), Detector::kFar, and Detector::kNear.

Referenced by Ana().

00418 {
00419   // Axes -  Determine for detector
00420 
00421   if (vldc->GetDetector()==Detector::kNear)
00422     {
00423       fUZAxis = new TH2F("UZAxis", "U view Near, Reco", 200, 0., 20., 80, -4., 4.);
00424       fVZAxis = new TH2F("VZAxis", "V view Near, Reco", 200, 0., 20., 80, -4., 4.);
00425 
00426       fUZMCAxis = new TH2F("UZMCAxis", "U view Near, Truth", 200, 0., 20., 80, -4., 4.);
00427       fVZMCAxis = new TH2F("VZMCAxis", "V view Near, Truth", 200, 0., 20., 80, -4., 4.);
00428     }
00429   else if (vldc->GetDetector()==Detector::kFar)
00430     {
00431       fUZAxis = new TH2F("UZAxis", "U view Far, Reco", 300, 0., 30., 100, -5., 5.);
00432       fVZAxis = new TH2F("VZAxis", "V view Far, Reco", 300, 0., 30., 100, -5., 5.);
00433 
00434       fUZMCAxis = new TH2F("UZMCAxis", "U view Far, Truth", 300, 0., 30., 100, -5., 5.);
00435       fVZMCAxis = new TH2F("VZMCAxis", "V view Far, Truth", 300, 0., 30., 100, -5., 5.);
00436     }
00437   else {cout << "Require detector to be near or far!!!" << endl;}
00438 
00439   // don't draw the Stats box
00440   fUZAxis->SetStats(kFALSE);
00441   fVZAxis->SetStats(kFALSE);
00442   fUZMCAxis->SetStats(kFALSE);
00443   fVZMCAxis->SetStats(kFALSE);
00444 
00445   // take away any association with a "directory" for these histograms
00446   fUZAxis->SetDirectory(0);
00447   fVZAxis->SetDirectory(0);
00448   fUZMCAxis->SetDirectory(0);
00449   fVZMCAxis->SetDirectory(0);
00450 
00451   // Draw empty canvas
00452   fUZPad->cd();
00453   fUZAxis->Draw();
00454 
00455   fVZPad->cd();
00456   fVZAxis->Draw();
00457 
00458   fUZMCPad->cd();
00459   fUZMCAxis->Draw();
00460 
00461   fVZMCPad->cd();
00462   fVZMCAxis->Draw();
00463 
00464   fTrackCanvas->cd();
00465 }

const Registry & FitTrackCamAnalysisModule::DefaultConfig ( void   )  const [virtual]

Get the default configuration registry. This should normally be overridden. One useful idiom is to implement it like:

const Registry& MyModule::DefaultConfig() const { static Registry cfg; // never is destroyed if (cfg.Size()) return cfg; // already filled it // set defaults: cfg.Set("TheAnswer",42); cfg.Set("Units","unknown"); return cfg; }

Reimplemented from JobCModule.

Definition at line 1345 of file FitTrackCamAnalysisModule.cxx.

References JobCModule::GetName(), Registry::LockValues(), Registry::Set(), and Registry::UnLockValues().

01346 {
01347   //======================================================================
01348   // Supply the default configuration for the module
01349   //======================================================================
01350   static Registry r; // Default configuration for module
01351 
01352   // Set name of config
01353   std::string name = this->GetName();
01354   name += ".config.default";
01355   r.SetName(name.c_str());
01356 
01357   // Set values in configuration
01358   r.UnLockValues();
01359   r.Set("NameSlcListIn","CandSliceList");
01360   r.Set("NameShwListIn","CandShowerList");
01361   r.Set("NameTrkListIn","CandTrackSRList");
01362   r.Set("NameFitTrkListIn","CandFitTrackCamList");
01363   r.Set("NameFileOut","FitTrackCamAna.root");
01364   r.LockValues();
01365 
01366   return r;
01367 }

void FitTrackCamAnalysisModule::Draw (  ) 

Definition at line 1111 of file FitTrackCamAnalysisModule.cxx.

References fMaxUorV, fMaxZ, fMinUorV, fMinZ, fTrackCanvas, fUZAxis, fUZFitTrackMarker, fUZMCAxis, fUZMCPad, fUZPad, fUZShowerMarker, fUZSliceMarker, fUZSliceMarkerTruth, fUZTrackMarker, fUZTrackMarkerTruth, fVZAxis, fVZFitTrackMarker, fVZMCAxis, fVZMCPad, fVZPad, fVZShowerMarker, fVZSliceMarker, fVZSliceMarkerTruth, fVZTrackMarker, fVZTrackMarkerTruth, isMC, and size.

Referenced by Ana().

01112 {
01113   // Plot slices
01115   if(fUZSliceMarker.size() > 0) {
01116     fUZPad->cd();
01117     fUZAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01118     fUZAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01119     for(unsigned int j=0; j<fUZSliceMarker.size(); ++j) {
01120       if (fUZSliceMarker[j].size() > 0) {
01121         for(unsigned int i=0; i<fUZSliceMarker[j].size(); ++i) {  
01122           fUZSliceMarker[j][i].Draw();
01123         }
01124       }
01125     }  
01126   }
01127 
01128   if(fVZSliceMarker.size() > 0) {
01129     fVZPad->cd();
01130     fVZAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01131     fVZAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01132     for(unsigned int j=0; j<fVZSliceMarker.size(); ++j) {
01133       if (fVZSliceMarker[j].size() > 0) {
01134         for(unsigned int i=0; i<fVZSliceMarker[j].size(); ++i) {
01135           fVZSliceMarker[j][i].Draw();
01136         }
01137       }
01138     }
01139   }
01141 
01142 
01143   // Plot showers
01145   if (fUZShowerMarker.size() > 0) {  // Check to see if there are showers
01146     fUZPad->cd();
01147     fUZAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01148     fUZAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01149     for(unsigned int j=0; j<fUZShowerMarker.size(); ++j) {
01150       if (fUZShowerMarker[j].size() > 0) {
01151         for(unsigned int i=0; i<fUZShowerMarker[j].size(); ++i) {  
01152           fUZShowerMarker[j][i].Draw();
01153         }
01154       }
01155     }  
01156   }
01157 
01158   if (fVZShowerMarker.size() > 0) { 
01159     fVZPad->cd();
01160     fVZAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01161     fVZAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01162     for(unsigned int j=0; j<fVZShowerMarker.size(); ++j) {
01163       if (fVZShowerMarker[j].size() > 0) {
01164         for(unsigned int i=0; i<fVZShowerMarker[j].size(); ++i) {
01165           fVZShowerMarker[j][i].Draw();
01166         }
01167       }
01168     }
01169   }
01171 
01172 
01173   // Plot simple tracks
01175   if (fUZTrackMarker.size() > 0) {  // Check to see if there are tracks
01176     fUZPad->cd();
01177     fUZAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01178     fUZAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01179     for(unsigned int j=0; j<fUZTrackMarker.size(); ++j) {
01180       if (fUZTrackMarker[j].size() > 0) {
01181         for(unsigned int i=0; i<fUZTrackMarker[j].size(); ++i) {  
01182           fUZTrackMarker[j][i].Draw();
01183         }
01184       }
01185     }
01186   }
01187  
01188   if (fVZTrackMarker.size() > 0) {  
01189     fVZPad->cd();
01190     fVZAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01191     fVZAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01192     for(unsigned int j=0; j<fVZTrackMarker.size(); ++j) {
01193       if (fVZTrackMarker[j].size() > 0) {
01194         for(unsigned int i=0; i<fVZTrackMarker[j].size(); ++i) {  
01195           fVZTrackMarker[j][i].Draw();
01196         }
01197       }
01198     }
01199   }
01201 
01202 
01203 
01204   // Plot fitted tracks
01206   if (fUZFitTrackMarker.size() > 0) {  // Check to see if there are fitted tracks
01207     fUZPad->cd();
01208     fUZAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01209     fUZAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01210     for(unsigned int j=0; j<fUZFitTrackMarker.size(); ++j) {
01211       if (fUZFitTrackMarker[j].size() > 0) {
01212         for(unsigned int i=0; i<fUZFitTrackMarker[j].size(); ++i) {  
01213           fUZFitTrackMarker[j][i].Draw();
01214         }
01215       }
01216     }
01217   }
01218 
01219   if (fVZFitTrackMarker.size() > 0) {
01220     fVZPad->cd();
01221     fVZAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01222     fVZAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01223     for(unsigned int j=0; j<fVZFitTrackMarker.size(); ++j) {
01224       if (fVZFitTrackMarker[j].size() > 0) {
01225         for(unsigned int i=0; i<fVZFitTrackMarker[j].size(); ++i) {  
01226           fVZFitTrackMarker[j][i].Draw();
01227         }
01228       }
01229     }
01230   }
01232 
01233 
01234   // Truth section plot
01236   if (isMC==1) {
01237     
01238     // All slice
01239     if(fUZSliceMarkerTruth.size() > 0) {
01240       fUZMCPad->cd();
01241       fUZMCAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01242       fUZMCAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01243       for(unsigned int j=0; j<fUZSliceMarkerTruth.size(); ++j) {
01244         if (fUZSliceMarkerTruth[j].size() > 0) {
01245           for(unsigned int i=0; i<fUZSliceMarkerTruth[j].size(); ++i) {  
01246             fUZSliceMarkerTruth[j][i].Draw();
01247           }
01248         }
01249       }  
01250     }
01251     
01252     if(fVZSliceMarkerTruth.size() > 0) {
01253       fVZMCPad->cd();
01254       fVZMCAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01255       fVZMCAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01256       for(unsigned int j=0; j<fVZSliceMarkerTruth.size(); ++j) {
01257         if (fVZSliceMarkerTruth[j].size() > 0) {
01258           for(unsigned int i=0; i<fVZSliceMarkerTruth[j].size(); ++i) {
01259             fVZSliceMarkerTruth[j][i].Draw();
01260           }
01261         }
01262       }
01263     }
01264 
01265     // True tracks... muon hits, etc
01266     if(fUZTrackMarkerTruth.size() > 0) {
01267       fUZMCPad->cd();
01268       fUZMCAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01269       fUZMCAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01270       for(unsigned int j=0; j<fUZTrackMarkerTruth.size(); ++j) {
01271         if (fUZTrackMarkerTruth[j].size() > 0) {
01272           for(unsigned int i=0; i<fUZTrackMarkerTruth[j].size(); ++i) {  
01273             fUZTrackMarkerTruth[j][i].Draw();
01274           }
01275         }
01276       }  
01277     }
01278     
01279     if(fVZTrackMarkerTruth.size() > 0) {
01280       fVZMCPad->cd();
01281       fVZMCAxis->GetXaxis()->SetRangeUser(fMinZ-0.1, fMaxZ+0.1);
01282       fVZMCAxis->GetYaxis()->SetRangeUser(fMinUorV-0.4, fMaxUorV+0.4);
01283       for(unsigned int j=0; j<fVZTrackMarkerTruth.size(); ++j) {
01284         if (fVZTrackMarkerTruth[j].size() > 0) {
01285           for(unsigned int i=0; i<fVZTrackMarkerTruth[j].size(); ++i) {
01286             fVZTrackMarkerTruth[j][i].Draw();
01287           }
01288         }
01289       }
01290     }
01291     
01292   }
01294 
01295   fTrackCanvas->cd();
01296   fTrackCanvas->Update();
01297 }

void FitTrackCamAnalysisModule::EfficiencySection ( Truthifier mytruth  ) 

Definition at line 1036 of file FitTrackCamAnalysisModule.cxx.

References candrec, debug, Truthifier::DigitIsOnlyCrosstalk(), CandRecord::FindCandHandle(), FitAndTruthAgree, FitTrackStrips, fListInFitTrk, CandHandle::GetDaughterIterator(), CandHandle::GetNDaughters(), Truthifier::IsDigitFromParticle(), Msg::kWarning, and MSG.

Referenced by Ana().

01037 {
01038   int numFitTrkStrips=0;
01039   int numTrueMuonDigits=0;
01040   int numFitTrkTruthAgree=0;
01041     
01042   // Get CandFitTrackListHandle
01043   CandFitTrackListHandle* fit_track_list = dynamic_cast<CandFitTrackListHandle*>(candrec->FindCandHandle("CandFitTrackListHandle",
01044                                                                                                          fListInFitTrk.Data()));
01045   if(!fit_track_list) {
01046     MSG("FitTrack", Msg::kWarning) << " Failed to Find " << fListInFitTrk.Data() << endl;
01047     FitTrackStrips=0;
01048     FitAndTruthAgree=0;
01049   }
01050   
01051   else {
01052     assert(fit_track_list);
01053     if(fit_track_list->GetNDaughters()<1) {MSG("FitTrack", Msg::kWarning) << "FitTracklist was empty... " << endl; }
01054       
01055     // loop over the fittedtracks
01056     TIter FitTrkItr = fit_track_list->GetDaughterIterator();
01057     while(CandFitTrackHandle* FitTrk = dynamic_cast<CandFitTrackHandle*>(FitTrkItr()))
01058       {
01059 
01060         TIter FitTrkStripItr = FitTrk->GetDaughterIterator();
01061         while(CandStripHandle* FitTrkStrip = dynamic_cast<CandStripHandle*>(FitTrkStripItr()))
01062           {
01063             numFitTrkStrips++;
01064               
01065             TIter digitrFitTrkXTalk = FitTrkStrip->GetDaughterIterator();
01066             while(CandDeMuxDigitHandle* FitTrkDigit = dynamic_cast<CandDeMuxDigitHandle*>(digitrFitTrkXTalk())) 
01067               {
01068                 if ( ( mytruth->IsDigitFromParticle(13,*FitTrkDigit)
01069                        || mytruth->IsDigitFromParticle(-13,*FitTrkDigit) )
01070                        
01071                      && mytruth->DigitIsOnlyCrosstalk(FitTrkDigit)==0 )
01072                   {
01073                     // count number of true muon hit strips
01074                     numTrueMuonDigits++;
01075                   }
01076               }
01077             digitrFitTrkXTalk.Reset();
01078               
01079             if(numTrueMuonDigits>0) {numFitTrkTruthAgree++;}
01080             numTrueMuonDigits=0;
01081               
01082           }
01083         FitTrkStripItr.Reset();
01084           
01085         if(debug) {
01086           cout << "No. of fit track hit strips: " << numFitTrkStrips << endl;
01087           cout << "No. of fit track hits that agree with true muon hits: " << numFitTrkTruthAgree << endl;}
01088 
01089 
01090         //Fill tree
01092         if(fit_track_list->GetNDaughters()==1) {
01093           FitTrackStrips=numFitTrkStrips;
01094           FitAndTruthAgree=numFitTrkTruthAgree;
01095         }
01096         else {
01097           FitTrackStrips=-999;
01098           FitAndTruthAgree=-999;
01099         }
01101 
01102       }
01103     FitTrkItr.Reset();
01104   }
01105 }

void FitTrackCamAnalysisModule::EndJob (  )  [virtual]

Implement for notification of end of job

Reimplemented from JobCModule.

Definition at line 233 of file FitTrackCamAnalysisModule.cxx.

References FTCFile, and FTCTree.

00234 {
00235   TDirectory* tmpd = 0;
00236   tmpd = gDirectory;  
00237   FTCFile->cd();
00238   FTCTree->Write();
00239   FTCFile->Close();
00240   gDirectory = tmpd;
00241 }

void FitTrackCamAnalysisModule::FittedTrackSection (  ) 

Definition at line 672 of file FitTrackCamAnalysisModule.cxx.

References candrec, CareAboutXTalk, Chi2, debug, dS, EndDirCosU, EndDirCosV, EndDirCosZ, EnddUError, EnddVError, EndPlane, EndQP, EndQPError, EndT, EndTrace, EndTraceZ, EndU, EndUError, EndV, EndVError, EndZ, FDFullyContained, fFitEndPlane, fFitVtxPlane, CandRecord::FindCandHandle(), FitTrackLength, fListInFitTrk, fMaxUorV, fMaxZ, fMinUorV, fMinZ, fUZFitTrackMarker, fVZFitTrackMarker, CandHandle::GetDaughterIterator(), CandHandle::GetNDaughters(), Msg::kWarning, MSG, NDOF, NIterate, NSwimFail, NTimeFitDigit, NTrackDigit, NTrackStrip, NumFittedTracks, Pass, QPVtxError, RecoMomCurve, RecoMomRange, RecoQP, RecoTime, TimeBackwardFitNDOF, TimeBackwardFitRMS, TimeFitChi2, TimeForwardFitNDOF, TimeForwardFitRMS, TimeOffset, TimeSlope, VtxDirCosU, VtxDirCosV, VtxDirCosZ, VtxdUError, VtxdVError, VtxPlane, VtxT, VtxTrace, VtxTraceZ, VtxU, VtxUError, VtxV, VtxVError, and VtxZ.

Referenced by Ana().

00673 {
00674   vector<TMarker> fThisFitTrackUZ;
00675   vector<TMarker> fThisFitTrackVZ;
00676   int numFitTrk=0;
00677   CandFitTrackListHandle* fit_track_list = 0;
00678 
00679   // Get CandFitTrackListHandle
00680   fit_track_list = dynamic_cast<CandFitTrackListHandle*>
00681     (candrec->FindCandHandle("CandFitTrackListHandle",fListInFitTrk.Data()));
00682 
00683   if(!fit_track_list) {
00684     MSG("FitTrack", Msg::kWarning) << " Failed to Find " << fListInFitTrk.Data() << endl;
00685     NumFittedTracks=0;
00686     FitTrackLength=0;
00687   }
00688 
00689   else {
00690     assert(fit_track_list);
00691     if(fit_track_list->GetNDaughters()<1) {MSG("FitTrack", Msg::kWarning) << "FitTracklist was empty... " << endl; }
00692 
00693     // loop over the fittedtracks
00694     TIter FitTrkItr = fit_track_list->GetDaughterIterator();
00695     while(CandFitTrackCamHandle* FitTrk = dynamic_cast<CandFitTrackCamHandle*>(FitTrkItr()))
00696       {
00697         numFitTrk++;
00698 
00700         // Fully contained?
00701         bool EndContained=false; bool VtxContained=false;
00702 
00703         if( fabs(FitTrk->GetEndU())<3.5 && fabs(FitTrk->GetEndV())<3.5 
00704             && fabs( pow(0.5,0.5)*(FitTrk->GetEndU()-FitTrk->GetEndV()) )<3.5 
00705             && fabs( pow(0.5,0.5)*(FitTrk->GetEndU()+FitTrk->GetEndV()) )<3.5
00706             
00707             && fabs( pow( pow(FitTrk->GetEndU(),2) + pow(FitTrk->GetEndV(),2),0.5) )>.4
00708             
00709             && (FitTrk->GetTermPlane())<480 && (FitTrk->GetTermPlane())>5
00710 
00711             && ( (FitTrk->GetTermPlane())>254 || (FitTrk->GetTermPlane())<243 ) )
00712           
00713           {EndContained=true;}
00714         
00715         if( fabs(FitTrk->GetVtxU())<3.5 && fabs(FitTrk->GetVtxV())<3.5 
00716             && fabs( pow(0.5,0.5)*(FitTrk->GetVtxU()-FitTrk->GetVtxV()) )<3.5 
00717             && fabs( pow(0.5,0.5)*(FitTrk->GetVtxU()+FitTrk->GetVtxV()) )<3.5
00718             
00719             && fabs( pow( pow(FitTrk->GetVtxU(),2) + pow(FitTrk->GetVtxV(),2),0.5) )>.4
00720             
00721             && (FitTrk->GetVtxPlane())<480 && (FitTrk->GetVtxPlane())>5
00722 
00723             && ( (FitTrk->GetVtxPlane())>254 || (FitTrk->GetVtxPlane())<243 ) )
00724           
00725           {VtxContained=true;}
00726         
00727         if(EndContained==true && VtxContained==true) {FDFullyContained=1;}
00728         else {FDFullyContained=0;}
00730 
00731 
00732         TIter FitTrkStripItr = FitTrk->GetDaughterIterator();
00733         while(CandStripHandle* FitTrkStrip = dynamic_cast<CandStripHandle*>(FitTrkStripItr()))
00734           {
00735 
00736             TIter digitrFitTrkXTalk = FitTrkStrip->GetDaughterIterator();
00737             while(CandDeMuxDigitHandle* FitTrkDigit = dynamic_cast<CandDeMuxDigitHandle*>(digitrFitTrkXTalk())) 
00738               {
00739                 // For U type planes
00740                 if(int(FitTrkStrip->GetPlaneView())==2 && (FitTrkDigit->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00741                   TMarker tmpmUFitTrk(FitTrkStrip->GetZPos(),  FitTrkStrip->GetTPos(), 23+numFitTrk);   
00742                   tmpmUFitTrk.SetMarkerColor(2);
00743                   fThisFitTrackUZ.push_back(tmpmUFitTrk);
00744                 }
00745 
00746                 // For V type planes
00747                 else if(int(FitTrkStrip->GetPlaneView())==3 && (FitTrkDigit->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00748                   TMarker tmpmVFitTrk(FitTrkStrip->GetZPos(), FitTrkStrip->GetTPos(), 23+numFitTrk);    
00749                   tmpmVFitTrk.SetMarkerColor(2);
00750                   fThisFitTrackVZ.push_back(tmpmVFitTrk);
00751                 }
00752         
00753                 if(FitTrkStrip->GetZPos() > fMaxZ) fMaxZ=FitTrkStrip->GetZPos();
00754                 if(FitTrkStrip->GetZPos() < fMinZ) fMinZ=FitTrkStrip->GetZPos();
00755           
00756                 if(FitTrkStrip->GetTPos() > fMaxUorV) fMaxUorV=FitTrkStrip->GetTPos();
00757                 if(FitTrkStrip->GetTPos() < fMinUorV) fMinUorV=FitTrkStrip->GetTPos();
00758 
00759                 if(FitTrkStrip->GetPlane() > fFitEndPlane) fFitEndPlane=FitTrkStrip->GetPlane();
00760                 if(FitTrkStrip->GetPlane() < fFitVtxPlane) fFitVtxPlane=FitTrkStrip->GetPlane();
00761               }
00762             digitrFitTrkXTalk.Reset();
00763 
00764           }
00765         FitTrkStripItr.Reset();
00766 
00767 
00768         // Fill tree
00770         if(fit_track_list->GetNDaughters()==1) {
00771           Pass=FitTrk->GetPass();
00772 
00773           RecoMomCurve=FitTrk->GetMomentumCurve();
00774           if(FitTrk->GetMomentumCurve()!=0) {RecoQP=FitTrk->GetEMCharge()/FitTrk->GetMomentumCurve();}
00775           QPVtxError=FitTrk->GetVtxQPError();
00776           RecoTime=FitTrk->GetCPUTime();
00777 
00778           RecoMomRange=FitTrk->GetMomentumRange();
00779 
00780           NTrackStrip=FitTrk->GetNTrackStrip();
00781           NTrackDigit=FitTrk->GetNTrackDigit();
00782 
00783           Chi2=FitTrk->GetChi2();
00784           NDOF=FitTrk->GetNDOF();
00785           NIterate=FitTrk->GetNIterate();
00786           NSwimFail=FitTrk->GetNSwimFail();
00787 
00788           TimeSlope=FitTrk->GetTimeSlope();
00789           TimeOffset=FitTrk->GetTimeOffset();
00790           VtxT=FitTrk->GetVtxT();
00791           EndT=FitTrk->GetEndT();
00792           TimeFitChi2=FitTrk->GetTimeFitChi2();
00793           NTimeFitDigit=FitTrk->GetNTimeFitDigit();
00794           TimeForwardFitRMS=FitTrk->GetTimeForwardFitRMS();
00795           TimeForwardFitNDOF=FitTrk->GetTimeForwardFitNDOF();
00796           TimeBackwardFitRMS=FitTrk->GetTimeBackwardFitRMS();
00797           TimeBackwardFitNDOF=FitTrk->GetTimeBackwardFitNDOF();
00798 
00799           VtxU=FitTrk->GetVtxU();
00800           VtxV=FitTrk->GetVtxV();
00801           VtxZ=FitTrk->GetVtxZ();
00802           VtxPlane=FitTrk->GetVtxPlane();
00803 
00804           VtxDirCosU=FitTrk->GetVtxDirCosU();
00805           VtxDirCosV=FitTrk->GetVtxDirCosV();
00806           VtxDirCosZ=FitTrk->GetVtxDirCosZ();
00807 
00808           VtxUError=FitTrk->GetVtxUError();
00809           VtxVError=FitTrk->GetVtxVError();
00810           VtxdUError=FitTrk->GetVtxdUError();
00811           VtxdVError=FitTrk->GetVtxdVError();
00812 
00813           EndU=FitTrk->GetEndU();
00814           EndV=FitTrk->GetEndV();
00815           EndZ=FitTrk->GetEndZ();
00816           EndPlane=FitTrk->GetTermPlane();
00817           EndQP=FitTrk->GetEndQP();
00818 
00819           EndDirCosU=FitTrk->GetEndDirCosU();
00820           EndDirCosV=FitTrk->GetEndDirCosV();
00821           EndDirCosZ=FitTrk->GetEndDirCosZ();
00822 
00823           EndUError=FitTrk->GetEndUError();
00824           EndVError=FitTrk->GetEndVError();
00825           EnddUError=FitTrk->GetEnddUError();
00826           EnddVError=FitTrk->GetEnddVError();
00827           EndQPError=FitTrk->GetEndQPError();
00828 
00829           Range=FitTrk->GetRange();
00830           dS=FitTrk->GetdS();
00831 
00832           VtxTrace=FitTrk->GetVtxTrace();
00833           VtxTraceZ=FitTrk->GetVtxTraceZ();
00834           EndTrace=FitTrk->GetEndTrace();
00835           EndTraceZ=FitTrk->GetEndTraceZ();
00836           
00837           FitTrackLength=fFitEndPlane-fFitVtxPlane;
00838   
00839           cout << "Cam Fitter charge * momentum result: " << FitTrk->GetEMCharge()*FitTrk->GetMomentumCurve() << endl;
00840           cout << "Cam Fitter q/p vertex error: " << FitTrk->GetVtxQPError() << endl;
00841           cout << "Cam Fitter CPU time: " << FitTrk->GetCPUTime() << endl;
00842         }
00843         else {
00844           cout << "Multiple tracks!" << endl;
00845           cout << "Cam Fitter charge * momentum result: " << FitTrk->GetEMCharge()*FitTrk->GetMomentumCurve() << endl;
00846           cout << "Cam Fitter q/p vertex error: " << FitTrk->GetVtxQPError() << endl;
00847           cout << "Cam Fitter CPU time: " << FitTrk->GetCPUTime() << endl;
00848         }
00850 
00851         fUZFitTrackMarker.push_back(fThisFitTrackUZ);
00852         fVZFitTrackMarker.push_back(fThisFitTrackVZ);
00853       }
00854     FitTrkItr.Reset();
00855 
00856     if(debug) {
00857       cout << "Number of fitted tracks: " << numFitTrk << endl;
00858       cout << "Fit track length: " << FitTrackLength << endl;}
00859     
00860     NumFittedTracks=numFitTrk;
00861   }
00862 } 

void FitTrackCamAnalysisModule::Pause (  ) 

Definition at line 1302 of file FitTrackCamAnalysisModule.cxx.

References gSystem().

01303 {
01304   cout << "Press return to continue" << endl;
01305 
01306   int key = 0;
01307   while(1){
01308     gSystem->ProcessEvents();
01309     fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK);
01310     key = getchar();
01311     if(key=='\n') break;
01312     usleep(1000);
01313   }
01314 }

void FitTrackCamAnalysisModule::ShowerSection (  ) 

Definition at line 536 of file FitTrackCamAnalysisModule.cxx.

References candrec, CareAboutXTalk, CandRecord::FindCandHandle(), fListInShw, fMaxUorV, fMaxZ, fMinUorV, fMinZ, fUZShowerMarker, fVZShowerMarker, CandHandle::GetDaughterIterator(), CandHandle::GetNDaughters(), Msg::kWarning, and MSG.

Referenced by Ana().

00537 {
00538   vector<TMarker> fThisShowerUZ;
00539   vector<TMarker> fThisShowerVZ;
00540   CandShowerListHandle* shower_list = 0;
00541 
00542   // Get CandShowerListHandle
00543   shower_list = dynamic_cast<CandShowerListHandle*>
00544     (candrec->FindCandHandle("CandShowerListHandle",fListInShw.Data()));
00545 
00546   if(!shower_list) {MSG("FitTrack", Msg::kWarning) << " Failed to Find " << fListInShw.Data() << endl; }
00547 
00548   else {
00549     assert(shower_list);
00550     if(shower_list->GetNDaughters()<1) {MSG("FitTrack", Msg::kWarning) << "ShowerList was empty... " << endl; }
00551     
00552     // loop over the showers
00553     TIter ShwItr = shower_list->GetDaughterIterator();
00554     while(CandShowerHandle* Shw = dynamic_cast<CandShowerHandle*>(ShwItr()))
00555       {
00556         
00557         TIter ShwStripItr = Shw->GetDaughterIterator();
00558         while(CandStripHandle* ShwStrip = dynamic_cast<CandStripHandle*>(ShwStripItr()))
00559           {
00560             
00561             TIter digitrShwXTalk = ShwStrip->GetDaughterIterator();
00562             while(CandDeMuxDigitHandle* ShwDigit = dynamic_cast<CandDeMuxDigitHandle*>(digitrShwXTalk())) 
00563               {
00564                 // For U type planes
00565                 if(int(ShwStrip->GetPlaneView())==2 && (ShwDigit->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00566                   TMarker tmpmUShw(ShwStrip->GetZPos(),  ShwStrip->GetTPos(), 24);      
00567                   tmpmUShw.SetMarkerColor(5);
00568                   fThisShowerUZ.push_back(tmpmUShw);
00569                 }
00570                 
00571                 // For V type planes
00572                 else if(int(ShwStrip->GetPlaneView())==3 && (ShwDigit->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00573                   TMarker tmpmVShw(ShwStrip->GetZPos(),  ShwStrip->GetTPos(), 24);      
00574                   tmpmVShw.SetMarkerColor(5);
00575                   fThisShowerVZ.push_back(tmpmVShw);
00576                 }
00577                 
00578                 if(ShwStrip->GetZPos() > fMaxZ) fMaxZ=ShwStrip->GetZPos();
00579                 if(ShwStrip->GetZPos() < fMinZ) fMinZ=ShwStrip->GetZPos();
00580                 
00581                 if(ShwStrip->GetTPos() > fMaxUorV) fMaxUorV=ShwStrip->GetTPos();
00582                 if(ShwStrip->GetTPos() < fMinUorV) fMinUorV=ShwStrip->GetTPos();
00583                 
00584               }
00585             digitrShwXTalk.Reset();
00586             
00587           }
00588         ShwStripItr.Reset();
00589         
00590         fUZShowerMarker.push_back(fThisShowerUZ);
00591         fVZShowerMarker.push_back(fThisShowerVZ);
00592       }
00593     ShwItr.Reset();
00594   }
00595 }

void FitTrackCamAnalysisModule::SliceSection (  ) 

Definition at line 471 of file FitTrackCamAnalysisModule.cxx.

References candrec, CareAboutXTalk, CandRecord::FindCandHandle(), fListInSlc, fMaxUorV, fMaxZ, fMinUorV, fMinZ, fUZSliceMarker, fVZSliceMarker, CandHandle::GetDaughterIterator(), CandHandle::GetNDaughters(), Msg::kWarning, and MSG.

Referenced by Ana().

00472 {
00473   vector<TMarker> fThisSliceUZ;
00474   vector<TMarker> fThisSliceVZ;
00475   CandSliceListHandle* slice_list = 0;
00476 
00477   // Get CandSliceListHandle
00478   slice_list = dynamic_cast<CandSliceListHandle*>
00479     (candrec->FindCandHandle("CandSliceListHandle",fListInSlc.Data()));
00480 
00481   if(!slice_list) {MSG("FitTrack", Msg::kWarning) << " Failed to Find " << fListInSlc.Data() << endl; }
00482 
00483   else {
00484     assert(slice_list);
00485     if(slice_list->GetNDaughters()<1) {MSG("FitTrack", Msg::kWarning) << "SliceList was empty... " << endl; }
00486 
00487     // loop over the slices
00488     TIter SlcItr = slice_list->GetDaughterIterator();
00489     while(CandSliceHandle* Slc = dynamic_cast<CandSliceHandle*>(SlcItr()))
00490       {
00491         
00492         TIter SlcStripItr = Slc->GetDaughterIterator();
00493         while(CandStripHandle* SlcStrip = dynamic_cast<CandStripHandle*>(SlcStripItr()))
00494           {
00495 
00496             TIter digitrSlcXTalk = SlcStrip->GetDaughterIterator();
00497             while(CandDeMuxDigitHandle* SlcDigit = dynamic_cast<CandDeMuxDigitHandle*>(digitrSlcXTalk())) 
00498               {
00499                 // For U type planes
00500                 if(int(SlcStrip->GetPlaneView())==2 && (SlcDigit->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00501                   TMarker tmpmUSlc(SlcStrip->GetZPos(),  SlcStrip->GetTPos(), 20);      
00502                   tmpmUSlc.SetMarkerColor(3);
00503                   tmpmUSlc.SetMarkerSize(0.8);
00504                   fThisSliceUZ.push_back(tmpmUSlc);
00505                 }
00506                 
00507                 // For V type planes
00508                 else if(int(SlcStrip->GetPlaneView())==3 && (SlcDigit->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00509                   TMarker tmpmVSlc(SlcStrip->GetZPos(),  SlcStrip->GetTPos(), 20);      
00510                   tmpmVSlc.SetMarkerColor(3);
00511                   tmpmVSlc.SetMarkerSize(0.8);
00512                   fThisSliceVZ.push_back(tmpmVSlc);
00513                 }
00514                 
00515                 if(SlcStrip->GetZPos() > fMaxZ) fMaxZ=SlcStrip->GetZPos();
00516                 if(SlcStrip->GetZPos() < fMinZ) fMinZ=SlcStrip->GetZPos();
00517                 
00518                 if(SlcStrip->GetTPos() > fMaxUorV) fMaxUorV=SlcStrip->GetTPos();
00519                 if(SlcStrip->GetTPos() < fMinUorV) fMinUorV=SlcStrip->GetTPos();
00520               }
00521             digitrSlcXTalk.Reset();
00522           }
00523         SlcStripItr.Reset();
00524         
00525         fUZSliceMarker.push_back(fThisSliceUZ);
00526         fVZSliceMarker.push_back(fThisSliceVZ);
00527       }
00528     SlcItr.Reset();
00529   }
00530 }

void FitTrackCamAnalysisModule::TrackSection (  ) 

Definition at line 601 of file FitTrackCamAnalysisModule.cxx.

References candrec, CareAboutXTalk, debug, CandRecord::FindCandHandle(), fListInTrk, fMaxUorV, fMaxZ, fMinUorV, fMinZ, fUZTrackMarker, fVZTrackMarker, CandHandle::GetDaughterIterator(), CandHandle::GetNDaughters(), Msg::kWarning, and MSG.

Referenced by Ana().

00602 {
00603   vector<TMarker> fThisTrackUZ;
00604   vector<TMarker> fThisTrackVZ;
00605   int numTrk=0;
00606   CandTrackListHandle* track_list = 0;
00607 
00608   // Get CandTrackListHandle
00609   track_list = dynamic_cast<CandTrackListHandle*>
00610     (candrec->FindCandHandle("CandTrackListHandle",fListInTrk.Data()));
00611 
00612   if(!track_list)    {MSG("Track", Msg::kWarning) << " Failed to Find " << fListInTrk.Data() << endl; }
00613 
00614   else {
00615     assert(track_list);
00616     if(track_list->GetNDaughters()<1) {MSG("Track", Msg::kWarning) << "Tracklist was empty... " << endl; }
00617 
00618     // loop over the simple tracks
00619     TIter TrkItr = track_list->GetDaughterIterator();
00620     while(CandTrackHandle* Trk = dynamic_cast<CandTrackHandle*>(TrkItr()))
00621       {
00622         numTrk++;
00623 
00624 
00625         TIter TrkStripItr = Trk->GetDaughterIterator();
00626         while(CandStripHandle* TrkStrip = dynamic_cast<CandStripHandle*>(TrkStripItr()))
00627           {
00628 
00629             TIter digitrTrkXTalk = TrkStrip->GetDaughterIterator();
00630             while(CandDeMuxDigitHandle* TrkDigit = dynamic_cast<CandDeMuxDigitHandle*>(digitrTrkXTalk())) 
00631               {
00632                 // For U type planes
00633                 if(int(TrkStrip->GetPlaneView())==2 && (TrkDigit->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00634                   TMarker tmpmUTrk(TrkStrip->GetZPos(),  TrkStrip->GetTPos(), 24);      
00635                   tmpmUTrk.SetMarkerColor(4);
00636                   fThisTrackUZ.push_back(tmpmUTrk);
00637                 }
00638 
00639                 // For V type planes
00640                 else if(int(TrkStrip->GetPlaneView())==3 && (TrkDigit->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00641                   TMarker tmpmVTrk(TrkStrip->GetZPos(), TrkStrip->GetTPos(), 24);       
00642                   tmpmVTrk.SetMarkerColor(4);
00643                   fThisTrackVZ.push_back(tmpmVTrk);
00644                 }
00645         
00646                 if(TrkStrip->GetZPos() > fMaxZ) fMaxZ=TrkStrip->GetZPos();
00647                 if(TrkStrip->GetZPos() < fMinZ) fMinZ=TrkStrip->GetZPos();
00648           
00649                 if(TrkStrip->GetTPos() > fMaxUorV) fMaxUorV=TrkStrip->GetTPos();
00650                 if(TrkStrip->GetTPos() < fMinUorV) fMinUorV=TrkStrip->GetTPos();
00651 
00652               }
00653             digitrTrkXTalk.Reset();
00654             
00655           }
00656         TrkStripItr.Reset();
00657 
00658         fUZTrackMarker.push_back(fThisTrackUZ);
00659         fVZTrackMarker.push_back(fThisTrackVZ);
00660       }
00661     TrkItr.Reset();
00662 
00663     if(debug) {cout << "Number of simple tracks: " << numTrk << endl;}
00664   }
00665 }

void FitTrackCamAnalysisModule::TruthSection ( SimSnarlRecord simrec  ) 

Definition at line 868 of file FitTrackCamAnalysisModule.cxx.

References candrec, CandRecord::FindCandHandle(), fListInFitTrk, RecDataRecord< T >::GetComponents(), CandHandle::GetNDaughters(), REROOT_NeuKin::P4Mu1(), RecoMomCurve, TrueMom, and TrueQP.

Referenced by Ana().

00869 {   
00870   double fEmu=0;
00871 
00872   TObjArray arr(simrec->GetComponents());
00873   TIter iter(arr.MakeIterator());
00874   while(TObject* tob = (TObject*)(iter()))
00875     {
00876       if(tob->GetName()==TString("REROOT_NeuKin"))
00877         {
00878           REROOT_NeuKin* nukin = dynamic_cast<REROOT_NeuKin*>(tob);
00879           fEmu = nukin->P4Mu1()[3]; // Multiple muons?
00880         }   
00881     }
00882     
00883   cout << "--- True muon momentum * charge: " << fEmu << endl;
00884 
00885 
00886   // Get CandFitTrackListHandle
00887   CandFitTrackListHandle* fit_track_list = dynamic_cast<CandFitTrackListHandle*>
00888     (candrec->FindCandHandle("CandFitTrackListHandle",fListInFitTrk.Data()));
00889 
00890     
00891   // Fill tree
00893   if(fit_track_list) {
00894     if(fit_track_list->GetNDaughters()==1) {
00895       if(fEmu!=0.) {TrueQP=1./fEmu;}
00896       else{TrueQP=-999;}
00897       TrueMom=fabs(fEmu);
00898     }
00899     else {TrueQP=-999; TrueMom=-999;}
00900   }
00901   else {TrueQP=-999; TrueMom=-999;}
00903   
00904 
00905   // Display
00907   if(fit_track_list) {
00908     if(fEmu!=0. && fit_track_list->GetNDaughters()==1) {
00909       cout << "--- (Reco - Truth) / Truth: " << (RecoMomCurve-TrueMom)/ TrueMom << endl;
00910     }
00911   } 
00913 
00914 }

void FitTrackCamAnalysisModule::TruthSliceSection ( Truthifier mytruth  ) 

Definition at line 920 of file FitTrackCamAnalysisModule.cxx.

References candrec, CareAboutXTalk, debug, Truthifier::DigitIsOnlyCrosstalk(), CandRecord::FindCandHandle(), fListInSlc, fTrueMaxPlane, fTrueMinPlane, fUZSliceMarkerTruth, fUZTrackMarkerTruth, fVZSliceMarkerTruth, fVZTrackMarkerTruth, CandHandle::GetDaughterIterator(), CandHandle::GetNDaughters(), Truthifier::IsDigitFromParticle(), Msg::kWarning, MSG, TotalStripsInSnarl, TrueMuonStrips, and TrueTrackLength.

Referenced by Ana().

00921 {
00922   int numTrueMuonDigits=0;
00923   int numTrueMuonStrips=0;
00924 
00925   int numSliceStrips=0;
00926 
00927   vector<TMarker> fThisSliceUZTruth;
00928   vector<TMarker> fThisSliceVZTruth;
00929 
00930   vector<TMarker> fThisTrackUZTruth;
00931   vector<TMarker> fThisTrackVZTruth;
00932 
00933   // Get CandSliceListHandle
00934   CandSliceListHandle* slice_list = dynamic_cast<CandSliceListHandle*>
00935     (candrec->FindCandHandle("CandSliceListHandle",fListInSlc.Data()));
00936 
00937   if(!slice_list)    {MSG("FitTrack", Msg::kWarning) << " Failed to Find " << fListInSlc.Data() << endl;}
00938 
00939   else {
00940     assert(slice_list);
00941     if(slice_list->GetNDaughters()<1) {MSG("FitTrack", Msg::kWarning) << "SliceList was empty... " << endl; }     
00942       
00943     TIter SlcItrTruth = slice_list->GetDaughterIterator();
00944     while(CandSliceHandle* SlcTruth = dynamic_cast<CandSliceHandle*>(SlcItrTruth()))
00945       {
00946         
00947         TIter SlcStripItrTruth = SlcTruth->GetDaughterIterator();
00948         while(CandStripHandle* SlcStripTruth = dynamic_cast<CandStripHandle*>(SlcStripItrTruth()))
00949           {
00950             numSliceStrips++;
00951 
00952             TIter digitrTruth = SlcStripTruth->GetDaughterIterator();
00953             while(CandDeMuxDigitHandle* SlcDigitTruth = dynamic_cast<CandDeMuxDigitHandle*>(digitrTruth())) 
00954               { 
00955                 // For U type planes
00956                 if(int(SlcStripTruth->GetPlaneView())==2 && (SlcDigitTruth->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00957                   TMarker tmpmUSlcTruth(SlcStripTruth->GetZPos(),  SlcStripTruth->GetTPos(), 20);       
00958                   tmpmUSlcTruth.SetMarkerColor(3);
00959                   tmpmUSlcTruth.SetMarkerSize(0.8);
00960                   fThisSliceUZTruth.push_back(tmpmUSlcTruth);
00961                 }
00962                   
00963                 // For V type planes
00964                 else if(int(SlcStripTruth->GetPlaneView())==3 && (SlcDigitTruth->GetDeMuxDigitFlagWord()!=1 || CareAboutXTalk)) {
00965                   TMarker tmpmVSlcTruth(SlcStripTruth->GetZPos(),  SlcStripTruth->GetTPos(), 20);       
00966                   tmpmVSlcTruth.SetMarkerColor(3);
00967                   tmpmVSlcTruth.SetMarkerSize(0.8);
00968                   fThisSliceVZTruth.push_back(tmpmVSlcTruth);
00969                 }
00970                   
00971                   
00972                 // Highlight true track and true showers, etc.
00973                 if ( (mytruth->IsDigitFromParticle(13,*SlcDigitTruth)
00974                       || mytruth->IsDigitFromParticle(-13,*SlcDigitTruth))
00975                      
00976                      && mytruth->DigitIsOnlyCrosstalk(SlcDigitTruth)==0 )
00977                   {
00978                     // count number of true muon hit strips
00979                     numTrueMuonDigits++;
00980                     
00981                     // For U type planes
00982                     if(int(SlcStripTruth->GetPlaneView())==2) {
00983                       TMarker tmpmUTrkTruth(SlcStripTruth->GetZPos(),  SlcStripTruth->GetTPos(), 30);   
00984                       tmpmUTrkTruth.SetMarkerColor(2);
00985                       fThisTrackUZTruth.push_back(tmpmUTrkTruth);
00986                     }
00987                     
00988                     // For V type planes
00989                     else if(int(SlcStripTruth->GetPlaneView())==3) {
00990                       TMarker tmpmVTrkTruth(SlcStripTruth->GetZPos(),  SlcStripTruth->GetTPos(), 30);   
00991                       tmpmVTrkTruth.SetMarkerColor(2);
00992                       fThisTrackVZTruth.push_back(tmpmVTrkTruth);
00993                     }     
00994                     
00995                     if(SlcStripTruth->GetPlane() > fTrueMaxPlane) {fTrueMaxPlane=SlcStripTruth->GetPlane();}
00996                     if(SlcStripTruth->GetPlane() < fTrueMinPlane) {fTrueMinPlane=SlcStripTruth->GetPlane();}
00997                   }
00998               }
00999             digitrTruth.Reset();
01000 
01001             if(numTrueMuonDigits>0) {numTrueMuonStrips++;}
01002             numTrueMuonDigits=0; // Reset counter
01003             
01004           }
01005         SlcStripItrTruth.Reset();
01006         
01007         if(debug) {
01008           cout << "Total no. of hit strips: " << numSliceStrips << endl;
01009           cout << "No. of true muon hit strips: " << numTrueMuonStrips << endl;}
01010         
01011 
01012         // Fill Tree - even if multiple tracks
01014         TotalStripsInSnarl=numSliceStrips;
01015         TrueMuonStrips=numTrueMuonStrips;
01016         if(TrueMuonStrips!=0) {TrueTrackLength=fTrueMaxPlane-fTrueMinPlane;}
01017         else {TrueTrackLength=0;}
01019 
01020         if(debug) {cout << "True track length: " << TrueTrackLength << endl;}
01021 
01022 
01023         fUZSliceMarkerTruth.push_back(fThisSliceUZTruth);
01024         fVZSliceMarkerTruth.push_back(fThisSliceVZTruth);
01025 
01026         fUZTrackMarkerTruth.push_back(fThisTrackUZTruth);
01027         fVZTrackMarkerTruth.push_back(fThisTrackVZTruth);
01028       }
01029   }
01030 }


Member Data Documentation

Definition at line 143 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 194 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 182 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 183 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 184 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 188 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 189 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 179 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 180 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 190 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 152 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 199 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 200 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 176 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 186 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 177 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 187 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 178 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 138 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 67 of file FitTrackCamAnalysisModule.h.

Referenced by Config().

Definition at line 103 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), and FittedTrackSection().

Definition at line 104 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), and FittedTrackSection().

Definition at line 134 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), EfficiencySection(), and FitTrackCamAnalysisModule().

Definition at line 135 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 132 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), EfficiencySection(), and FitTrackCamAnalysisModule().

Definition at line 64 of file FitTrackCamAnalysisModule.h.

Referenced by Config(), FitTrackCamAnalysisModule(), and ShowerSection().

Definition at line 65 of file FitTrackCamAnalysisModule.h.

Referenced by Config(), FitTrackCamAnalysisModule(), and TrackSection().

Definition at line 110 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), EndJob(), and FitTrackCamAnalysisModule().

Definition at line 111 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), EndJob(), and FitTrackCamAnalysisModule().

Definition at line 105 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), and TruthSliceSection().

Definition at line 106 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), and TruthSliceSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fUZFitTrackMarker [private]

Definition at line 89 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and FittedTrackSection().

Definition at line 75 of file FitTrackCamAnalysisModule.h.

Referenced by ConfigureAxes(), Draw(), and FitTrackCamAnalysisModule().

Definition at line 70 of file FitTrackCamAnalysisModule.h.

Referenced by ConfigureAxes(), Draw(), and FitTrackCamAnalysisModule().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fUZShowerMarker [private]

Definition at line 83 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and ShowerSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fUZSliceMarker [private]

Definition at line 80 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and SliceSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fUZSliceMarkerTruth [private]

Definition at line 92 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and TruthSliceSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fUZTrackMarker [private]

Definition at line 86 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and TrackSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fUZTrackMarkerTruth [private]

Definition at line 95 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and TruthSliceSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fVZFitTrackMarker [private]

Definition at line 90 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and FittedTrackSection().

Definition at line 76 of file FitTrackCamAnalysisModule.h.

Referenced by ConfigureAxes(), Draw(), and FitTrackCamAnalysisModule().

Definition at line 71 of file FitTrackCamAnalysisModule.h.

Referenced by ConfigureAxes(), Draw(), and FitTrackCamAnalysisModule().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fVZShowerMarker [private]

Definition at line 84 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and ShowerSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fVZSliceMarker [private]

Definition at line 81 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and SliceSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fVZSliceMarkerTruth [private]

Definition at line 93 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and TruthSliceSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fVZTrackMarker [private]

Definition at line 87 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and TrackSection().

vector<vector <TMarker> > FitTrackCamAnalysisModule::fVZTrackMarkerTruth [private]

Definition at line 96 of file FitTrackCamAnalysisModule.h.

Referenced by CleanUp(), Draw(), and TruthSliceSection().

Definition at line 108 of file FitTrackCamAnalysisModule.h.

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

Definition at line 144 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 145 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 146 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 154 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 140 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 139 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 119 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 120 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 125 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 193 of file FitTrackCamAnalysisModule.h.

Definition at line 127 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 123 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 129 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 117 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), and FitTrackCamAnalysisModule().

Definition at line 118 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), and FitTrackCamAnalysisModule().

Definition at line 158 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 157 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 153 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 156 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 155 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 150 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 149 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 137 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FitTrackCamAnalysisModule(), and TruthSliceSection().

Definition at line 128 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FitTrackCamAnalysisModule(), and TruthSection().

Definition at line 133 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FitTrackCamAnalysisModule(), and TruthSliceSection().

Definition at line 124 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FitTrackCamAnalysisModule(), and TruthSection().

Definition at line 136 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FitTrackCamAnalysisModule(), and TruthSliceSection().

Definition at line 166 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 167 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 168 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 172 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 173 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 164 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 151 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 197 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 198 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 161 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 170 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 162 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 171 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().

Definition at line 163 of file FitTrackCamAnalysisModule.h.

Referenced by Ana(), FittedTrackSection(), and FitTrackCamAnalysisModule().


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

Generated on 22 Nov 2017 for loon by  doxygen 1.6.1