/[PAMELA software]/calo/flight/CaloProfile/inc/CaloProfile.h
ViewVC logotype

Diff of /calo/flight/CaloProfile/inc/CaloProfile.h

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

revision 1.2 by mocchiut, Mon Nov 26 08:44:34 2007 UTC revision 1.11 by mocchiut, Wed Aug 19 07:25:33 2009 UTC
# Line 5  Line 5 
5  #ifndef caloprofile_h  #ifndef caloprofile_h
6  #define caloprofile_h  #define caloprofile_h
7    
8  #include <PamLevel2.h>  #define EMPTY -1
9    #define MAX 50
10    
11    #include <iostream>
12    #include <stdio.h>
13    #include <string.h>
14    #include <ctype.h>
15  #include <TTree.h>  #include <TTree.h>
16  #include <TFriendElement.h>  #include <TFriendElement.h>
17  #include <TChain.h>  #include <TChain.h>
# Line 24  Line 29 
29  #include <TSystemDirectory.h>  #include <TSystemDirectory.h>
30  #include <TSQLServer.h>  #include <TSQLServer.h>
31  #include <TF1.h>  #include <TF1.h>
32  #include <iostream>  #include <TGraphErrors.h>
33    
34    #include <PamLevel2.h>
35    
36  using namespace std;  using namespace std;
37    
38    struct stack{
39        char data[MAX];
40        int top;
41    };
42    
43  /**  /**
44   *   *
45   */   */
# Line 45  class CaloLat : public TObject { Line 57  class CaloLat : public TObject {
57      UInt_t atime;      UInt_t atime;
58      //      //
59      Float_t estrip[2][22][96];      Float_t estrip[2][22][96];
60        TString suf;
61      //      //
62    
63   public:   public:
# Line 68  class CaloLat : public TObject { Line 81  class CaloLat : public TObject {
81      void Print();      void Print();
82      void Print(Option_t *option){Print();};      void Print(Option_t *option){Print();};
83      //      //
84      ClassDef(CaloLat,1);      void SetSuffix(TString suffix){ suf = suffix;};
85        //
86        ClassDef(CaloLat,2);
87  };  };
88    
89  /**  /**
# Line 86  class CaloLong : public TObject { Line 101  class CaloLong : public TObject {
101      UInt_t OBT;      UInt_t OBT;
102      UInt_t PKT;      UInt_t PKT;
103      UInt_t atime;      UInt_t atime;
104        UInt_t fOBT;
105        UInt_t fPKT;
106        UInt_t fatime;
107        //
108        Int_t N;
109        Int_t NC;
110        Bool_t sel;
111        Bool_t cont;
112        Int_t mask18b;
113        //
114        Float_t chi2;
115        Float_t ndf;
116        Float_t E0;
117        Float_t a;
118        Float_t b;
119        Float_t errE0;
120        Float_t erra;
121        Float_t errb;
122        Float_t etmax;
123        Float_t asymm;
124        Float_t X0pl;
125        Float_t defE0;
126        Float_t umax;
127        Float_t lmax;
128        TString sumax;
129        TString slmax;
130        Int_t fitresult;
131        //
132        Bool_t no18x;
133        Bool_t maskXE;
134        Bool_t maskYE;
135        Bool_t maskXO;
136        Bool_t maskYO;
137        //
138        Bool_t xyaverage;
139      //      //
140      Float_t eplane[2][22];      Float_t eplane[2][22];
141      //      //
142        CaloLevel2 *clp;
143        //
144        Float_t Evaluate(TString s, Float_t tmax, Float_t X0pl ); // expression must be of the form "tmax+2.*X0pl", "5*tmax"."tmax+10","tmax-(4*tmax)+3.*X0pl"...
145        //
146        TString suf;
147    
148   public:   public:
149      //      //
150      //      //
151        void Fit();
152        void Fit(Bool_t draw);
153        //
154        //    Double_t ccurve(Double_t *t, Double_t *par);
155        //
156        void SetCaloLevel2Pointer(CaloLevel2 *cp){ clp = cp;};
157        //
158        Float_t Get_E0(){this->Fit(); return E0;};
159        Float_t Get_defE0(){this->Fit(); return defE0;};
160        Float_t Get_a(){this->Fit(); return a;};
161        Float_t Get_b(){this->Fit(); return b;};
162        Float_t Get_errE0(){this->Fit(); return errE0;};
163        Float_t Get_erra(){this->Fit(); return erra;};
164        Float_t Get_errb(){this->Fit(); return errb;};
165        Float_t Get_chi2(){this->Fit(); return chi2;};
166        Float_t Get_ndf(){this->Fit(); return ndf;};
167        Float_t Get_nchi2(){this->Fit(); if ( ndf > 0 ) return (chi2/ndf); return 0;};
168        Float_t Get_tmax(){this->Fit(); if ( b != 0 ) return ((a-1.)/b); return 0;};
169        Float_t Get_asymm(){this->Fit(); return asymm;};
170        Float_t Get_exptmax(){this->Process(); return etmax;};
171        Float_t Get_X0pl(){this->Process(); return X0pl;};
172        Int_t Get_fitresult(){this->Fit(); return fitresult;};
173        //
174        void ForceNextFit(){atime=0;fatime=0;};
175      void Draw();      void Draw();
176      void Draw(Int_t);      void Draw(Int_t);
177      //      //
# Line 101  class CaloLong : public TObject { Line 180  class CaloLong : public TObject {
180      ~CaloLong(){ Delete(); };      ~CaloLong(){ Delete(); };
181      //      //
182      void SetDebug(Bool_t d){ debug=d; };      void SetDebug(Bool_t d){ debug=d; };
183        void UsePlane18X(){ no18x=false; };
184        //
185        void UseAverage(){ xyaverage = true;};
186        void UseAllMeas(){ xyaverage = false;};
187        //
188        void MaskSection(TString);
189        void UnMaskSection(TString);
190        void UnMaskSections();
191        void Selection(){sel = true; cont = false;}; ///< Set selection mode: planes from 1 to 22-N are used, plane 18 - N is masked if "emulate18" variable is true (DEFAULT);
192        void Contamination(){sel = false; cont = true;}; ///< Set contamination mode: planes from N to 22 are used.
193        void SetNoWpreSampler(Int_t n);
194        void SetNoWcalo(Int_t n);
195        void SplitInto(Int_t NoWpreSampler, Int_t NoWcalo);
196        Int_t GetNoWpreSampler(){return N;}; ///< Get the number of W planes used as presampler.
197        Int_t GetNoWcalo(){return NC;}; ///< Get the number of W planes used as calorimeter.
198        void SetEnergies(Float_t myene[][22]);
199        //
200        void SetLowerLimit(Float_t l){ lmax = l; };
201        void SetUpperLimit(Float_t u){ umax = u; };
202        void SetLowerLimit(TString sl){ slmax = sl; };// expression must be of the form "5*t"."t+10","t-(4*t)"... where t will be replaced by the fitted maximum (X0)
203        void SetUpperLimit(TString su){ sumax = su; };// expression must be of the form "5*t"."t+10","t-(4*t)"... where t will be replaced by the fitted maximum (X0)
204        //
205        Float_t GetLowerLimit(){ return lmax;};
206        Float_t GetUpperLimit(){ return umax;};
207        //
208        void SetSuffix(TString suffix){ suf = suffix;};
209      //      //
210      void Clear();      void Clear();
211      void Clear(Option_t *option){Clear();};      void Clear(Option_t *option){Clear();};
# Line 111  class CaloLong : public TObject { Line 216  class CaloLong : public TObject {
216      void Print();      void Print();
217      void Print(Option_t *option){Print();};      void Print(Option_t *option){Print();};
218      //      //
219      ClassDef(CaloLong,1);      ClassDef(CaloLong,3);
220    };
221    
222    /**
223     *
224     */
225    class Calo2D : public TObject {
226    
227     private:
228        //
229        PamLevel2 *L2;
230        Bool_t debug;
231        //
232        // needed to avoid reprocessing the same event over and over to obtain the variables
233        //
234        UInt_t OBT;
235        UInt_t PKT;
236        UInt_t atime;
237        //
238        Float_t estrip[23][96][96];
239        Int_t smax[23];
240        Int_t smay[23];
241        //
242        TString suf;
243    
244     public:
245        //
246        //
247        void Draw();
248        void Draw(Int_t);
249        //
250        Calo2D();
251        Calo2D(PamLevel2 *L2);
252        ~Calo2D(){ Delete(); };
253        //
254        void SetDebug(Bool_t d){ debug=d; };
255        //
256        void Clear();
257        void Clear(Option_t *option){Clear();};
258        void Delete();
259        void Delete(Option_t *option){Delete();};
260        //
261        void SetSuffix(TString suffix){ suf = suffix;};
262        //
263        void Process(); ///< Process data
264        void Print();
265        void Print(Option_t *option){Print();};
266        //
267        ClassDef(Calo2D,2);
268  };  };
269    
270  #endif  #endif

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.23