00001 #ifndef ALT_DEMUX_STRUCTURES_H
00002 #define ALT_DEMUX_STRUCTURES_H
00003
00004 #include "Plex/PlexSEIdAltL.h"
00005
00006 typedef struct {
00007 int eEntry;
00008 int wEntry;
00009 } PatternPair;
00010
00011 typedef struct {
00012 PlexSEIdAltL* altListE;
00013 PlexSEIdAltL* altListW;
00014 Int_t orthogonalStripFromTiming;
00015 Int_t uniqueGroupID;
00016 Float_t weightQ;
00017 Float_t pairQCor;
00018 bool status;
00019 } DeMuxedPair;
00020
00021 typedef struct {
00022 PlexSEIdAltL* altList;
00023 Float_t Qcor;
00024 bool status;
00025 } DeMuxedSingle;
00026
00027
00028 typedef struct {
00029 bool status;
00030 Int_t nUsed;
00031 Int_t nData;
00032 Float_t a0;
00033 Float_t a1;
00034 Float_t a2;
00035 Float_t a3;
00036 Float_t a4;
00037 Float_t chi2;
00038 Float_t chi2pdf;
00039 } DeMuxFitResult_t;
00040
00041
00042
00043 typedef struct {
00044 Float_t x;
00045 Float_t y;
00046 bool status;
00047 } DeMuxFitData_t;
00048
00049
00050
00051 typedef struct {
00052 Float_t fractionQE;
00053 Float_t fractionQW;
00054 Float_t chi2DQ;
00055 Float_t centroid;
00056 Int_t largestContigGroup;
00057 Int_t stripSpan;
00058 std::vector<Int_t> strips;
00059 } PlaneValidity_t;
00060
00061
00062 enum DeMuxEventType_t {
00063 UNKNOWN,
00064 SINGLE_MUON,
00065 MULTIPLE_MUON,
00066 STOPPING_MUON,
00067 PARTIALLY_CONTAINED_EVENT,
00068 CONTAINED_EVENT,
00069 THROUGH_GOING_MUON,
00070 STRAIGHT_THROUGH_GOING_MUON
00071 };
00072
00073
00074 const Int_t DISPLAY_TYPE = 1;
00075 const Int_t ALG_EAST = 0;
00076 const Int_t ALG_WEST = 1;
00077 const Int_t MAX_NUMBER_OF_PMTS = 1800;
00078 const Int_t MAX_NUMBER_OF_PLANES = 500;
00079 const Int_t MAX_NUMBER_OF_STRIPS = 192;
00080 const Int_t MAX_DISPLAYED_HITS = 100;
00081 const Int_t MAX_HITS_PLANE = 100;
00082
00083
00084 enum DeMuxSearchType {SEARCH_BACKWARDS,SEARCH_GAP,SEARCH_GAP_F,SEARCH_GAP_B,SEARCH_FORWARDS,SEARCH_SINGLES};
00085
00086
00087 typedef struct {
00088 PlexSEIdAltL* altList1;
00089 Int_t alt1;
00090 PlexSEIdAltL* altList2;
00091 Int_t alt2;
00092 Int_t status;
00093 } DeMuxPossibility;
00094
00095 typedef struct {
00096 Int_t iplane;
00097 Int_t lowplane;
00098 Int_t highplane;
00099 DeMuxSearchType searchType;
00100 bool goodTactic;
00101 } DeMuxSearchTactic;
00102
00103 typedef struct {
00104 Int_t groupStart;
00105 Int_t groupEnd;
00106 } DeMuxMaskGroup;
00107
00108 typedef struct {
00109 Int_t groupStart;
00110 Int_t groupEnd;
00111 Int_t groupCount;
00112 } BigGroup;
00113
00114
00115
00116
00117 #endif // ALT_DEMUX_STRUCTURES_H