/[PAMELA software]/PamCut/CollectionActions/Histo2DActions/TofDedxVsBetaHistoAction/TofDedxVsBetaHistoAction.cpp
ViewVC logotype

Diff of /PamCut/CollectionActions/Histo2DActions/TofDedxVsBetaHistoAction/TofDedxVsBetaHistoAction.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by pam-fi, Fri Sep 25 15:36:35 2009 UTC revision 1.5 by pam-fi, Tue Jan 3 08:57:21 2012 UTC
# Line 11  Line 11 
11    
12  TofDedxVsBetaHistoAction::TofDedxVsBetaHistoAction(const char *actionName, unsigned int layers, bool standAlone,  TofDedxVsBetaHistoAction::TofDedxVsBetaHistoAction(const char *actionName, unsigned int layers, bool standAlone,
13      TString outFileBase, TString mode, bool outRoot, bool outText, TString title) :      TString outFileBase, TString mode, bool outRoot, bool outText, TString title) :
14    Histo2DAction<Int_t> (actionName, title, outFileBase, mode, outRoot, outText), _layers(layers), _nLayers(0),      Histo2DAction<Int_t>(actionName, title, outFileBase, mode, outRoot, outText), _layers(layers), _nLayers(0), _badEvents(
15        _badEvents(0), _standAlone(standAlone) {          0), _standAlone(standAlone) {
16    
17      bool buildTitle = false;
18    if (title == "") {    if (title == "") {
19        buildTitle = true;
20      title = "TOF dE/dx (";      title = "TOF dE/dx (";
21      if ((_layers & S11) == S11) {    }
22      if ((_layers & S11) == S11) {
23        if (buildTitle)
24        title += "S11";        title += "S11";
25        _nLayers++;      _nLayers++;
26      }    }
27      if ((_layers & S12) == S12) {    if ((_layers & S12) == S12) {
28        if (buildTitle) {
29        if (_nLayers > 0)        if (_nLayers > 0)
30          title += ",";          title += ",";
31        title += "S12";        title += "S12";
       _nLayers++;  
32      }      }
33      if ((_layers & S21) == S21) {      _nLayers++;
34      }
35      if ((_layers & S21) == S21) {
36        if (buildTitle) {
37        if (_nLayers > 0)        if (_nLayers > 0)
38          title += ",";          title += ",";
39        title += "S21";        title += "S21";
       _nLayers++;  
40      }      }
41      if ((_layers & S22) == S22) {      _nLayers++;
42      }
43      if ((_layers & S22) == S22) {
44        if (buildTitle) {
45        if (_nLayers > 0)        if (_nLayers > 0)
46          title += ",";          title += ",";
47        title += "S22";        title += "S22";
       _nLayers++;  
48      }      }
49      if ((_layers & S31) == S31) {      _nLayers++;
50      }
51      if ((_layers & S31) == S31) {
52        if (buildTitle) {
53        if (_nLayers > 0)        if (_nLayers > 0)
54          title += ",";          title += ",";
55        title += "S31";        title += "S31";
       _nLayers++;  
56      }      }
57      if ((_layers & S32) == S32) {      _nLayers++;
58      }
59      if ((_layers & S32) == S32) {
60        if (buildTitle) {
61        if (_nLayers > 0)        if (_nLayers > 0)
62          title += ",";          title += ",";
63        title += "S32";        title += "S32";
       _nLayers++;  
64      }      }
65        _nLayers++;
66      }
67      if (buildTitle)
68      title += ") Vs Beta";      title += ") Vs Beta";
69    
70      SetTitle(title);    SetTitle(title);
   }  
71    
72  }  }
73    
# Line 64  void TofDedxVsBetaHistoAction::OnGood(Pa Line 78  void TofDedxVsBetaHistoAction::OnGood(Pa
78    static unsigned int badLayers;    static unsigned int badLayers;
79    
80    static int trkSeqNo;    static int trkSeqNo;
81      static int idx;
82    if (_standAlone)    if (_standAlone)
83      trkSeqNo = 0;      trkSeqNo = -1;
84    else    else
85      for (int i = 0; i < event->GetToFLevel2()->ntrk(); i++) {      trkSeqNo = event->GetTrack(0)->GetTrkTrack()->GetSeqNo();
86        if (event->GetToFLevel2()->GetToFTrkVar(i)->trkseqno == event->GetTrack(0)->GetTrkTrack()->GetSeqNo())  
87          trkSeqNo = i;    for (int i = 0; i < event->GetToFLevel2()->ntrk(); i++) {
88      }      if (event->GetToFLevel2()->GetToFTrkVar(i)->trkseqno == trkSeqNo)
89          idx = i;
90      }
91    
92    dEdx = 0.;    dEdx = 0.;
93    badLayers = 0;    badLayers = 0;
94    if ((_layers & S11) == S11) {    if ((_layers & S11) == S11) {
95      dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 0, 100);      dEdxLayer = event->GetToFLevel2()->GetdEdx(idx, 0, 100);
96        // Patch to exclude S115b
97        ToFTrkVar *tofTrk = event->GetToFLevel2()->GetToFTrkVar(idx);
98        bool has8 = false, has9 = false;
99        float dedx9 = 0.;
100        for (Int_t ib = 0; ib < tofTrk->npmtadc; ib++) {
101          if (tofTrk->pmtadc[ib] == 8) {
102            has8 = true;
103          }
104          if (tofTrk->pmtadc[ib] == 9) {
105            has9 = true;
106            dedx9 = tofTrk->dedx[ib];
107          }
108        }
109    
110        if (has9) {
111          dEdxLayer -= (dedx9 / ((int) has8 + 1));
112          dEdxLayer *= 2.;
113        }
114        //End of patch
115      if (dEdxLayer > 0. && dEdxLayer < 4090)      if (dEdxLayer > 0. && dEdxLayer < 4090)
116        dEdx += dEdxLayer;        dEdx += dEdxLayer;
117      else      else
118        badLayers++;        badLayers++;
119    }    }
120    if ((_layers & S12) == S12) {    if ((_layers & S12) == S12) {
121      dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 1, 100);      dEdxLayer = event->GetToFLevel2()->GetdEdx(idx, 1, 100);
122      if (dEdxLayer > 0. && dEdxLayer < 4090)      if (dEdxLayer > 0. && dEdxLayer < 4090)
123        dEdx += dEdxLayer;        dEdx += dEdxLayer;
124      else      else
125        badLayers++;        badLayers++;
126    }    }
127    if ((_layers & S21) == S21) {    if ((_layers & S21) == S21) {
128      dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 2, 100);      dEdxLayer = event->GetToFLevel2()->GetdEdx(idx, 2, 100);
129      if (dEdxLayer > 0. && dEdxLayer < 4090)      if (dEdxLayer > 0. && dEdxLayer < 4090)
130        dEdx += dEdxLayer;        dEdx += dEdxLayer;
131      else      else
132        badLayers++;        badLayers++;
133    }    }
134    if ((_layers & S22) == S22) {    if ((_layers & S22) == S22) {
135      dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 3, 100);      dEdxLayer = event->GetToFLevel2()->GetdEdx(idx, 3, 100);
136      if (dEdxLayer > 0. && dEdxLayer < 4090)      if (dEdxLayer > 0. && dEdxLayer < 4090)
137        dEdx += dEdxLayer;        dEdx += dEdxLayer;
138      else      else
139        badLayers++;        badLayers++;
140    }    }
141    if ((_layers & S31) == S31) {    if ((_layers & S31) == S31) {
142      dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 4, 100);      dEdxLayer = event->GetToFLevel2()->GetdEdx(idx, 4, 100);
143      if (dEdxLayer > 0. && dEdxLayer < 4090)      if (dEdxLayer > 0. && dEdxLayer < 4090)
144        dEdx += dEdxLayer;        dEdx += dEdxLayer;
145      else      else
146        badLayers++;        badLayers++;
147    }    }
148    if ((_layers & S32) == S32) {    if ((_layers & S32) == S32) {
149      dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 5, 100);      dEdxLayer = event->GetToFLevel2()->GetdEdx(idx, 5, 100);
150      if (dEdxLayer > 0. && dEdxLayer < 4090)      if (dEdxLayer > 0. && dEdxLayer < 4090)
151        dEdx += dEdxLayer;        dEdx += dEdxLayer;
152      else      else
153        badLayers++;        badLayers++;
154    }    }
155    if (badLayers == 0) {    if (badLayers == 0) {
156      dEdx /= _nLayers - badLayers;      dEdx /= _nLayers;
157      Fill(event->GetToFLevel2()->GetToFTrkVar(trkSeqNo)->beta[12], dEdx);      Fill(event->GetToFLevel2()->GetToFTrkVar(idx)->beta[12], dEdx);
158    }    }
159    else    else
160      _badEvents++;      _badEvents++;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.23