| 1 |
#include "PamVMCVolCrossMgr.h" |
| 2 |
|
| 3 |
#include "PamVMCCrossTOF.h" |
| 4 |
#include "PamVMCCrossTRK.h" |
| 5 |
#include "PamVMCCrossMAG.h" |
| 6 |
|
| 7 |
PamVMCVolCrossMgr::PamVMCVolCrossMgr(){ |
| 8 |
|
| 9 |
TString t; |
| 10 |
t="S11Y"; |
| 11 |
fvolmap.Add(new TObjString(t), new PamVMCCrossS11Y()); |
| 12 |
t="S12X"; |
| 13 |
fvolmap.Add(new TObjString(t), new PamVMCCrossS12X()); |
| 14 |
t="S21X"; |
| 15 |
fvolmap.Add(new TObjString(t), new PamVMCCrossS21X()); |
| 16 |
t="S22Y"; |
| 17 |
fvolmap.Add(new TObjString(t), new PamVMCCrossS22Y()); |
| 18 |
t="S31Y"; |
| 19 |
fvolmap.Add(new TObjString(t), new PamVMCCrossS31Y()); |
| 20 |
t="S32X"; |
| 21 |
fvolmap.Add(new TObjString(t), new PamVMCCrossS32X()); |
| 22 |
t="TSPA"; |
| 23 |
fvolmap.Add(new TObjString(t), new PamVMCCrossTRK()); |
| 24 |
t="MGPL"; |
| 25 |
fvolmap.Add(new TObjString(t), new PamVMCCrossMGPL()); |
| 26 |
t="MGPA"; |
| 27 |
fvolmap.Add(new TObjString(t), new PamVMCCrossMGPA()); |
| 28 |
|
| 29 |
} |
| 30 |
|
| 31 |
PamVMCVolCrossMgr * PamVMCVolCrossMgr::fcrm = 0; |
| 32 |
|
| 33 |
PamVMCVolCrossMgr * PamVMCVolCrossMgr::Instance(){ |
| 34 |
if(fcrm == 0) { |
| 35 |
fcrm = new PamVMCVolCrossMgr(); |
| 36 |
} |
| 37 |
return fcrm; |
| 38 |
} |
| 39 |
|
| 40 |
Bool_t PamVMCVolCrossMgr::IsTrackGood(){ |
| 41 |
|
| 42 |
|
| 43 |
Bool_t S11=((PamVMCVolCross*)fvolmap.GetValue("S11Y"))->IsVolCross(); |
| 44 |
Bool_t S12=((PamVMCVolCross*)fvolmap.GetValue("S12X"))->IsVolCross(); |
| 45 |
Bool_t S1=kFALSE; |
| 46 |
if (S11||S12) S1=kTRUE; |
| 47 |
Bool_t S21=((PamVMCVolCross*)fvolmap.GetValue("S21X"))->IsVolCross(); |
| 48 |
Bool_t S22=((PamVMCVolCross*)fvolmap.GetValue("S22Y"))->IsVolCross(); |
| 49 |
Bool_t S2=kFALSE; |
| 50 |
if(S21||S22) S2=kTRUE; |
| 51 |
Bool_t S31=((PamVMCVolCross*)fvolmap.GetValue("S31Y"))->IsVolCross(); |
| 52 |
Bool_t S32=((PamVMCVolCross*)fvolmap.GetValue("S32X"))->IsVolCross(); |
| 53 |
Bool_t S3=kFALSE; |
| 54 |
if(S31||S32) S3=kTRUE; |
| 55 |
|
| 56 |
Bool_t TOF=((PamVMCVolCross*)fvolmap.GetValue("TSPA"))->IsVolCross(); |
| 57 |
Bool_t MGPL=((PamVMCVolCross*)fvolmap.GetValue("MGPL"))->IsVolCross(); |
| 58 |
Bool_t MGPA=((PamVMCVolCross*)fvolmap.GetValue("MGPA"))->IsVolCross(); |
| 59 |
|
| 60 |
|
| 61 |
return S1*S2*S3*TOF*MGPL*MGPA; |
| 62 |
} |
| 63 |
|
| 64 |
void PamVMCVolCrossMgr::Reset(){ |
| 65 |
TMapIter *n= (TMapIter *)fvolmap.MakeIterator(); |
| 66 |
TObject *o; while( (o=(TObject *) n->Next())) { |
| 67 |
((PamVMCVolCross*)fvolmap.GetValue(o))->Reset(); |
| 68 |
} |
| 69 |
} |