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

Helpers.cxx

Go to the documentation of this file.
00001 #include <iostream>
00002 using std::cout;
00003 using std::endl;
00004 
00005 #include "TClonesArray.h"
00006 #include "CalDetSI/Helpers.h"
00007 #include "Navigation/NavKey.h"
00008 #include "Conventions/Detector.h"
00009 #include "Conventions/ElecType.h"
00010 #include "Conventions/StripEnd.h"
00011 #include "RerootExodus/RerootExodus.h"
00012 
00013 NavKey CalHelpers::KeyFromPlane(const CandDigitHandle* cdh)
00014 {
00015      return GetPlane(*cdh);
00016 }
00017 
00018 NavKey CalHelpers::KeyFromStrip(const CandDigitHandle* cdh)
00019 {
00020      return GetBestStrip(*cdh);
00021 }
00022 
00023 NavKey CalHelpers::KeyFromEnd(const CandDigitHandle* cdh)
00024 {
00025      return GetBestEnd(*cdh);
00026 }
00027 
00028 NavKey CalHelpers::KeyFromTime(const CandDigitHandle* cdh)
00029 {
00030      return cdh->GetPlexSEIdAltL().GetBestItem().GetTime();
00031 }
00032 
00033 NavKey CalHelpers::KeyFromDigitTime(const CandDigitHandle* cdh)
00034 {
00035      return cdh->GetTime();
00036 }
00037 
00038 
00039 NavKey CalHelpers::KeyFromCrate(const CandDigitHandle* cdh)
00040 {
00041      return cdh->GetChannelId().GetCrate();
00042 }
00043 
00044 NavKey CalHelpers::KeyFromVarc(const CandDigitHandle* cdh)
00045 {
00046      return cdh->GetChannelId().GetVarcId();
00047 }
00048 
00049 
00050 CalHelpers::MCDigit::MCDigit():
00051   
00052   fMCPlane(0),
00053   fMCExtr(0),
00054   fMCCell(0),
00055   fMCTPos(0.),
00056   fMCRAWPE(0.),
00057   fMCCorrPE(0.),
00058   fMCTDC(0.),
00059   fMCTubePixel(0),
00060   fMCSignalPE(0.),
00061   fMCInitialTDC(0.),
00062   fMCAveDistTrue(0.),
00063   fMCHitBits(0),
00064   fMCCellPos(0),
00065   fMCPlanePos(0),
00066   fMCSumETrue(0)
00067 {}
00068 
00069 CalHelpers::MCDigit::MCDigit(const PlexStripEndId pse, REROOT_FLSDigit flsdig)
00070 {  
00071   fMCPlane = flsdig.IPln();
00072   fMCExtr = flsdig.IExtr();
00073   fMCCell = flsdig.ICell(); 
00074   fMCTPos = flsdig.TPos();
00075   fMCHitBits = flsdig.HitBits(); 
00076   fMCCellPos = flsdig.CellPos();
00077   fMCPlanePos = flsdig.PlanePos(); 
00078 
00079   if(pse.GetEnd()==StripEnd::kNegative){
00080     fMCRAWPE = flsdig.RawA();
00081     fMCCorrPE = flsdig.CorrA();
00082     fMCTDC = flsdig.TDCA();
00083     fMCTubePixel = flsdig.TubePixelA(); 
00084     fMCSignalPE = flsdig.SignalPEA();
00085     fMCInitialTDC = flsdig.InitialTDCA();
00086     fMCAveDistTrue = flsdig.AveDistTrueA();
00087   }
00088   else{
00089     fMCRAWPE = flsdig.RawB();
00090     fMCCorrPE = flsdig.CorrB();
00091     fMCTDC = flsdig.TDCB();
00092     fMCTubePixel = flsdig.TubePixelB(); 
00093     fMCSignalPE = flsdig.SignalPEB();
00094     fMCInitialTDC = flsdig.InitialTDCB();
00095     fMCAveDistTrue = flsdig.AveDistTrueB();
00096   }
00097   // added by MAK
00098   fMCSumETrue=flsdig.SumETrue();
00099   if(fMCRAWPE<=0){
00100       cout<<"MCDigit Constructor: fMCRAWPE <= 0"<<endl
00101           <<"flsdig.RawA(): "<<flsdig.RawA()<<endl
00102           <<"flsdig.RawB(): "<<flsdig.RawB()<<endl
00103           <<"Plane: "<<pse.GetPlane()<<endl
00104           <<"Strip: "<<pse.GetStrip()<<endl
00105           <<"Strip End: "<<pse.GetEnd()<<endl
00106           <<endl;
00107   }
00108 }
00109 
00110 CalHelpers::MCDigit::MCDigit(const MCDigit &mcd):
00111   fMCPlane(mcd.fMCPlane),
00112   fMCExtr(mcd.fMCExtr),
00113   fMCCell(mcd.fMCCell),
00114   fMCTPos(mcd.fMCTPos),
00115   fMCRAWPE(mcd.fMCRAWPE),
00116   fMCCorrPE(mcd.fMCCorrPE),
00117   fMCTDC(mcd.fMCTDC),
00118   fMCTubePixel(mcd.fMCTubePixel),
00119   fMCSignalPE(mcd.fMCSignalPE),
00120   fMCInitialTDC(mcd.fMCInitialTDC),
00121   fMCAveDistTrue(mcd.fMCAveDistTrue),
00122   fMCHitBits(mcd.fMCHitBits),
00123   fMCCellPos(mcd.fMCCellPos),
00124   fMCPlanePos(mcd.fMCPlanePos),
00125   fMCSumETrue(mcd.fMCSumETrue)
00126 {}
00127 
00128   
00129 
00130 CalHelpers::MCDigit::~MCDigit() {}
00131 
00132 CalHelpers::MCDigitMap::MCDigitMap():
00133    fMCDigitMap()
00134 {}
00135 
00136 CalHelpers::MCDigitMap::~MCDigitMap() {}
00137 
00138 void CalHelpers::MCDigitMap::MakeMCDigitMap()
00139 {
00140 
00141   static const TClonesArray *mdcl = RerootExodus::GetFLSDigitList();
00142 
00143   for(int i=0;i<mdcl->GetEntries();i++){
00144     const REROOT_FLSDigit *dig = dynamic_cast<const REROOT_FLSDigit *>(mdcl->At(i));
00145     if(dig == 0){
00146       continue;
00147     }
00148     PlexStripEndId psea = RerootExodus::PECAB2SEId(dig->IPln(), 
00149                                                   dig->IExtr(), dig->ICell(), 0);
00150     // for debugging
00151     cout<<"Gave iab = 0"<<endl;
00152     cout<<"Got back stripend: "<<psea.GetEnd()<<endl;
00153 
00154     MCDigit mcdig1(psea, *dig);
00155     fMCDigitMap[psea]=mcdig1;
00156     PlexStripEndId pseb = RerootExodus::PECAB2SEId(dig->IPln(), 
00157                                                   dig->IExtr(), dig->ICell(), 1);
00158     // for debugging
00159     cout<<"Gave iab = 1"<<endl;
00160     cout<<"Got back stripend: "<<pseb.GetEnd()<<endl;
00161 
00162     MCDigit mcdig2(pseb, *dig);
00163     fMCDigitMap[pseb]=mcdig2;
00164 
00165   }
00166 }
00167 
00168 
00169 
00170 
00171 
00172 

Generated on Mon Feb 15 11:06:47 2010 for loon by  doxygen 1.3.9.1