/[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.1 by mocchiut, Fri Nov 9 09:11:24 2007 UTC revision 1.14 by mocchiut, Mon Dec 14 14:49:15 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    #include <TMinuit.h>
34    
35    #include <PamLevel2.h>
36    
37  using namespace std;  using namespace std;
38    
39    struct stack{
40        char data[MAX];
41        int top;
42    };
43    
44  /**  /**
45   *   *
46   */   */
# Line 45  class CaloLat : public TObject { Line 58  class CaloLat : public TObject {
58      UInt_t atime;      UInt_t atime;
59      //      //
60      Float_t estrip[2][22][96];      Float_t estrip[2][22][96];
61        TString suf;
62        Bool_t usepl18x;
63      //      //
64    
65   public:   public:
# Line 62  class CaloLat : public TObject { Line 77  class CaloLat : public TObject {
77      void Clear();      void Clear();
78      void Clear(Option_t *option){Clear();};      void Clear(Option_t *option){Clear();};
79      void Delete();      void Delete();
80        void Delete(Option_t *option){Delete();};
81      //      //
82      void Process(); ///< Process data      void Process(); ///< Process data
83      void Print();      void Print();
84        void Print(Option_t *option){Print();};
85      //      //
86      ClassDef(CaloLat,1);      
87        void UsePlane18X(Bool_t use){usepl18x = use;};
88        //
89        //
90        void SetSuffix(TString suffix){ suf = suffix;};
91        //
92        ClassDef(CaloLat,2);
93  };  };
94    
95  /**  /**
# Line 84  class CaloLong : public TObject { Line 107  class CaloLong : public TObject {
107      UInt_t OBT;      UInt_t OBT;
108      UInt_t PKT;      UInt_t PKT;
109      UInt_t atime;      UInt_t atime;
110        UInt_t fOBT;
111        UInt_t fPKT;
112        UInt_t fatime;
113        //
114        Int_t N;
115        Int_t NC;
116        Bool_t sel;
117        Bool_t cont;
118        Int_t mask18b;
119        Bool_t usepl18x;
120        //
121        Float_t chi2;
122        Float_t ndf;
123        Float_t E0;
124        Float_t a;
125        Float_t b;
126        Float_t errE0;
127        Float_t erra;
128        Float_t errb;
129        Float_t etmax;
130        Float_t asymm;
131        Float_t X0pl;
132        Float_t defE0;
133        Float_t umax;
134        Float_t lmax;
135        TString sumax;
136        TString slmax;
137        Int_t fitresult;
138        //
139        Bool_t no18x;
140        Bool_t maskXE;
141        Bool_t maskYE;
142        Bool_t maskXO;
143        Bool_t maskYO;
144        //
145        Bool_t xyaverage;
146        //
147        Bool_t heavytail;
148        Float_t letmax;
149        Float_t lmipth;
150      //      //
151      Float_t eplane[2][22];      Float_t eplane[2][22];
152      //      //
153        CaloLevel2 *clp;
154        //
155        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"...
156        //
157        TString suf;
158    
159   public:   public:
160      //      //
161      //      //
162        void Fit();
163        void Fit(Bool_t draw);
164        //
165        //    Double_t ccurve(Double_t *t, Double_t *par);
166        //
167        void SetCaloLevel2Pointer(CaloLevel2 *cp){ clp = cp;};
168        //
169        Float_t Get_E0(){this->Fit(); return E0;};
170        Float_t Get_defE0(){this->Fit(); return defE0;};
171        Float_t Get_a(){this->Fit(); return a;};
172        Float_t Get_b(){this->Fit(); return b;};
173        Float_t Get_errE0(){this->Fit(); return errE0;};
174        Float_t Get_erra(){this->Fit(); return erra;};
175        Float_t Get_errb(){this->Fit(); return errb;};
176        Float_t Get_chi2(){this->Fit(); return chi2;};
177        Float_t Get_ndf(){this->Fit(); return ndf;};
178        Float_t Get_nchi2(){this->Fit(); if ( ndf > 0 ) return (chi2/ndf); return 0;};
179        Float_t Get_tmax(){this->Fit(); if ( b != 0 ) return ((a-1.)/b); return 0;};
180        Float_t Get_asymm(){this->Fit(); return asymm;};
181        Float_t Get_exptmax(){this->Process(); return etmax;};
182        Float_t Get_X0pl(){this->Process(); return X0pl;};
183        //
184        Float_t Get_letmax(){ return letmax;};
185        Float_t Get_lmipth(){ return lmipth;};
186        Int_t Get_fitresult(){this->Fit(); return fitresult;};    
187        //
188        void ForceNextFit(){atime=0;fatime=0;};
189      void Draw();      void Draw();
190      void Draw(Int_t);      void Draw(Int_t);
191      //      //
# Line 99  class CaloLong : public TObject { Line 194  class CaloLong : public TObject {
194      ~CaloLong(){ Delete(); };      ~CaloLong(){ Delete(); };
195      //      //
196      void SetDebug(Bool_t d){ debug=d; };      void SetDebug(Bool_t d){ debug=d; };
197        //    void UsePlane18X(){ no18x=false; };
198        
199        void UsePlane18X(Bool_t use="false"){usepl18x = use; no18x=!use;};
200        //
201        //
202        void UseAverage(){ xyaverage = true;};
203        void UseAllMeas(){ xyaverage = false;};
204        //
205        void MaskSection(TString);
206        void UnMaskSection(TString);
207        void UnMaskSections();
208        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);
209        void Contamination(){sel = false; cont = true;}; ///< Set contamination mode: planes from N to 22 are used.
210        void SetNoWpreSampler(Int_t n);
211        void SetNoWcalo(Int_t n);
212        void SplitInto(Int_t NoWpreSampler, Int_t NoWcalo);
213        Int_t GetNoWpreSampler(){return N;}; ///< Get the number of W planes used as presampler.
214        Int_t GetNoWcalo(){return NC;}; ///< Get the number of W planes used as calorimeter.
215        void SetEnergies(Float_t myene[][22]);
216        //
217        void SetLowerLimit(Float_t l){ lmax = l; };
218        void SetUpperLimit(Float_t u){ umax = u; };
219        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)
220        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)
221        //
222        void Setletmax(Float_t l){ letmax = l;};
223        void Setlmipth(Float_t l){ lmipth = l;};
224        void HeavyTail(Bool_t b){ heavytail=b;};
225        //
226        Float_t GetLowerLimit(){ return lmax;};
227        Float_t GetUpperLimit(){ return umax;};
228        //
229        void SetSuffix(TString suffix){ suf = suffix;};
230      //      //
231      void Clear();      void Clear();
232      void Clear(Option_t *option){Clear();};      void Clear(Option_t *option){Clear();};
233      void Delete();      void Delete();
234        void Delete(Option_t *option){Delete();};
235        //
236        void Process(); ///< Process data
237        void Print();
238        void Print(Option_t *option){Print();};
239        //
240        ClassDef(CaloLong,3);
241    };
242    
243    /**
244     *
245     */
246    class Calo2D : public TObject {
247    
248     private:
249        //
250        PamLevel2 *L2;
251        Bool_t debug;
252        //
253        // needed to avoid reprocessing the same event over and over to obtain the variables
254        //
255        UInt_t OBT;
256        UInt_t PKT;
257        UInt_t atime;
258        //
259        Float_t estrip[23][96][96];
260        Int_t smax[23];
261        Int_t smay[23];
262        Bool_t usepl18x;
263        //
264        TString suf;
265    
266     public:
267        //
268        //
269        void Draw();
270        void Draw(Int_t);
271        //
272        Calo2D();
273        Calo2D(PamLevel2 *L2);
274        ~Calo2D(){ Delete(); };
275        //
276        void SetDebug(Bool_t d){ debug=d; };
277        //
278        void Clear();
279        void Clear(Option_t *option){Clear();};
280        void Delete();
281        void Delete(Option_t *option){Delete();};
282        //
283        void SetSuffix(TString suffix){ suf = suffix;};
284        
285        void UsePlane18X(Bool_t use){usepl18x = use;};
286        //
287      //      //
288      void Process(); ///< Process data      void Process(); ///< Process data
289      void Print();      void Print();
290        void Print(Option_t *option){Print();};
291      //      //
292      ClassDef(CaloLong,1);      ClassDef(Calo2D,2);
293  };  };
294    
295  #endif  #endif

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

  ViewVC Help
Powered by ViewVC 1.1.23